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).
Odpowiedzi:
Jeśli mogę, bezczelnie, zareklamować się, napisaliśmy artykuł o tym w zeszłym roku Algorytm oparty na abstrakcji dla 2QBF . Mam implementację qdimacs, którą mogę dostarczyć, jeśli chcesz, ale z mojego doświadczenia wynika, że specjalizacja algorytmu dla konkretnego problemu może być bardzo korzystna. Istnieje również starszy artykuł Analiza porównawcza algorytmów 2QBF , który przedstawia również dość łatwe do wyobrażenia algorytmy.
źródło
Przeczytałem dwa związane z tym artykuły, jeden związany konkretnie z 2QBF. Dokumenty są następujące:
Oznaczanie przyrostowe , Markus N. Rabe i Sanjit Seshia, Teoria i zastosowania testów satysfakcji (SAT 2016).
Zaimplementowali swój algorytm w narzędziu o nazwie CADET . Podstawową ideą jest stopniowe dodawanie nowych wiązań do formuły, dopóki wiązania nie opisują unikalnej funkcji Skolem lub do momentu potwierdzenia braku.
Drugim jest Incremental QBF Solving , Florian Lonsing i Uwe Egly.
Zaimplementowane w narzędziu o nazwie DepQBF . Nie nakłada żadnych ograniczeń na liczbę naprzemienności kwantyfikatora. Zaczyna się od założenia, że mamy ściśle powiązane formuły qbf. Opiera się na rozwiązywaniu przyrostowym i nie wyrzuca klauzul wyuczonych podczas ostatniego rozwiązywania. Dodaje klauzule i kostki do bieżącej formuły i zatrzymuje się, jeśli klauzule lub kostki są puste, reprezentując polecenia nienasycone lub sat.
Edycja : Dla pewnej perspektywy, jak dobrze te podejścia działają w testach porównawczych 2QBF. Proszę spojrzeć na Wyniki QBFEVal-2018 dla wyników corocznych zawodów QBF QBFEVAL . W 2019 roku nie było utworu 2QBF.
Te dwa podejścia faktycznie działają bardzo dobrze w praktyce (przynajmniej w testach porównawczych QBFEVAL).
źródło
źródło