跳到主要内容

京都大学 情報学研究科 数理工学専攻 2018年8月実施 アルゴリズム基礎

Author

祭音Myyura

Description

Let G=(V,E)G=(V,E) be a connected simple undirected graph with a set VV of n2n\ge 2 vertices and a set EE of edges, let T=(V,F)T=(V,F) be a spanning tree of GG rooted at a vertex sVs\in V, and let :V{1,2,,n}\ell:V\to \{1,2,\ldots,n\} be a numbering on VV, where we assume that the following conditions (a) and (b) hold.

(a) For each edge uvEuv\in E, vertex uu is either an ancestor or a descendant of vv in TT.

(b) For each vertex vV{s}v\in V\setminus\{s\} and the parent uu of vv in TT, (u)<(v)\ell(u)<\ell(v).

Let LL denote the set of leaves in TT. For each vertex vVv\in V, let N(v)N(v) denote the set of neighbors of vv in GG, and let D(v)D(v) denote the set consisting of vertex vv and the descendants of vv in TT. Define a function

lowpt:V(L{s}){1,2,,n}\operatorname{lowpt}: V\setminus (L\cup\{s\}) \to \{1,2,\ldots,n\}

such that

lowpt(v)=min{(y)yxD(v)N(x)}, vV(L{s}).\operatorname{lowpt}(v) = \min\left\{ \ell(y)\mid y\in \bigcup_{x\in D(v)}N(x) \right\}, \ v\in V\setminus (L\cup\{s\}).

Answer the following questions.

(i) Prove that no leaf uLu\in L is a cut-vertex in GG.

(ii) Prove that a necessary and sufficient condition for the root ss to be a cut-vertex in GG is that ss has at least two children in TT.

(iii) Prove that a necessary and sufficient condition for a vertex uV(L{s})u\in V\setminus(L\cup\{s\}) to be a cut-vertex in GG is that uu has a child vv in TT such that

lowpt(v)(u).\operatorname{lowpt}(v)\ge \ell(u).

Kai

(1)

Let uLu \in L, i.e., uu is a leaf of TT.

Sinc TT is a spanning tree of GG, TT is connected.

After removing the vertex uu from TT, the remaining graph TuT - u is still connected and spans all the vertices V{u}V \setminus \{u\}.

Note that TuT - u is a subgraph of GuG - u, hence GuG - u is connected, which implies that uu is not a cut-vertex.

(2)

(Necessity) Assume that ss is a cut-vertex.

If ss has only one child in TT, i.e., ss is a leaf vertex of TT, then by the same argument of (1), we know that GsG - s is still connected.

This contradicts the assumption taht ss is a cut-vertex.

(Sufficiency) Assume that ss has at least two children in TT. Let two of them be v1v_1 and v2v_2.

Consider the two subtrees D(v1)D(v_1) and D(v2)D(v_2). Since v1v_1 and v2v_2 are different children of the root ss, the vertices in D(v1)D(v_1) and D(v2)D(v_2) are not in an ancestor-descendant relationship with each other.

By condition (a), there cannot be any edge between a vertex in D(v1)D(v_1) and a vertex in D(v2)D(v_2).

After deleting ss, the two subtrees D(v1)D(v_1) and D(v2)D(v_2) cannot be connected to each other. Hence GsG - s is disconnected, which implies that ss is a cut-vertex.

(3)

(Necessity) Assume that uu is a cut-vertex.

We prove that there must exist a child vv of uu such that lowpt(v)l(u)\text{lowpt}(v) \ge l(u) by contradiction.

Suppose that every child vv of uu satisfies lowpt(v)<l(u)\text{lowpt}(v) < l(u). Then for each child vv of uu, there exist some vertex xD(v)x \in D(v) and some neighbor yN(x)y \in N(x) such that l(y)<l(u)l(y) < l(u).

Since xD(v)x \in D(v), the vertex xx is a descendant of uu. By condition (b), every descendant of uu has numbering greater than l(u)l(u).

Therefore, the vertex yy of l(y)<l(u)l(y) < l(u) is not in D(v)D(v).

By condition (a), since xx is a descendant of uu, and y has numbering smaller than l(u)l(u), the vertex yy must be a proper ancestor of uu.

Thus every child subtree D(v)D(v) of uu has an edge to some proper ancestor of uu, i.e., after deleting uu, every child subtree D(v)D(v) can still connect to the part above uu through an edge to a proper ancestor of uu.

Therefore, GuG - u remains connected, which contradicts the assumption that uu is a cut-vertex.

(Sufficiency) Assume that uu has a child vv satisfying lowpt(v)l(u)\text{lowpt}(v) \ge l(u).

Note that vv is a neighbor of uu, i.e., uvEuv \in E, when computing lowpt(v)\text{lowpt}(v), the vertex uu can be reached from vv by one graph edge.

Hence lowpt(v)l(u)\text{lowpt}(v) \le l(u), together with the assumption we have

lowpt(v)=l(u)\text{lowpt}(v) = l(u)

This means that the subtree D(v)D(v) cannot reach any proper ancestor of uu through a graph edge. The smallest numbered vertex reachable from D(v)D(v) is exactly uu.

Equivalently, D(v)D(v) has no edge to any proper ancestor of uu.

After deleting uu, the subtree D(v)D(v) is disconnected from the part of the graph above uu. Therefore GuG - u is disconnected.

Hence uu is a cut-vertex.