5-3 平面双対

$$\newcommand{abs}[1]{\left\lvert #1 \right\rvert} \newcommand{cG}[0]{\mathcal{G}} \newcommand{diam}[0]{\operatorname{Diam}} \newcommand{la}[0]{\leftarrow} \newcommand{lt}[0]{\left} \newcommand{Mod}[1]{\ \left(\mathrm{mod}\ #1\right)} \newcommand{mR}[0]{\mathbb{R}} \newcommand{p}[0]{\prime} \newcommand{ra}[0]{\rightarrow} \newcommand{rad}[0]{\operatorname{rad}} \newcommand{rt}[0]{\right} $$

前提知識:平面グラフ

地図の国と国境をgraphにする

平面に描かれたgraphでは、頂点と辺だけでなく「面」も見えます。そこで各面を一つの頂点に置き換え、隣り合う面を元の辺の位置で結んでみます。すると、元のgraphで輪になっていた辺は双対側で内外を分けるcutになり、元のbridgeは双対側のloopになります。
この交換は単なる絵遊びではありません。全域木、最小全域木、彩色、flowとcutを別の側から読み直せます。本章では、絵から受ける印象を有限graphの命題へ落とし、必要な箇所を証明します。

plane graphからdual graphを作る

planar graphは「交差なしに描けるgraph」、plane graphは「交差のない描き方まで固定したgraph」でした。dualは描き方に依存するので、出発点はplane graphです。

plane dual

連結plane graph $G$ の面集合を $\mathcal F(G)$ とする。各面 $F$ の内部に一点 $F^*$ を置き、これを平面双対|dual graph $G^*$ の頂点とする。
$G$ の各辺 $e$ の両側にある面を $F_1,F_2$ とする。$e$ と一度だけ交差し、他の辺とは交差しないarcで $F_1^*$ と $F_2^*$ を結び、そのdual edgeを $e^*$ と書く。$F_1=F_2$ なら $e^*$ はloopである。

dualではloopと多重辺を許します。これを禁止すると、bridgeやcycleの情報が消えてしまうからです。辺の対応
$$ e\longleftrightarrow e^* $$
は一対一です。

cycleとtreeのdual

平面に通常通り描いたcycle $C_n$ には内面と外面の二面があります。従って $C_n^*$ は二頂点を $n$ 本の平行辺で結ぶmultigraphです。
一方、plane treeには外面しかありません。従ってtreeのdualは一頂点からなり、元の各辺に対応するloopをもちます。

この二例だけでも、cycleとbridgeが反対側でcutとloopへ変わりそうだと分かります。

dualも連結である

plane dualの連結性

連結plane graph $G$ のdual $G^*$ は連結である。

二つの面 $F,H$ の内部に点 $x,y$ を取ります。平面上で $x$ から $y$ へ曲線を引き、頂点を通らず、各辺と横断的に有限回だけ交わるよう少しずらします。
曲線を $x$ からたどると、一つの辺を横切るたびに現在の面から隣の面へ移ります。横切ったprimal edgeに対応するdual edgeを順に並べれば、$F^*$ から $H^*$ へのdual walkが得られます。walkから閉じた回り道を消せばpathが得られるので、$G^*$ は連結です。□

ここで使った「曲線を頂点から少しずらせる」という操作は、plane graphが有限個の点とarcからなることによります。

dualの頂点数・辺数・面数

連結plane graph $G$ に対して
$$ |V(G^*)|=|\mathcal F(G)|,\qquad |E(G^*)|=|E(G)|,\qquad |\mathcal F(G^*)|=|V(G)|. $$
さらに、自然な埋め込みのもとで
$$ (G^*)^*\cong G $$
である。

最初の二等式は構成そのものです。各primal頂点 $v$ の十分小さい円板を取ると、その境界を横切るdual edgeは $v$ に接続するprimal edgeの間を通り、円板の内部はdual graphの一つの面になります。異なるprimal頂点には互いに交わらない円板を取れます。
逆にdual graphの面から一点を選び、dual edgeを越えずに動ける領域を調べると、領域はちょうど一つのprimal頂点の周囲です。従ってdualの面とprimalの頂点が一対一に対応します。
dualのdualでは、この面に対応する頂点を元の $v$ と同一視できます。また $e^*$ を横切るdual-dual edgeは元の $e$ と同じ両端を結びます。よって埋め込みを保つ自然な同型 $(G^*)^*\cong G$ が得られます。□

Euler公式をdualへ適用すると
$$ |V(G^*)|-|E(G^*)|+|\mathcal F(G^*)| =|\mathcal F(G)|-|E(G)|+|V(G)|=2 $$
となります。同じ公式が頂点と面を入れ替えて現れました。

bridgeとloopが入れ替わる

辺の両側が同じ面となる条件

連結plane graph $G$ の辺 $e$ について、次は同値である。

  1. $e$ はbridgeである。
  2. $e$ の両側は同じ面である。
  3. $e^*$ は $G^*$ のloopである。

2と3の同値はdualの定義です。
$e$ がbridgeでないなら、「切断点・橋・ブロック」のbridge特徴づけにより $e$ を含むcycle $C$ があります。polygonal Jordan曲線定理により、plane graph上のcycleは平面を内側と外側に分けます。$e$ の二側はそれぞれ異なる側にあるので、異なる面に属します。従って2ではありません。
逆に $e$ がbridgeなら、$G-e$ の二成分を $A,B$ とします。$e$ の近くで一方の側から他方の側へ回り込むとき、$A$ と $B$ を結ぶ別の辺はありません。したがって $e$ の両側の局所領域は外側を回る同じ面の中でつながり、両側は同じ面です。よって1なら2です。□

dualのdualを取れば、同じ命題から直ちに逆向きの交換も得られます。

loopとbridgeの双対性

$e$ が $G$ のloopであることと、$e^*$ が $G^*$ のbridgeであることは同値である。

$G^*$ に前補題を適用すると、$e^*$ がbridgeであることは $(e^*)^*$ がloopであることと同値です。$(G^*)^*\cong G$ のもとで $(e^*)^*$ は $e$ に対応します。□

cycleは最小cutへ変わる

cut $\delta(S)$ が空でなく、真に小さい非空cutを含まないとき、これをbondと呼びます。連結graphでは、bondは「削除すると二つの連結部分へ分かれる極小の辺集合」です。

bond

連結graph $H$ の辺集合 $B$ がボンド (グラフ理論)|bondであるとは、ある非自明な頂点分割
$$ V(H)=S\sqcup T $$
に対して $B=\delta(S)$ であり、$B$ のどの真部分集合もcutでないことをいう。

cycle--bond duality

連結plane graph $G$ の辺集合 $C$ に対して、次は同値である。

  1. $C$ は $G$ のcycleの辺集合である。
  2. $C^*=\{e^*:e\in C\}$ は $G^*$ のbondである。
    従って、$G$ のbondは $G^*$ のcycleへ対応する。

$C$ をplane graph上のcycleとします。対応する単純閉曲線により、面は内側の面集合 $\mathcal I$ と外側の面集合 $\mathcal O$ に分かれます。内外を結ぶdual edgeは、閉曲線を横切る $e^*$、すなわち $e\in C$ に対応するものだけです。従って
$$ C^*=\delta_{G^*}(\mathcal I). $$
cutとして削除する辺集合から一つの $e^*$ だけを除けば、その残した $e^*$ を通って内外を行き来できます。内側だけ、外側だけでは前節と同じ曲線横断の議論によりdual walkを作れるので、それぞれの側は連結です。従って $C^*$ のどの辺も分離に必要であり、$C^*$ はbondです。
逆に $C^*$ が $G^*$ のbondとします。bondはとくにdual cutです。各primal頂点の周囲で、bondが分ける二つのdual頂点群を巡回順に読むと、群が切り替わる回数は偶数です。従って対応するprimal辺集合 $C$ は全頂点を偶次数にする非空部分graphを作ります。
この部分graphで同じ辺を二度使わないmaximal trailを取ると、偶数次数性により終点は始点と一致し、閉trailになります。その中の最初の反復区間から、あるcycle $C_0\subseteq C$ が得られます。すでに証明した向きから $C_0^*$ は $G^*$ のbondであり、
$$ C_0^*\subseteq C^* $$
です。$C^*$ はcutとして極小なので $C_0^*=C^*$、従って $C_0=C$ です。よって $C$ 自身がcycleです。
最後の主張は、証明済みの同値を $G^*$ に適用し、$(G^*)^*\cong G$ と同一視すれば得られます。□

「cycleならcut」というだけでなく、「一本でも欠けばcutでなくなる」という極小性まで対応します。これが、cycle spaceとcut spaceが平面双対で交換される現象の組合せ論的な姿です。

面集合の境界にはcycleが隠れている

全域木の双対性を証明するため、もう一つ初等的な補題を用意します。

dual cutのprimal辺は偶次数部分graphを作る

$G^*$ の頂点集合、すなわち $G$ の面集合の非自明な部分集合を $\mathcal A$ とする。dual cut $\delta_{G^*}(\mathcal A)$ に対応するprimal辺全体を $D$ とする。このとき部分graph $(V(G),D)$ の各頂点の次数は偶数である。

primal頂点 $v$ の周囲を小さく一周し、$v$ に接続する辺の間に現れる面を巡回順に読みます。面が $\mathcal A$ に属するか属さないかを0と1で記録すると、$D$ の辺は0から1または1から0へ切り替わる場所にちょうど対応します。
円を一周して出発点へ戻るので、0と1の切替回数は偶数です。これは $v$ における $D$ の次数が偶数であることを意味します。全ての $v$ で同じなので結論を得ます。□

非空な有限偶次数graphはcycleを含む

辺を少なくとも一本もつ有限graphで全頂点の次数が偶数なら、そのgraphはcycleを含む。

辺をもつ頂点から出発し、同じ辺を二度使わないtrailを、延長できなくなるまで伸ばします。有限graphなのでこのmaximal trailは有限です。
終点が始点と異なるとします。終点ではtrailに使われた接続辺の本数が奇数です。しかし終点の全次数は偶数なので、まだ使っていない接続辺が少なくとも一本あり、trailを延長できて矛盾します。従ってtrailは閉じています。閉trailの頂点列で最初に生じる反復区間を取ればcycleが得られます。loopがあれば、それ自体を長さ1のcycleと数えます。□

全域木の補辺がdualの全域木になる

spanning-tree duality

連結plane graph $G$ と辺集合 $T\subseteq E(G)$ に対して
$$ T\text{ が }G\text{ のspanning tree} \quad\Longleftrightarrow\quad T^\perp=\{e^*:e\notin T\}\text{ が }G^*\text{ のspanning tree}. $$

まず $T$ を $G$ のspanning treeとします。$n=|V(G)|,m=|E(G)|,f=|\mathcal F(G)|$ とすると、Euler公式と $|T|=n-1$ から
$$ |T^\perp|=m-(n-1)=f-1=|V(G^*)|-1. $$
$T^\perp$ が連結でないと仮定します。その一つ以上、全て未満の連結成分の頂点を集めて $\mathcal A$ とします。dual cut $\delta_{G^*}(\mathcal A)$ には $T^\perp$ の辺が一本もありません。従ってこのcutに対応するprimal辺は全て $T$ に属します。
cutは空でありません。実際、$G^*$ は連結なので、非自明な $\mathcal A$ と補集合の間には辺があります。前二補題により、対応する非空なprimal辺集合はcycleを含みます。しかしそれらは全てtree $T$ の辺であり、$T$ がacyclicであることに反します。従って $T^\perp$ は連結です。頂点数より一本少ない辺をもつ連結graphなのでtreeです。
逆向きは、$G^*$ に今の向きを適用します。$T^\perp$ の補dual辺は、$(G^*)^*\cong G$ のもとでちょうど $T$ です。□

この定理では「treeの辺をdualへ移す」のではなく、「treeに入らなかった辺をdualへ移す」ことが重要です。cycleを作らないために捨てた辺が、双対側をつなぐための辺になります。

正方形と対角線

正方形に対角線を一本加えたplane graphは、$n=4,m=5,f=3$ です。primal spanning treeは3辺をもち、補集合の2辺に対応するdual edgeは、3個のdual頂点を結ぶtreeになります。
primal treeを別のものへ交換するとdual treeも交換されますが、常に「3辺対2辺」というEuler公式の分配は保たれます。

最小全域木が最大全域木へ変わる

各primal辺 $e$ とdual辺 $e^*$ に同じ重み $w(e)=w^*(e^*)$ を与えます。

minimum--maximum spanning-tree duality

$T$ が重み付き連結plane graph $G$ のminimum spanning treeであることと、
$$ T^\perp=\{e^*:e\notin T\} $$
が $G^*$ のmaximum-weight spanning treeであることは同値である。

全辺重みの和を
$$ W=\sum_{e\in E(G)}w(e) $$
とします。spanning-tree dualityにより、$G$ のspanning tree $T$ と $G^*$ のspanning tree $T^\perp$ は全単射に対応します。しかも
$$ w^*(T^\perp) =\sum_{e\notin T}w(e) =W-w(T). $$
右辺の $W$ は $T$ に依存しません。従って $w(T)$ を最小にすることと $w^*(T^\perp)$ を最大にすることは同値です。□

これは抽象概念が計算へ戻る典型例です。primal側でKruskal算法を実行して安いtreeを作れば、採用しなかった辺だけでdual側の高いtreeが同時に得られます。

Euler graphと面の二色塗り

face coloringはdualのvertex coloringそのものです。特に二色だけで面を塗れる条件は、元の頂点次数で判定できます。

Eulerian--bipartite duality

連結plane graph $G$ について、次は同値である。

  1. $G$ の全頂点の次数は偶数である。
  2. $G^*$ はbipartiteである。
  3. $G$ の面を、辺を共有する二面が異色となるよう二色で塗れる。

2と3はdual頂点がprimal面であることから同値です。
1を仮定します。$G^*$ に奇cycleがあると、その辺集合はcycle--bond dualityにより $G$ のbond $\delta(S)$ に対応します。一方、$G$ の $S$ 内の次数を足すと
$$ \sum_{v\in S}\deg(v)=2|E(S)|+|\delta(S)|. $$
左辺と第一項は偶数なので、全てのcutの大きさは偶数です。これは奇cycleに対応するbondが奇数本であることに反します。従って $G^*$ に奇cycleはなく、「グラフ彩色」の特徴づけによりbipartiteです。
逆に $G^*$ がbipartiteとします。primal頂点 $v$ の周りを小さく一周すると、$v$ に接続する各辺を一度ずつ横切るdual closed walkが得られ、その長さはloopを接続回数に従って数えて $\deg(v)$ です。bipartite graphのclosed walkは一歩ごとに二つの部を交互に移るため長さが偶数です。従って全ての $v$ で $\deg(v)$ は偶数です。□

cycle $C_n$ の内外二面が二色で塗れるのは、各頂点の次数が2だからです。一方、treeの唯一の面に対応するdual頂点にはloopがあり、loopをもつgraphはbipartiteではありません。treeには次数1の頂点があることと対応しています。

dualは抽象graphだけからは決まらない

同じabstract planar graphでも、異なるplane embeddingを選ぶと、どの辺の両側にどの面があるかが変わり、dualが非同型になることがあります。従って記号 $G^*$ は本来「埋め込みを固定した $G$ のdual」です。
3-connected planar graphでは埋め込みの一意性を述べるWhitneyの定理があり、dualをabstract graphに近い形で扱えます。しかしその証明は本章の範囲を越えるため、「平面性判定の構造」以後の平面性構造への出口とします。

演習

cycleのdual

$C_4$ を通常通り平面へ描く。dualの頂点数・辺数・各頂点の次数を求め、multigraphとして記述せよ。

解答

面は内面と外面の二つなのでdual頂点は2個です。四本の各辺は内面と外面を隔てるため、各dual edgeはこの二頂点を結びます。従ってdualは二頂点間に4本の平行辺をもつmultigraphで、両頂点の次数は4です。□

treeのdualとbridge

$n$ 頂点のtreeをplane graphとして描いたとき、そのdualを記述し、bridge--loop双対性を直接確認せよ。

解答

treeは $n-1$ 辺をもち、Euler公式から面数は
$$ f=2-n+(n-1)=1 $$
です。従ってdualは一頂点と $n-1$ 本のloopからなります。treeの全辺はbridgeであり、それぞれのdualがloopになっているので双対性を直接確認できます。□

dual Euler公式

$G$ が連結plane graphで $n=8,m=12$ とする。$G$ と $G^*$ の面数・頂点数・辺数を求め、両方でEuler公式を確認せよ。

解答

Euler公式から
$$ f=2-n+m=2-8+12=6. $$
従って $G^*$ は頂点数6、辺数12、面数8です。$G$ では $8-12+6=2$、$G^*$ では $6-12+8=2$ となり、どちらもEuler公式を満たします。□

spanning treeの補dual

連結plane graphが $n=6,m=9$ を満たすとする。primal spanning treeの辺数と、その補辺に対応するdual spanning treeの辺数を求めよ。

解答

primal spanning treeは $n-1=5$ 辺です。補辺は $9-5=4$ 本です。一方、Euler公式から面数は
$$ f=2-6+9=5 $$
なので、dual spanning treeの辺数は $f-1=4$ です。補辺数と一致します。spanning-tree dualityにより、これら4本は実際にdualを連結かつacyclicにします。□

最小木から最大木へ

plane graphの全辺重みの和が40で、あるminimum spanning treeの重みが13である。このtreeの補dual treeの重みを求め、それがdual側で最大である理由を説明せよ。

解答

補dual treeの重みは
$$ 40-13=27 $$
です。任意のprimal spanning tree $S$ とその補dual tree $S^\perp$ について
$$ w(S^\perp)=40-w(S) $$
です。minimum treeの重み13は全ての $w(S)$ 以下なので、27は全ての $w(S^\perp)$ 以上です。従って補dual treeはmaximum-weight spanning treeです。□

面の二色塗り

連結plane graphの頂点次数が
$$ 2,2,2,4,4,6 $$
であるとする。面がproperに二色塗りできることを証明せよ。また次数列
$$ 2,2,3,3,4,6 $$
の場合に同じ結論をこの情報だけから言えない理由を述べよ。

解答

最初の次数列では全頂点次数が偶数なので、Eulerian--bipartite dualityによりdualはbipartiteです。dualの二部を二色と見れば、辺を共有するprimal面は異なる色になり、面のproper二色塗りが得られます。
二番目には奇次数頂点が二つあります。したがって「全次数が偶数」という十分必要条件を満たさず、実際dualはbipartiteではありません。よって面のproper二色塗りはできません。単に次数和が偶数であることだけでは足りず、各頂点の次数が偶数である必要があります。□

本章で得たもの

plane dualは、面を頂点へ、primal edgeをそれと交差するdual edgeへ移します。この対応で

  • bridgeとloop
  • cycleとbond
  • primal全域木と補辺からなるdual全域木
  • minimum spanning treeとmaximum-weight dual spanning tree
  • 全頂点偶次数と面の二色塗り
    が交換されます。

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する

前ページへ
グラフ理論 ― 連結性・木・マッチング・フロー・平面性・彩色の表紙
次ページへ