4

問題の定式化をより正確にするために、「都市」ゲームとして再定式化させてください。2 人でプレイします。プレーヤー 1 は都市名を言いMoscowます。プレーヤー 2 は、以前に呼び出された都市の最後の文字から始まる都市名を言わなければなりません。この文字はWですので、2 番目のプレーヤーは のように言いますWashingtonN次に、プレイヤー 1 はasで始まる都市を呼び出しNorilsk、プレイヤー 2 は都市名を言う必要がありますK。都市の名前を言えない人はゲームに負けます。

a..zここで、文字をグラフの頂点として、都市名のリスト (たとえば 10000) をエッジとして持っているとします。すべてのエッジは 2 つの頂点を接続し ( と をmoscow接続するようmw)、向きを合わせm -> wます。

これでマルチグラフの方向性が決まりました。

タスクは、リストで指定された都市の可能な限り長いシーケンスを見つけることです。すべての都市が順番に出現するのは 1 回だけです。したがって、タスクはオイラー パスに非常に近いですが、与えられたグラフには多くのオイラー サブグラフが存在する可能性があります。

私の質問は、妥当な時間内に最大パスを見つける方法ですか?

私は、最大オイラーサブグラフ問題が NP 困難であることを知っています。しかし、私の問題では、グラフは非常に強く接続されており、少数の固定数の頂点があります (上記の「都市」ゲームのように)。それを使用して、優れたヒューリスティックを構築することは可能でしょうか?

また、stackoverflowでいくつかの単語シーケンスの質問を見つけましたが、合理的な答えはありません。単語がエッジの場合、文字グラフのオイラー部分グラフよりも、単語グラフのハミルトニアン部分グラフを見つけるのがはるかに難しいことは明らかであり、この質問はすべてハミルトニアンに関するものです。オイラーサブグラフではありません。

プログラミング言語または疑似コードでの有用なリンク、アイデア、アルゴリズムの説明、およびアプローチを高く評価します。


敬具、コンスタンチン

4

1 に答える 1

2

これを有向グラフの最長パス問題として表現するリソースがさらに見つかると思います。問題の最長経路定式化は、オイラー定式化よりも注目されているようです。また、最長経路はハミルトニアンとは異なることに注意してください。前者はグラフにまたがる必要がないからです。

各都市を頂点として扱い、実行可能なシーケンスを表す頂点のペアの間に円弧を置きます。

最長パスを概算するのは難しく、非常に単純なグラフでは NP 完全のままであることに注意してください: http://en.wikipedia.org/wiki/Longest_path_problem

関連する論文へのリンクは次のとおりです。

http://link.springer.com/article/10.1007/BF02579454

http://lup.lub.lu.se/luur/download?func=downloadFile&recordOId=957757&fileOId=9\65291 _

于 2013-10-10T14:27:23.440 に答える