Ist es schwierig, optimale Additionsketten zu finden?

20

Eine Additionskette ist eine Folge von positiven ganzen Zahlen wobei und jeder Index ist. Für einige Indizes gilt . Die Länge der Additionskette beträgt ; Das Ziel der Additionskette ist .x 1 = 1 i 2 x i = x j + x k 1 j , k < i(x1,x2,,xn)x1=1i2xi=xj+xk1j,k<ix nnxn

Was ist über die Komplexität des folgenden Problems bekannt: Wie lang ist bei einer ganzen Zahl die kürzeste Additionskette, deren Ziel ? Ist es NP-schwer?NNN

Wikipedia verweist auf eine Veröffentlichung von Downey, Leong und Sethi aus dem Jahr 1981, die belegt, dass das folgende verwandte Problem NP-schwer ist: Was ist die Mindestlänge einer Additionskette, die die gesamte Menge umfasst, unter Berücksichtigung einer Reihe von ganzen Zahlen? Mehrere Autoren behaupten anscheinend, dass dieses Papier beweist, dass das Problem mit einem einzelnen Ziel NP-schwer ist, aber es ist nicht so.

Jeffε
quelle
2
zwei fragen: ist in binärer form gegeben, nehme ich an und kann und identisch sein (wenn ja, dann gibt es immer eine folge der länge log n über binäre expansion)j kNjk
suresh venkat
Nehmen wir an, ist binär angegeben, obwohl ich keinen Mehrfachzeitalgorithmus kenne, auch wenn unär ist. Und ja, das Hinzufügen zu sich selbst ist erlaubt - in der Tat ist es erforderlich, dass Sie vom Boden aufstehen. Die kürzeste Kette für 128 ist (1, 2, 4, 8, 16, 32, 64, 128). NNN
Jeffs

Antworten:

11

Das Problem wird in der Dissertation von Eric Lehman "Approximationsalgorithmen für die grammatikbasierte Datenkomprimierung" aus dem Jahr 2002 als offen erwähnt. Ab Seite 35 der Dissertation:

Dennoch bleibt eine genaue Lösung des Additionskettenproblems seltsam schwer fassbar. Die M-äre Methode läuft in Zeitpolylog (n) und ergibt eine 1 + o (1) -Näherung. Doch selbst wenn exponentiell mehr Zeit erlaubt ist, kann poly ( n) ist kein genauer Algorithmus bekannt. "

Andrew W.
quelle
2

Und auf der Hauptarbeit von Lehman gibt es einen guten Überblick über das Problem (Abschnitt VB) mit Referenzen.

mgalle
quelle
1

Ich möchte einige - bisher vielversprechende - Teilfortschritte in Richtung eines polynomialen Zeitalgorithmus dokumentieren. UPDATE : Es wurden einige Details hinzugefügt, um einen Fehler zu erklären, auf den @David hingewiesen hat (danke!).

Der Ansatz besteht darin, dies auf eine Instanz von MIN-ONES EVEN-3-CSPs (MOEC) zu reduzieren, die zufällig ein polynomielles zeitlösbares Problem darstellt. Der Beweis für die Reduzierung ist etwas unscharf, aber ich hoffe, dass es ihn gibt!

Eine MOEC-Instanz ist eine Familie von großen Teilmengen eines Universums von Variablen und einer ganzen Zahl k . Die Frage ist, ob es eine zufriedenstellende Zuordnung von Gewicht höchstens k gibt , wobei eine Zuordnung eine Funktion aus dem Universum zu { 0 , 1 } ist , das Gewicht einer Zuordnung die Anzahl der Variablen ist, die sie zuweist, und eine Zuordnung ist befriedigend, wenn für jede Teilmenge der Variablen { x , y , z } die Zuweisung (sagen wir f ) die Eigenschaft hat, dass:3kk{0,1}{x,y,z}f

.f(x)+f(y)+f(z)=0(mod  2)

Sie können sich dies als 3-SAT mit einem anderen Begriff der Erfüllbarkeit vorstellen - wählen Sie keine oder zwei. In Bezug auf die MOEC-Instanz werde ich etwas nachlässig sein, da ich neben den üblichen Subsets auch Implikationen, Disjunktionen der Länge zwei und die Einschränkung ( x = 1 ) berücksichtigen werde . Ich glaube, dass diese einfachen Additionen die Problempolynomzeit halten werden.3(x=1)

Nehmen wir an, wir reduzieren das Additionskettenproblem für die Zahl . Die für diese Reduzierung festgelegte Variable lautet wie folgt:n

Für jede ist die Variable N i . Ich werde die Variable N n als N neu schreiben . Führen Sie für jedes Paar i , j, so dass 1 i , j k ist , die Variablen P i j und Q i j ein . 1inNiNnNi,j1i,jkPijQij

Führe für jedes die folgenden Teilmengen ein, so dass k = i + j ist :i,j,kk=i+j

{Pij,Qij,Nk}

und die folgenden Implikationen:

und P i jN jPijNiPijNj

und die folgenden Einschränkungen:

.(N1=1),(N=1)

Schließlich müssen wir Einschränkungen hinzufügen, die sicherstellen, dass mindestens eine der Variablen ausgewählt wird, wenn eine "entsprechende" N- Variable (Missbrauch der Notation verzeihen) zugewiesen wird. Dies kann durch Addieren der üblichen ODER-Bedingung über alle P i j erfolgen, so dass i + j zur fraglichen N- Variablen addiert werden. Wir müssen jedoch einen Weg finden, dies im MOEC-Framework neu zu kodieren.PNPiji+jN

Lassen Sie mich also anhand einer Reihe von Variablen eine allgemeine Art zu sagen skizzieren:

,(X,l1,l2,,lt)

wie die Einschränkung „ wenn eine Zuweisung wird genügen , und setzt zu eins, dann genau eine der l i ‚s zu einem durch die Zuordnung festgelegt werden muss“, kann mit der moec Syntax kodiert werden. Beachten Sie, dass dies für unsere Anforderungen ausreicht. Wir führen einfach die Einschränkungen ein:Xli

.(Nk,{Pij | i+j=k})

Die Kodierung erfolgt wie folgt. Sei der verwurzelte vollständige Binärbaum auf t Blättern. Führe eine neue Variable T d i für alle 1 d log t und 1 i L ( d ) ein , wobei L ( d ) die Anzahl der Knoten von T X in der Tiefe d bezeichnet .TXtTdi1dlogt1iL(d)L(d)TXd

Führe für jeden Knoten , wenn p und q seine Kinder im Baum sind, die EVEN-3-Bedingung ein:Tdipq

{Tdi,p,q}

Dies bedeutet, dass, wenn eine Variable, die einem Knoten entspricht, auf true gesetzt ist, genau eines ihrer untergeordneten Elemente ebenfalls auf true gesetzt werden muss. Fügen Sie nun die Implikationen hinzu:

und ( d log t , j ) l j (Komma zur Verdeutlichung).(XT11)(dlogt,j)lj

Diese Kombination von EVEN-3-Einschränkungen und Implikationen entspricht der Einschränkung, die wir codieren wollten.

Intuitiv geschieht, dass die letzten beiden Bedingungen genau die Reaktionen auslösen, die zum Aufbau einer Additionskette erforderlich sind. Schauen wir uns insbesondere die , denen durch eine zufriedenstellende Zuweisung eine Eins zugewiesen wird - die Behauptung ist, dass sie eine Additionskette für N bilden : Da die Zuweisung gezwungen ist, N auf Eins zu setzen, muss es mindestens eine geben ein P i j , das auf eins gesetzt wurde, und die Implikationen zwingen N i und N jNiNNPijNiNjIch bin sicher, dass dies mit Induktion formalisiert werden kann, obwohl ich diesen Detaillierungsgrad noch nicht ausgearbeitet habe. Beachten Sie, dass eine satsifying Zuordnung , die optimal in der Anzahl der Einsen ist , zugewiesen wird nicht gesetzt gelten für zwei Paare ( r , s ) und ( r ' , s ' ) , aus dem Grunde , dass die P -Variablen ist mit dem zusätzlichen Gepäck der Implikationen, und die Q- Variablen nicht (sie sind da, um EVEN-3 Erfüllbarkeit zu gewährleisten - in einer Klausel, in der N i wahr ist und PPij(r,s)(r,s)PQNi ist nicht wahr, wir müssen noch etwas auswählen, um diese Klausel zu erfüllen, und aus Gründen, die leicht zu erkennen sind, kann dies nicht eine universelle Variable über Klauseln hinweg sein.Pij

Ich glaube also, dass eine Additionskette einer befriedigenden Aufgabe entspricht und umgekehrt. Lassen Sie mich einen Teil davon etwas formal beschreiben: Wenn eine Additionskette gegeben ist, konstruieren wir eine befriedigende Aufgabe . Zunächst setzt f alle N i , die in der Kette enthalten sind, auf eins und die anderen N i auf null. Wenn ferner k in der Additionskette vorhanden ist, dann sei i k , j k für jedes N k die Elemente in der Kette, so dass i k + j k = j . Dann setzt fffNiNikNkik,jkik+jk=jf auf Eins (und Q i k j k auf Null), und alle ( i , j ) sodass i i k und j j k und i + j = k , f Sätze Q i j zu einem (und P i j auf Null). Für alle k , die nicht in der Additionskette enthalten sind, für alle i , j, so dass iPikjkQikjk(i,j)iikjjki+j=kfQijPijki,j , setze alle Q i j und P i j auf Null (beachte, dass sich die Konsistenz aus der Tatsache ergibt, dass sich zwei Zahlen nur auf eine Weise addieren). Jede Klausel, die ein N i in der Kette enthält, ist erfüllt, weil entweder eine P-Variable oder eine Q-Variable, die ihr entspricht, auf eins gesetzt wurde (und beachten Sie, dass genau eine von ihnen für jedes Paar ( i , j ) auf eins gesetzt wird). Für jede andere Klausel wird alles auf Null gesetzt. Dass die Implikationen stimmen, ist leicht zu überprüfen.i+j=kQijPijNi(i,j)

Der unklare Teil ist der folgende: Weil für jedes in der Additionskette ausgewählte Element die Zuweisung eine Gewichtung von t ergibt (weil alle Q- Variablen auf eins gesetzt sind). Es besteht also die Möglichkeit, dass eine längere zusätzliche Kette einer günstigeren Zuordnung entspricht, aber ich bin mir ziemlich sicher, dass dies nicht aufgrund eines Beweises in der folgenden Richtung geschieht: Betrachten Sie eine optimale Additionskette und nehmen Sie an, dass es eine längere Kette gibt, die hat eine dementsprechend geringere gewichtserfüllende Zuordnung. Es ist klar, dass die Elemente der längeren Kette mindestens eines von dem kürzeren ausschließen - dieses Element sei x . Ich möchte sagen, dass die Kosten mit x entstanden sindttQxxwird ohnehin in der längeren Kette anfallen, und der Rest ist vergleichsweise günstig. Ich muss dies jedoch sorgfältig aufschreiben und sehe möglicherweise Dinge, die vom Post-Midnight-Syndrom herrühren.

Neeldhara
quelle
1
Wenn dies funktioniert, scheint es immer noch eine exponentielle Zeit zu sein (wenn N binär ausgedrückt wird), da die Anzahl der Variablen proportional zu N ^ 2 und nicht zu Polylog (N) ist.
David Eppstein
Ah ja, das hätte ich betonen sollen. Nach der Bemerkung von @ JeffE, dass auch das nicht klar ist, habe ich an in unary gedacht. Ich habe vor, über eine weitere Reduzierung der Instanzgröße nachzudenken, bin aber im Moment mehr daran interessiert, sicherzustellen, dass dies in Ordnung ist. Wenn ja, gibt es meiner Meinung nach viel Raum für Verbesserungen. Würden Sie den Ansatz übrigens als vielversprechend empfinden? N
Neeldhara,
Ich verstehe nicht, wie die von Ihnen beschriebenen Einschränkungen die Gültigkeit einer Lösung erzwingen. Was hindert Sie daran, P_ij = 0 und Q_ij = 1 für alle i + j = n und P_ij = Q_ij = 0 für alle anderen i, j zu setzen?
David Eppstein
Vielen Dank, dass Sie sich damit beschäftigt haben! Und ja, Sie haben völlig recht. Ich wollte eine Einschränkung hinzuzufügen , daß die eine der ist einer der betreffenden impliziert P i j s ', aber klar , es bläst die Komplexität der Instanz in die Hitting Set - Domäne, und während ich meinte , es zu beheben, Ich glaube, ich habe es stattdessen vergessen. Ich habe die Antwort mit einem möglichen Fix aktualisiert, es ist nur eine etwas mühsame (aber einfache) Konstruktion. NiPij
Neeldhara