Эта проблема с является сложной для coNP (и, следовательно, coNP-полной).к = 3
Чтобы доказать это, я уменьшу от 3-SAT до дополнения к этой задаче (для данной цепи эта схема выполняет небиективную функцию).NС03
Сначала предварительное определение, которое будет полезно:
Мы помечаем помеченный граф как ориентированный граф, некоторые ребра которого помечены литералами со свойством, что каждая вершина имеет либо одно немеченое входящее ребро, одно помеченное входящее ребро, либо два немеченых входящих ребра.
Снижение
Предположим, у нас есть 3-SAT формула состоящая из m предложений, каждое из которых содержит три литерала. Первым шагом является построение помеченного графа G из ϕ . Этот помеченный граф содержит одну копию следующего гаджета (извините за ужасную диаграмму) для каждого предложения в ϕ . Три ребра, помеченные как L1, L2 и L3, вместо этого помечены литералами в предложении.φмгφφ
|
| |
| |
| O<-----\
| ^ |
| | |
| | |
| /----->O |
| | ^ |
| | | |
| | | |
| O O O
| ^ ^ ^
| | | |
| |L1 |L2 |L3
| | | |
| O O O
| ^ ^ ^
| | | |
| | | |
| \------O------/
| ^
| |
| |
| O
| ^
| |
|
Все гаджеты (по одному на каждое предложение) расположены в один большой цикл, причем нижняя часть одного гаджета связана с верхней частью следующего.
Обратите внимание, что это расположение гаджетов фактически формирует помеченный граф (каждая вершина имеет степень 1 или 2, причем только ребра приводят к маркировке вершин степени 1).
Из формулы и помеченного графа G (который был построен из ϕ ) мы затем построим схему N C 0 3 (это завершит редукцию). Количество входов и выходов для этой схемы п + V , где п есть число переменных в ф и V является числом вершин в G . Один вход и один выход присваивается каждой переменной в ф и к каждой вершине в G . Если x некоторая переменная в ϕφгφNС03н + вNφvгφгИксϕтогда мы будем ссылаться на входные и выходные биты, связанные с как 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 некоторая вершина в Gxxinxoutll=xlin=xinll=¬xlin=¬xinvGтогда мы будем ссылаться на входные и выходные биты, связанные с как v i n и v o u t .vvinvout
Существует четыре типа выходных битов:
1) Для каждой переменной в ϕ , x o u t = x i n . Обратите внимание, что этот вывод зависит только от одного входного бита.xϕxout=xin
2) Для каждой вершины в помеченном графе с ровно одним входящим ребром ( u , v ) таким, что ребро немечено, v o u t = v i n ⊕ u i n . Обратите внимание, что этот вывод зависит только от двух входных битов.v(u,v)vout=vin⊕uin
3) Для каждой вершины в помеченном графе с ровно одним входящим ребром ( u , v ) таким, что ребро помечено как l , v o u t = v i n ⊕ ( u i n ∧ l i n ) . Обратите внимание, что этот вывод зависит только от трех входных битов, поскольку l i n зависит только от x i n для любой переменной x , используемой в литерале l .v(u,v)lvout=vin⊕(uin∧lin)linxinxl
4) Для каждой вершины в меченого графа с ровно два входящих ребер ( U , V ) и ( ш , v ) , v о у т = v я п ⊕ ( у я п ∨ ш I н ) . Обратите внимание, что этот вывод зависит только от трех входных битов.v(u,v)(w,v)vout=vin⊕(uin∨win)
Поскольку во всех случаях выходной сигнал зависит только от трех входов, схема, которую мы строим, находится в по желанию.NC03
Доказательство правильности, случай 1: выполнимоϕ
Предположим, что существует удовлетворительное присваивание для . Затем создайте следующие два набора значений для входных данных.ϕ
1) Входные данные, связанные с переменными , получают значения удовлетворяющего назначения. Всем входам, связанным с вершинами G , присваивается значение 0.ϕG
2) Входные данные, связанные с переменными , получают значения удовлетворяющего назначения. Рассмотрим вершины в одном пункте гаджета в G . Если значение метки равно 0 (при удовлетворительном назначении), входу, связанному с вершиной в целевой конечной точке ребра, помеченного этой меткой, присваивается значение 0. Если и L1, и L2 имеют значение 0, то вторая Вершине вершины в гаджете (как показано выше) также присваивается значение 0. Всем остальным вершинам присваивается значение 1.ϕG
Мы хотим показать, что эти два набора входов дают идентичные выходы и, следовательно, что схема не кодирует перестановку.NC03
Рассмотрим четыре типа выходных битов:
1) Для каждой переменной в ϕ , x o u t = x i n . Поскольку x i n одинакова для обоих наборов входов, выходы этой формы всегда будут одинаковыми для двух наборов входов.xϕxout=xinxin
2) Для каждой вершины в помеченном графе с ровно одним входящим ребром ( u , v ) таким, что ребро немечено, v o u t = v i n ⊕ u i n . Исследуя гаджет, копии которого составляют G , мы видим, что все такие ребра состоят только из пар вершин, чьи входные значения всегда равны 1 с при втором наборе входных данных. Таким образом, v o u t = v i n ⊕ u i n = 0 ⊕ 0 =v(u,v)vout=vin⊕uinG в рамках первого набора входных данных и v о у т = v я п ⊕ у я п = 1 ⊕ 1 = 0 в рамках второго набора входных данных. Таким образом, выходные данные этой формы всегда будут одинаковыми (и фактически равны нулю) для двух наборов входных данных.vout=vin⊕uin=0⊕0=0vout=vin⊕uin=1⊕1=0
3) Для каждой вершины в помеченном графе с ровно одним входящим ребром ( u , v ) таким, что ребро помечено как l , v o u t = v i n ⊕ ( u i n ∧ l ) . Если в назначении l ложно, то v i n равно 0 для обоих наборов входов; тогда v o u t = v i n ⊕ ( u i n ∧v(u,v)lvout=vin⊕(uin∧l)lvin при обоих наборах входов. Если l является истинным для назначения, v i n равно 0 для первого набора входов и 1 для второго; также обратите внимание, что в гаджете только помеченные ребра ( u , v ) имеют вершины u, которые всегда имеют u i n = 1vout=vin⊕(uin∧l)=vin⊕(uin∧0)=vin=0lvin(u,v)uuin=1под вторым набором входов. В результате мы видим, что при обоих наборах входов всякий раз, когда 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 = v i n ⊕ vuin=vinl. Таким образом, выходные данные этой формы всегда будут одинаковыми (и фактически равны нулю) для двух наборов входных данных.vout=vin⊕(uin∧l)=vin⊕(uin∧1)=vin⊕uin=vin⊕vin=0
4) Для каждой вершины в меченого графа с ровно два входящих ребер ( U , V ) и ( ш , v ) , v о у т = v я п ⊕ ( у я п ∨ ш I н ) . В каждом гаджете есть две такие вершины. Верхняя вершина и вторая - из верхней вершины. Мы рассмотрим эти два случая отдельно.v(u,v)(w,v)vout=vin⊕(uin∨win)
4a) Когда - вершина второго верхнего в гаджете, u и w - две конечные точки ребер, обозначенные L1 и L2. В рамках первого набора входных данных, v о у т = v я п ⊕ ( у я п ∨ ж я п ) = 0 ⊕ ( 0 ∨ 0 ) = 0 . При втором наборе входов u i n равно 0, если L1 имеет значение 0 при удовлетворительном назначении (aka u i n =vuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); аналогично, w i n равно 0, если L2 имеет значение 0 при удовлетворительном назначении (aka w i n = L 2 ); и, наконец, v i n определено равным 0, если и L1, и L2 имеют значение 0 (иначе v i n = L 1 ∨ L 2 ). Таким образом, при втором наборе входных данных v o u t = v i n ⊕ ( u i n ∨ w i n ) = (uin=L1winwin=L2vinvin=L1∨L2 . Таким образом, выходные данные этой формы всегда будут одинаковыми (и фактически равны нулю) для двух наборов входных данных.vout=vin⊕(uin∨win)=(L1∨L2)⊕(L1∨L2)=0
4b) Когда - это верхняя вершина в гаджете, u - это вторая вершина, а w - конечная точка ребра, помеченного как L3. В рамках первого набора входных данных, v о у т = v я п ⊕ ( у я п ∨ ж я п ) = 0 ⊕ ( 0 ∨ 0 ) = 0 . При втором наборе входов u i n равно 0, если оба значения L1 и L2 имеют значение 0 (иначе u i n = Lvuwvout=vin⊕(uin∨win)=0⊕(0∨0)=0uin ); w i n равно 0, если L3 имеет значение 0 (иначе w i n = L 3 ); и наконец v i n = 1 . Таким образомрамках второго набора входных данных, v о у т = v я п ⊕ ( у я п ∨ ж я п ) = 1 ⊕ ( ( L 1 ∨ L 2 ) ∨ L 3 )uin=L1∨L2winwin=L3vin=1 где равенство ( L 1 ∨ L 2 ∨ L 3 ) = 1 выполняется по определению в удовлетворительном назначении для каждого предложения. Таким образом, выходные данные этой формы всегда будут одинаковыми (и фактически равны нулю) для двух наборов входных данных.vout=vin⊕(uin∨win)=1⊕((L1∨L2)∨L3)=1⊕(L1∨L2∨L3)=1⊕1=0(L1∨L2∨L3)=1
Ясно, что мы видим, что выходы одинаковы для двух разных наборов входов и, следовательно, что схема выполняет небиективную функцию.NC03
ϕ
ϕNC03
xinxϕx
SvGvin
Мы докажем следующие леммы ниже:
SS
SS
SGSS
(L1∨L2∨L3)(u,v)Lvout=vin⊕(uin∧L)L=0vout=vin⊕(uin∧L)=vin⊕(uin∧0)=vin⊕0=vinvinvSS
SNC03
Осталось доказать леммы.
GSSvout=vin⊕XXvSXvin=vout⊕XvS
SS