Ist es NP-schwer, Behälter mit minimalen Bewegungen zu füllen?

33

Es gibt Behälter und Arten von Bällen. Der te Behälter hat die Bezeichnungen für , dies ist die erwartete Anzahl von Bällen des Typs .nmiai,j1jmj

Sie beginnen mit Bällen vom Typ . Jeder Ball vom Typ hat das Gewicht und möchte die Bälle so in die Behälter legen, dass der Behälter das Gewicht . Eine Verteilung der Bälle so, dass die vorherige Bedingung erfüllt ist, wird als praktikable Lösung bezeichnet.bjjjwjici

Betrachten Sie eine praktikable Lösung mit xi,j Kugeln vom Typ j in bin i , dann sind die Kosten i=1nj=1m|ai,jxi,j|. Wir wollen eine kostengünstige Lösung finden.

Dieses Problem ist eindeutig NP-schwer, wenn es keine Einschränkung für {wj} . Das Teilmengenproblem reduziert sich auf das Vorhandensein einer realisierbaren Lösung.

Wenn wir jedoch die Bedingung hinzufügen, dass wjwj+1 für jedes j dividiert , funktioniert die Teilmengen-Summenreduktion nicht mehr, sodass nicht klar ist, ob das resultierende Problem NP-hart bleibt. Die Prüfung auf das Vorhandensein einer realisierbaren Lösung nimmt nur O(nm) Zeit in Anspruch (am Ende der Frage angefügt), aber dies gibt uns nicht die realisierbare Lösung mit minimalen Kosten.

Das Problem hat eine äquivalente ganzzahlige Programmformulierung. Gegeben für : ai,j,ci,bj,wj1in,1jm

Minimize:i=1nj=1m|ai,jxi,j|subject to:j=1mxi,jwj=ci for all 1ini=1nxi,jbj for all 1jmxi,j0 for all 1in,1jm

Meine Frage ist,

Ist das obige Ganzzahlprogramm NP-hart, wenn für alle dividiert ?wjwj+1j

Ein Algorithmus , um zu entscheiden , ob es eine realisierbare Lösung ist in ZeitO(nm) :

Definiere und . Sei der Rest, wenn durch geteilt wird .wm+1=wm(maxjcj+1)dj=wj+1/wja%bab

  1. Wenn es ein , das nicht durch teilbar ist , geben Sie "no feasible solution" zurück. (Die Invariante dividiert wird immer in der folgenden Schleife beibehalten)ciw1ciwj
  2. für von bis :j1m

    1. ki=1n(ci/wj)%dj . (das Minimum an Gewichtsbällen erforderlich)wj
    2. Wenn , wird "keine realisierbare Lösung" zurückgegeben.bj<k
    3. cici((ci/wj)%dj) für alle . (Entfernen Sie die Mindestanzahl der erforderlichen Gewichtsbälle )iwj
    4. bj+1(bjk)/dj . (Gruppiere kleinere Bälle zu einem größeren Ball)
  3. return "es gibt eine machbare lösung".

Eine polynomielle für den Sonderfall, bei dem und von s sindn=1wj2

Es ist bekannt, dass, wenn und alle Potenzen von , dieser Sonderfall in Polynomzeit gelöst werden kann. n=1wj2

Minimize:j=1m|ajxj|subject to:j=1mwjxj=c0xjbj for all 1jm

Die Lösung wurde von Yuzhou Gu angedeutet , und eine Zusammenfassung finden Sie hier .

Chao Xu
quelle

Antworten:

0

Etwas Hintergrund. Das obige Problem ist das Rucksackproblem mit Einschränkungen. Die effizienteste Rucksack-Problemlösung mit oder ohne Einschränkungen kann in pseudopolynomialer Zeit gelöst werden, immer noch NP-Hard. Für einige Variationen siehe https://en.wikipedia.org/wiki/Knapsack_problem#Definition . Die erste Einschränkung bei dieser Variante besteht darin, dass der Wert von Gegenständen (Bällen), die in den Rucksack (Mülleimer) gelegt werden sollen, keine Rolle spielt. Das Problem beschränkt sich dann auf die Zeit, die benötigt wird, um die Gegenstände in den Rucksack zu legen. Das ursprüngliche Problem erfordert, dass die wertvollsten Gegenstände in möglichst kurzer Zeit abgelegt werden. Eine weitere Einschränkung bei dieser Version ist, dass die Gewichte und alle anderen Argumente Ganzzahlen sind. Und die Einschränkung des Interesses ist, dass die Gewichtewj Teilen wj+1 für alle . Hinweis: Das Fractional-Knapsack-Problem kann in Polynomialzeit gelöst werden, bietet jedoch nicht die praktischste Lösung für das ursprüngliche Problem. Dieses Problem verwendet ganze Zahlen, die sich gleichmäßig teilen (keine rationalen Lösungen). Vielleicht sehen, was die große Sache mit dem Rucksackproblem ist? .j

Die Hauptfrage sollte vielleicht lauten: " dieses Problem immer noch NP-schwer, wenn durch ein Polynom begrenzt ist, das , da das Problem weniger komplex ist (in P), wenn es begrenzt ist? Der Grund, warum ich dies sage, liegt daran, dass das Problem es kann Es wird gezeigt, dass es in P ist, wenn begrenzt ist, und NP-hart, wenn nicht notwendigerweise teilt. i w j w j w j + 1wjiwjwjwj+1Gleichmäßig (die Gewichte sind einfach zufällig) begrenzen alle Einschränkungen die Komplexität dieses Problems auf diese beiden Bedingungen. Diese Bedingungen (1. das Zufallsgewicht-Rucksackproblem ohne die Artikelwertbeschränkung und 2. das teilbare Gewicht-Rucksackproblem ohne die Artikelwertbeschränkung) negieren sich im Hinblick auf die Verringerung der Komplexität, da die Quotienten der Gewichte selbst zufällig sein können ( besonders wenn unbegrenzt), wodurch exponentielle Zeitberechnungen auferlegt werden (dies wird im folgenden Beispiel gezeigt). Darüber hinaus, da dividieren , an Größe zunimmt exponentiell für jedenw j + 1 w j jwjwj+1wjj. Dies liegt daran , anstatt zufällig gewichteten Elemente des Verwendens (Kugeln , deren Gewichtseinheit alle Einheitsgewichte unter 100 oder 50 oder sogar 10 begrenzt sein kann), bewirkt , dass die Beschränkung , anstatt die Zeitkomplexität von der Anzahl der Ziffern des abzuhängen , das gleiche wie Versuchsteilung, die exponentiell ist.wj

Also ja, das obige Integer-Programm bleibt NP-hart, auch wenn für alle dividiertw j + 1 jwjwj+1j . Und das ist leicht zu beobachten.

Beispiel 1: Es sein=1 und Zweierpotenzen. Durch die Konstante 2 wird das gesamte Problem in quadratischer Zeit gelöst, wie Ihr Beispiel zeigt. Die Gewichte sind nicht zufällig und daher wird die Berechnung effizient gelöst.wp

Beispiel 2: Es seials, wobeidie Primzahl ist, die, so dass. Dies gilt alswj+1wjppjp=2,j=1:p=3,j=2,p=5,j=3,p=7,j=4,...,P,Jwj für alle dividiert . Wir bekommen jedes w j ist das Produkt aller Primzahlen bis j . Die Werte der Einheitsgewichte erhöhen als solche: 1 , 2 , 6 , 30 , 210 , 2310 , 30030 , . .wj+1jwjj. Da esüber den Primzahlsatzeine Schranke gibt ( p j ~ j l o g ( j ) ), da die Quotienten alle Primzahlen sind, erhalten wir die Komplexität NP-Intermediate.1,2,6,30,210,2310,30030,...pjjlog(j)

Beispiel 3: Sei definiert als w jR p , wobei R p eine zufällig gewählte Primzahl von zwei bis unendlich ist, entsprechend j . Dies gilt für dieses Problem, da w j w j + 1 für alle j teilt. Wir erhalten die ersten 5 Quotienten (zufällig von zwei nach unendlich fallend) als 101 , 2657 , 7 , 3169 , 2wj+1wjRpRpjwjwj+1j101,2657,7,3169,2. Wir sehen, dass das Gewicht auch beim 5. Ball elf Stellen hat. Glücklicherweise war der fünfte Quotient zwei und keine Primzahl in der Größenordnung von oder mehr. 10100

Beispiel drei oben ist, was passiert, wenn nicht durch ein Polynom entsprechend i begrenzt ist (zufällige Gewichte) . Die zeitliche Komplexität ist exponentiell, NP-schwer. Addieren Sie für eine gewisse Perspektive einfach alle Gewichte und prüfen Sie, ob sie passen. Es gibt jedoch keine Lösung, um das Problem durch Aufteilen der Gewichte erheblich schneller zu lösen, als jede Untergruppe zu testen, ob es funktioniert. Nach ein paar Dutzend Bällen betreten Sie immer noch das Reich der Billionen von Teilmengen oder Billionen von Ziffern.wji

Jeff
quelle
1
Die Primfaktorisierung wird jedoch nicht als NP-hart angesehen. Es gilt als NP-mittelmäßig.
Rus9384
2
Ich sehe hier keine Reduzierung. Was ist die tatsächliche Reduzierung? Eingabe der Primfaktorisierung und Ausgabe der Faktorisierung unter Verwendung der Lösung des Integer-Programms.
Chao Xu
2
Würden Sie damit meinen, dass "das obige Integer-Programm NP-schwer ist"? Ein einzelnes Programm kann nicht NP-schwer sein.
Yuval Filmus
1
In der Tat Primfaktorzerlegung ist in . Es ist also N P -hart, wenn N P = c o N P ist . NPcoNPNPNP=coNP
Rus9384
2
Leider haben die zusätzlichen Änderungen nicht geklärt. Eine tatsächliche Reduzierung wäre hilfreich.
Chao Xu