問題タブ [np-complete]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1639 参照

algorithm - リストを 2 つの等しい部分に分割するアルゴリズム

関連する質問:

2k正確に要素を含むリストがあるとしましょう。ここで、それを 2 つの部分に分割します。各部分の長さは ですが、部分k合計ができるだけ等しくなるようにします。

簡単な例: [3, 4, 4, 1, 2, 1]に分割される可能性が[1, 4, 3] and [1, 2, 4]あり、差額の合計は1

ここで、パーツが任意の長さを持つことができる場合、これは分割問題のバリエーションであり、弱いことがわかっています。NP-Complete.

しかし、リストを等分に分割することに関する制限(常にkとであるとしましょう2k) は、この問題を多項式時間で解決できるようにしますか? それに対する証拠はありますか(またはそれがまだであるという事実の証明スキームNP)?

0 投票する
0 に答える
254 参照

computer-science - これは NP 完全か

私の問題はここの問題と似ていますhttps://cs.stackexchange.com/questions/2244/need-a-np-complete-proof-on-an-exampleですが、少し異なります。

これが私の問題です:

A、B、Cの3つの島があり、扇型の筏がたくさんあります。A-->B-->C から橋を架ける必要があり、各部分に必要なラフトの数は既にわかっています。たとえば、AB を接続するには 4 つのラフトが必要であり、BC を接続するには 3 つのラフトが必要です。

これらの筏はもともと別の位置にあり、コストをかけずに回転できます。興味深いのは、必要に応じてそれらを重ねることができることです。1 台のラフトが移動する距離は、重心の元の位置とその展開位置の間の距離として計算できます。

目的は、橋 A-->B-->C を実現し、橋の各部分の筏の正確な数を使用して、筏を移動する最小の合計距離を持つ解を見つけることです。

私は自分の質問を示すために次の図を使用しました。

ここに画像の説明を入力

この図から、配置が直線ではない可能性があり、筏が別の筏と重なる可能性があることがわかります。

これらの筏の候補地が多すぎます。問題はNPCのようです。自分が正しいかどうか、NPC であることを証明する方法がわかりません。誰でもそれを解決する方法を知っていますか? ありがとう!

0 投票する
1 に答える
1094 参照

algorithm - 各アイテムの重量が同じである0-1ナップザックはNP完全ですか?

0-1ナップサック問題はNP完全として知られています。しかし、各アイテムの重みが同じである場合、問題はまだNP完全ですか?

0 投票する
2 に答える
9165 参照

algorithm - find the maximum number of vertex-disjoint paths in a graph with a constraint

Given a undirected graph G=(V,E), each edge is associated with a non-negative value.

How to find the maximum number of vertex-disjoint paths from s to t on the graph G, with a constraint that the sum of paths length is not greater than a predefined value T.

0 投票する
1 に答える
1214 参照

algorithm - 複数のサイズのビンを使用した 2D ビン パッキング

長さ x 幅 で定義された複数のサイズのビンがあるとしましょう。それらは「原材料」のサイズと呼ぶことができます。

原材料の量を最小限に抑えるために、その原材料から一定量のテーブル (長方形、ギロチン形式) を切り取る必要があります。

ビンのサイズが同じではないため、それらの値を反映するために、何らかの方法で因数分解するか、優先順位を付ける必要があります。したがって、ビンが大きいほど、明らかに「より高価」になります。

私はこれが NP 完全問題であることを知っており、多項式時間での決定論的アルゴリズムを期待していません。

問題を解決するアルゴリズムが必要です。

どんな提案も役に立ちます!

ありがとう

0 投票する
2 に答える
909 参照

combinatorics - 重なり合うオブジェクトを含むビンパッキング

容量の異なるビンと、指定されたサイズのオブジェクトがあります。目標は、これらのオブジェクトをビンに詰めることです。これまでは、ビンパッキング問題に似ています。しかし、ねじれは、各オブジェクトが別のオブジェクトと部分的にオーバーラップしていることです。したがって、オブジェクト1と2のサイズはs1とs2ですが、同じビンに入れると、埋められたスペースはs1+s2未満になります。オブジェクトの各ペアについてこの重複する値を知っていると仮定すると、この問題の元のビンパッキングのような近似アルゴリズムもありますか?

0 投票する
1 に答える
935 参照

graph - ノードとエッジの重みに基づくグラフの分割

エッジとノードの両方に重みがあるグラフ G=(V,E) があります。このグラフを分割して、同じサイズのパーティションを作成したいと考えています。パーティションのサイズの定義は、sum(vi)-sum(ej) です。ここで、vi はそのパーティション内のノードであり、ej はそのパーティション内の 2 つのノード間のエッジです。私の問題では、グラフは非常に密集しています(ほぼ完全です)。そのための近似アルゴリズムはありますか?

これは、ビンのサイズが同じでオブジェクトが重なっているビン パッキングの問題と似ています。ノードの重みはノードのサイズであり、エッジの重みは 2 つのオブジェクトがどれだけオーバーラップできるかを示します。

0 投票する
6 に答える
522 参照

algorithm - アルゴリズムを提案する (グラフ - おそらく NP-Complete)

さまざまな整数の長さの道路で接続された町のネットワークがあります。

旅行者は、ある町から別の町へ車で移動したいと考えています。ただし、彼は移動距離を最小限に抑えたくありません。代わりに、彼は旅のガソリン代を最小限に抑えたいと考えています。ガソリンはどの都市でも購入できますが、各都市はさまざまな (整数の) 価格でガソリンを供給します (したがって、最短ルートが必ずしも最安値であるとは限りません)。ガソリン 1 単位で、彼は 1 単位の距離を運転できます。彼の車は、タンクに入れることができるガソリンの量に制限があり、移動する各都市で購入するガソリンの単位を選択できます。最低ガソリン代を求めよ。

この問題を解決するために使用できる効率的なアルゴリズムを知っている人はいますか? このタイプの問題の名前でさえ、私が自分で調査できるように役立つでしょう! 明らかに、最短経路問題とはまったく同じではありません。その他のヒントをいただければ幸いです。

編集-私が抱えている実際の問題は、1000未満の都市があると述べています。<10000 道路; ガソリンタンクの容量は 1 から 100 の間になります。

0 投票する
1 に答える
1023 参照

algorithm - グラフ彩色とNP完全性

グラフ彩色のNP完全性を理解するのに苦労しています。

DFSで貪欲な彩色戦略(http://en.wikipedia.org/wiki/Graph_coloring#Greedy_coloring)を想定すると、グラフを最適に彩色できるようです。誰かが反例で私を助けてもらえますか?

明確にするために、すべてのノードを-1に色付けします。開始ノードに色を付ける1.隣接ノードにまだ割り当てられていない最小の整数ですべてのノードに色を付けるDFSトラバーサルを続行します。これがグラフの最適な色付けに失敗するのはいつですか?

0 投票する
2 に答える
318 参照

algorithm - マインスイーパ ソルバーの構築に適したメタヒューリスティックはどれですか?

マインスイーパ ソルバーを作成する必要がありますが、どこから始めればよいかわかりません。問題は、アリのコロニー最適化、シミュレートされたアニーリング、遺伝的プログラミングなどのメタヒューリスティック アルゴリズムを利用する必要があることです。インターネットで関連資料を見つけましたが、どれが役に立ち、どれが役に立たないかはよくわかりません。 、「完璧にフィットする」ものは何もないからです。以前にやった人が書いた記事に従わずに、メタヒューリスティックアルゴリズムを自分で調整する必要があるようです。だからこそ、始める前に知っておくべきことをすべて知りたいのです。

  1. 問題をメタヒューリスティックを使用して解決するのに適したものにするために、問題を定式化するにはどうすればよいですか? 基本的にCSP(制約充足問題)であることは知っていますが、その知識を使用してそれを解決するための適切なアルゴリズムを見つける方法がわかりません。
  2. 問題を解決するのに適したメタヒューリスティック (およびその理由) はどれですか?
  3. 私の問題に固有の注意事項はありますか?