跳到主要内容

京都大学 情報学研究科 数理工学専攻 2017年8月実施 グラフ理論

Author

祭音Myyura

Description

English Version

Let R+\mathbb{R}_+ be the set of non-negative reals, and let N=[G,w]N=[G,w] be a network that consists of a simple connected graph G=(V,E)G=(V,E) and an edge weight function

w:ER+.w:E\to \mathbb{R}_+.

Let V=n2|V|=n\ge 2.

For a partition

π={V1,V2,,Vp}\pi=\{V_1,V_2,\ldots,V_p\}

of VV, let E(π)E(\pi) denote the set of edges between distinct vertex subsets Vi,VjπV_i,V_j\in \pi. Denote by Π\Pi the set of all partitions of VV.

Let

T=(V,{a1,a2,,an1})T=(V,\{a_1,a_2,\ldots,a_{n-1}\})

be a minimum spanning tree obtained from NN by Kruskal's algorithm, where aia_i is added to TT as the ii-th tree edge.

For forests

T0=(V,)T_0=(V,\emptyset)

and

Ti=(V,{a1,a2,,ai}),i=1,2,,n1,T_i=(V,\{a_1,a_2,\ldots,a_i\}),\quad i=1,2,\ldots,n-1,

let πiΠ\pi_i\in \Pi, i=0,1,,n1i=0,1,\ldots,n-1, be the partition formed by the connected components of the forest TiT_i, where

πn1={V}.\pi_{n-1}=\{V\}.

Choose a real value y(π)y(\pi) for each partition πΠ\pi\in\Pi as follows:

y(π0)=w(a1),y(\pi_0)=w(a_1),
y(πi)=w(ai+1)w(ai),i=1,2,,n2,y(\pi_i)=w(a_{i+1})-w(a_i),\quad i=1,2,\ldots,n-2,

and

y(π)=0,πΠ{π0,π1,,πn2}.y(\pi)=0,\quad \forall \pi\in \Pi-\{\pi_0,\pi_1,\ldots,\pi_{n-2}\}.

Answer the following questions.

(i) Give a description of Kruskal's algorithm to find a minimum spanning tree of NN.

(ii) Prove that each edge eEe\in E admits an index

j(e){0,1,,n1}j(e)\in \{0,1,\ldots,n-1\}

which satisfies the conditions:

eE(πi),ij(e),e\in E(\pi_i),\quad \forall i\le j(e),

and

eE(πi),i>j(e).e\notin E(\pi_i),\quad \forall i>j(e).

(iii) Prove that

w(ai)w(e),eE(πi1)w(a_i)\le w(e),\quad \forall e\in E(\pi_{i-1})

holds for each i=1,2,,n1i=1,2,\ldots,n-1.

(iv) Prove that

j=0,1,,i1y(πj)=w(ai)\sum_{j=0,1,\ldots,i-1}y(\pi_j)=w(a_i)

holds for each i=1,2,,n1i=1,2,\ldots,n-1.

(v) Prove that

πΠ:eE(π)y(π)w(e)\sum_{\pi\in\Pi:e\in E(\pi)}y(\pi)\le w(e)

holds for each edge eEe\in E.

Kai

(i)

Kruskal's algorithm sorts all edges in non-decreasing order of their weights. Starting from the empty forest T0=(V,)T_0=(V,\emptyset), 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 n1n-1 edges have been added. The resulting graph is a minimum spanning tree.

(ii)

Let e=uvEe=uv\in E be any edge.

For each i=0,1,,n1i=0,1,\ldots,n-1, the partition πi\pi_i is the partition of VV into the connected components of the forest TiT_i.

Therefore,

eE(πi)e\in E(\pi_i)

if and only if the two endpoints uu and vv of ee belong to different connected components of TiT_i.

As ii increases, the forest TiT_i gains more edges. Hence connected components can only merge; they never split. Therefore, once uu and vv 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 eE(πi)e\in E(\pi_i) has the following form:

true, true, true, , true, false, false, , false.\text{true, true, true, }\ldots,\text{ true, false, false, }\ldots,\text{ false}.

Since T0=(V,)T_0=(V,\emptyset), every edge has endpoints in different connected components of T0T_0. Hence

eE(π0).e\in E(\pi_0).

Since Tn1T_{n-1} is a spanning tree, all vertices are in one connected component. Hence

eE(πn1).e\notin E(\pi_{n-1}).

Therefore the following maximum

j(e):=max{i:eE(πi)}.j(e):=\max\{i:e\in E(\pi_i)\}.

is well-defined and satisfies

0j(e)n10 \le j(e) \le n-1

Then, by the monotonicity of connected components, we have

eE(πi),ij(e),e\in E(\pi_i),\quad \forall i\le j(e),
eE(πi),i>j(e).e\notin E(\pi_i),\quad \forall i>j(e).

(iii)

Fix i{1,2,,n1}i\in\{1,2,\ldots,n-1\}.

At the beginning of the ii-th step of Kruskal's algorithm, the current forest is

Ti1=(V,{a1,a2,,ai1}).T_{i-1}=(V,\{a_1,a_2,\ldots,a_{i-1}\}).

Let eE(πi1)e\in E(\pi_{i-1}). Then the endpoints of ee belong to two distinct connected components of Ti1T_{i-1}. Hence adding ee to Ti1T_{i-1} would not create a cycle.

Thus ee is an admissible edge at the ii-th step of Kruskal's algorithm.

By Kruskal's rule, aia_i is chosen as a minimum-weight admissible edge at this step. Therefore,

w(ai)w(e).w(a_i)\le w(e).

Since eE(πi1)e\in E(\pi_{i-1}) was arbitrary, we have

w(ai)w(e),eE(πi1).w(a_i)\le w(e),\quad \forall e\in E(\pi_{i-1}).

(iv)

When i=1i=1, we have

j=00y(πj)=y(π0)=w(a1).\sum_{j=0}^{0}y(\pi_j)=y(\pi_0)=w(a_1).

So the claim holds.

Now suppose i2i\ge 2. By the definition of yy,

y(π0)=w(a1),y(\pi_0)=w(a_1),

and

y(πj)=w(aj+1)w(aj),j=1,2,,i1.y(\pi_j)=w(a_{j+1})-w(a_j),\quad j=1,2,\ldots,i-1.

Hence

j=0i1y(πj)=y(π0)+j=1i1y(πj)=w(a1)+j=1i1{w(aj+1)w(aj)}=w(a1)+{w(a2)w(a1)}+{w(a3)w(a2)}++{w(ai)w(ai1)}=w(ai).\begin{aligned} \sum_{j=0}^{i-1}y(\pi_j) &=y(\pi_0)+\sum_{j=1}^{i-1}y(\pi_j)\\ &=w(a_1)+\sum_{j=1}^{i-1}\{w(a_{j+1})-w(a_j)\}\\ &=w(a_1)+\{w(a_2)-w(a_1)\}\\ &\quad+\{w(a_3)-w(a_2)\}+\cdots+\{w(a_i)-w(a_{i-1})\}\\ &=w(a_i). \end{aligned}

(v)

Let eEe\in E be arbitrary.

By part (ii), there exists an index j(e)j(e) such that

eE(πi),ij(e),e\in E(\pi_i),\quad \forall i\le j(e),
eE(πi),i>j(e).e\notin E(\pi_i),\quad \forall i>j(e).

Moreover, by the definition of yy, the only partitions that may have nonzero yy-values are

π0,π1,,πn2.\pi_0,\pi_1,\ldots,\pi_{n-2}.

Therefore,

πΠ:eE(π)y(π)=i=0j(e)y(πi).\sum_{\pi\in\Pi:e\in E(\pi)}y(\pi) = \sum_{i=0}^{j(e)}y(\pi_i).

By part (iv), taking i=j(e)+1i=j(e)+1, we obtain

i=0j(e)y(πi)=w(aj(e)+1).\sum_{i=0}^{j(e)}y(\pi_i)=w(a_{j(e)+1}).

Since eE(πj(e))e\in E(\pi_{j(e)}), part (iii), applied with i=j(e)+1i=j(e)+1, gives

w(aj(e)+1)w(e).w(a_{j(e)+1})\le w(e).

Therefore,

πΠ:eE(π)y(π)=w(aj(e)+1)w(e).\sum_{\pi\in\Pi:e\in E(\pi)}y(\pi) = w(a_{j(e)+1}) \le w(e).

Thus,

πΠ:eE(π)y(π)w(e)\sum_{\pi\in\Pi:e\in E(\pi)}y(\pi)\le w(e)

holds for every edge eEe\in E.