他の人はすでにコメントで可能な解決策をほのめかしています、詳しく説明しましょう。の場合d<=1
、解決策は即時です(そして、サイクルの正確な定義に依存します)ので、私は仮定しd>1
ます。
そのようなアルゴリズムの1つは次のとおりです。
V
。パスの長さが長くなるまで、d
すでにアクセスした頂点を許可しないでください。d
頂点の長さになったら、パスに頂点を追加し続けますが、パスの最後のd
頂点とは異なる頂点のみを許可するようになりました。(1)と(2)の両方で、そのような頂点の存在は、Gがd-regularであるという事実によって保証されます。追加する頂点を検索するときは、最後のd
頂点、つまり最後の頂点(U
)とその前の頂点のみを除外しd-1
ます。Uにはd
ネイバーがあるため、少なくとも1つは使用可能である必要があります。
条件(3)とGが有限であるという事実のために、アルゴリズムは停止します。
(2)ですでにアクセスした頂点を優先することは理にかなっていますが、最悪の場合の複雑さは変わりません。
これにより、最悪の場合の複雑さn*d
が得られます。頂点ごとに1回アクセスして、そのすべてのエッジをチェックする必要がある場合があるためです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加