最小移動でビンを埋めることはNP困難ですか?


33

ありビンとボールの種類が。番目のビンラベル有するのためのは、型のボールの予想数である。N nmはmiがiI 、J 1 ≤ J ≤ M Jai,j1≤j≤mj

タイプボールから始めます。タイプ各ボールの重量はであり、ビン重量がようにボールをビンに入れます。前の条件が保持されるようなボールの分布は、実行可能なソリューションと呼ばれます。b jbj j jj jw jwj i ic ici

ビンタイプボールを使用した実行可能なソリューションを考えてみると、コストは。最小コストの実行可能なソリューションを見つけたい。x i 、jxi,j j ji i∑ n i = 1 ∑ m j = 1 | a i 、j − x i 、j |∑ni=1∑mj=1|ai,j−xi,j|

{ w j }{wj}制限がない場合、この問題は明らかにNP困難です。サブセット和問題は、実行可能な解の存在に帰着します。

我々は条件を追加する場合は、こと分裂のすべてのためのそれは結果の問題かどうかはっきりしないので、そのサブセットの合計の減少はもはや作品は、NP困難のまま。実行可能な解決策の存在を確認するには時間(質問の最後に添付しかかかりませんが、これは最小コストの実行可能な解決策を提供しません。w j wjw j + 1wj+1 j jO (nm )O(nm)

この問題には、同等の整数プログラム定式化があります。1 \ leq i \ leq n、1 \ leq j \ leq mのa i 、j、 c i、 b j、 w jai,j,ci,bj,wjが与えられた場合: \ begin {align *} \ text {Minimize:}&\ sum_ {i = 1} ^ n \ sum_ {j = 1} ^ m | a_ {i、j} -x_ {i、j} | \\ \ text {subject to:}&\ sum_ {j = 1} ^ m x_ {i、j} w_j = c_i \ text {for all} 1 \ leq i \ leq n \\&\ sum_ {i = 1 } ^ n x_ {i、j} \ leq b_j \ text {for all} 1 \ leq j \ leq m \\&x_ {i、j} \ geq 0 \ text {for all} 1 \ leq i \ leq n 、1 \ leq j \ leq m \\ \ end {align *}1 ≤ I ≤ nは、1 ≤ J ≤ M1≤i≤n,1≤j≤m最小化:n ∑ i = 1 m ∑ j = 1 | ai、j−xi、j| 対象:M Σ J = 1、XI、J、WJ=CI 全てに対して 1つの≤I≤NN Σ I = 1 xはiは、J≤のBjの 全てについて 1≤J≤MX I 、J ≥ 0  に対するすべての  1 ≤ I ≤ nは、1 ≤ J ≤ M

Minimize:subject to:∑i=1n∑j=1m|ai,j−xi,j|∑j=1mxi,jwj=ci for all 1≤i≤n∑i=1nxi,j≤bj for all 1≤j≤mxi,j≥0 for all 1≤i≤n,1≤j≤m

私の質問は、

w jwjがすべてのjについてw j + 1wj+1を 分割するとき、上記の整数プログラムはNP困難ですか?jj

O (nm )O(nm)時間に実行可能な解があるかどうかを決定するアルゴリズム:

定義w m + 1 = w m(max j c j + 1 )wm+1=wm(maxjcj+1)とd j = w j + 1 / w jdj=wj+1/wj。してみましょうa %ba%b remainerことによって分割され、B。aabb

  1. w_1で割り切れないc iciが存在する場合、「実行可能な解決策なし」を返します。(不変c_i分割w_jは、常に次のループで維持されます)w 1w1c iciw jwj
  2. 以下のためのjjから11までmm:

    1. k ← ∑ n i = 1(c i / w j)%d jk←∑ni=1(ci/wj)%dj。(最小重量w jwjのボールが必要)
    2. b j < kbj<k場合、「実行可能なソリューションなし」を返します。
    3. c i ← c i − ((c i / w j)%d j)ci←ci−((ci/wj)%dj)すべての。(重量必要なボールの最小数を削除します)私iワットJwj
    4. bj+1←⌊(bj−k)/dj⌋bj+1←⌊(bj−k)/dj⌋。(小さなボールを大きなボールにグループ化)
  3. 「実行可能な解決策があります」を返します。

およびがのべき乗である特別な場合の多項式時間解n=1n=1wjwj22

場合ことが知られている及び全ての累乗である、この特別な場合は、多項式時間で解くことができます。 n=1n=1wjwj22Minimize:m∑j=1|aj−xj|subject to:m∑j=1wjxj=c0≤xj≤bj for all 1≤j≤m

Minimize:subject to:∑j=1m|aj−xj|∑j=1mwjxj=c0≤xj≤bj for all 1≤j≤m

解決策はYuzhou Guによって暗示され、ここに記事があります。

回答:


0

いくつかの背景。 上記の問題は、制限付きのナップザック問題です。制限の有無にかかわらず、最も効率的なナップザック問題の解決策は、NP困難な擬似多項式時間で解決できます。いくつかのバリエーションについては、 https://en.wikipedia.org/wiki/Knapsack_problem#Definitionを参照してください。このバリエーションの最初の制限は、ナップザック(ビン)に入れるアイテム(ボール)の値は重要ではないということです。問題は、ナップザックにアイテムを入れるのにかかる時間に制限されます。元の問題では、最も貴重なアイテムをできるだけ短時間で配置する必要があります。このバージョンのもう1つの制限は、重みと他のすべての引数が整数であることです。関心のある制限は、重みw j w j + 1 jwjすべてのについてを除算します。注:分数ナップサック問題は多項式時間で解くことができますが、元の問題に対する最も実用的な解決策は提示されません。この問題は、均等に分割する整数を使用します(合理的な解はありません)。おそらく、ナップザックの問題の大きな問題は何ですか?。wj+1j

主な質問は、おそらく、「がに対応する多項式によって無制限の場合、この問題はまだNPハード問題は、Pで制限されているため、より複雑ではありませんか?」が有界の場合はPに、が必ずしも分割しない場合はNP-w j i w j w j w j + 1 w j w j + 1 w j j w jwjiwjwjwj+1均等に(重みは単純にランダムです)、すべての制限により、この問題の複雑さがこれら2つの条件に制限されます。これらの条件(1.アイテム値制限のないランダムなウェイトナップザック問題と2.アイテム値制限のない分割可能なウェイトナップザック問題)は、重みの商自体がランダムになる可能性があるため、複雑さを減らすという点で互いに否定します(特に無制限の場合)、したがって指数時間の計算を課します(これは以下の例で示されます)。また、なぜなら分割、各々に対して指数関数的にサイズが増加wjwj+1wjj。代わりにランダム加重アイテム(その単位量全て100または50あるいは10の下ユニットの重みに制限することができるボール)を用いての、制限ではなく桁数に依存する時間複雑さの原因となるからであると同様、トライアル除算。これは指数関数です。wj

そのため、はい、がすべてのについてを分割する場合でも、上記の整数プログラムはNP-hardのままです。w j w j + 1 jwjwj+1j これは簡単に観察できます。

実施例1:せと2の累乗です。定数が2であるため、例に示すように、問題全体が2次時間で解決されます。重みはランダムではないため、計算は効率的に解決されます。n = 1 w pn=1wp

実施例2:せとして定義される、対応する素数であるように、。これは、がすべてのについてを分割するために適用できます。各はまでのすべての素数の積であることがます。単位重みの値は、次のような増加:。バインド(があるので〜w j + 1 w j ∗ p p j p = 2 、j = 1 :p = 3 、j = 2 、p = 5 、j = 3 、p = 7 、j = 4 、. 。。、P 、J w j w j + 1 j w j j 1 、wj+1wj∗ppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwjwj+1jwjj2,6,30,210,2310,30030,...1,2,6,30,210,2310,30030,...pjpjjlog(j)jlog(j)、素数定理を介して)、商はすべて素数であるため、NP-Intermediateの複雑さが得られます。

実施例3:せと定義することが、対応する無限の2つからランダムに選択された素数である。はすべてのについてを分割するため、これはこの問題に適用されます。我々は最初の5つの商を得るように、(ランダムに無限への2つから落下)。5番目のボールでも、重量は11桁です。幸いなことに、5番目の商は2であり、以上の素数ではありませんでした。 wj+1wj+1wj∗Rpwj∗RpRpRpjjwjwjwj+1wj+1jj101,2657,7,3169,2101,2657,7,3169,21010010100

上記の例3は、が対応する多項式によって制限されていない場合(ランダムな重み)に発生するものです。時間の複雑さは指数関数的で、NPハードです。いくつかの観点から、すべての重みを合計し、それらが適合するかどうかを確認してください。しかし、各サブセットが機能するかどうかを確認するよりも重みを割り切れるようにすることで、それを大幅に高速に解決する解決策はありません。数十個のボールの後、あなたはまだ数兆のサブセットまたは数兆の桁の領域にさえ入っています。wjwjii


1
しかし、素因数分解はNP困難ではないと考えられています。NP-indermediateと見なされます。
— rus9384

2
ここで削減は見られません。実際の削減とは何ですか?素因数分解の入力を取得し、整数プログラムの解を使用して何らかの形で因数分解を出力します。
— チャオ徐

2
「上記の整数プログラムはNP困難です」とはどういう意味ですか?個々のプログラムをNPハードにすることはできません。
— ユヴァルフィルマス

1
実際に素因数分解がであるN P ∩ C O N P。だから、それはN Pは -hard場合N P = C O N P。
— rus9384

2
残念ながら、追加の編集では解決しませんでした。実際の削減は役立ちます。
— チャオ徐
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.