Ich werde Zahlen verwenden, die mit 0 beginnen, anstatt mit 1 , da ich es viel natürlicher finde.01
Hier sind zwei Klassen von Problemen, die wir auf diese Weise lösen können:
Funktionen in TFNP (dh einwertige Gesamt-NP-Suchprobleme)
(Dies verallgemeinert das Beispiel mit Einweg-Permutationen. Es enthält als Sonderfall Entscheidungsprobleme aus U P ∩ c o U P. )UP∩coUP
Der Aufbau ist, dass wir ein Polynom-Zeit-Prädikat R ( x , y ) und ein Polynom p ( n ) haben, so dass für jedes x der Länge n ein eindeutiges y der Länge m = p ( n ) existiert, so dass R ( x , y ) gilt. Die Rechenaufgabe ist, gegeben x , find y .R(x,y)p(n)xnym=p(n)R(x,y)xy
Jetzt gehe ich von wlog aus, dass m gerade ist, also 2 m ≡ 1m( mod3 ) . Der Algorithmus soll ein gleichmäßig zufälliges y ∈ [ 0 , 2 m ) erzeugen und ausgeben2m≡1(mod3)y∈[0,2m)
y (als Lösung des Suchproblems) wenn R ( x , y ) ;yR(x,y)
y - y ' (als zufälliges Element von { 0 , 1 , 2 } ), wenn y - y ' ∈ { 1 , 2 } und R ( x , y ' ) sind ;y−y′{0,1,2}y−y′∈{1,2}R(x,y′)
y mod 3 (als zufälliges Element von { 0 , 1 , 2 } ), wenn kein y ' ∈ { y , y - 1 , y - 2 } R ( x , y ' ) löst.ymod3{0,1,2}y′∈{y,y−1,y−2}R(x,y′)
Wenn es keine Lösung für das Suchproblem gäbe, würden die 2- m- Zufallsentscheidungen 1 und 2 ( 2 m - 1 ) / 3- mal und 0 ( 2 m + 2 ) / 3- mal (ein weiteres Mal) ergeben. Wenn jedoch y das Suchproblem löst, haben wir mit den Elementen y , y + 1 , y + 2 (die alle drei Restklassen treffen) gearbeitet, sodass sie nur die Reste 1 und 2 erzeugen2m12 (2m−1)/30 (2m+2)/3yy,y+1,y+212, was den Vorteil von 0 ausgleicht . (Ich gehe hier von wlog aus, dass y < 2 m - 2 ist .)0y<2m−2
PPA- 3- Suchprobleme3
Ein bequemer Weg, PPA- 3 zu definieren, besteht darin, NP-Suchprobleme auf die folgenden Arten von Problemen zu reduzieren. Wir haben eine feste Polynomzeitfunktion f ( x , y ) und ein Polynom p ( n ) , so dass für jede Eingabe x der Länge n die induzierte Abbildung f x ( y ) = f ( x , y ) auf beschränkt ist Eingaben y der Länge m = p ( n ) sind eine Funktion f3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)x : [ 0 , 2 m ) → [ 0 , 2 m ) erfüllt , f x ( f x ( f x ( y ) ) ) = y für jedes y . Die Aufgabe ist, x gegeben , einen Fixpunkt y von f x zu finden : f x ( y ) = y .fx:[0,2m)→[0,2m)fx(fx(fx(y)))=yyxyfxfx(y)=y
Wir können dies auf folgende Weise lösen: Wenn x der Länge n gegeben ist , erzeugen wir ein zufälliges y der Länge m = p ( n ) und geben es ausxnym=p(n)
y wenn es ein Fixpunkt von f x ist ;yfx
andernfalls, y , f x ( y ) und f x ( f x ( y ) ) sind verschiedene Elemente. Wir können sie als Etikett { y , f x ( y ) , f x ( f x ( y ) ) } = { y 0 , y 1 , y 2 } mit y 0 < y 1 <yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y 2 und gebe i ∈ { 0 , 1 , 2 } aus, so dass y = y i .y0<y1<y2i∈{0,1,2}y=yi
Es ist klar aus den Definitionen , dass dies eine gleichmäßige Verteilung gibt auf { 0 , 1 , 2 } , als Nicht-Fixpoint y ‚s kommt in verdreifacht.{0,1,2}y
Lassen Sie mich fürs Protokoll die Gleichwertigkeit des obigen Problems mit Papadimitrious vollständigem Problem für PPA- 3 zeigen , da diese Klasse in der Literatur größtenteils vernachlässigt wird. Das Problem wird in Buss, Johnson, erwähnt: "Propositionale Beweise und Reduktionen zwischen NP-Suchproblemen", aber sie geben nicht die Äquivalenz an. Für PPA wird ein ähnliches Problem (EINZIG) in Beame, Cook, Edmonds, Impagliazzo und Pitassi angegeben: „Die relative Komplexität von NP-Suchproblemen“. Es ist nichts Besonderes an 3 , das folgende Argument gilt sinngemäß für jede ungerade Primzahl.33
Behauptung: Die folgenden NP-Suchprobleme sind vielfach miteinander reduzierbar:
Wenn ein Stromkreis gegeben ist, der einen zweigeteilten ungerichteten Graphen ( A ∪ B , E ) und einen Scheitelpunkt u ∈ A ∪ B darstellt, dessen Grad nicht durch 3 teilbar ist , finde einen anderen solchen Scheitelpunkt.(A∪B,E)u∈A∪B3
Wenn eine Schaltung gegeben ist, die einen gerichteten Graphen ( V , E ) und einen Scheitelpunkt u ∈ V darstellt, dessen Gradgleichgewicht (dh Außengrad minus Innengrad) nicht durch 3 teilbar ist , finde einen anderen solchen Scheitelpunkt.(V,E)u∈V3
Wenn eine Schaltung eine Funktion f berechnet : [ 0 , 2 n ) → [ 0 , 2 n ), so dass f 3 = i d , finde einen Fixpunkt von f .f:[0,2n)→[0,2n)f3=idf
Beweis:
1 ≤ p 2 ist offensichtlich, da es ausreicht, die Kanten von links nach rechts zu lenken.1≤p2
2 ≤ p 1 : Erstellen wir zunächst einen gewichteten zweigliedrigen Graphen. Lassen Sie A und B seinKopien von V : A = { x A : x ∈ V } , B = { x B : x ∈ V } . Für jede ursprüngliche Kante x → y setzen wir eine Kante { x A , y B } mit dem Gewicht 1 und eine Kante { x B ,2≤p1ABVA={xA:x∈V}B={xB:x∈V}x→y{xA,yB}1y A } des Gewichts - 1 . Dies macht deg ( x A ) = - deg ( x B ) gleich dem Gradgleichgewicht von x im Originalgraphen. Wenn u der gegebene Gleichgewichtspunkt ist, ist b ≢ 0{xB,yA}−1deg(xA)=−deg(xB)xu( mod3 ) addieren wir eine zusätzliche Kante { u A , u B } des Gewichts b , so dass deg ( u A ) = 2 b ≢ 0 istb≢0(mod3){uA,uB}b( mod3)deg(uA)=2b≢0(mod3), and deg(uB)=0deg(uB)=0. uAuA will be our chosen vertex.
In order to make the graph a plain unweighted undirected graph, we first reduce all weights modulo 33, and drop all edges of weight 00. This leaves only edges of weights 11 and 22. The latter can be replaced with suitable gadgets. For example, instead of a weight-22 edge {xA,yB}{xA,yB}, we include new vertices wAiwAi, zBizBi for i=0,…,3i=0,…,3, with edges {xA,yB}{xA,yB}, {xA,zBi}{xA,zBi}, {wAi,yB}{wAi,yB}, {wAi,zBi}{wAi,zBi}, {wAi,zB(i+1)mod4}{wAi,zB(i+1)mod4}: this makes deg(wAi)=deg(zBi)=3deg(wAi)=deg(zBi)=3, and contributes 5≡2(mod3)5≡2(mod3) to xAxA and yByB.
3≤p23≤p2: Let me assume for simplicity nn is even so that 2n≡1(mod3)2n≡1(mod3). We construct a directed graph on V=[0,2n)V=[0,2n) as follows:
We include edges 3x+1→3x3x+1→3x and 3x+2→3x3x+2→3x for each x<2n/3−1x<2n/3−1.
If x0<x1<x2x0<x1<x2 is a non-fixpoint orbit of ff, we include edges x0→x1x0→x1 and x0→x2x0→x2.
The chosen vertex will be u=2n−1u=2n−1. The first clause contributes balance 11 or −2≡1(mod3) to each vertex ≠u. Likewise, the second clause contributes balance −1 or 2≡−1(mod3) to vertices that are not fixpoints. Thus, assuming u is not already a fixpoint, it is indeed unbalanced modulo 3, and any other vertex unbalanced modulo 3 is a fixpoint of f.
1≤p3: We may assume that A=B=[0,2n) with n even, and the given vertex u∈A has degree ≡2(mod3).
We can efficiently label edges incident with a vertex y∈B as (y,j), where j<deg(y). In this way, E becomes a subset of [0,2n)×[0,2n), which we identify with [0,22n). We define a function f on [0,2n)×[0,2n) as follows.
On the complement of E: for each y∈B, and j such that deg(y)≤3j<2n−1, we make f(y,3j)=(y,3j+1), f(y,3j+1)=(y,3j+2), f(y,3j+2)=(y,3j). Also, f(3i,2n−1)=(3i+1,2n−1), f(3i+1,2n−1)=(3i+2,2n−1), f(3i+2,2n−1)=(3i,2n−1) for 3i<2n−1. This leaves out the point (2n−1,2n−1), and 3−(deg(y)mod3) points (y,i) for each y∈B whose degree is not divisible by 3.
On E: for each x∈A, we fix an efficient enumeration of its incident edges (y0,j0),…,(yd−1,jd−1), where d=deg(x). We put f(y3i,j3i)=(y3i+1,j3i+1), f(y3i+1,j3i+1)=(y3i+2,j3i+2), f(y3i+2,j3i+2)=(y3i,j3i) for i<⌊d/3⌋. This leaves out deg(x)mod3 points for each vertex x∈A whose degree is not divisible by 3.
Since deg(u)≡2(mod3), two of its incident edges were left out; we make them into yet another f cycle using (2n−1,2n−1) as the third point. The remaining points are left as fixpoints of f. By construction, any of them will give rise to a solution of (1).