Solwery SAT dają potężny sposób na sprawdzenie poprawności formuły logicznej za pomocą jednego kwantyfikatora.
Na przykład, aby sprawdzić poprawność , możemy użyć solwera SAT, aby ustalić, czy φ ( x ) jest zadowalające. Aby sprawdzić ważność ∀ x . φ ( x ) , możemy użyć solwera SAT do ustalenia, czy ¬ φ ( x ) jest zadowalające. (Tutaj x = ( x 1 , … , x n ) jest n -ektorem zmiennych boolowskich i φ to formuła boolowska).
Solwery QBF są zaprojektowane do sprawdzania poprawności formuły boolowskiej z dowolną liczbą kwantyfikatorów.
Co jeśli mamy wzór z dwoma kwantyfikatorami? Czy są jakieś wydajne algorytmy do sprawdzania poprawności: takie, które są lepsze niż zwykłe algorytmy dla QBF? Mówiąc dokładniej, mam wzór w postaci (lub ∃ x . ∀ y . ψ ( x , y ) ) i chcesz sprawdzić jego ważność. Czy są na to jakieś dobre algorytmy? Edytuj 4/8: Nauczyłem się, że ta klasa formuł jest czasami znana jako 2QBF, dlatego szukam dobrych algorytmów dla 2QBF.
Specjalizuję się dalej: w moim konkretnym przypadku mam wzór w postaci którego ważność chcę sprawdzić, gdzie f , g są funkcjami, które wytwarzają wyjście k- bitowe. Czy istnieją jakieś algorytmy do sprawdzania poprawności tego rodzaju formuły, bardziej wydajnie niż ogólne algorytmy dla QBF?
PS Nie pytam o najgorszą twardość w teorii złożoności. Pytam o praktycznie przydatne algorytmy (podobnie jak współczesne solwery SAT są praktycznie przydatne w wielu problemach, mimo że SAT jest NP-kompletny).