アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ...

24
宮崎修一 京都大学 学術情報メディアセンター アルゴリズム入門(2(グラフの基礎)

Upload: others

Post on 10-Mar-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

宮崎修一京都大学 学術情報メディアセンター

アルゴリズム入門(2)(グラフの基礎)

Page 2: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

2

グラフの基礎

グラフとは

頂点

いくつかの頂点があり、いくつかの頂点ペアが枝でつながれたもの

Page 3: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

3

これもダメ(自己ループ)

これはだめ(並列枝)

単純グラフこういうのを許す場合もある

Page 4: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

4

グラフは、接続関係のみが大事。どう描画されているかは関係ない。

これらは同じグラフ(同型)

1

a2

d

3

b

4

e

c5 f

6

問題 : 左のグラフと右のグラフで、どの点とどの点が対応するか?

Page 5: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

5

グラフは・人間関係・都市の接続関係・コンピュータネットワーク・Webのハイパーリンク関係

など、様々な2項関係を表現できる。

また、接続の度合いを、枝の重みによって表すこともある。

例えば町と町との間の時間・距離

7

3

2

3

5

3

98

117

8

7

Page 6: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

6

グラフは、G=(V, E)で表わされる

V: 頂点集合E: 枝集合

1 2

34

V={1, 2, 3, 4}

E={(1,2), (1,3), (1,4), (2,3)}

Page 7: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

7

連結グラフどの頂点からどの頂点へも、枝を伝って行ける。

非連結グラフ

Page 8: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

8

頂点に接続する枝の数=次数次数3

次数2

次数0

Page 9: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

9

特別なグラフ

木:閉路を持たない連結グラフ

これはだめ(閉路がある)

これもだめ(連結でない) 森

葉(次数1の頂点)

問題:頂点数nの木の枝数はいくつか?

Page 10: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

10

特別なグラフ

平面グラフ: 枝が重ならないように、平面上に描画したグラフ。

問題:次のグラフは、平面的グラフか否か?

(a) (b) (c)

平面的グラフ:平面グラフとして描画できるグラフ。

Page 11: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

11

特別なグラフ

二部グラフ: 頂点集合が2つに分けられて、各グループ内では枝が1つもない。

人 仕事

Page 12: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

12

特別なグラフ

完全グラフ: 全ての頂点間に枝が存在するグラフ。

問題: n頂点完全グラフには枝がいくつあるか?

4頂点完全グラフ 5頂点完全グラフ

Page 13: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

13

グラフの頂点彩色

枝でつながれた2頂点は、異なる色で塗る。

全部の頂点を違う色にすれば、自明にできる。→ どれだけ少ない色でできるか? というのが問題

問題:このグラフは4色で塗られているが、もっと少ない色で可能か?

各頂点を、いずれかの色で塗る。

Page 14: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

14

グラフの頂点彩色の応用例

頂点:仕事同時に出来ない2つの仕事に枝を張る。

同じ色の仕事は同時に出来る。色数の最小化 → かかる時間の最小化。

Page 15: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

15

問題:次の事柄を示せ。与えられたグラフGの次数の最大値:Δ(G)とする。GはΔ(G)+1色で彩色できる。

問題:上の定理は最適である(これ以上改良できない)ことを示せ。すなわち、Δ(G)色では彩色できないGを示せ。

※全ての頂点の次数が同じグラフ: 正則グラフ

問題:連結で、かつ、全ての次数が同じではない(すなわち、異なる次数の2頂点が存在する)Gは、Δ(G)色で彩色できることを示せ。

Page 16: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

16

グラフのマッチング

マッチング:枝の集合。ただし、どの2つの枝も、同じ頂点を共有しない。

問題:このグラフのマッチングを探せ。

Page 17: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

17

最大マッチングと極大マッチング

極大マッチング:今のマッチングに対して、もうこれ以上枝を付け加えることができない。

最大マッチング:全てのマッチングの中で最大サイズ。(枝数が最大。)

問題:極大マッチングだが最大マッチングでない例を挙げよ。

Page 18: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

18

人 仕事

二部グラフの例では、マッチングは人を仕事に重複なく割り当てることに相当する。

最大マッチングは、できるだけ多くの人に仕事を割り振ることに相当する。

Page 19: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

19

オイラー回路

グラフ中の各枝をちょうど1回ずつ通って元の頂点に戻る巡回路

Page 20: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

20

問題:次のグラフはオイラー回路を持つか否か。持つならそれを示し、持たないなら持たない理由を示せ。

(a) (b)

Page 21: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

21

ハミルトン閉路

グラフ中の各頂点をちょうど1回ずつ通る閉路

Page 22: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

22

問題:次のグラフはハミルトン閉路を持つか否か。持つなら閉路を示し、持たないなら持たない理由を示せ。

Page 23: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

23

グラフがオイラー回路を持つ条件

次数が奇数の頂点がある → オイラー回路は持たない。

次数が奇数の頂点がない → オイラー回路を持つ。

次数が奇数の頂点がない←→ オイラー回路を持つ。

Page 24: アルゴリズム入門(2shuichi/algintro/alg-2s.pdf9 特別なグラフ 木:閉路を持たない連結グラフ これはだめ (閉路がある) これもだめ (連結でない)森

24

ハミルトン閉路に関しては、このような単純な必要十分条件が知られていない。

実際、「グラフがオイラー回路を持つか?」という問題

→ クラスP (易しい)「グラフがハミルトン閉路を持つか?」という問題

→ NP完全(難しい)