Em uma fórmula CNF de leitura duas vezes oposta, cada variável aparece duas vezes, uma vez positiva e uma vez negativa.
Estou interessado na problema, que consiste em calcular a paridade do número de satisfazer as atribuições de um oposto fórmula CNF leitura duas vezes.
Não consegui encontrar nenhuma referência sobre a complexidade desse problema. O mais próximo que pude encontrar é que a versão de contagem é # P -complete (consulte a seção 6.3 neste documento ).
Agradeço antecipadamente por sua ajuda.
Atualização 10 de abril de 2016
- No presente trabalho , o problema é mostrado para ser ⊕ P -completo, no entanto, a fórmula produzida pela redução de 3 SAT não está na CNF, e assim que você tentar convertê-lo de volta para CNF você recebe um fórmula de leitura três vezes.
- A versão monótona é mostrada como ⊕ P -complete neste documento . Nesse artigo, ⊕ Rtw-Opp-CNF é mencionado rapidamente no final da seção 4: Valiant diz que é degenerada. Não está claro para mim o que significa ser degenerado exatamente, nem o que isso implica em termos de dureza.
Atualização 12 de abril de 2016
Também seria muito interessante saber se alguém já estudou a complexidade do problema . Dada uma fórmula CNF de leitura duas vezes oposta, esse problema pede para calcular a diferença entre o número de atribuições satisfatórias com um número ímpar de variáveis definidas como true e o número de atribuições satisfatórias com um número par de variáveis definidas como true. Eu não encontrei nenhuma literatura sobre isso.
Atualização 29 de maio de 2016
Como apontado por Emil Jeřábek em seu comentário, não é verdade que Valiant disse que o problema é degenerado. Ele disse apenas que uma versão mais restrita desse problema, ⊕ Pl-Rtw-Opp-3CNF , é degenerada. Enquanto isso, continuo sem saber exatamente o que significa degenerar, mas pelo menos agora parece claro que é sinônimo de falta de poder expressivo.
fonte
Respostas:
Acontece que toda fórmula de leitura oposta duas vezes tem um número par de tarefas satisfatórias. Aqui está uma boa prova disso, embora provavelmente se possa eliminar a terminologia teórica dos grafos.
Deixe ser uma fórmula CNF-oposta de leitura duas vezes. Sem perda de generalidade, nenhuma cláusula contém uma variável e sua negação.ϕ
Considere o gráfico cujo conjunto de vértices são as cláusulas de ϕ e, para cada variável x , adicionamos uma aresta (não direcionada) incidente nas duas cláusulas que contêm x . Nossa suposição do WLOG em ϕ diz que este gráfico não possui auto-loops. Além disso, pense em rotular cada aresta pela variável que a define; Desta forma, podemos distinguir entre arestas paralelas.G ϕ x x ϕ
Uma orientação de é um grafo orientado cujos bordos são formadas através da atribuição de uma direcção de cada extremidade em L . Chame uma orientação de G admissível se todo vértice de G tiver uma aresta de saída. É fácil ver que satisfazem atribuições para φ estão em correspondência bijective com orientações admissíveis de G .G G G G ϕ G
Agora eu afirmo que o número de orientações admissíveis de é par. O argumento é "por involução": construo um mapa Φ com as seguintes propriedades:G Φ
Uma vez que estes são estabelecidos, podemos observar que as órbitas dos tem tamanho 2 e particionar as orientações admissíveis de G . Daqui resulta que o número de orientações admissíveis é par.Φ G
Para definir , deixe → G ser uma orientação admissível e considere quebrar → G em seus componentes fortemente conectados. Sends envia → G para a orientação formada invertendo todas as arestas nos componentes fortemente conectados. As propriedades são então verificadas diretamente:Φ G⃗ G⃗ Φ G⃗
fonte
Não tenho certeza se minha ideia é compreensível, por isso vou explicar no exemplo de Giorgio:
Primeiro, preciso alterar isso no formulário DNF:
Isso deve dar a mesma resposta. E não importa se eu calcular o número de soluções módulo 2 para isso:
ou para isso:
Então, eu estou escolhendo o segundo. Eu tenho implicantes:
Agora estou construindo um sistema de equações:
fonte
1) tem todas as variáveis,
2) toda variável ocorre exatamente uma (se a variável ocorrer duas vezes, teremos positivo e negativo em um implicante, de modo que esse valor será 0).
fonte