グラフで最長の単純なパスを見つける方法は?

ナレク

無向グラフの場合、この問題はNP完全であることがわかっているため、考えられるすべてのパスをチェックするためにブルートフォースを実行する必要があります。どうすればそれができますか?擬似コードを提案し、そのアルゴリズムの複雑さを教えてください。

最適化があれば、それは素晴らしいことです!

AlexD

ナイーブなアプローチは、考えられるすべての頂点順列を実行できます。

すべての順列について{v1, ..., vN}fromv1からv2、次にfromv2からv3など取得できるかどうかを確認します。可能な場合は、対応するエッジの長さを現在のパスの長さに追加します。そうでない場合は、次の順列に進みます。

そのような道の中で最も長いものがあなたの答えです。


または、再帰を使用してほぼ同じことを行うことができます。

path = 0
bestPath = 0
used = new bool[N] // initialize with falses
for(u = 0; u < N; u++)
    Path(u); // build paths starting from u
print bestPath

どこ

Path(u)
    used[u] = true
    foreach v in neighborhood(u)
        if(!used[v])
            path += distance(u, v)
            bestPath = max(bestPath, path)
            Path(v)
            path -= distance(u, v)
    used[u] = false

時間の複雑さはひどいO(N * N^N)です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

グラフで最長のパスを見つける

分類Dev

グラフで最長のパスを見つける

分類Dev

重み付けされていない一般的なグラフのすべての単純なパスの中から最長増加部分列を見つける方法は?

分類Dev

重み付けされていないグラフで最長のパスを見つける

分類Dev

グラフ内のパスで最長のステップを見つける方法

分類Dev

次数10 ^ 5の完全グラフのEMSTを見つけるための最も単純で最も簡単なアルゴリズムは何ですか

分類Dev

グラフで最長のパスを見つけることがNP困難である理由

分類Dev

このアルゴリズムが有向非巡回グラフで最長のパスを見つけられないのはなぜですか?

分類Dev

d-正則グラフで単純なサイクルの長さを見つけるためのアルゴリズムの設計

分類Dev

Pandasデータフレーム(Python)のコーパスで最も頻繁な単語を見つける方法

分類Dev

str_detectを使用して、Rでフランス語のUTF-8アクセント文字を単純な文字で見つける方法は?

分類Dev

Pythonで最も長い単語を見つける方法は?

分類Dev

加重networkxグラフで合計が最大のパスを見つける方法は?

分類Dev

Javaで最後の単語の長さを見つける方法は?

分類Dev

Networkx:重み付けされていない、方向付けられていない、ラベル付けされていない、接続されたグラフで、指定された最大長のすべての一意のパスを見つける方法は?

分類Dev

ノードからすべての単純なパスを見つける方法は?

分類Dev

グラフで最長経路を見つける

分類Dev

QuickGraphライブラリで最も高価な(最高の)距離/パスを見つける方法は?

分類Dev

無向グラフで最長のサイクルの長さを見つけるための効率的なアルゴリズムはありますか?

分類Dev

パンダのデータフレーム行で最後のクラスターを見つける方法は?

分類Dev

単純なリストで特定の文字列を見つける

分類Dev

長いランダムな文字列で可能な英語の単語を見つける方法は?

分類Dev

Python NetworkXを使用してDigraphで最長の10パスを見つける方法は?

分類Dev

純粋なJavaScriptでスパンタグを使用して文字列内の単語をラップする最も簡単な方法は?

分類Dev

char配列で「A」の最長パスを見つける

分類Dev

A *で最長のパスを見つける

分類Dev

単純なパンダシリーズを考えると、そのヒストグラム(棒グラフ)を作成する簡単な方法は何ですか?

分類Dev

グラフの最初から最後までの単純なパスを計算する再帰関数

分類Dev

文字列内の最長の単語を見つけるプログラム

Related 関連記事

  1. 1

    グラフで最長のパスを見つける

  2. 2

    グラフで最長のパスを見つける

  3. 3

    重み付けされていない一般的なグラフのすべての単純なパスの中から最長増加部分列を見つける方法は?

  4. 4

    重み付けされていないグラフで最長のパスを見つける

  5. 5

    グラフ内のパスで最長のステップを見つける方法

  6. 6

    次数10 ^ 5の完全グラフのEMSTを見つけるための最も単純で最も簡単なアルゴリズムは何ですか

  7. 7

    グラフで最長のパスを見つけることがNP困難である理由

  8. 8

    このアルゴリズムが有向非巡回グラフで最長のパスを見つけられないのはなぜですか?

  9. 9

    d-正則グラフで単純なサイクルの長さを見つけるためのアルゴリズムの設計

  10. 10

    Pandasデータフレーム(Python)のコーパスで最も頻繁な単語を見つける方法

  11. 11

    str_detectを使用して、Rでフランス語のUTF-8アクセント文字を単純な文字で見つける方法は?

  12. 12

    Pythonで最も長い単語を見つける方法は?

  13. 13

    加重networkxグラフで合計が最大のパスを見つける方法は?

  14. 14

    Javaで最後の単語の長さを見つける方法は?

  15. 15

    Networkx:重み付けされていない、方向付けられていない、ラベル付けされていない、接続されたグラフで、指定された最大長のすべての一意のパスを見つける方法は?

  16. 16

    ノードからすべての単純なパスを見つける方法は?

  17. 17

    グラフで最長経路を見つける

  18. 18

    QuickGraphライブラリで最も高価な(最高の)距離/パスを見つける方法は?

  19. 19

    無向グラフで最長のサイクルの長さを見つけるための効率的なアルゴリズムはありますか?

  20. 20

    パンダのデータフレーム行で最後のクラスターを見つける方法は?

  21. 21

    単純なリストで特定の文字列を見つける

  22. 22

    長いランダムな文字列で可能な英語の単語を見つける方法は?

  23. 23

    Python NetworkXを使用してDigraphで最長の10パスを見つける方法は?

  24. 24

    純粋なJavaScriptでスパンタグを使用して文字列内の単語をラップする最も簡単な方法は?

  25. 25

    char配列で「A」の最長パスを見つける

  26. 26

    A *で最長のパスを見つける

  27. 27

    単純なパンダシリーズを考えると、そのヒストグラム(棒グラフ)を作成する簡単な方法は何ですか?

  28. 28

    グラフの最初から最後までの単純なパスを計算する再帰関数

  29. 29

    文字列内の最長の単語を見つけるプログラム

ホットタグ

アーカイブ