Wiemy, że DPLL oparte SAT-rozwiązują nie odpowie poprawnie na unsatisfiable wystąpień (zasada dziura gołąb), np na „nie jest injective mapowanie od n + 1 do n ”:
Szukam wyników na temat tego, jak działają na zadowalających przypadkach , np. Na „istnieje iniekcyjne mapowanie od n do n ”.
Czy szybko znajdują satysfakcjonujące zadanie w takich przypadkach?
Odpowiedzi:
Na spe przypadkach , DPLL na podstawie rozwiązują SAT dostarczy satysfakcjonujące zadanie w czasie liniowo.P.H.P.
Aby zobaczyć, dlaczego, obserwuj, w jaki sposób kodowanie CNF niezadowalającego wystąpienia z n dziurami i n + 1 gołębiami jest sintaktycznie identyczne z wystąpieniem k = n Wykres koloryzacji , gdzie grafem wejściowym jest klika n + 1 wierzchołków .P.H.P. n n + 1 k = n n + 1
Podobnie CNF zakodowanie spe wystąpienia z n otwory, a n gołębi sintactically identyczne do wystąpienia k = n wykres barwiących, przy czym wykres wejściowy jest klika n wierzchołków.P.H.P. n n k =n n
Teraz kolorowanie kliki wierzchołków za pomocą n kolorów jest proste: zeskanuj wierzchołki i przypisz każdemu z nich jeden z pozostałych kolorów (już przypisane kolory są automatycznie wykluczane przez kliknięcie wykresu przy użyciu propagacji jednostkowej) . Niezależnie od pozostałych wybranych kolorów, będzie on dobry i doprowadzi Cię do zadowalającego zadania.n n
Z punktu widzenia solvera DPLL: za każdym razem, gdy spróbuje odgadnąć wartość logiczną zmiennej , taka wartość będzie poprawna (cokolwiek to jest), ponieważ z pewnością będzie zadowalające przypisanie, w której zmienna v i ma odgadnięta wartość. Rozmnażanie jednostek wykona resztę zadania, prowadząc solver wzdłuż satysfakcjonującej ścieżki (innymi słowy: zapobiegając odgadnięciu niewłaściwych wartości).vja vja
Wyszukiwanie przebiega następnie jedna zmienna po drugiej, liniowo, za każdym razem poprawnie zgadując.
źródło