Tornando os solucionadores SAT competitivos com algoritmos especializados


11

Quais são os obstáculos para tornar competitivos os solucionadores SAT com algoritmos gráficos especializados? Em outras palavras, é possível esperar solucionadores SAT que possam substituir o papel de projetista de algoritmos - ou seja, ser capaz de reconhecer automaticamente a estrutura do problema e resolvê-la tão rapidamente quanto um algoritmo especializado?

Aqui estão alguns exemplos que acho desafiadores para os solucionadores de SAT de hoje:

  • Contando conjuntos independentes de tamanho . A codificação "x é um conjunto independente de tamanho k" fornece uma fórmula grande que é difícil de resolver. Um solucionador SAT ideal reconheceria que esse problema é fácil no gráfico de largura de árvore delimitada, com a adição de uma variável extra de "contagem" para sacos.k

  • Encontrando uma árvore Steiner mínima. Novamente, a "árvore Steiner" tem uma restrição global; no entanto, um algoritmo especializado (como aqui ) facilita a tarefa adicionando uma variável extra

  • Qualquer problema que se reduz a combinações perfeitas planares.


isso já não está acontecendo? É um truque popular para reduzir um problema ao SAT e depois executar um solucionador.
Suresh Venkat

Sim, mas eles são competitivos? Eu estou querendo saber se há alguma solucionador SAT que pode levar um simples conjunto de restrições que descrevem subgráfico Eulerian de um gráfico planar, e fazer #SAT em tempo polinomial
Yaroslav Bulatov

Respostas:


7

Há um bom artigo que ajuda a visualizar a estrutura interna das instâncias do SAT. Consulte Visualizando instâncias SAT e execuções do algoritmo DPLL de Carsten Sienz (publicado em SAT 2004). Basicamente, ele desenha um gráfico que o autor chama de "gráfico de interação variável" (de acordo com algumas regras) para visualizar a relação entre as cláusulas satisfeitas. O autor mostra isso por várias execuções parciais do DPLL.

A principal alegação é que essas técnicas de visualização podem ser usadas para detectar a estrutura e projetar um algoritmo apropriado para ela. No entanto, ainda não está claro como podemos detectar eficientemente estruturas como a apresentada no artigo. É sabido que os algoritmos SAT para um problema específico se comportam mal em outros problemas. Portanto, existe um "almoço grátis", embora essa afirmação não possa ser formalmente declarada, até onde eu saiba.


Eu acho que o teorema relevante "sem almoço grátis" é o "sem almoço grátis para pesquisa" no-free-lunch.org . Basicamente, não podemos permitir a pesquisa em todas as estruturas possíveis de problemas e precisamos influenciar nossa pesquisa em estruturas específicas. Eu acho que é OK desde os designers algoritmo humanos fazer isso já
Yaroslav Bulatov
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.