次の値のうち、6つの頂点を持つ無向グラフの次数になり得るものを見つける必要があります。
a)3 2 2 2 3 3
b)4 2 2 2 3 2
c)5 2 2 2 0 3
d)5 2 2 2 1 2
私が見つけた唯一の方法は、1枚の紙にグラフを描いて、それが可能かどうかを確認することです。可能であれば、各グラフを描画する以外の方法で、この問題を開始するためのヒントが必要です。
次のアルゴリズムは、指定されたノード度で単純なグラフを作成できるかどうかを決定します。
度を降順で並べ替えます
最初の次数が0(つまりすべての次数が0)の場合、明らかにそのようなグラフを作成でき(エッジなし)、完了です。
最初の度の値がd
(> 0)の場合、次のd
度は0より大きい必要があります。そうでない場合は、そのようなグラフを作成できません。
最初の次数(値)を取り除き、次の次数を1つd
減らしますd
(つまり、要求された数のエッジを、最も高い次数のノードから残りのノードの中で最も高い次数のノードに描画します。この仮定の正確さについては、以下の証明を参照してください)。次に、ステップ1に進みます(ノードが1つ少なくなります)。
例a)(重みの合計が奇数であるため拒否される可能性がありますが、上記のアルゴリズムも機能します)
3 2 2 2 3 3
3 3 3 2 2 2
2 2 1 2 2
2 2 2 2 1
1 1 2 1
2 1 1 1
0 0 1
1 0 0
-1 not possible
例c)
5 2 2 2 0 3
5 3 2 2 2 0
2 1 1 1 -1 not possible
例d)
5 2 2 2 1 2
5 2 2 2 2 1
1 1 1 1 0
0 1 1 0
1 1 0 0
0 0 0 ok
欠落しているのは、与えられたノード度でグラフを描画できる場合、一致するグラフの1つがステップ4のこのプロパティを持っていること、つまり、最も高い次数のノードが次に高い次数のノードに接続されていることの証明です。
したがって、それA
が最高次数のノードであり、次数がAに接続されていないノードB
の次数よりも小さいノードに接続されていると仮定します。したがって、に接続されている別のノードがあります。したがって、エッジがあり、ノードの角度を変更せずに、egesで置き換えることができます。C
degree(B) > 0
degree(C) > 1
D
C
AB
CD
AC
BD
この手順を十分な回数繰り返すことにより、次に高い次数を持つすべてのノードを最も高い次数を持つノードに接続することができます。
この場合、握手補題または次数和の式が必要十分条件です。これは、無向グラフを形成することだけを考慮しているためです(エッジの方向は重要ではありませんが、ループまたは平行エッジについては何も言われていません)。したがって、オプションcとオプションdは有効な6頂点無向グラフです。
質問が単純な無向グラフ(ループと平行辺は許可されていない)を求めている場合は、@coprocで説明されているHavel/ Hakimiによるアルゴリズムを導入する必要があります。