SlideShare a Scribd company logo
1 of 38
Download to read offline
グラフ理論-catupper
辺彩色
問題です
●
プロジェクトがN個、生徒がM人います
●
各生徒はいくつかのプロジェクトに参加し
ています
●
プロジェクトは、それに参加している生徒
全員の課題が終われば完了します
– 進捗はダメダメです
問題です
●
プロジェクトがN個、生徒がM人います
●
各生徒はいくつかのプロジェクトに参加し
ています
●
プロジェクトは、それに参加している生徒
全員の課題が終われば完了します
– 進捗はダメダメです
問題です
●
生徒たちはアイドルに励まされるとやる気を出して、一
つだけ課題を終了できます。
– 課題は励ましたアイドルがプロジェクトに提出します
●
飽きぽいので二度目はやる気が出ません
●
プロジェクトリーダーも飽きっぽいので同じアイドルか
ら1個しか課題を受け取りません。
●
アイドルは何人必要でしょうか。
迫真
とけましたか?
本題
辺彩色
本題
辺彩色とは
●
与えられたグラフの辺に色を付ける
●
ただし、隣接する辺は同じ色で塗ってはいけない
– 隣接する:=頂点を共有する
●
使う色種を小さくしたい
●
右の例は5-辺彩色
●
実は4色でも可能
強力な定理
●
Vizingの定理
– 任意のグラフの辺彩色数は
グラフの最大次数Dに一致するか、
D+1に一致する
●
つよい!
ちなみに
●
頂点彩色は上界として最大次数が与えられるが、下界は
どんなときでも2だったりする
– 二部グラフは好きなだけ次数をあげることができる
●
それにくらべれば値が二通りに絞れる辺彩色の定理は強
い
– さいきょう
例
D = 4  4-辺彩色
さらにおもしろい定理
●
Konigの定理
– 任意の二部グラフの辺彩色数はその最大
次数と一致する
 
 
 
 
さらにおもしろい定理
●
Konigの定理
– 任意の二部グラフの辺彩色数はその最大
次数と一致する
●
一致する
●
一致する
●
一致する
●
一致する
帰納法で
証明しよう!
証明
●
グラフの辺の数が n 未満の時に定理が成立してると仮定
●
辺の数が n のグラフ G についてひとつの辺 e を選ぶ
– 最大次数はDとする
●
G – eはD色で辺彩色可能
●
とりあえずG - eをD色でぬりわける
This is G(二部グラフ)
●
辺eは頂点XとYを結ぶ
●
最大次数D = 3
適当に塗ってみる
eのまわりに注目
●
XもYもD-1色以下で彩色使われてない色がある
●
共通の使われてない色があ
ったら、eはその色
●
無いと仮定して証明を続ける
●
Xにない色を黄色
●
Yにない色を青色
●
とする
Xからてくてく歩く
●
Xには必ず青色があるので, Xからはじまる青黄青黄...と
なる最長のパスを探す
Xからてくてく歩く
●
Xには必ず青色があるので, Xからはじまる青黄青黄...と
なる最長のパスを探す
このパスは閉路でない
●
Xには黄色がつながっていないので閉路にはならない
このパスはYで終わらない
●
二部グラフなのでYに入る辺は黄色でないといけない
– Yに黄色はつながっていないので矛盾
パスの青と黄色を入れ替えても良い
●
パスが通る頂点に接続している青と黄色はこのパスに使
われている(再長性より). よって入れ替えても問題ない
いれかえるとうれしい!
●
XとYのつながってない色が異なる
いれかえるとうれしい!
●
XとYのつながってない色が等しい!
青い線がひけるんだなぁ
●
元のグラフ
青い線がひけるんだなぁ
●
いれかえたあと
完成!
●
G-eがD辺彩色可能なら Gも可能!
Q.E.D.
●
辺の数がDのときとかは自明にD辺彩色可能なので
●
帰納法による題意は示された!
● Q.E.D. !
ところで
冒頭の問題はどう解くのか?
進捗はダメダメです
●
プロジェクトリーダーと生徒を頂点として二部グラフを
作る
●
辺をアイドルとする
●
問題は二部グラフにおける辺彩色となる
●
さっきの定理を証明済みとすると
– 最大次数をもとめるだけ
 
進捗はダメダメです
●
プロジェクトリーダーと生徒を頂点として二部グラフを
作る
●
辺をアイドルとする
●
問題は二部グラフにおける辺彩色となる
●
さっきの定理を証明済みとすると
– 最大次数をもとめるだけ
●
✌('ω' )✌ 三✌('ω')✌三( 'ω')✌ ✌
わかりやすい例
プロジェクトリーダー
生徒ども
辺がブラック....(察し
課題たち
正義のアイドルたち
正義のアイドルたち
ご清聴ありがとうございました
グラフ楽しい
グラフ楽しい!!
✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌

More Related Content

What's hot

指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端Yoichi Iwata
 
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方Kensuke Otsuki
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとはTakuya Akiba
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方Tsuneo Yoshioka
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)AtCoder Inc.
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題tmaehara
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界Preferred Networks
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドMasaki Hara
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化yosupo
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~Takuya Akiba
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
Palindromic tree
Palindromic treePalindromic tree
Palindromic tree__math
 
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法nishio
 
直前合宿 講義スライド
直前合宿 講義スライド直前合宿 講義スライド
直前合宿 講義スライドtozan gezan
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法Takuya Akiba
 

What's hot (20)

指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端指数時間アルゴリズムの最先端
指数時間アルゴリズムの最先端
 
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
二部グラフの最小点被覆と最大安定集合と最小辺被覆の求め方
 
勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは勉強か?趣味か?人生か?―プログラミングコンテストとは
勉強か?趣味か?人生か?―プログラミングコンテストとは
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方2SAT(充足可能性問題)の解き方
2SAT(充足可能性問題)の解き方
 
Union find(素集合データ構造)
Union find(素集合データ構造)Union find(素集合データ構造)
Union find(素集合データ構造)
 
様々な全域木問題
様々な全域木問題様々な全域木問題
様々な全域木問題
 
ウェーブレット木の世界
ウェーブレット木の世界ウェーブレット木の世界
ウェーブレット木の世界
 
最大流 (max flow)
最大流 (max flow)最大流 (max flow)
最大流 (max flow)
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
Palindromic tree
Palindromic treePalindromic tree
Palindromic tree
 
ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法ZDD入門-お姉さんを救う方法
ZDD入門-お姉さんを救う方法
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
直前合宿 講義スライド
直前合宿 講義スライド直前合宿 講義スライド
直前合宿 講義スライド
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法
 

Viewers also liked

Viewers also liked (20)

グラフと木
グラフと木グラフと木
グラフと木
 
色々なOSSで競技プログラミング
色々なOSSで競技プログラミング色々なOSSで競技プログラミング
色々なOSSで競技プログラミング
 
PC解体
PC解体PC解体
PC解体
 
Moon
MoonMoon
Moon
 
かけざん
かけざんかけざん
かけざん
 
April2013
April2013April2013
April2013
 
Deque with Haskel
Deque with HaskelDeque with Haskel
Deque with Haskel
 
April2013
April2013April2013
April2013
 
Yarudake
YarudakeYarudake
Yarudake
 
Trianguler
TriangulerTrianguler
Trianguler
 
Mage
MageMage
Mage
 
Jissou
JissouJissou
Jissou
 
Cをやりましょう
CをやりましょうCをやりましょう
Cをやりましょう
 
人間対Pc2
人間対Pc2人間対Pc2
人間対Pc2
 
Npc april fool2014
Npc april fool2014Npc april fool2014
Npc april fool2014
 
Imo
ImoImo
Imo
 
Amortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 StackAmortize analysis of Deque with 2 Stack
Amortize analysis of Deque with 2 Stack
 
AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説AtCoder Beginner Contest 035 解説
AtCoder Beginner Contest 035 解説
 
ARC#003D
ARC#003DARC#003D
ARC#003D
 
素集合データ構造
素集合データ構造素集合データ構造
素集合データ構造
 

More from Ken Ogura

More from Ken Ogura (15)

計算量
計算量計算量
計算量
 
ハッキング実演
ハッキング実演ハッキング実演
ハッキング実演
 
Shio dtm
Shio dtmShio dtm
Shio dtm
 
Hairetu2
Hairetu2Hairetu2
Hairetu2
 
Lunch
LunchLunch
Lunch
 
Divisor
DivisorDivisor
Divisor
 
Homework
HomeworkHomework
Homework
 
Pool
PoolPool
Pool
 
Sns
SnsSns
Sns
 
Pencil
PencilPencil
Pencil
 
Spell check
Spell checkSpell check
Spell check
 
Black board
Black boardBlack board
Black board
 
Donyoku
DonyokuDonyoku
Donyoku
 
Nazoki
NazokiNazoki
Nazoki
 
人材発掘うっはうは
人材発掘うっはうは人材発掘うっはうは
人材発掘うっはうは
 

辺彩色