Reinicializações aleatórias para instâncias insatisfatórias

7

Na pior das hipóteses, a satisfação booleana (assumindo P! = NP) leva tempo exponencial. No entanto, os modernos solucionadores de SAT usando variantes do DPLL são capazes de resolver instâncias suficientes para serem úteis na prática.

Uma técnica usada, que mostrou bons resultados na prática, é o reinício aleatório. Intuitivamente, reiniciar aleatoriamente significa que há uma chance de ter mais sorte ao adivinhar as atribuições de variáveis ​​corretas que levariam a uma solução rápida.

A mesma intuição sugere que isso deve ser muito mais eficaz quando a instância do problema é de fato satisfatória (portanto, você só precisa adivinhar um conjunto de atribuições de variáveis ​​que constituem uma solução) do que se não for (por isso, em princípio, você deve verificar todas as possíveis de qualquer maneira, atribuições, seções de módulos do espaço de pesquisa que podem ser ignoradas por técnicas como propagação de unidade e retorno não cronológico, que pelo menos não são obviamente sensíveis às suposições iniciais).

A segunda intuição está correta? As reinicializações aleatórias são de fato muito mais eficazes, em média, nos casos em que a instância do problema é de fato satisfatória?

rwallace
fonte

Respostas:

9

Há alguma pesquisa nessa área. Em O efeito das reinicializações na eficiência da aprendizagem de cláusulas, Jinbo Huang mostra empiricamente que as reinicializações melhoram o desempenho de um solucionador em conjuntos de instâncias SAT satisfatórias e insatisfatórias. A justificativa teórica para a aceleração é que, nos solucionadores de CDCL, uma reinicialização permite que a pesquisa se beneficie do conhecimento adquirido sobre variáveis ​​de conflito persistentemente problemáticas mais cedo do que o retrocesso, caso contrário, permitiria que a atribuição parcial fosse redefinida da mesma forma. Com efeito, as reinicializações permitem a descoberta de provas mais curtas de insatisfação, em média.

Kyle Jones
fonte