Os solucionadores SAT oferecem uma maneira poderosa de verificar a validade de uma fórmula booleana com um quantificador.
Por exemplo, para verificar a validade de , podemos usar um solucionador SAT para determinar se é satisfatório. Para verificar a validade de , podemos usar um solucionador SAT para determinar se é satisfatório. (Aqui é um vetor n de variáveis booleanas e φ é uma fórmula booleana.)∀ x . φ ( x ) ¬ φ ( x ) x = ( x 1 , … , x n )
Os solucionadores QBF são projetados para verificar a validade de uma fórmula booleana com um número arbitrário de quantificadores.
E se tivermos uma fórmula com dois quantificadores? Eles são algoritmos eficientes para verificar a validade: são melhores do que usar algoritmos genéricos para o QBF? Para ser mais específico, tenho uma fórmula da forma (ou ) e deseja verificar sua validade. Existem bons algoritmos para isso? Edit 4/8: Aprendi que essa classe de fórmulas às vezes é conhecida como 2QBF, por isso estou procurando bons algoritmos para 2QBF.
Especializando-me ainda mais: no meu caso particular, eu tenho uma fórmula no formato cuja validade quero verificar, onde são funções que produzem uma saída de bits. Existem algoritmos para verificar a validade desse tipo específico de fórmula, com mais eficiência do que algoritmos genéricos para o QBF?f , g k
PS: Não estou perguntando sobre a pior dureza, na teoria da complexidade. Estou perguntando sobre algoritmos praticamente úteis (da mesma forma que os solucionadores modernos de SAT são praticamente úteis em muitos problemas, mesmo que o SAT esteja completo em NP).