Uma semana na minha aula de teoria da complexidade na faculdade, nosso único problema de lição de casa era provar que o # 2-SAT estava # P-completo, reduzindo de #BIPARTITE PERFECT MATCHING. Ninguém poderia resolvê-lo, mesmo quando todos nós finalmente nos unimos para trabalhar nisso.
Na aula seguinte, o professor ficou surpreso com a dificuldade que todos havíamos achado e apresentou sua prova. Estava errado. Felizmente, um cookie inteligente foi capaz de dar a redução correta, o que era absolutamente insano e nojento e complicado. A propósito, o professor tem um Prêmio Turing :)
De qualquer forma, enquanto eu e meus colegas de classe não conseguimos resolver esse problema, fomos capazes de resolver o problema mais fácil de reduzir de #BIPARTITE MATCHING para # 2-SAT, então aqui está a prova de que eu vim alguns anos atrás.
Teorema. # HARMONIZAÇÃO # 2-SAT.≤p
Prova . Seja uma instância de #BIPARTITE MATCHING. Deixe os conjuntos de partições serem
(então e ) .A = { a i ∣ i ∈ [ n ] } ,G = ( V, E)| Um | = n | B | = m
A = { aEu| I ∈ [ n ] } ,B = { bEu| I ∈ [ m ] }
| Um | =n| B | =m
Agora reduzimos a uma fórmula 2SAT , de modo que cada atribuição satisfatória de corresponda a e vice-versa. Para começar, para cada aresta crie uma variável . A ideia é que definir a variável como TRUE corresponda à borda está na correspondência. Para cada vértice , crie as expressões 2SAT
Para que seja satisfeito, todos, exceto no máximo um de , devem ser falsos. Para ver isso, assuma queGφφGumaEubj∈ Exeu jxeu jaibjiUm i x i j x i j X i k ( ¬ x i j ∨ ¬ x i k ) Um i B I C = N ⋀ i = 1 A i ∧ m ⋀ i = 1 B
Ai=⋀j<k(¬xij∨¬xik),Bi:=⋀j<k(¬xji∨¬xki)
Aixijxije são verdadeiros. Então é falso, assim como . O mesmo vale para . Deixando
, temos que é satisfeito se e somente se cada vértice em for incidente em no máximo uma aresta que escolhemos e, portanto, as arestas formam uma correspondência.
xik(¬xij∨¬xik)AiBi C GC=⋀i=1nAi∧⋀i=1mBi
CG