SlideShare a Scribd company logo
1 of 42
Download to read offline
グラフ理論入門 1
physics0523
おしながき
・そもそもグラフ理論って?
・木とは?
・木の重心のおなはし
・重心分解のおはなし
- アルカンの数え上げ
・一筆書きのおなはし
そもそも「グラフ理論」って?
実物を見たほうがはやい
グラフ理論とは?
グラフ理論とは?
・前ページにあったような、ものとものとの繋がりを表す図を考え
る学問
・単にグラフ理論と言ってもけっこういろいろある
身の回りのグラフの例
・路線図、推移図、フローチャート、構造式(化学)…
基本用語解説
ざっくり大きく分けて「向き無しの無向グラフ」「向き付きの有向
グラフ」の2通り
具体的な使い方
駅1から駅2までの距離が6→無向辺を張ればよい!
AさんがBさんのことが好き→有向辺を張ればよい!
木とは?
連結(=全体が繋がっている)かつ閉路(=ループ)を持たない(無
向)グラフ(Wikipediaより)
木の特徴(Wikipediaより)
n 個の点からなるグラフ T について次は同値である。
T は木である
T に閉路はなく、 n − 1 本の辺を持つ
T は連結で、 n − 1 本の辺を持つ
T は連結で、すべての辺は橋である
T の任意の2点を結ぶ道がちょうど1つある
T に閉路はないが、新しい辺をつけ加えると閉路が必ず1つで
きる
「わ~、頭痛い…」
率直な感想として多分皆さんこうなるので、
やさしい にほんごで せつめい します
木とは?
例えば、6個の頂点を繋ぐために最小限必要な辺は5本
なので、実際に「N頂点をN-1本の辺で繋いだ無向グラフ」=「木」
木の特徴(Wikipediaより)をやさしい日本語に
N 個の点からなるグラフ T について次は同値である。
「T は木である」
→当たり前。そもそも議論の前提。
「T に閉路はなく、 n − 1 本の辺を持つ」
閉路:「N重結合 = 多重辺」 か 「環 = ループ」
→木は「N頂点、N-1辺からなるループのない無向グラフ」
木の特徴(Wikipediaより)をやさしい日本語に
「T は連結で、 n − 1 本の辺を持つ」
→木は「N頂点をN-1本の辺で繋いだ無向グラフ」
「T は連結で、すべての辺は橋である」
→どの1つの辺を消したとしても、
木は2つに分割されてしまう
木の特徴(Wikipediaより)をやさしい日本語に
「T の任意の2点を結ぶ道がちょうど1つある」
→どの2頂点間を移動するにも、
(同じ辺を2度通らなければ)道が1通りに定まる
「T に閉路はないが、新しい辺をつけ加えると
閉路が必ず1つできる」
→もし1つ辺を追加したら、そこにちょうど1つループができる
不飽和度の計算
この木の話を応用すると、不飽和度計算の意味が理解できる
まず、飽和~は木構造をしている(不飽和度0)ことに注意
具体的にどう求めるか?
辺の数: H + 2*O + 3*N + 4*C = x とおく
頂点の数: H + O + N + C = y とおく
(辺の数は両側の原子でカウントされていることに注意)
x = 2(y-1) ならグラフは木なので不飽和度は0
そうでない場合、不飽和度=余る辺の数は (x - 2(y-1)) / 2
(これが整数にならない場合は化合物として不適切)
これを変形すると (2*C + N - H + 2) / 2 (いつもの)が求まる
木の重心のおはなし
木には以下の性質を満たす「重心」がある
・その頂点(と繋がる辺)を削除したとき、バラバラになったグラフ
の頂点数が全て元のグラフの半分以下になる
なお、木には必ず重心が最低1つ、高々2つある
(注意:「高々~ある」は「多くとも~ない」と同じことを表します)
参考、一部画像引用元:
https://qiita.com/drken/items/4b4c3f1824339b090202
具体例
同じグラフで重心がもうひとつ
重心が高々2つであることの証明
頂点数 N の木において、☆を付けた2頂点が重心だったとする
(雲の部分は何らかの木が繋がってると思ってください)
図のA,Bの領域で頂点数が N/2 以下である必要がある
このとき☆の頂点が辺で隣接する必要がある
(∵☆の間に頂点が挟まっていると、
A+Bの頂点数ののべの総和がNを超える
なので、鳩の巣原理より、詰む)
重心が高々2つであることの証明
どう頑張ってもA+Bの頂点数の総和はN以上になってしまう
☆のついた頂点がともに重心となるためには、A,Bの領域に含
まれる頂点は共にN/2でなければならない
さらに、このとき、雲の部分に新たに重心ができる余地はない
これで証明完了
(重心が2つある場合、それを繋ぐ辺で切ると
サイズN/2のパーツができることもわかる)
重心が必ず存在することの証明
図証!これの言語化むずかしい!!頑張って言語化します
以下のようなアルゴリズムを検討する
1. 適当に根をとり、v={根}とする
2. 今見てる頂点の下側に繋がるグラフを調べ、部分木(下側に
繋がる木)のサイズが全てN/2以下なら終了
そうでなければ、一番大きい部分木方向に下って、そこを新たな
vとする
この 2. を繰り返す
なぜこれで重心の存在性が示せるか?
図に立ち返って説明します
今p→vと下ってきたとする。すると、「pの時点で止まらなかった」
という情報から、vより上側の頂点数の合計がN/2以下であるこ
とがわかる
さらに、このアルゴリズムは一番下に
たどり着くまでどこかしらで止まる
よって存在証明ができた
重心分解のおはなし
木を重心でグラフを(再帰的に)分解するテクニック
頂点の数をNとすると、再帰の深さは高々log2Nになる
これを使ってアルカンの構造異性体を数え上げよう!!
グラフの問題に言い換えると以下の通り
炭素鎖だけ考えればいいので、
「各頂点から出ている辺が高々4本である木を考える」
参考:https://qiita.com/miwo/items/2632b16ffd30ba63b705
N≦4の時くらいまでは、頑張ります
アルキル基の場合の数も求めておく
ここから重心分解~!!!
N=5のとき: 重心+残った4頂点で(最大)4部分木
但し、重心に繋げられるのは、 N/2 頂点以下の部分木
[2,2,0,0] , [2,1,1,0] , [1,1,1,1]
それぞれのアルキル基は一意に定まっているので、合計3通り
(炭素数≦2なら(部分)木の形は1通りなので)
次も重心分解で
N=6、一般にNが偶数の場合では場合分けが必要
(i)重心が1つの場合
N=5の時とほぼ同じだが、少し注意が必要
「偶数頂点かつ重心が1つ」⇒「重心にくっついている部分木の
頂点は N/2 未満」
N=6の場合、3頂点の部分木はくっつかない
残りの5頂点を振り分ける[2,2,1,0] , [2,1,1,1] の2通り
N=6の場合
(ii) 重心が2つの場合
サイズ N/2 のアルキル基を2つ組み合わせればよい
サイズ3のアルキル基を2つ組み合わせるが、注意が必要
「サイズ3のアルキル基」には2通り考えられるが、この2つは重
複組み合わせで数える必要がある
2通りで2つ選ぶ→2H2 = 3C2 = 3 通り
(i)(ii) 合わせて5通り
課題1:N=7の場合
解答1:N=7の場合
重心+残った6頂点で最大4部分木
部分木として繋げるのは3頂点以内の部分木
[3,3,0,0] [3,2,1,0] [3,1,1,1] [2,2,2,0] [2,2,1,1]
このうち、3頂点のアルキル基が絡む場合は厄介
[3,3,0,0]... 3頂点のアルキル基2つが重複組み合わせで3通り
[3,2,1,0] , [3,1,1,1]... 3頂点のアルキル基の繋ぎ方で2通り
結局、全部ひっくるめて9通り
課題2:N=8の場合
解答2:N=8の場合
(i) 重心が1つの場合
偶数頂点かつ重心が1つなので、つなげるアルキル基のサイズ
は3以下になる
[3,3,1,0]... 3頂点が2つ、重複組み合わせで3通り
[3,2,2,0]... 3頂点の繋ぎ方で2通り
[3,2,1,1]... 3頂点の繋ぎ方で2通り
[2,2,2,1]... 1通り
解答2:N=8の場合
(ii) 重心が2つの場合
サイズ N/2 のアルキル基を2つ組み合わせればよい
サイズ4のアルキル基を2つ組み合わせるが、注意が必要
「サイズ4のアルキル基」には4通り考えられるが、この2つは重
複組み合わせで数える必要がある
4通りで2つ選ぶ→4H2 = 5C2 = 10 通り
(i)(ii) 合わせて18通り
N≧9の場合…
もう面倒なのでやりませんが、アルキル基の場合の数を数えて
(これはサイズによって再帰的に出来ます、参考で貼ったリンク
も参照)、今までの例のように数えてやるとN=100の場合の
5921072038125809849884993369103538010139
とか言う数も現実的時間で計算可能
https://doratex.github.io/misc-files/isomer/
↑こんな面白げなサイトもありました
一筆書きのおはなし
一筆書きできる必要十分条件:
「奇数本辺が集まっている点(奇点)
が0個または2個である」
これをグラフ理論で証明してみよう!
参考、証明引用元:
https://mathtrain.jp/euler_graph
奇点≠0,2の場合無理なことを証明
ここは簡単
1つ線を引くときに、始点と終点以外の任意の点は、
「その点から2本辺が出ていると考えられる」
始点と終点に限っては、そこに奇点が作れるが、これは
0個(奇点同士が繋がった場合)か2個に限られる
ざっくり図証するとこんな感じ
奇点=2→奇点=0に帰着
「任意の奇点=0であるグラフについて、一筆書きできる」という
結果を仮定して、奇点=2の場合を奇点=0の場合に帰着
前ページの議論より、奇点=0のグラフが一筆書きできるなら、そ
れはループになっているはず
奇点=2の場合は奇点同士を辺で結べば奇点=0になり、この一
筆書きはループ
なので、ループを奇点の位置で切ってやれば一筆書き可能なこ
とが示せる、よって帰着出来た
奇点=0の場合(本質)
ここからがグラフらしい証明になります(と言っても僕の本職はグ
ラフらしい証明を書くことではないので下手でも許してください)
グラフに含まれる辺の数kで(強い仮定の)数学的帰納法します
k=2の場合 : 図より、できました
k<nの場合の成立を仮定、k=nを示すパート
まず、ある 奇点=0,辺数=n のグラフGを考える
そのグラフから1つ閉路を削除することを考える
このとき、分解されたグラフg1,g2,...,gxもそれぞれ奇点=0
(∵閉路を取り除くと、全ての頂点
から偶数本辺を取り除くことになる)
このとき、g1,g2,...,gxにおいて
(分解されたグラフの辺数)<n
k<nの場合の成立を仮定、k=nを示すパート
帰納法の仮定より、グラフg1,g2,...,gxは何らかのループを持つ
なので、図で言うところの赤いループを回っていく段階で分割さ
れたグラフの一部に差し掛かればそのグラフをぐるっと回ってや
れば一筆書きの経路が構築可能
グラフ理論 2に続く …?

More Related Content

What's hot

GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論Koichiro Gibo
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考Ichigaku Takigawa
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析Seiichi Uchida
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門Kawamoto_Kazuhiko
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)RyuichiKanoh
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度Seiichi Uchida
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門Retrieva inc.
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門irrrrr
 
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習Ichigaku Takigawa
 
質的変数の相関・因子分析
質的変数の相関・因子分析質的変数の相関・因子分析
質的変数の相関・因子分析Mitsuo Shimohata
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説Shiga University, RIKEN
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)Kota Matsui
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門Momoko Hayamizu
 
Discovery of Linear Acyclic Models Using Independent Component Analysis
Discovery of Linear Acyclic Models Using Independent Component AnalysisDiscovery of Linear Acyclic Models Using Independent Component Analysis
Discovery of Linear Acyclic Models Using Independent Component AnalysisShiga University, RIKEN
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門Shuyo Nakatani
 

What's hot (20)

GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論GEE(一般化推定方程式)の理論
GEE(一般化推定方程式)の理論
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考機械学習と機械発見:自然科学研究におけるデータ利活用の再考
機械学習と機械発見:自然科学研究におけるデータ利活用の再考
 
データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析データサイエンス概論第一 5 時系列データの解析
データサイエンス概論第一 5 時系列データの解析
 
グラフィカルモデル入門
グラフィカルモデル入門グラフィカルモデル入門
グラフィカルモデル入門
 
2 3.GLMの基礎
2 3.GLMの基礎2 3.GLMの基礎
2 3.GLMの基礎
 
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
 
データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度データサイエンス概論第一=2-1 データ間の距離と類似度
データサイエンス概論第一=2-1 データ間の距離と類似度
 
ブースティング入門
ブースティング入門ブースティング入門
ブースティング入門
 
Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門Rによるベイジアンネットワーク入門
Rによるベイジアンネットワーク入門
 
スペクトラルグラフ理論入門
スペクトラルグラフ理論入門スペクトラルグラフ理論入門
スペクトラルグラフ理論入門
 
(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習(2018.3) 分子のグラフ表現と機械学習
(2018.3) 分子のグラフ表現と機械学習
 
質的変数の相関・因子分析
質的変数の相関・因子分析質的変数の相関・因子分析
質的変数の相関・因子分析
 
因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説因果探索: 基本から最近の発展までを概説
因果探索: 基本から最近の発展までを概説
 
ITと数学で社会に役立つ数理最適化
ITと数学で社会に役立つ数理最適化ITと数学で社会に役立つ数理最適化
ITと数学で社会に役立つ数理最適化
 
機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)機械学習による統計的実験計画(ベイズ最適化を中心に)
機械学習による統計的実験計画(ベイズ最適化を中心に)
 
全域木いろいろ
全域木いろいろ全域木いろいろ
全域木いろいろ
 
パターン認識と機械学習入門
パターン認識と機械学習入門パターン認識と機械学習入門
パターン認識と機械学習入門
 
Discovery of Linear Acyclic Models Using Independent Component Analysis
Discovery of Linear Acyclic Models Using Independent Component AnalysisDiscovery of Linear Acyclic Models Using Independent Component Analysis
Discovery of Linear Acyclic Models Using Independent Component Analysis
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 

グラフ理論入門 1