最長経路問題に最適な部分構造がない理由は何ですか?


9

私が最も長いパスについて学習し、問題が最適なサブ構造を欠いていたため、一般的なグラフで最長のパスは動的計画法によって解くことができないという事実に出くわしました(私は文が最長に修正する必要があると思われた簡単な一般的なグラフにパスされていない解けることにより、動的プログラミング)。

それらが単純である必要があると想定する場合(何らかの理由でこれは必要ですが、まだ理解していません)最長であれば、反例を作成するのは簡単です。4つのノードA→B→C→D→Aを持つ正方形グラフを考えてみます。

ここに画像の説明を入力してください

AからDへの最長パスは、明らかにA→B→CDです。ただし、BからCへの最長パスはB→A→D→Cであり、パスB→C(これは、この場合、実際には最短経路です!)。

これは、パスを単純にする必要があるためにのみ機能するようです。最適な部分構造が存在しないことを証明するために、パス単純である必要があると想定する必要ありますか?

私は反例が良い証拠/証拠であるはずだと思います(私はそれを否定しません)、私は反例が非常に啓発的であるとまったく思いません。なぜそれが最適な部分構造を許可しないという点を証明するのかはわかりますが最長経路の最適部分構造がないはずであることが明らかである理由を実際に理解または直感することができません。たとえば、切り取りと貼り付けの引数が機能しないのはなぜですか?サブパスが最も長くない場合は、より長いパスをそのまま使用してください。それはとても魅力的に聞こえます、つまり、私たちがより長いものを配置した場合、もちろんそれは長くなるはずです...しかし、これは何らかの理由で間違っています。この例は実際にDP決してできないことを実際に証明していますか最長(シンプル?)パスを効率的に解決しますか?私はそれがPにないという一般的な証明を要求しません(それはP対NPソリューションを求めている可能性があるため)。私はちょうどそれその証拠の後だ解くことができないDPによって(またはDPは、この最長経路問題を解決することはできないというか、問題がないことを、少なくとも非常に強力な証拠ではない最適なサブ構造を持っています)。

私はウィキペディアで問題がNP-Hardであることを明確に見てきました。つまり、おそらく高速なアルゴリズムはありません。それが、最適な部分構造に明らかに欠けているべき証拠を提供するために存在する証拠/直感の唯一のタイプであるかどうか(または欠けていない場合、問題をより速くするために使用できないこと)はわかりません。それが高速の動的プログラムで解決できないことを示す唯一の方法ですか?

シンプルが必要理由です私たちがその要件を設けない場合、問題は些細な/興味のないものになるのですか?言い換えると、サイクルがある場合、そのサイクルから到達可能なすべてのノードへの最長パスの問題が(そのサイクルへのパスを見つけることによって)解決されています。到達可能なサイクルがないノードの場合、非循環グラフがあり、これはDPで解決できます(重みが正の場合)。さらに、サイクルがある場合は、自動的に物事が最適な部分構造を持つようになりました(私はそう思います)。最長パスは、2つのケースをカバーする最長パスで構成されているためです。どちらにも最適な部分構造が含まれています。だから、問題は単純なパスを必要とせずに取るに足らないものになったのですか?または、何か不足しているのですか、それとも単純なパスが必要なのかについてのより良い説明がありますか?しない一般的な最長パス DPで解決できますか?

また、DPを使用できないことを保証するために必要な要件は100%わかりません。負のエッジの重み、正の、重み付けされていない、有向、無向である必要がありますか?要件は何ですか?


2
「問題は最適な部分構造に欠けているため、動的プログラミングでは解決できません(一般的なグラフ上の単純な最長パスにステートメントを修正する必要があると思いますが、動的プログラミングでは解決できません)。 "は正式な意味で意味のある用語です。それらについて普遍的に合意された正式な定義はありません。こちらこちらご覧ください。それはあなたが要求する証明が存在しないことを意味します。
ラファエル

回答:


11

OO2

G=VEstVV{st}Gst

st

st=1+最高バツ{s}sバツEバツt{s}sttt=0。
stst=

O~(2n)

ここには最適な部分構造がありますが、追跡するにはパラメータが多すぎるため、問題が扱いにくくなっています。


Oの上にあるチルダはどういう意味ですか?それは、多項式の項を大きなO表記法で隠すことを意味していると思います。
チャーリーパーカー、

@CharlieParkerそうです。
Yuval Filmus 16

この定式化で単純なパスをどのように適用しますか?
Joost、

@Joost再帰はすでにこれを強制しています。
Yuval Filmus

xs

3

まず最初に、最も長い単純なパスはNP困難であり、それについて疑いの余地はありません(ハミルトニアンパスがそれに短縮されるため)。

第2に、非単純パスを検討する場合、非単純パスは1つのエッジ/頂点を複数回通過するため、ループがあるため、問題はあまり意味がありません。パスにループが存在する結果として、最長の非単純パスは無限になります。


1

私は同じことを過去1時間で考えていて、次の結論に達しました:

i)サイクルのないグラフの最長パスには最適な部分構造があり、最短パスも最適です。

ii)正のサイクルのない最長経路は最適な部分構造を持ち、負のサイクルのない最短経路も最適です。

iii)サイクルを無限にループできるため、正のサイクルを持つ最長パスと負のサイクルを持つ最短パスは存在しません。簡単なパスを見てみましょう。

iv)正のサイクルを持つ最長のシンプルパスと負のサイクルを持つ最短のシンプルパスはNPハードです。

DPはO(V + E)で(i)を解きます。Bellman-FordはO(VE)で(ii)を解決し、Djisktraは(ii)の特定のサブケースで役立ちます。

最長のパスが重みが無効にされた最短のパスであり、その逆の場合、文献はこのトピックについて混乱しています。最長パスには最適なサブ構造がありませんが、最短パスにはあるなど、包括的なステートメントを与える理由はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.