2

最初にいくつかの定義:

定義 1

グラフ G = (V, E) は、隣接していない頂点 u と v の各ペアについて、d(u) + d(v)>=n (n = |V|) である場合、「密」と呼ばれます。d(*) は頂点の次数を表します *

定義 2

G 上の「ハミルトニアン サイクル」は、すべての l!=h に対して vil != vih であり、{ vil, vil} が G の辺であるような一連の頂点 ( vi1, vi2,....vin, vi1 ) です。 .

問題は次のとおりです: 密な無向グラフ G = (V; E) が入力として与えられたとき、G が G 上のハミルトニアン サイクルを許容するかどうかを判断し、存在する場合はそのサイクルを出力するか、「N」を出力するプログラムを作成します。ない場合。

私の解決策は、ソースから始まるすべての可能なパスを見つけ、このソースに戻るパスが存在するかどうかを確認することです。残念ながら、このソリューションは効率的ではありません。

助言がありますか?ありがとうございました。

4

2 に答える 2

7

Ore の定理によると、定義 1 を満たすグラフは常にハミルトン サイクルを持ち、パーマーのアルゴリズムは O(n 2 )で 1 を与えます。

于 2012-06-25T09:00:36.547 に答える