平面性判定(planarity testing)とは、グラフが平面グラフであるかを判定する問題であり、証拠として描画か、$K_5$ または $K_{3,3}$ の細分を出力することが望ましい。頂点数 $n\ge3$ で辺数が $3n-6$ を超えれば平面グラフでなく、1 点以下の分離では両側に、2-連結グラフの 2 点 $x,y$ の分離では辺 $xy$ を加えた両側に判定が帰着する。平面グラフの描画では、2-連結な部分グラフからはみ出す部分(ブリッジ)は付着点をすべて境界にもつ面に入り、同じ面のブリッジは重ならないので、閉路のブリッジの重なりグラフが二部グラフでなければ平面グラフでない。この考えに立つ Demoucron–Malgrange–Pertuiset の算法があり、Hopcroft–Tarjan や Boyer–Myrvold による線形時間の算法が知られている。
前提知識: 平面グラフ, Kuratowskiの定理, 連結度(グラフ)
与えられたグラフが平面に辺を交差させずに描けるかどうかを判定する問題を平面性判定という。電子回路の配線やグラフの可視化では、まず平面に描けるかを知り、描けるなら実際の描き方を求めたい。Kuratowskiの定理 は、平面に描けないことの証拠が $K_5$ か $K_{3,3}$ の細分という有限の形で必ず見つかることを保証するが、それだけでは効率のよい判定の手順は得られない。
この記事では、判定を小さな部分に分ける帰着(thm-pt-reduction)と、部分グラフの描画からはみ出す部分(ブリッジ)がどの面に入れるかについての必要条件(thm-pt-bridges)を証明する。後者から、閉路に対するブリッジの重なり方で非平面性を示す方法が得られる。これらを使う Demoucron–Malgrange–Pertuiset の算法を紹介し、頂点数に比例する時間で判定できること(Hopcroft–Tarjan、Boyer–Myrvold)を出典とともに述べる。算法の正しさと線形時間の主張は、この記事では証明しない。
この記事のグラフは有限な単純グラフとし、頂点数を $n$、辺数を $m$ とする。平面への描画・面・平面グラフ図は Kuratowskiの定理 の記事の定義「平面への描画」に従う(辺は折れ線の弧で描く)。
グラフ $G$ を入力として、$G$ が平面グラフであるかを判定する問題を 平面性判定(planarity testing)という。平面グラフなら描画(またはそれを決める組合せ的なデータ)を、平面グラフでないなら $K_5$ または $K_{3,3}$ の細分である部分グラフ(Kuratowski 部分グラフ)を、判定の証拠として出力することが望ましい。
Kuratowskiの定理 の記事の定理「Kuratowski–Wagner の定理」により、平面グラフでないグラフは必ず Kuratowski 部分グラフを含む。描画も Kuratowski 部分グラフも、受け取った側が答えを確かめられる証拠である(BMy04 p. 242)。
判定の最初の段階として、辺の多すぎるグラフをすぐに除ける。
$n\ge3$ で $m>3n-6$ なら $G$ は平面グラフでない。したがって、平面性判定では $m\le3n-6$ の場合だけを調べればよく、そのとき $m$ は $n$ の定数倍以下である。
平面グラフ の記事の系「単純平面グラフの辺数の上界」の対偶である。$\square$
逆は成り立たない。$K_{3,3}$ は $m=9\le12=3n-6$ を満たすが平面グラフでない(平面グラフ の記事の反例の表)。
Kuratowskiの定理 の記事の「辺を加えられるだけ加えたグラフ」の節と同じく、グラフ $G$ の頂点集合の組 $(V_1,V_2)$ で、$V_1\cup V_2=V(G)$、$A:=V_1\setminus V_2$ と $B:=V_2\setminus V_1$ がともに空でなく、$A$ と $B$ を結ぶ辺がないものを $G$ の分離といい、$S:=V_1\cap V_2$ を分離集合という。$G[V_i]$ は $V_i$ が誘導する部分グラフであり、$G$ の辺はどれも $G[V_1]$ か $G[V_2]$ に属する。$x,y\in V(G)$ について、$G+xy$ は $xy$ が辺でなければ加えたグラフ、辺ならば $G$ 自身を表す。
$(V_1,V_2)$ を $G$ の分離、$S=V_1\cap V_2$ とする。
平面グラフなら部分も平面.1 では $G[V_i]$ は $G$ の部分グラフなので平面グラフである(Kuratowskiの定理 の記事の命題「部分グラフと細分」の 1)。2 で $G[V_2]+xy$ を考える($G[V_1]+xy$ も同様)。$xy\in E(G)$ なら部分グラフである。そうでないとき、$G-S$ の連結成分で $A$ に含まれるもの $D$ をとる($A$ と $B$ を結ぶ辺がないので、各成分は $A$ か $B$ に含まれる)。$x$ が $D$ に隣接頂点をもたなければ、$G-y$ では $D$ と $B$ が結ばれず、$G$ の 2-連結性に反する。よって $x$ も $y$ も $D$ に隣接頂点をもち、内部の頂点が $D$ に含まれる $x$-$y$ 道 $P$ がある。$G[V_2]\cup P$ は $G[V_2]+xy$ の辺 $xy$ を $P$ に置き換えた細分で、$G$ の部分グラフである。同じ命題の 1 と 2 により $G[V_2]+xy$ は平面グラフである。
部分が平面なら全体も平面.対偶を示す。$G$ が平面グラフでないとすると、Kuratowskiの定理 の記事の定理「Kuratowski–Wagner の定理」により、$X\in\{K_5,K_{3,3}\}$ の細分 $K\subset G$ がある。同じ記事の補題「出口の数え上げ」を、加える辺の集合 $F=\emptyset$ として使う。出口の個数は $\lvert S\rvert\le2<3$ なので、その 1 により $K$ の分岐点は $A$ と $B$ の両方にはない。分岐点は $5$ 個以上で $\lvert S\rvert\le2$ なので、対称性から分岐点は $B$ にないとしてよい。その 2 により、$K$ の $B$ 区間の両端は $S$ の相異なる 2 頂点である($F=\emptyset$ だから)。
1 を繰り返し使うと、平面性の判定は連結成分ごと、さらに切断点で分けた 2-連結な部分(ブロック)ごとの判定に帰着する(ブロックについては Die25 §3.1、p. 64)。1 は Die25 Theorem 4.5.1 の証明(p. 112)で Kuratowski の定理から従うと述べられている事実であり、BM76 p. 164 も同じ帰着から算法を始めている。2 を繰り返すと、さらに 3-連結なグラフと三角形の判定に帰着する。実際、各段の $G[V_i]+xy$ は再び 2-連結である。$A,B$ はともに空でないので、$G[V_i]+xy$ は 3 頂点以上で、$G$ より頂点が少ない。$v\in V_i$ を除いたとき、$V_i\setminus\{v\}$ の頂点から $G-v$ の中で $S\setminus\{v\}$ へ向かう道を、$S$ に初めて着くところで切ると、$A$ と $B$ を結ぶ辺がないので $G[V_i]-v$ の中の道になる。$S\setminus\{v\}$ は 1 頂点か、辺 $xy$ で結ばれた 2 頂点なので、$G[V_i]+xy-v$ は連結である。2 の辺 $xy$(仮想辺)は省けない(ex-pt-counterexamples)。3-連結な場合については、Kuratowskiの定理 の記事の補題「3-連結グラフの場合」の証明が、縮約して得た描画に頂点を描き戻すか、描き戻せなければ Kuratowski 部分グラフを見つける手順になっている。
部分グラフ $H\subset G$ に対し、次のどちらかを $G$ における $H$ のブリッジ(bridge)という。
以下では Kuratowskiの定理 の記事の (F1)–(F4) を用いる。
$G$ を平面グラフ、$\tilde G$ をその描画、$H\subset G$ を 2-連結な部分グラフとし、$\tilde H$ を $\tilde G$ を $H$ に制限した描画とする。
1.$\beta$ が弦ならその点のうち $H$ に属さないものは弦の弧の内部であり、そうでなければ $D$ の点と、$D$ と $H$ を結ぶ辺の弧の内部の和集合である。どちらも連結で、描画の定義により $\tilde H$ と交わらないので、$\tilde H$ のただ 1 つの面 $f$ に含まれる。付着点 $a$ は、内部が $f$ に含まれる辺の端点なので $f$ の閉包に属し、$a\in\tilde H$ なので $f$ には属さない。よって $a$ は $f$ の境界、すなわち $C_f$ の点であり、頂点なので $C_f$ の頂点である。
2 の準備.$f$ は $\tilde H$ の面で境界は $C_f\subset H$ なので、(F2) により $f$ は $C_f$ の面、すなわち (F1) により $\mathbb R^2\setminus C_f$ の 2 つの領域の一方である。他方を $f'$ とする。$C_f$ を含み、$C_f$ に属さない点がすべて $f$ に含まれる部分グラフ $K\subset G$ を考えると、$f'$ は連結で $K$ と交わらないので $K$ のある面 $g$ に含まれる。(F2) により $g$ は $C_f$ のある面に含まれ、$g\supset f'$ なのでその面は $f'$ である。よって $g=f'$ であり、$f'$ は $K$ の面である。よって (F4) により、$f'$ の中に新しい頂点 $z$ を置き、$C_f$ の好きな頂点と $f'$ の中を通る辺で結ぶことができる。$\beta_i$ の中の道で、両端が付着点で内部が $\beta_i$ の $H$ に属さない部分にあるものは、内部が $f$ に含まれる(1)。
2 の (b).$a_1,b_1,a_2,b_2$ が $C_f$ の上にこの巡回順に並ぶとする。$\beta_1$ の中の $a_1$-$a_2$ 道 $P_1$(弦ならその辺、そうでなければ $D$ を通る道)と、$\beta_2$ の中の $b_1$-$b_2$ 道 $P_2$ をとる。$K:=C_f\cup P_1\cup P_2$ に上のように $z$ を加え、$a_1,b_1,a_2,b_2$ と結ぶ。$a_1,b_1,a_2,b_2,z$ を分岐点とし、$C_f$ を 4 点で切った 4 本の弧、$P_1$、$P_2$、$z$ からの 4 本の辺を道とすると、5 点のどの 2 点も結ばれ、道は端点以外を共有しない($P_1,P_2$ の内部は相異なるブリッジの $H$ の外の部分にある)。これは平面に描かれた $K_5$ の細分であり、Kuratowskiの定理 の記事の命題「部分グラフと細分」の 3 に反する。
2 の (a).$\beta_1,\beta_2$ が付着点 $x,y,w$ を共有するとする。弦の付着点は 2 個なので、どちらも成分 $D_i$ をもつ。$x,y,w$ の $D_i$ の中の隣接頂点 $x',y',w'$ をとり(一致してもよい)、$D_i$ の全域木 $T_i$ の中で $x'$ と $y'$ を結ぶ道の頂点のうち $w'$ に最も近いものを $u_i$ とする。$T_i$ の中の $u_i$ から $x',y',w'$ への道は $u_i$ 以外を共有しないので、辺 $x'x,y'y,w'w$ を付け加えると、$u_i$ から $x,y,w$ への 3 本の道で $u_i$ 以外を共有せず、内部が $D_i$ にあるものが得られる。$K$ を $C_f$ とこの 6 本の道の和とし、$z$ を加えて $x,y,w$ と結ぶ。$\{u_1,u_2,z\}$ と $\{x,y,w\}$ を分岐点とし、9 本の道で結ぶと、平面に描かれた $K_{3,3}$ の細分が得られ($D_1,D_2$ は交わらない)、やはり矛盾する。$\square$
1 は BM76 Theorem 9.14(p. 164)である。2 は、同じ面に入るブリッジどうしが互いに邪魔をしないことを、重なれば $K_5$ か $K_{3,3}$ が平面に描けてしまうという形で示している。$H$ が閉路のとき、面は内側と外側の 2 つだけなので、次が従う。
$G$ を平面グラフ、$C$ を $G$ の閉路とする。$C$ のブリッジを頂点とし、$C$ に関して重なるブリッジどうしを辺で結んだグラフ(重なりグラフ)は二部グラフである。
$G$ の描画を 1 つとり、$\tilde C$ をその $C$ への制限とする。閉路は 2-連結なので thm-pt-bridges が使える。$\tilde C$ の面は (F1) により 2 つで、1 により各ブリッジはそのどちらか一方に含まれる。含まれる面でブリッジを 2 組に分けると、2 により同じ組のブリッジは重ならない。$\square$
重なりグラフが二部グラフであることは平面性の必要条件にすぎない。たとえば $K_5$ の三角形 $C=123$ では、残りの 2 頂点 $4,5$ とそこから出る 7 本の辺が 1 つのブリッジをなし、重なりグラフは 1 頂点で二部グラフだが、$K_5$ は平面グラフでない。
thm-pt-reduction の 1 により、2-連結なグラフを判定できれば十分である。次の算法は Demoucron・Malgrange・Pertuiset(1964 年)による(BM76 §9.8、pp. 163–169)。$G$ を頂点 3 個以上の 2-連結なグラフとする。
ex-pt-overlap の 2 の記号を使う。$G_1=C=a_1b_1a_2b_2a_3b_3$ を描くと面は内側と外側の 2 つで、3 本の弦はどれも両方の面に描ける。描ける面が 1 つのブリッジはないので、弦 $a_1b_2$ を内側に描く。内側は、閉路 $a_1b_1a_2b_2$ と $a_1b_2a_3b_3$ で囲まれた 2 つの面に分かれる。弦 $a_2b_3$ の両端をともに境界にもつ面は外側だけなので、外側に描く。外側は閉路 $a_2b_2a_3b_3$ と $a_2b_3a_1b_1$ で囲まれた 2 つの面に分かれる。残る弦 $a_3b_1$ について、4 つの面の境界はそれぞれ $a_3$ と $b_1$ の一方しか含まないので $F=\emptyset$ となり、算法は 3 で止まる。答え「平面グラフでない」は ex-pt-overlap の 2 と一致する。
BM76 Figure 9.29(p. 165)は平面グラフでの実行例、Figure 9.30(p. 166)は平面グラフでない場合の実行例である。
平面性は頂点数 $n$ に比例する時間で判定できる。最初の線形時間の算法は Hopcroft と Tarjan(1974 年)による(BMy04 p. 243)。2-連結なグラフの閉路を描き、残りを閉路の内側か外側に加える道に分けていく方法で、上の算法と同じく道を加えていく発想に立つ。Boyer と Myrvold は、深さ優先探索 の木に沿って辺を 1 本ずつ加えていく算法を与え、$n$ 頂点のグラフの平面性を $O(n)$ 時間で判定できること(BMy04 Theorem 1、p. 259)、平面グラフなら各頂点のまわりの辺の時計回りの順として描画を $O(n)$ 時間で出力できること(Corollary 2、p. 260)を示した。平面グラフでない場合には Kuratowski 部分グラフを取り出す(§8、p. 264 以降)。辺数ではなく頂点数で時間を測れるのは、prop-pt-edge-filter により辺を頂点数の定数倍に制限できるからである(同 p. 242)。これらの主張は、この記事では証明しない。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| thm-pt-reduction の 2 の仮想辺 $xy$ | $K_5$ の 1 辺 $xy$ を道 $xwy$ に替えたグラフ | 「$G[V_1]$ と $G[V_2]$ が平面なら $G$ も平面」 |
| thm-pt-reduction の 2 の $G$ の 2-連結性 | $K_5$ から辺 $xy$ を除き、$x$ だけと隣接する頂点 $w$ を加えたグラフ | 「$G$ が平面なら $G[V_1]+xy$ も平面」 |
| 重なりの (b) の「4 頂点が相異なる」 | 6-閉路の内側に描いた弦 $v_1v_3$ と $v_1v_4$ | thm-pt-bridges の 2 |
| prop-pt-edge-filter の逆向き | $K_{3,3}$ | 辺数の上界から平面性を結論すること |
1 行目:$K_5$ の頂点を $x,y,p,q,r$ とし、辺 $xy$ を新しい頂点 $w$ を通る道 $xwy$ に替えたグラフ $G$ は $K_5$ の細分で、2-連結で平面グラフでない。$V_1=\{x,y,p,q,r\}$、$V_2=\{x,y,w\}$ は分離集合 $\{x,y\}$ の分離である。$G[V_1]=K_5-xy$ は、三角形 $pqr$ の内側に $x$、外側に $y$ を置いてそれぞれ $p,q,r$ と結べば平面に描け、$G[V_2]$ は道である。仮想辺を加えた $G[V_1]+xy=K_5$ は平面グラフでなく、定理と矛盾しない。
2 行目:$K_5-xy$ に $x$ だけと隣接する頂点 $w$ を加えたグラフ $G$ は、1 行目と同じ描画に $w$ を描き足せるので平面グラフである。同じ $V_1,V_2$ は分離だが、$G[V_1]+xy=K_5$ は平面グラフでない。$x$ を除くと $w$ が孤立するので、$G$ は 2-連結でない。証明で使った、$B$ 側を通る $x$-$y$ 道がない。
3 行目:6-閉路 $v_1\cdots v_6$ の内側に弦 $v_1v_3$ と $v_1v_4$ を描くと交わらない。4 頂点が相異なるという条件を外すと、$a_1=b_1=v_1$、$a_2=v_3$、$b_2=v_4$ が巡回順に並ぶので 2 つの弦は「重なる」ことになり、同じ面に入っていることと矛盾する。
4 行目:平面グラフ の記事の反例の表の 4 行目である。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する