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 < ix n
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?N
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.
Antworten:
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. "
quelle
Und auf der Hauptarbeit von Lehman gibt es einen guten Überblick über das Problem (Abschnitt VB) mit Referenzen.
quelle
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:3 k k { 0 , 1 } { x , y, z} f
.f( x ) + f( y) + f( z) = 0 ( m o d 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 .1 ≤ i ≤ n Nich Nn N ich , j 1 ≤ i , j ≤ k Pich j Q.ich j
Führe für jedes die folgenden Teilmengen ein, so dass k = i + j ist :ich , j , k k = i + j
und die folgenden Implikationen:
und P i j ⇒ N jPich j⇒Ni Pij⇒Nj
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.P N Pij i+j N
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:X li
.(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 .TX t Tdich 1 ≤ d≤ logt 1 ≤ i ≤ L ( d) L (d) TX d
Führe für jeden Knoten , wenn p und q seine Kinder im Baum sind, die EVEN-3-Bedingung ein:Tdich 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).( X⇒ T11) ( 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 jNich N N Pich j Nich Nj Ich 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 PPich j ( r , s ) ( r′, s′) P Q. Nich 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.Pich j
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 ff f Ni Ni k Nk ik,jk ik+jk=j f 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 iPikjk Qikjk (i,j) i≠ik j≠jk i+j=k f Qij Pij k i,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=k Qij Pij Ni (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 sindt t Q x x wird 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.
quelle