試験シーケンス

数列

組合せ 数学においてラベル付き木プリューファー列プリューファー符号またはプリューファー数とも呼ばれる)は、木に関連付けられた一意のです。n頂点の木の列の長さはn − 2で、単純な反復アルゴリズムによって生成できます。プリューファー列は、 1918年にハインツ・プリューファーによってケーリーの公式を証明するために初めて使用されました。[1]

木をプリュファーシーケンスに変換するアルゴリズム

ラベル付き木のプリューファー列は、頂点が2つだけになるまで繰り返し頂点を削除することで生成できます。具体的には、頂点{1, 2, ..., n }を持つラベル付き木Tを考えます。ステップiでは、ラベルが最小の葉を削除し、プリューファー列のi番目の要素をこの葉の隣接要素のラベルに設定します。

ラベル付きツリーのPrüferシーケンスは一意であり、長さはn − 2です。

符号化と復号化はどちらも整数基数ソートに簡約され、並列化される。[2]

プリューファー配列[4,4,4,5]を持つラベル付き木

上記のアルゴリズムを右に示す木に対して実行するとどうなるでしょうか。最初は頂点1が最も小さいラベルを持つ葉なので、まず頂点1を削除し、プリューファーシーケンスに4を追加します。次に頂点2と3を削除するので、頂点4がさらに2回追加されます。頂点4は葉になり、ラベルが最も小さいので削除し、シーケンスに5を追加します。残る頂点は2つだけなので、ここで処理を終了します。木のシーケンスは[4,4,4,5]です。

Prüferシーケンスをツリーに変換するアルゴリズム

[a[1], a[2], ..., a[n]]をプリューファー列とします

木にはから までn+2の番号が付けられたノードがあります。各ノードの次数を、シーケンス内での出現回数に1を加えた値に設定します。例えば、擬似コードでは次のようになります。 1n+2

 Convert-Prüfer-to-Tree ( a )
 1 n長さ[ a ]
 2 T ← 1からn + 2までの番号が付けられたn + 2個の孤立したノードを持つグラフ 
 3← 整数の配列
 4 T内の各ノードiに対して
 5     [ i ]←1を実行する 
 6それぞれiについて7[ i ] [ i ] + 1
 

次に、シーケンスの各番号についてa[i]、次数が1である最初の(最も番号が小さい)ノード を見つけ、ツリーにjエッジを追加し、との次数をデクリメントします。擬似コードでは、 次のようになります。(j, a[i])ja[i]

8 a の各値iに対して、次の処理を実行する9 
 T     ノードjに対して、次の処理を実行する
10         次数[ j ] = 1場合、次
の処理を実行する 11エッジ[ i , j ]を Tに挿入する
12             次数[ i ] ←次数[ i ] - 1   
13             [ j ] ←[ j ] - 1
14             休憩

このループの最後には、次数1のノードが2つ残ります(これらをu、と呼びます)。最後に、ツリーにvエッジを追加します。 [3](u,v)

15 uv ← 0
16 T内の各ノードiについて
17     次数[ i ] = 1 の
場合         18 u = 0場合
19              ui 
20         それ以外の場合
21              vi 
22              break 
23[ u , v ] をTに挿入
24次数[ u ] ←次数[ u ] - 1  
25[ v ] ←[ v ] - 1
26リターン T

ケーリーの公式

n頂点のラベル付き木のプリューファー列は、ラベル 1 から nまでの長さn − 2の一意の列である。ラベル 1 からnまでの長さn − 2の列Sが与えられたとき、プリューファー列が Sである一意のラベル付き木が存在する

直接的な帰結として、プリューファー列は、n頂点上のラベル付き木の集合と、ラベル 1 からnまでの長さn − 2の列の集合との間の一対一関係を与える。後者の集合のサイズはn n −2であるため、この一対一関係の存在はケイリーの公式、すなわちn頂点上にn n −2本のラベル付き木が存在することを証明する

その他の応用

出典:[4]

  • ケーリーの公式は強化され、次の主張を証明することができます
各頂点に次数が指定された完全グラフにおける全域木の数は多項式係数に等しい。 K n {\displaystyle K_{n}} d i {\displaystyle d_{i}} i {\displaystyle i}
n 2 d 1 1 d 2 1 d n 1 n 2 d 1 1 d 2 1 d n 1 {\displaystyle {\binom {n-2}{d_{1}-1,\,d_{2}-1,\,\dots ,\,d_{n}-1}}={\frac {(n-2)!}{(d_{1}-1)!(d_{2}-1)!\cdots (d_{n}-1)!}}.}
証明は、Prüfer シーケンスで番号が正確に何回も現れることを観察することによって行われます i {\displaystyle i} d i 1 {\textstyle d_{i}-1}

参考文献

  1. ^ Prüfer, H. (1918). 「順列に関する新たな条件」. Arch . Math. Phys . 27 : 742–744
  2. ^ Caminiti, S., Finocchi, I., Petreschi, R. (2007). 「ラベル付き木の符号化について」.理論計算機科学. 382 (2): 97– 108. doi : 10.1016/j.tcs.2007.03.009 .{{cite journal}}:CS1メイン:複数の名前:著者リスト(リンク
  3. ^ Jens Gottlieb、Bryant A. Julstrom、Günther R. Raidl、Franz Rothlauf (2001). 「Prüfer数:進化的探索におけるスパニングツリーの不適切な表現」(PDF) . Proceedings of the Genetic and Evolutionary Computation Conference (GECCO-2001) : 343– 350. 2006年9月26日時点のオリジナル(PDF)からアーカイブ。
  4. ^ 梶本 秀次 (2003). 「プリューファーコードの拡張とブロックからの連結グラフの組み立て」.グラフと組合せ論. 19 (2): 231– 239. doi :10.1007/s00373-002-0499-3. S2CID  22970936.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Prüfer_sequence&oldid=1305741421"