Complexidade do cálculo da paridade de leitura duas vezes oposta à fórmula CNF (

11

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.Rtw-Opp-CNF

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 ).#Rtw-Opp-CNF#P

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.Rtw-Opp-SATP3SAT
  • 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.Rtw-Mon-CNFPRtw-Opp-CNF

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.ΔRtw-Opp-CNF


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.Rtw-Opp-CNFPl-Rtw-Opp-3CNF

Giorgio Camerani
fonte
⊕Rtw-Opp-CNF é tão difícil quanto ⊕Rtw-Mon-CNF. Você pode criar o gadget de negação: (i0 x x x v x1) (x1 x x2) (i1 x x0 x x2). Se i0 = i1, peso = 0 (no módulo 2). Caso contrário, peso = 1.
Não consigo encontrar redução de tRtw-Mon-CNF para ⊕Rtw-Opp-CNF, mas encontrei um algoritmo polinomial para resolver ⊕Rtw-Opp-CNF. Então, tRtw-Opp-CNF é mais simples.
Não consigo encontrar uma menção ao RTW-OPP-CNF no artigo de Valiant. Ele afirma que ⊕Pl-Rtw-Opp-3CNF é "degenerado", mas isso envolve várias restrições adicionais.
Emil Jeřábek 3.0 20/16
@ EmilJeřábek: Você está definitivamente certo. Fui enganado por minha ignorância sobre o significado de "degenerado" e apliquei o mesmo tipo de raciocínio normalmente aplicado na presença de resultados de completude: se um determinado problema é completo para alguma classe, a remoção de restrições obviamente preserva a integralidade. Mesmo que eu ainda não saiba exatamente o que "degenerar" significa, é pelo menos claro para mim agora que esse termo é de alguma forma um sinônimo de fraqueza (ou seja, falta de poder expressivo), portanto o raciocínio mencionado não pode ser aplicado. Corrigi a pergunta de acordo.
Giorgio Camerani
1
@Maciej: Sério? Como o seu algoritmo polinomial funciona?
Giorgio Camerani

Respostas:

3

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ϕxxϕ

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 .GGG 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Φ

  1. é totalmente definido (toda orientação admissível é mapeada em algum lugar)Φ
  2. envia orientações admissíveis para orientações admissíveisΦ
  3. é uma involução ( Φ Φ é a identidade)ΦΦΦ
  4. não tem pontos fixosΦ

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:ΦGGΦG

  1. Todo gráfico direcionado pode ser particionado em componentes fortemente conectados.
  2. Considere o "DAG de componentes fortemente conectados" em ; chame de gráfico quociente. Observe que Φ ( G ) terá a mesma estrutura de quociente, pois Φ não afeta as arestas entre SCCs, e os gráficos fortemente conectados permanecem fortemente conectados ao reverter todas as suas arestas. Além disso, se um SCC tiver mais de um vértice, todos os seus vértices constituintes terão uma aresta de entrada. Se um SCC tiver apenas um único vértice e não for uma fonte no quociente, todos os seus vértices constituintes terão uma aresta de entrada. Então, para mostrar Φ ( G )GΦ(G)ΦΦ(G)é admissível, basta mostrar que os SCCs que são fontes no quociente têm vários vértices. Mas isso segue o fato de que todo vértice no componente tem uma aresta de entrada, que deve vir de outro vértice no componente, pois não possui auto-loops e o componente é uma fonte no quociente.G
  3. Esta situação resulta do facto da estrutura de quociente coincide com a estrutura do quociente L .Φ(G)G
  4. Por admissibilidade, tem um ciclo e, portanto, alguns CEC com uma borda dentro dele.G
Andrew Morgan
fonte
Boa observação! Uma maneira mais simples de ver isso (como você diz, "eliminar a terminologia teórica dos grafos") é observar que, se uma atribuição a satisfaz F, então a atribuição a '(x) = 1-a (x) também satisfaz F. Isso pode ser mostrado facilmente por indução no número de variáveis ​​de F.
holf 26/10/16
Φ01203101200310
x¬xy¬z¬yz(1,1,1)(0,0,0)
ΦMxyxxyM
@Emil: Ah sim, você está certo. Se entendi bem sua sugestão, você está dizendo que quebra a orientação em componentes fortemente conectados e inverte as arestas nos componentes. Eu acho que isso funciona. Vou atualizar minha resposta de acordo. Muito obrigado!!
Andrew Morgan
0

Não tenho certeza se minha ideia é compreensível, por isso vou explicar no exemplo de Giorgio:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

Primeiro, preciso alterar isso no formulário DNF:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

Isso deve dar a mesma resposta. E não importa se eu calcular o número de soluções módulo 2 para isso:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

ou para isso:

(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)

Então, eu estou escolhendo o segundo. Eu tenho implicantes:

i0(x1x2x3)

i1(¬x1¬x3x4)

i2(¬x4x5)

i3(¬x2¬x5¬x6)

Agora estou construindo um sistema de equações:

j0j1=1

j0j3=1

j0j1=1

j2j3=1

j3=1

x6

Maciej
fonte
Se meu pensamento estiver correto, a resposta é "não". Obviamente, presumo que a variável ocorre uma vez em positivo e outra em negação.
Maciej
x4j1j2j3j2j1j0
-1

Rtw-Opp-CNFf(X)g(X)f(X)g(X)f(X)g(X)

i0i1i2...in1

ijx0x1¬x2

2ki0i1i2...in1

i0i1i2...in1

ab=ab(ab)

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).

x0i0x0i1

j0j1=1

j0j1i0i1i0j0j02l

Maciej
fonte
Rtw-Opp-CNF
@AndrewMorgan Mas uma fórmula com uma cláusula única contendo todas as variáveis ​​exatamente uma vez não seria uma fórmula de leitura duas vezes. A restrição é exatamente duas vezes, não no máximo duas vezes.
Giorgio Camerani
x6(x1x2x3)(¬x1¬x3x4)(¬x4x5)(¬x2¬x5¬x6)x6
(x1x2)(x1¯)(x2¯)(x1x2)(x1¯x2¯)(x1)(x1¯)(x2)(x2¯)
@AndrewMorgan OK, agora eu vejo. No entanto, considere que também na família de casos que você quis dizer, o número de tarefas satisfatórias parece permanecer regular. A pergunta feita por Maciej em seu comentário acaba sendo desafiadora.
Giorgio Camerani