Por que a eliminação literal pura está ausente em algoritmos baseados em DPLL como o Chaff?


7

Estou analisando vários solucionadores de SAT e tentando entender como eles funcionam e por que são projetados de determinadas maneiras. (Mas eu não estou em uma universidade no momento e não conheço ninguém que seja professor. Então, estou postando aqui esperando que alguém possa me ajudar. Eu realmente aprecio.)

No Chaff , o BCP (Propagação de Restrições Booleanas) é implementado de maneira diferente do DPLL original : ele faz isso assistindo dois literais de cada vez (uma técnica ligeiramente diferente daquela inicialmente sugerida em SATO: Um Provedor Proposicional Eficiente ), de acordo com o artigo de 2001, Chaff: Projetando um Solucionador SAT Eficiente . Entretanto, não há menção à pura eliminação literal neste artigo.

Em A complexidade da eliminação literal pura , Jan Johannsen escreveu

As melhores implementações atuais de solucionadores SAT do tipo DLL, como Chaff ou BerkMin, sacrificam essa heurística para obter eficiência na propagação da unidade.

onde "essa heurística" está se referindo à pura eliminação literal. Minha compreensão do que a eliminação literal pura faz é que

  1. pesquisa todos os literais unipolares (ou puros)
  2. atribui um valor booleano a eles, de modo que cada um produza True
  3. Nesse caso, agora podemos excluir todas as cláusulas que as contêm

Aqui está a minha pergunta:

Como o sacrifício é necessário? Existe uma boa razão pela qual a eliminação literal pura está ausente em algoritmos baseados em DPLL como o Chaff? Não podemos simplesmente eliminar o literal literalmente em cada nível de decisão (ou pelo menos fazê-lo no início antes da ramificação)?


"monopolar" = instâncias de apenas literal literal ou negado? ele também pode ajudar (por exemplo, para a auto contenção da questão, clareza etc) para definir alguns dos outros termos, embora entendo que eles são std no campo
vzn

@vzn certamente. Eu adicionei mais links e subtexto
说 奇 说 ArchVlog -

Respostas:


7

Os solventes que usam o algoritmo literal de dois assistidos para implementar a propagação da unidade não mantêm o controle de quais cláusulas foram excluídas (por implicação) para produzir as subfórmulas implícitas na atribuição parcial atual. Ao não rastrear essas informações, os solucionadores podem evitar tocar na maioria das cláusulas durante as atribuições e evitar tocar em qualquer uma das cláusulas durante o retorno. Descobrir quais variáveis ​​são atualmente puras na fórmula significa perder esses ganhos substanciais de eficiência. Enquanto isso, não há nada que sugira que a remoção literal pura produza conflitos ou tarefas satisfatórias com antecedência suficiente para compensar o alto custo do rastreamento.

Os solventes que simplificam a fórmula antes de iniciar o procedimento de pesquisa geralmente incluem remoção literal pura, uma vez que é muito barato fazer isso como uma etapa de pré-processamento e pode remover muitas cláusulas.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.