Sì, AC0PAD=PPADAC0PAD=PPAD . (Qui e sotto, suppongo che AC0AC0 sia definito come una classe uniforme. Naturalmente, con \ ununiform \ acAC0AC0 otterremmo semplicemente PPAD/polyPPAD/poly .)
L'idea di base è abbastanza semplice: AC0AC0 può fare un passo nel calcolo di una macchina di Turing, quindi possiamo simulare un fronte calcolabile in tempo polinomiale da una linea polinomialmente lunga di bordi calcolabili in AC0AC0 . Con un'ulteriore estensione dell'idea, si potrebbero simulare i bordi calcolabili in tempo poli con un oracolo PPAD, cioè il PPAD è chiuso sotto la riducibilità di Turing; questa argomentazione è data in Buss e Johnson .
Ci sono molte definizioni equivalenti di PPAD in letteratura che differiscono in vari dettagli, quindi permettetemi di risolverne una qui per definizione. Un problema di ricerca NP è in PPAD se esiste una funzione polinomiale e tempo polinomiale , e con le seguenti proprietà. Per ogni input di lunghezza , e rappresentano un grafico diretto senza auto-loop in cui e ogni nodo ha in- laurea e laurea magistrale al massimo . La rappresentazione è tale che ifSSp(n)p(n)f(x,u)f(x,u)g(x,u)g(x,u)h(x,u)h(x,u)xxnnffggGx=(Vx,Ex)Gx=(Vx,Ex)Vx={0,1}p(n)Vx={0,1}p(n)11(u,v)∈Ex(u,v)∈Ex, quindi e ; se ha un grado superiore a , ; e se ha un grado , .f(x,u)=vf(x,u)=vg(x,v)=ug(x,v)=uuu00f(x,u)=uf(x,u)=uuu00g(x,u)=ug(x,u)=u
Il nodo è una sorgente (cioè ha un grado e un grado ). Se è una sorgente o un sink (in- , out- ) diverso da , allora è una soluzione a .0p(n)∈Vx0p(n)∈Vx0011u∈Vxu∈Vx11000p(n)0p(n)h(x,u)h(x,u)S(x)S(x)
Possiamo definire modo simile, tranne per il fatto che richiediamo che sia in .AC0PADAC0PADf,g,hf,g,hFAC0FAC0
Ignorerò nella costruzione per semplicità. (Non è difficile dimostrare che si può ritenere che sia una proiezione, quindi calcolabile.)hhAC0AC0
Quindi, considera un problema PPAD definito da e e correggi le macchine di Turing che calcolano e nel tempo . Per ogni , definiamo un grafico diretto cui vertici sono sequenze della seguente forma:SSffggffggq(n)q(n)xxG′x=(V′x,E′x)G′x=(V′x,E′x)
(0,u,c1,…,ck)(0,u,c1,…,ck) , dove , e sono le prime configurazioni nel calcolo di .u∈Vxu∈Vx0≤k≤q(n)0≤k≤q(n)c1,…,ckc1,…,ckkkf(x,u)f(x,u)
(0,u,c1,…,cq(n),v,d1,…,dk)(0,u,c1,…,cq(n),v,d1,…,dk) , dove , , , è il calcolo completo di e sono i primi passi nel calcolo di .u,v∈Vxu,v∈Vx0≤k≤q(n)0≤k≤q(n)f(x,u)=vf(x,u)=vc1,…,cq(n)c1,…,cq(n)f(x,u)f(x,u)d1,…,dkd1,…,dkkkg(x,v)g(x,v)
(1,v,d1,…,dk)(1,v,d1,…,dk) , dove , e sono i primi configurazioni nel calcolo di .0p(n)≠v∈Vx0p(n)≠v∈Vx0≤k≤q(n)0≤k≤q(n)d1,…,dkd1,…,dkkkg(x,v)g(x,v)
(1,v,d1,…,dq(n),u,c1,…,ck)(1,v,d1,…,dq(n),u,c1,…,ck) , dove , , , , è il calcolo di e sono i primi passi nel calcolo di .u,v∈Vxu,v∈Vxv≠0p(n)v≠0p(n)0≤k≤q(n)0≤k≤q(n)g(x,v)=ug(x,v)=ud1,…,dq(n)d1,…,dq(n)g(x,v)g(x,v)c1,…,ckc1,…,ckkkf(x,u)f(x,u)
E′xE′x costituito dai bordi in dei seguenti tipi:V′x×V′xV′x×V′x
(0,u,c1,…,ck)→(0,u,c1,…,ck+1)(0,u,c1,…,ck)→(0,u,c1,…,ck+1)
(0,u,c1,…,cq(n))→(0,u,c1,…,cq(n),v)(0,u,c1,…,cq(n))→(0,u,c1,…,cq(n),v)
(0,u,c1,…,cq(n),v,d1,…,dk)→(0,u,c1,…,cq(n),v,d1,…,dk+1)(0,u,c1,…,cq(n),v,d1,…,dk)→(0,u,c1,…,cq(n),v,d1,…,dk+1)
(0,u,c1,…,cq(n),v,d1,…,dq(n))→(1,v,d1,…,dq(n),u,c1,…,cq(n))(0,u,c1,…,cq(n),v,d1,…,dq(n))→(1,v,d1,…,dq(n),u,c1,…,cq(n)) se e (cioè, , oppure è un vertice isolato)f(u)=vf(u)=vg(v)=ug(v)=u(u,v)∈Ex(u,v)∈Exu=vu=v
(1,v,d1,…,dq(n),u,c1,…,ck+1)→(1,v,d1,…,dq(n),u,c1,…,ck)(1,v,d1,…,dq(n),u,c1,…,ck+1)→(1,v,d1,…,dq(n),u,c1,…,ck)
(1,v,d1,…,dq(n),u)→(1,v,d1,…,dq(n))(1,v,d1,…,dq(n),u)→(1,v,d1,…,dq(n))
(1,v,d1,…,dk+1)→(1,v,d1,…,dk)(1,v,d1,…,dk+1)→(1,v,d1,…,dk)
(1,u)→(0,u)(1,u)→(0,u)
Formalmente, sia un polinomio che limiti le lunghezze delle rappresentazioni binarie di tutte le sequenze sopra (in modo tale che possiamo estendere o accorciare le sequenze ed estrarre i loro elementi con funzioni ); mettiamo effettivamente e lasciamo isolati tutti i vertici tranne le sequenze sopra menzionate.r(n)r(n)AC0AC0V′x={0,1}r(n)V′x={0,1}r(n)
È facile vedere che le funzioni , rappresentano sono calcolabili: in particolare, possiamo testare in se è un calcolo parziale valido di , possiamo calcolare da e possiamo estrarre il valore di da .f′f′g′g′G′xG′xAC0AC0AC0AC0c1,…,ckc1,…,ckf(x,u)f(x,u)ck+1ck+1ckckf(x,u)f(x,u)cq(n)cq(n)
I lavandini in sono nodi della forma , dove è un lavandino in . Allo stesso modo, le fonti sono dove è una sorgente in , tranne che nello speciale case , abbiamo eliminato la riga in anticipo e la sorgente corrispondente in è solo . Possiamo supporre che la codifica delle sequenze sia effettuata in modo tale che .G′xG′x(0,u,c1,…,cq(n),u,d1,…,dq(n))(0,u,c1,…,cq(n),u,d1,…,dq(n))uuGxGx(1,v,d1,…,dq(n),v,c1,…,cq(n))(1,v,d1,…,dq(n),v,c1,…,cq(n))vvGxGxv=0p(n)v=0p(n)G′xG′x(0,0p(n))(0,0p(n))(0,0p(n))=0r(n)(0,0p(n))=0r(n)
Così, e definire un problema , ed è possibile estrarre una soluzione di da una soluzione di da un -funzione che uscite il secondo componente di una sequenza.f′f′g′g′AC0PADAC0PADS′S′S(x)S(x)S′(x)S′(x)AC0AC0h′