Sprawdzenie wzorów dwa kwantyfikatorów (

15

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 φx.φ(x)φ(x)x.φ(x)¬φ(x)x=(x1,,xn)nφ 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.x.y.ψ(x,y)x.y.ψ(x,y)

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?x.y.f(x)=g(y)f,gk

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).

DW
źródło
4
nie jest zasadniczo równoważnex y ψ ( x , y ) . xy ψ(x,y)xy ψ(x,y)
Huck Bennett
2
Myślę, że OP oznacza to nieformalnie, ponieważ oba są trudne dla solverów SAT i że rozwiązanie któregokolwiek z nich byłoby interesujące
Suresh Venkat
1
@HuckBennett, myślę, że oba mają równoważną twardość. (Dowód: jest poprawny iff ¬ x . y . ¬ ψ ( x , y ) jest. Dlatego jeśli mamy sposób na sprawdzenie poprawności formuł formularza x . y . ψ ( x , y ) , możemy również przetestować poprawność formuł x . yx.y.ψ(x,y)¬x.y.¬ψ(x,y)x.y.ψ(x,y) , pozwalając ψ ( x , y ) = ¬ ψ ( x , y ) i testując poprawnośćx . y . ψ ( x , y ) .) Ale tak czy inaczej, byłbym zainteresowany algorytmami dla obu przypadków. x.y.ψ(x,y)ψ(x,y)=¬ψ(x,y)x.y.ψ(x,y)
DW
6
@DW niekoniecznie, np. SAT i TAUT, nie mają podobnej złożoności.
Kaveh
4
@chazisop: Myślę, że OP prosi o algorytmy / solwery -SAT, a nie ogólne solvery QBF. Istnieje jednak wiele solverów QBF. Zobacz zakładkę „solvers” na qbflib.orgΠ2/Σ2
Huck Bennett

Odpowiedzi:

22

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.

Mikolas
źródło
Niesamowite! Dzięki, Mikolas, właśnie tego się spodziewałem.
DW 9'12
2
Cześć @DW Cieszę się, że mogłem pomóc. Mam nadzieję, że okaże się to przydatne. QBF to zupełnie inna bestia niż SAT, więc trzeba być ostrożnym, ponieważ rzeczy mogą wybuchnąć bardzo łatwo :-). Napisz do mnie e-mail, jeśli masz więcej szczegółowych pytań na temat naszej pracy.
Mikolas
7

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.

W 2QBF Tor QBFEVAL-2018 DepQBF był zwycięzcą , CADET był drugi w wyścigu.

Te dwa podejścia faktycznie działają bardzo dobrze w praktyce (przynajmniej w testach porównawczych QBFEVAL).

Pushpa
źródło
4

xyϕDaD¬ϕ[a/x]bBaϕ[b/y]ϕ

Samuel Schlesinger
źródło
2
ϕϕ
Jest to całkiem miłe, istnieje analogia do przeciwnego uczenia maszynowego, jeśli mrużysz oczy i rzeczywiście działa ona dla każdej uzupełnionej sieci, w której masz swego rodzaju solver
Samuel Schlesinger