京都大学 情報学研究科 数理工学専攻 2017年8月実施 グラフ理論
Author
祭音Myyura
Description
English Version
Let R+ be the set of non-negative reals, and let N=[G,w] be a network that consists of a simple connected graph G=(V,E) and an edge weight function
w:E→R+.
Let ∣V∣=n≥2.
For a partition
π={V1,V2,…,Vp}
of V, let E(π) denote the set of edges between distinct vertex subsets Vi,Vj∈π. Denote by Π the set of all partitions of V.
Let
T=(V,{a1,a2,…,an−1})
be a minimum spanning tree obtained from N by Kruskal's algorithm, where ai is added to T as the i-th tree edge.
For forests
T0=(V,∅)
and
Ti=(V,{a1,a2,…,ai}),i=1,2,…,n−1,
let πi∈Π, i=0,1,…,n−1, be the partition formed by the connected components of the forest Ti, where
πn−1={V}.
Choose a real value y(π) for each partition π∈Π as follows:
y(π0)=w(a1),
y(πi)=w(ai+1)−w(ai),i=1,2,…,n−2,
and
y(π)=0,∀π∈Π−{π0,π1,…,πn−2}.
Answer the following questions.
(i) Give a description of Kruskal's algorithm to find a minimum spanning tree of N.
(ii) Prove that each edge e∈E admits an index
j(e)∈{0,1,…,n−1}
which satisfies the conditions:
e∈E(πi),∀i≤j(e),
and
e∈/E(πi),∀i>j(e).
(iii) Prove that
w(ai)≤w(e),∀e∈E(πi−1)
holds for each i=1,2,…,n−1.
(iv) Prove that
j=0,1,…,i−1∑y(πj)=w(ai)
holds for each i=1,2,…,n−1.
(v) Prove that
π∈Π:e∈E(π)∑y(π)≤w(e)
holds for each edge e∈E.
Kai
(i)
Kruskal's algorithm sorts all edges in non-decreasing order of their weights.
Starting from the empty forest T0=(V,∅), it scans the edges in this order.
Whenever the current edge connects two different connected components of the current forest, the edge is added.
If the current edge would create a cycle, it is skipped.
The algorithm stops when n−1 edges have been added.
The resulting graph is a minimum spanning tree.
(ii)
Let e=uv∈E be any edge.
For each i=0,1,…,n−1, the partition πi is the partition of V into the connected components of the forest Ti.
Therefore,
e∈E(πi)
if and only if the two endpoints u and v of e belong to different connected components of Ti.
As i increases, the forest Ti gains more edges. Hence connected components can only merge; they never split. Therefore, once u and v become contained in the same connected component, they remain in the same connected component for all later forests.
Thus, the sequence of truth values of the condition e∈E(πi) has the following form:
true, true, true, …, true, false, false, …, false.
Since T0=(V,∅), every edge has endpoints in different connected components of T0. Hence
e∈E(π0).
Since Tn−1 is a spanning tree, all vertices are in one connected component. Hence
e∈/E(πn−1).
Therefore the following maximum
j(e):=max{i:e∈E(πi)}.
is well-defined and satisfies
0≤j(e)≤n−1
Then, by the monotonicity of connected components, we have
e∈E(πi),∀i≤j(e),
e∈/E(πi),∀i>j(e).
(iii)
Fix i∈{1,2,…,n−1}.
At the beginning of the i-th step of Kruskal's algorithm, the current forest is
Ti−1=(V,{a1,a2,…,ai−1}).
Let e∈E(πi−1).
Then the endpoints of e belong to two distinct connected components of Ti−1. Hence adding e to Ti−1 would not create a cycle.
Thus e is an admissible edge at the i-th step of Kruskal's algorithm.
By Kruskal's rule, ai is chosen as a minimum-weight admissible edge at this step. Therefore,
w(ai)≤w(e).
Since e∈E(πi−1) was arbitrary, we have
w(ai)≤w(e),∀e∈E(πi−1).
(iv)
When i=1, we have
j=0∑0y(πj)=y(π0)=w(a1).
So the claim holds.
Now suppose i≥2. By the definition of y,
y(π0)=w(a1),
and
y(πj)=w(aj+1)−w(aj),j=1,2,…,i−1.
Hence
j=0∑i−1y(πj)=y(π0)+j=1∑i−1y(πj)=w(a1)+j=1∑i−1{w(aj+1)−w(aj)}=w(a1)+{w(a2)−w(a1)}+{w(a3)−w(a2)}+⋯+{w(ai)−w(ai−1)}=w(ai).
(v)
Let e∈E be arbitrary.
By part (ii), there exists an index j(e) such that
e∈E(πi),∀i≤j(e),
e∈/E(πi),∀i>j(e).
Moreover, by the definition of y, the only partitions that may have nonzero y-values are
π0,π1,…,πn−2.
Therefore,
π∈Π:e∈E(π)∑y(π)=i=0∑j(e)y(πi).
By part (iv), taking i=j(e)+1, we obtain
i=0∑j(e)y(πi)=w(aj(e)+1).
Since e∈E(πj(e)), part (iii), applied with i=j(e)+1, gives
w(aj(e)+1)≤w(e).
Therefore,
π∈Π:e∈E(π)∑y(π)=w(aj(e)+1)≤w(e).
Thus,
π∈Π:e∈E(π)∑y(π)≤w(e)
holds for every edge e∈E.