Qual é a complexidade de e \ text {MAX-2-XOR-SAT} ? Eles estão em P? Eles são NP-difíceis?MIN-2-XOR-SATMAX-2-XOR-SAT
Para formalizar isso com mais precisão, vamos
Φ(x)=∧niCi,
onde x=(x1,…,xm) e cada cláusula Ci tem a forma (xi⊕xj) ou (xi⊕¬xj) .
O problema 2-XOR-SAT é encontrar uma tarefa para x que satisfaça Φ . Esse problema está em P , pois corresponde a um sistema de equações lineares mod 2 .
O problema MAX-2-XOR-SAT é encontrar uma atribuição para x que maximize o número de cláusulas que são atendidas. O problema MIN-2-XOR-SAT é encontrar uma atribuição para x que minimize o número de cláusulas que são atendidas. Quais são as complexidades desses problemas?
O problema de determinar se uma instância de MONOTONE-2-XOR-SAT (todas as cláusulas são do tipo ) é satisfatório pode ser reduzido ao problema de determinar se um gráfico é bipartido, consulte isso .(xi⊕xj)
Para isso, criamos um gráfico com um nó para cada literal da fórmula e conectamos cada literal a outro se eles estiverem na mesma cláusula (arestas são cláusulas)G
Por exemplo:
Se tivermos uma fórmula insatisfatória que seja(x1⊕x2)∧(x1⊕x3)∧(x2⊕x3)∧(x1⊕x4)
Temos um gráfico como este:
isso não é bipartido
Existem três cláusulas que são satisfatórias e, portanto, temos apenas que eliminar uma vantagem
Agora, podemos reduzir o problema de determinar se podemos encontrar um subgrafo bipartido máximo com vértice para o problema de determinar se podemos satisfazer as cláusulas em uma fórmula MONOTONE-MAX-2XOR-SAT, veja isso . E o problema do subgráfico bipartido máximo é equivalente ao corte máximokk
Para fazer a redução, simplesmente criamos um novo literal para cada vértice e criamos uma cláusula para cada aresta conectando dois literais
Por exemplo:
Nós temos esse gráfico,
Criamos a fórmula a seguir(x1⊕x2)∧(x1⊕x4)∧(x2⊕x4)∧(x2⊕x3)∧(x4⊕x5)∧(x3⊕x5)
Portanto, se pudermos encontrar uma atribuição que satisfaça as cláusulas isso significa que existe um subgrafo bipartido com pelo menos arestas.kk
Você deve tornar a implicação explícita: Como MAX-CUT é NP-Hard, a redução para MAX-XORSAT significa que também é NP-Hard.
Antimony
-1
Onde cada cláusula é fornecida apenas como , crie um vértice para cada literal , crie uma aresta entre dois vértices se existir um relacionamento XOR entre eles. Para que a declaração seja verdadeira, ela deve satisfazer . Agora podemos adotar o problema de coloração de vértices (não há dois vértices conectados por uma aresta com a mesma cor; só temos 2 cores adicionais se quisermos satisfazer a equação). A cláusula é verdadeira se os vértices correspondentes tiverem atribuído cores diferentes no gráfico.(xi⊕xj)xixi⊕xjxi≠xjxi⊕xj
Se todos os vértices do gráfico puderem ser coloridos usando duas cores e nenhum dos dois vértices com um compartilhamento de aresta comum tiver a mesma cor, a equação será satisfatória.
Mas um gráfico é bicolor se for um gráfico bipartido. E determinar se um gráfico é bipartido pode ser feito em tempo polinomial. Portanto, o problema está em P, porque, se pudermos determinar em tempo polinomial que o gráfico é bipartido, ele é solucionável, caso contrário, não é solucionável.
Mas a declaração do problema permite ter ambas as cláusulas e . Não vejo como você pretende lidar com cláusulas do segundo tipo. Você está tentando resolver um caso especial em que não há cláusulas do segundo tipo? Algo mais? Talvez você possa recolher / unificar cada par de vértices modo que exista uma cláusula ? (xi⊕xj)(xk⊕¬xl)k,l(xk⊕¬xl)
DW
2
Isso me leva a um problema mais sério com sua resposta. O problema não é determinar se a fórmula é satisfatória; o problema é identificar uma tarefa que satisfaça o número máximo / mínimo de cláusulas. Seu algoritmo apenas testa se a fórmula é satisfatória. Assim, ele resolve 2-XOR-SAT, mas não resolve MIN-2-XOR-SAT ou MAX-2-XOR-SAT - mas eu já sabia que o 2-XOR-SAT está em P, conforme explicado em a questão. Eu entendi algo errado?
DW
Obrigado, eu fiz a correção, que a minha resposta se aplica somente a cláusula é dada porxi⊕xk
jcod0
11
Mas ainda não vejo como isso aborda meu segundo comentário. Você resolveu um caso especial de um problema que eu não estava perguntando. Em suma, esta resposta não responde à pergunta que eu fiz.
Onde cada cláusula é fornecida apenas como , crie um vértice para cada literal , crie uma aresta entre dois vértices se existir um relacionamento XOR entre eles. Para que a declaração seja verdadeira, ela deve satisfazer . Agora podemos adotar o problema de coloração de vértices (não há dois vértices conectados por uma aresta com a mesma cor; só temos 2 cores adicionais se quisermos satisfazer a equação). A cláusula é verdadeira se os vértices correspondentes tiverem atribuído cores diferentes no gráfico.(xi⊕xj) xi xi⊕xj xi≠xj xi⊕xj
Se todos os vértices do gráfico puderem ser coloridos usando duas cores e nenhum dos dois vértices com um compartilhamento de aresta comum tiver a mesma cor, a equação será satisfatória.
Mas um gráfico é bicolor se for um gráfico bipartido. E determinar se um gráfico é bipartido pode ser feito em tempo polinomial. Portanto, o problema está em P, porque, se pudermos determinar em tempo polinomial que o gráfico é bipartido, ele é solucionável, caso contrário, não é solucionável.
fonte