Oui, . (Ici et ci-dessous, je suppose que est défini comme une classe uniforme. Bien sûr, avec \ ac non uniforme, nous obtiendrions simplement \ mathrm {PPAD / poly} .)A C 0 P A D = P P A D A C 0 A C 0 P P A D / p o l yAC0PAD=PPADAC0AC0PPAD/poly
L'idée de base est assez simple: peut faire une étape d'un calcul de machine de Turing, donc nous pouvons simuler un bord calculable en temps polynomial par une longue ligne polynomiale de bords calculables. Par une extension supplémentaire de l'idée, on pourrait simuler des bords calculables en temps poly avec un oracle PPAD, c'est-à-dire que PPAD est fermé sous la réductibilité de Turing; cet argument est donné dans Buss et Johnson .A C 0 A C 0AC0AC0
Il existe de nombreuses définitions équivalentes de PPAD dans la littérature qui diffèrent dans divers détails, donc permettez-moi d'en fixer une ici pour plus de précision. Un problème de recherche NP est dans PPAD s'il existe un polynôme , et les fonctions polynomiales , et avec les propriétés suivantes. Pour chaque entrée de longueur , et représentent un graphe orienté sans auto-boucles où , et chaque nœud a un diplôme et diplôme au plus . La représentation est telle que siSSp(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, alors et ; si a un degré extérieur , ; et si a en degré 0 , g ( x , u ) = uf(x, u ) = v g ( x , v ) = u u 0 f ( x , u ) = u uf(x,u)=vg(x,v)=uu0f(x,u)=uu0g(x,u)=u .
Le nœud 0 p ( n ) ∈ V x est une source (c'est-à-dire qu'il a en degré 0 et en degré 1 ). Si u ∈ V x est une source ou un puits (en degré 1 , en degré 0 ) autre que 0 p ( n ) , alors h ( x , u ) est une solution à S ( x ) .0p(n)∈Vx01u∈Vx100p(n)h(x,u)S(x)
Nous pouvons définir A C 0 P A D de la même manière, sauf que nous avons besoin que f , g , h soit dans F A C 0AC0PADf,g,hFAC0 .
Je vais ignorer h dans la construction pour plus de simplicité. (Il n'est pas difficile de montrer que l'on peut le prendre pour une projection, donc A C 0hAC0 calculable.)
Considérons donc un problème PPAD S défini par f et g , et fixons les machines de Turing calculant f et g dans le temps q ( n ) . Pour tout x , nous définissons un graphe orienté G ′ x = ( V ′ x , E ′ x ) dont les sommets sont des séquences de la forme suivante:Sfgfgq(n)xG′x=(V′x,E′x)
( 0 , u , c 1 , … , c k ) , où u ∈ V x , 0 ≤ k ≤ q ( n ) , et c 1 , … , c k sont les premières k configurations du calcul de f ( x , u ) .(0,u,c1,…,ck)u∈Vx0≤k≤q(n)c1,…,ckkf(x,u)
( 0 , u , c 1 , … , c q ( n ) , v , d 1 , … , d k ) , où u , v ∈ V x , 0 ≤ k ≤ q ( n ) , f ( x , u ) = v , c 1 , … , c q ((0,u,c1,…,cq(n),v,d1,…,dk)u,v∈Vx0≤k≤q(n)f(x,u)=v n )c1,…,cq(n)est le calcul complet de f ( x , u ) , et d 1 , … , d k sont les k premières étapes du calcul de g ( x , v ) .f(x,u)d1,…,dkkg(x,v)
( 1 , v , d 1 , … , d k ) , où 0 p ( n ) ≠ v ∈ V x , 0 ≤ k ≤ q ( n ) et d 1 , … , d k sont les k premièresconfigurations de la calcul de g ( x , v ) .(1,v,d1,…,dk)0p(n)≠v∈Vx0≤k≤q(n)d1,…,dkkg(x,v)
( 1 , v , d 1 , … , d q ( n ) , u , c 1 , … , c k ) , où u , v ∈ V x , v ≠ 0 p ( n ) , 0 ≤ k ≤ q ( n ) , g ( x , v ) = u ,(1,v,d1,…,dq(n),u,c1,…,ck)u,v∈Vxv≠0p(n)0≤k≤q(n)g(x,v)=u d 1 , … , d q ( n ) est le calcul de g ( x , v ) , et c 1 , … , c k sont les k premièresétapes du calcul de f ( x , u ) .d1,…,dq(n)g(x,v)c1,…,ckkf(x,u)
E ′ x est constitué des arêtes en V ′ x × V ′ x des types suivants:E′xV′x×V′x
( 0 , u , c 1 , … , c k ) → ( 0 , u , c 1 , … , c k + 1 )(0,u,c1,…,ck)→(0,u,c1,…,ck+1)
( 0 , u , c 1 , … , c q ( n ) ) → ( 0 , u , c 1 , … , c q ( n ) , v )(0,u,c1,…,cq(n))→(0,u,c1,…,cq(n),v)
( 0 , u , c 1 , … , c q ( n ) , v , d 1 , … , d k ) → ( 0 , u , c 1 , … , c q ( n ) , v , d 1 , … , d k + 1 )(0,u,c1,…,cq(n),v,d1,…,dk)→(0,u,c1,…,cq(n),v,d1,…,dk+1)
( 0 , u , c 1 , … , c q ( n ) , v , d 1 , … , d q ( n ) ) → ( 1 , v , d 1 , … , d q ( n ) , u , c 1 , … , C q ( n ) ) si f(0,u,c1,…,cq(n),v,d1,…,dq(n))→(1,v,d1,…,dq(n),u,c1,…,cq(n)) ( u ) = v et g ( v ) = u (c'est-à-dire que ( u , v ) ∈ E x , ou u = v est un sommet isolé)f(u)=vg(v)=u(u,v)∈Exu=v
( 1 , v , d 1 , … , d q ( n ) , u , c 1 , … , c k + 1 ) → ( 1 , v , d 1 , … , d q ( n ) , u , c 1 , … , C k )(1,v,d1,…,dq(n),u,c1,…,ck+1)→(1,v,d1,…,dq(n),u,c1,…,ck)
( 1 , v , d 1 , … , d q ( n ) , u ) → ( 1 , v , d 1 , … , d q ( n ) )(1,v,d1,…,dq(n),u)→(1,v,d1,…,dq(n))
( 1 , v , d 1 , … , d k + 1 ) → ( 1 , v , d 1 , … , d k )(1,v,d1,…,dk+1)→(1,v,d1,…,dk)
( 1 , u ) → ( 0 , u )(1,u)→(0,u)
Formellement, soit r ( n ) un polynôme délimitant les longueurs des représentations binaires de toutes les séquences ci-dessus (de sorte que nous pouvons étendre ou raccourcir les séquences, et extraire leurs éléments avec des fonctions A C 0 ); on met en fait V ′ x = { 0 , 1 } r ( n )r(n)AC0V′x={0,1}r(n) , et nous laissons tous les sommets à l'exception des séquences susmentionnées être isolés.
Il est facile de voir que les fonctions f ′ , g ′ représentant G ′ x sont calculables A C 0 : en particulier, nous pouvons tester dans A C 0 si c 1 , … , c k est un calcul partiel valide de f ( x , u ) , nous pouvons calculer c k + 1 à partir de c k , et nous pouvons extraire la valeur de f ( x , uf′g′G′xAC0AC0c1,…,ckf(x,u)ck+1ck)f(x,u) from cq(n)cq(n).
The sinks in G′xG′x are nodes of the form (0,u,c1,…,cq(n),u,d1,…,dq(n))(0,u,c1,…,cq(n),u,d1,…,dq(n)) where uu is a sink in GxGx. Likewise, sources are (1,v,d1,…,dq(n),v,c1,…,cq(n))(1,v,d1,…,dq(n),v,c1,…,cq(n)) where vv is a source in GxGx, except that in the special case v=0p(n)v=0p(n), we have pruned the line early and the corresponding source in G′x is just (0,0p(n)). We can assume the encoding of sequences is done in such a way that (0,0p(n )) = 0 r ( n ).
Ainsi, f ' et g ' de définir un A C 0 P A D problème S ' , et on peut extraire une solution de S ( x ) à partir d' une solution de S ' ( x ) par un A C 0 -fonction h ' dont les sorties le deuxième composant d'une séquence.