tabei20110407

第7回組合せ最適化輪講
2.4 オイラーグラフと2部グラフ
田部井 靖生
概要
•
•
•
•
•
•
オイラーウォークとオイラーグラフ
2つの関係の定理
オイラーウォークを見つけるアルゴリズム
グラフをオイラーグラフに変化する方法
奇数ジョインと奇数カバー
2つの関係の定理
2部グラフとその定理
定義 2.23
• グラフGのすべての辺を含む閉じたウォークを
オイラーウォークという
• 無向グラフGはすべての点の次数が偶数であ
るとき、オイラーであると呼ばれる
• 有向グラフGはすべての点v∈V(G)で|δ(v)|=|δ+(v)|であるときオイラーであると呼ば
れる
定理2.24
(有向あるいは無向)連結グラフGがオイラー
ウォークをもつための必要十分条件は、Gがオ
イラーであることである
(証明)
必要性 ⇨
オイラーウォークに k回現れる途中の点の次数
は2kである
• 十分性 ⇐
1)W=v1,e1,v2,…,vk,ek,vk+1を最長のウォークとする
2)最長ウォークWはVk+1から出て行く辺をすべて
含むことになり、Gがオイラーであることより、
v1=vk+1となり、Wは閉ウォーク
Wがオイラーウォークなることの証明
3)Wに含まれない辺が存在すると仮定する
4) Gは連結なので、Wに含まれない辺で少なく
とも一方の端点がWに含まれるような辺eが存
在する
5) EをWにつなげるとWよりも長いウォークがで
きてしまう!(矛盾)
6) Wはすべての辺を含むオイラーウォークとな
る
アルゴリズム2.3 Eulerのアルゴリズム
•
•
-
入力:無向連結グラフ
出力:GのオイラーウォークW
基本は再帰アルゴリズム
毎回の再帰呼び出しでは、閉ウォークWを見
つける ②と③
- Wのそれぞれの点に対して、再帰呼び出し
定理 2.25
Eulerのアルゴリズムは正しく動作する
証明)
オイラーグラフGと点v1∈V(G)に対して
Euler(G,v1)が呼び出されると、v1を含むGの連
結成分G1のオイラーウォークが返されることを、
|E(G)|についての帰納法で証明する
• Base case: E(G)=φのとき自明
• Inductive step E(G)≠φのとき
1)④で返されるパスWは閉ウォークであり、すべて
の辺を含んでいるならば終了.そうでないとき、閉
ウォークをG1とする
2)そうでないとき、Gから②で辺が取り除かれたグ
ラフG’はオイラーグラフである
3)④でW上の辺eのなかで、一方がG’の点であるも
のをvi(i=2,…,k)とする
4)帰納法の仮定より、eはWiに属する
5)⑤で構成されるウォークはG1のオイラーウォーク
になる
定義
Gを無向グラフとして、FをV(G)の非順序対の族
とする。このとき、(V(G),E(G)∪F)がオイラーなら
ば、Fは奇数ジョインという
e4
e1
e3
e2
e1
e3
e2
F={e4}
定義
Gから各e∈Fを順次縮約していって得られるグラ
フがオイラーならば、Fは奇数カバーと呼ばれる
e4
e1
e3
e2
F={e4}
e3
e1
e2
定理 2.26
無向グラフに対して、以下の(a), (b)が成立する
(a)奇数ジョインは奇数カバー
(b)極小な奇数カバーは奇数ジョイン
a)の証明
偶数+偶数=偶数
偶数+奇数=奇数
奇数+奇数=偶数
1) Fを奇数ジョインとする
2) GからFを縮約して得られるグラフをG’とする
3) Fが奇数ジョインなので(V(G),F)の各連結成
分Xは奇数次数の点を偶数個もつ
4) Fが奇数ジョインであるので、点v∈V(G)が
(V(G),F)で奇数次数であることと点vがGで奇数
次数であることは等価
5) (V(G),F)の各連結成分Xに含まれるGの奇数
次数の点も偶数個となり、|δG(X)|は偶数
6) グラフ G’は偶数次数の点しかないことになり、
Fは奇数カバーになる
• 定義
無向グラフGの2分割とは、AとBで誘導されるG
の部分グラフがそれぞれ空となるような点集合
の分割V(G)=A∪Bである
Gは2分割をもつとき、2部グラフと呼ばれる
A
B
• V(G)=A∪B, |A|=n,|B|=m,
E(G)={{a,b}:a∈A,b∈B}
となるような単純2部グラフGをKn,mと書き、完全
2部グラフという
定理 2.27
無向グラフGが2部グラフであるための必要十
分条件は、Gが奇数長の閉路をもたないことで
ある。
必要性 ⇨
1)Gを2分割V(G)=A∪Bをもつ2部グラフとし、
v1,e1,v2,…,vk,ek,vk+1をGの閉路とする。
2)vi∈Aであることとiが奇数であることは等価
3)さらに、vk+1=v1∈Aなのでk+1は偶数
• 十分性 ⇐
任意にv∈V(G)を選んで、(G,s)に幅優先探索を適用
してsからすべての点v∈V(G)への距離をもとめる。T
を得られる幅優先探索木とする
A:={v∈V(G): distG(s,v)は偶数}, B:=V(G)\A
A1
B1
A1
B3
B2
A2
A3
G[A]あるいはG[B]に辺e={x,y}が存在すれば、Tでの
x-yパスにeをつなげて奇数閉路が得られる
そのような辺がなければ2分割となる