SAT çözücüler, bir nicelik belirteci ile bir boole formülünün geçerliliğini kontrol etmek için güçlü bir yol sağlar.
Örneğin, geçerliliğini kontrol etmek için . φ ( x ) , φ ( x ) ' in tatmin edici olup olmadığını belirlemek için bir SAT çözücü kullanabiliriz . ∀ x'in geçerliliğini kontrol etmek için . φ ( x ) , ¬ φ ( x ) ' in tatmin edici olup olmadığını belirlemek için bir SAT çözücü kullanabiliriz . (Burada x = ( x 1 , … , x n ) bir boolean değişkeninin n- vektörüdür ve φ bir boole formülüdür.)
QBF çözücüleri, rasgele sayıda nicelleştiriciye sahip bir boole formülünün geçerliliğini kontrol etmek için tasarlanmıştır.
İki nicelik belirtecine sahip bir formülümüz varsa ne olur? Geçerliliği kontrol etmek için etkili bir algoritma var mı: sadece QBF için genel algoritmalar kullanmaktan daha iyi olanlar mı? Daha spesifik olmak gerekirse, şeklinde bir formülüm var . ∃ y . x ( x , y ) (veya ∃ x . ∀ y . ψ ( x , y ) ) ve geçerliliğini kontrol etmek istiyorum. Bunun için iyi algoritmalar var mı? Edit 4/8: Ben formüllerin bu sınıf bazen 2QBF olarak bilinir öğrendim, bu yüzden 2QBF için iyi algoritmalar arıyorum.
Daha fazla uzmanlaşmak: Özel durumumda, şeklinde bir formülüm var . ∃ y . Geçerliliğini kontrol etmek istediğim f ( x ) = g ( y ) , burada f , g , k- bit çıktısı üreten fonksiyonlardır . Bu özel formülün geçerliliğini kontrol etmek için QBF için genel algoritmalardan daha verimli bir algoritma var mı?
PS: Karmaşıklık teorisindeki en kötü durum sertliğini sormuyorum. Pratik olarak kullanışlı algoritmalar soruyorum (modern SAT çözücüler SAT'ın NP-tamamlanmış olmasına rağmen pek çok problem üzerinde pratik olarak faydalıdır).