Ce problème avec est coNP-dur (et donc coNP-complet).k = 3
Pour le prouver, je vais réduire de 3-SAT au complément de ce problème (pour un circuit donné , le circuit -t-il une fonction non bijective).NC03
D'abord une définition préliminaire qui sera utile:
Nous définissons un graphe étiqueté comme un graphe orienté, dont certaines arêtes sont étiquetées avec des littéraux, avec la propriété que chaque sommet a soit une arête entrante non étiquetée, soit une arête entrante étiquetée, soit deux arêtes entrantes non étiquetées.
La réduction
Supposons que nous ayons une formule 3-SAT composée de clauses, chacune contenant trois littéraux. La première étape consiste à construire un graphe étiqueté partir de . Ce graphique étiqueté contient une copie du gadget suivant (désolé pour le terrible diagramme) pour chaque clause dans . Les trois bords étiquetés L1, L2 et L3 sont plutôt étiquetés avec les littéraux de la clause.m G ϕ ϕϕmgϕϕ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
Les gadgets (un pour chaque clause) sont tous disposés en un grand cycle avec le bas d'un gadget lié au haut du suivant.
Notez que cet arrangement de gadgets forme en fait un graphique étiqueté (chaque sommet a un indegree 1 ou 2 avec seulement des arêtes menant à des sommets d'indegree 1 étiquetés).
A partir de la formule et du graphe étiqueté (qui a été construit à partir de ), nous construisons ensuite un circuit (ceci conclura la réduction). Le nombre d'entrées et de sorties de ce circuit est , où est le nombre de variables dans et est le nombre de sommets dans . Une entrée et une sortie est affectée à chaque variable et à chaque sommet dans . Si est une variable dans alors nous ferons référence aux bits d'entrée et de sortie associés à commeG ϕ N C 0 3 n + v n ϕ v G ϕ G x ϕ x x i n x o u t l l = x l i n = x i n l l = ¬ x l i n = ¬ x i n v G v v i n v o u tϕgϕNC03n + vnϕvgϕgXϕXXje n et . De plus, si est un littéral avec alors nous définissons et si est un littéral avec alors nous définissons . Enfin, si est un sommet dans alors nous ferons référence aux bits d'entrée et de sortie associés à comme et .Xo u tll = xlje n= xje nll = ¬ xlje n= ¬ xje nvgvvje nvo u t
Il existe quatre types de bits de sortie:
1) Pour chaque variable in , . Notez que cette sortie dépend d'un seul bit d'entrée.ϕ x o u t = x i nXϕxout=xin
2) Pour chaque sommet dans le graphe étiqueté avec exactement un bord entrant tel que le bord ne soit pas étiqueté, . Notez que cette sortie ne dépend que de deux bits d'entrée.( u , v ) v o u t = v i n ⊕ u i nv(u,v)vout=vin⊕uin
3) Pour chaque sommet dans le graphe étiqueté avec exactement une arête entrante telle que l'arête est étiquetée , . Notez que cette sortie ne dépend que de trois bits d'entrée puisque ne dépend que de pour la variable utilisée dans le littéral .( u , v ) l v o u t = v i n ⊕ ( u i n ∧ l i n ) l i n x i n x lv(u,v)lvout=vin⊕(uin∧lin)linxinxl
4) Pour chaque sommet dans le graphe étiqueté avec exactement deux arêtes entrantes et , . Notez que cette sortie ne dépend que de trois bits d'entrée.( u , v ) ( w , v ) v o u t = v i n ⊕ ( u i n ∨ w i n )v(u,v)(w,v)vout=vin⊕(uin∨win)
Comme dans tous les cas, la sortie ne dépend que de trois entrées, le circuit que nous construisons est en comme souhaité.NC03
Cas de preuve d'exactitude 1: est satisfiableϕ
Supposons qu'il existe une affectation satisfaisante pour . Construisez ensuite les deux ensembles de valeurs suivants pour les entrées.ϕ
1) Les entrées associées aux variables de reçoivent les valeurs de l'affectation satisfaisante. Toutes les entrées associées aux sommets de reçoivent la valeur 0.GϕG
2) Les entrées associées aux variables de reçoivent les valeurs de l'affectation satisfaisante. Considérez les sommets dans un gadget clause . Si la valeur d'une étiquette est 0 (sous l'affectation satisfaisante), l'entrée associée au sommet au point d'extrémité cible de l'arête étiquetée avec cette étiquette reçoit une valeur de 0. Si L1 et L2 ont la valeur 0, alors la seconde -Le sommet du gadget (comme indiqué ci-dessus) reçoit également une valeur de 0. Tous les autres sommets reçoivent une valeur de 1.GϕG
Nous souhaitons montrer que ces deux ensembles d'entrées produisent des sorties identiques et donc que le circuit ne code pas une permutation.NC03
Considérez les quatre types de bits de sortie:
1) Pour chaque variable in , . Comme est le même pour les deux ensembles d'entrées, les sorties de ce formulaire seront toujours les mêmes pour les deux ensembles d'entrées.ϕ x o u t = x i n x i nxϕxout=xinxin
2) Pour chaque sommet dans le graphe étiqueté avec exactement un bord entrant tel que le bord ne soit pas étiqueté, . En examinant le gadget dont les copies constituent , nous voyons que toutes ces arêtes ne sont constituées que de paires de sommets dont les valeurs d'entrée sont toujours 1s sous le deuxième ensemble d'entrées. Ainsi sous le premier ensemble d'entrées et sous le deuxième ensemble d'entrées. Ainsi, les sorties de cette forme seront toujours les mêmes (et en fait zéro) entre les deux ensembles d'entrées.( u , v ) v o u t = v i n ⊕ u i n G v o u t = v i n ⊕ u i n = 0 ⊕ 0 = 0 v o u t = v i n ⊕ u i n = 1 ⊕ 1 = 0v(u,v)vout=vin⊕uinGvout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3) Pour chaque sommet dans le graphe étiqueté avec exactement une arête entrante telle que l'arête est étiquetée , . Si est faux sous l'affectation, alors est 0 sous les deux ensembles d'entrées; alors sous les deux ensembles d'entrées. Si est vrai sous l'affectation, est 0 sous le premier ensemble d'entrées et 1 sous le second; notez également que dans le gadget, les seuls bords étiquetés ont des sommets qui ont toujours( u , v ) l v o u t = v i n ⊕ ( u i n ∧ l ) l v i n v o u t = v i n ⊕ ( u i n ∧ l ) = v i n ⊕ ( u i n ∧ 0 ) = v i n = 0v(u,v)lvout=vin⊕(uin∧l)lvinvout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0v i n ( u , v ) u u i n = 1 u i n = v i n l V o u t = v i n ⊕ ( u i n ∧ l ) = v i n ⊕ ( u i n ∧ 1 ) = v i n ⊕ u i n = vlvin(u,v)uuin=1 sous le deuxième ensemble d'entrées. En conséquence, nous voyons que sous les deux ensembles d'entrées, chaque fois que est vrai; alors . Ainsi, les sorties de cette forme seront toujours les mêmes (et en fait zéro) entre les deux ensembles d'entrées.uin=vinlvout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
4) Pour chaque sommet dans le graphe étiqueté avec exactement deux arêtes entrantes et , . Il existe deux sommets de ce type dans chaque gadget. Le sommet supérieur et le deuxième sommet supérieur. Nous considérons ces deux cas séparément.( u , v ) ( w , v ) v o u t = v i n ⊕ ( u i n ∨ w i n )v(u,v)(w,v)vout=vin⊕(uin∨win)
4a) Lorsque est le deuxième sommet du gadget, u et w sont les deux extrémités cibles des arêtes étiquetées L1 et L2. Dans le premier ensemble d'entrées, v o u t = v i n ⊕ ( u i n ∨ w i n ) = 0 ⊕ ( 0 ∨ 0 ) = 0 . Sous le deuxième ensemble d'entrées, u i n est 0 si L1 a la valeur 0 sous l'affectation satisfaisante (aka u i n =vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); de même, w i n est 0 si L2 a la valeur 0 sous l'affectation satisfaisante (alias w i n = L 2 ); et enfin, v i n est défini comme étant 0 si L1 et L2 ont la valeur 0 (alias v i n = L 1 ∨ L 2 ). Ainsi, sous le deuxième ensemble d'entrées, v o u t = v i n ⊕ ( u i n ∨ w i n ) = (uin=L1winwin=L2vinvin=L1∨L2 . Ainsi, les sorties de cette forme seront toujours les mêmes (et en fait zéro) entre les deux ensembles d'entrées.vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0
4b) Lorsque est le sommet supérieur d'un gadget, u est le deuxième sommet supérieur et w est l'extrémité cible de l'arête étiquetée L3. Dans le premier ensemble d'entrées, v o u t = v i n ⊕ ( u i n ∨ w i n ) = 0 ⊕ ( 0 ∨ 0 ) = 0 . Sous le deuxième ensemble d'entrées, u i n est égal à 0 si L1 et L2 ont la valeur 0 (alias u i n = Lvuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); w i n est 0 si L3 a la valeur 0 (alias w i n = L 3 ); et enfin v i n = 1 . Ainsi, sous le deuxième ensemble d'entrées, v o u t = v i n ⊕ ( u i n ∨ w i n ) = 1 ⊕ ( ( L 1 ∨ L 2 ) ∨ L 3 )uin=L1∨L2winwin=L3vin=1 où l'égalité ( L 1 ∨ L 2 ∨ L 3 ) = 1 est définie par définition dans une affectation satisfaisante pour chaque clause. Ainsi, les sorties de cette forme seront toujours les mêmes (et en fait zéro) entre les deux ensembles d'entrées.vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1
On voit bien que les sorties sont les mêmes pour deux ensembles d'entrées différents et donc que le circuit une fonction non bijective.NC03
Cas de preuve d'exactitude 2: n'est pas satisfaisantϕ
Supposons maintenant qu'il n'existe aucune affectation satisfaisante pour . Supposons ensuite, par souci de contradiction, que deux ensembles d'entrées différents conduisent au circuit N C 0 3 ayant la même sortie.ϕNC03
Il est clair que les deux entrées doivent avoir les mêmes valeurs pour pour chaque variable x dans ϕ . Ainsi, nous pouvons maintenant nous référer sans ambiguïté à la valeur de x .xinxϕx
Définissez comme étant l'ensemble des sommets v dans G de telle sorte que v i n soit différent dans les deux ensembles de valeurs d'entrée.SvGvin
Nous prouverons les lemmes suivants ci-dessous:
SS
SS
SGSS
(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvSS
SNC03
Il ne reste plus qu'à prouver les lemmes.
Pour ce faire, nous notons que pour chaque type de sommet en (indegree 1 avec étiquette, indegree 1 sans étiquette et indegree 2), si toutes les arêtes entrantes proviennent de sommets qui ne sont pas en alors le sommet en question n'est pas non plus en . En effet, dans les trois cas, où est une fonction des entrées associées aux variables et / ou aux sommets avec des arêtes à . Étant donné que tous ces sommets ne sont pas dans par hypothèse, la valeur de doit être la même sous les deux ensembles d'entrées. Par conséquent, est également le même sous les deux ensembles d'entrées. En d'autres termesS S v o u t = v i n ⊕ X X v S X v i n = v o u t ⊕ X v SGSSvout=vin⊕XXvSXvin=vout⊕Xvest pas en .S
Maintenant que nous avons la règle qu'un sommet n'est pas dans lorsque tous ses prédécesseurs ne sont pas dans , les lemmes suivent simplement en appliquant la règle à plusieurs reprises au diagramme de gadget ci-dessus.SSS