Adam Meissner SZTUCZNA INTELIGENCJA Problem spełnialności (SAT)

Podobne dokumenty
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki. Wykład 9. Koniunkcyjne postacie normalne i rezolucja w KRZ

Adam Meissner.

Złożoność obliczeniowa

Programowanie w logice Wykład z baz danych dla

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa.

Elementy logiki. Wojciech Buszkowski Wydział Matematyki i Informatyki UAM Zakład Teorii Obliczeń

METODY DOWODZENIA TWIERDZEŃ I AUTOMATYZACJA ROZUMOWAŃ

Adam Meissner STUCZNA INTELIGENCJA

Adam Meissner SZTUCZNA INTELIGANCJA

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279

Elementy logiki. Algebra Boole a. Analiza i synteza układów logicznych

Teoria obliczeń i złożoność obliczeniowa

Praktyczne metody weryfikacji. Wykład 9: Weryfikacja ograniczona.. p.1/40

Wykład 2. Relacyjny model danych

Wstęp do Techniki Cyfrowej... Algebra Boole a

Adam Meissner SZTUCZNA INTELIGENCJA

Technologia informacyjna Algorytm Janusz Uriasz

Automatyczne planowanie oparte na sprawdzaniu spełnialności

Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej. Adam Meissner. Elementy uczenia maszynowego

Algorytm wspinaczkowy dla zadania k-sat

SZTUCZNA INTELIGENCJA

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Definicje. Algorytm to:

Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej. Adam Meissner. Elementy uczenia maszynowego

Jak wnioskują maszyny?

Cw.12 JAVAScript w dokumentach HTML

Schematy Piramid Logicznych

LOGIKA Klasyczny Rachunek Zdań

Problemy z ograniczeniami

Metoda Tablic Semantycznych

Elementy logiki matematycznej

Logika pragmatyczna. Logika pragmatyczna. Kontakt: Zaliczenie:

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Podstawy programowania w języku C

Metoda Karnaugh. B A BC A

Technika cyfrowa Synteza układów kombinacyjnych (I)

Wprowadzenie do Prologa

SID Wykład 2 Przeszukiwanie

Arytmetyka liczb binarnych

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Metody numeryczne Wykład 4

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Lista tematów na kolokwium z wykładu z Techniki Cyfrowej w roku ak. 2013/2014

METODA SYMPLEKS. Maciej Patan. Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Metody dowodzenia twierdzeń i automatyzacja rozumowań Tabele syntetyczne: definicje i twierdzenia

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

CLP Programowanie logiczne z ograniczeniami.

Technika cyfrowa Synteza układów kombinacyjnych

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Baza danych. Modele danych

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Podstawy Sztucznej Inteligencji (PSZT)

Języki programowania zasady ich tworzenia

Podstawy programowania

Metody Programowania

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Zadania laboratoryjne i projektowe - wersja β

Bazy danych TERMINOLOGIA

Adam Meissner SZTUCZNA INTELIGANCJA

Składnia rachunku predykatów pierwszego rzędu

Wprowadzenie do Sztucznej Inteligencji

III rok kognitywistyki UAM,

Algebra Boole a. Ćwiczenie Sprawdź, czy algebra zbiorów jestrównież algebrą Boole a. Padaj wszystkie elementy takiej realizacji.

Projekt 4: Programowanie w logice

Technologie Informacyjne

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Reprezentacja wiedzy i wnioskowanie

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Algorytmy sztucznej inteligencji

Wykład 10 i 11. Logiczni agenci. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach. Logiczni agenci (4g)

Alfred N. Whitehead

Podstawy Automatyki. Wykład 13 - Układy bramkowe. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Prolog 2 (Filip Wroński, Łukasz Betkowski, Paweł Świerblewski, Konrad Kosmatka)

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

PODSTAWY SZTUCZNEJ INTELIGENCJI

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Logika Matematyczna (10)

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

Modelowanie danych, projektowanie systemu informatycznego

Systemy ekspertowe i ich zastosowania. Katarzyna Karp Marek Grabowski

Minimalizacja form boolowskich

KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204

S O M SELF-ORGANIZING MAPS. Przemysław Szczepańczyk Łukasz Myszor

Konwerter XML Dla Programów Symfonia Kadry i Płace oraz Forte Kadry i Płace

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Programowanie w środowisku Baltie

Adam Meissner. SZTUCZNA INTELIGENCJA Gry dwuosobowe

Adam Meissner Instytut Automatyki, Robotyki i Inżynierii Informatycznej Politechniki Poznańskiej. Adam Meissner

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Dedukcyjne bazy danych i rekursja

Logika pragmatyczna dla inżynierów

Ocena ilościowa ryzyka: analiza drzewa błędu (konsekwencji) Zajęcia 6. dr inż. Piotr T. Mitkowski.

Semantyka rachunku predykatów

Koszt literału (literal cost) jest określony liczbą wystąpień literału w wyrażeniu boolowskim realizowanym przez układ.

Transkrypt:

Instytut Automatyki, Robotyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGENCJA Problem spełnialności (SAT) Literatura [1] Cook S.A., The complexity of theorem-proving procedures, w: Proceedings of the third annual ACM symposium on Theory of computing, New York, 1971, s. 151 158. [2] Davis M., Logemann G., Loveland D., A machine program for theorem proving, CACM, 1962, vol. 5, no. 7, s. 394 397. [3] Howe J.M., King A., A Pearl on SAT Solving in Prolog, LNCS, 2010, vol. 6009, s. 165-174. [4] Lifschitz V., Reducing Graph Coloring to SAT, http://www.cs.utexas.edu/users/vl/teaching/lbai/colori ng.pdf (dostęp: 7.04.2019) [5] Nadel A., Understanding and Improving a Modern SAT Solver, Tel Aviv University, 2009. [6] The international SAT Competitions web page, https://www.satcompetition.org/ (dostęp: 7.04.2019). 1

Pojęcia podstawowe Wprowadzenie (1) zmienna zdaniowa (zmienna) to bezargumentowy symbol predykatowy; interpretacja nadaje zmiennej zdaniowej wartość logiczną (prawda, 0 albo fałsz, 1) literał pozytywny to zmienna zdaniowa; literał negatywny to negacja zmiennej zdaniowej klauzula to alternatywa literałów; w szczególności klauzulą jest też pojedynczy literał oraz formuła pusta dowolna interpretacja spełniająca wszystkie klauzule z danego zbioru S jest nazywana modelem zbioru S, co oznacza się jako m(s) problem SAT polega na rozstrzygnięciu, czy dany zbiór klauzul S ma model lub na znalezieniu modelu m(s); każdy model m(s) nazywa się rozwiązaniem odpowiedniego problemu SAT. Uwaga: do zdefiniowanego wyżej zbioru klauzul można przekształcić dowolny zbiór formuł logiki pierwszego rzędu, utworzonych ze zmiennych zdaniowych. Przykład 1 Elementami zbioru S są następujące klauzule: ~X 1 X 2 X 3 X 1 ~X 2 X 3 X 1 X 2 ~X 3 X 1 X 2 X 3 Przykładowy model zbioru S ma postać m(s) = { X 1, X 2, X 3 }. 2

Wprowadzenie (2) Właściwości problemu SAT problem SAT jest pierwszym zidentyfikowanym problemem NP-zupełnym [1] podstawowym algorytmem rozwiązywania problemów SAT jest procedura DPLL [2] do rozwiązywania problemów SAT używa się programów zwanych SAT-solverami (ang. SAT-solvers) współczesne SAT-solvery mogą skutecznie rozwiązywać, na komputerach klasy PC, problemy obejmujące setki tysięcy klauzul i miliony zmiennych zdaniowych wiele problemów można przekształcić do postaci problemów SAT, następnie rozwiązać je, a uzyskany model odwzorować na rozwiązanie problemu źródłowego; proces konstruowania tych odwzorowań nosi nazwę odpowiednio kodowania SAT (ang. SAT encoding) albo dekodowania SAT (ang. SAT decoding) zbiór klauzul odpowiadający danemu problemowi jest deklaratywną reprezentacją tego problemu; oznacza to, że związek między danymi wejściowymi, a wyjściowymi występującymi w problemie jest relacyjny rozwiązywanie problemów przez kodowanie SAT stosuje się m.in. w takich dziedzinach jak: szeregowanie zadań planowanie działań konstruowanie i weryfikowanie układów cyfrowych kryptologia bioinformatyka 3

Procedura DPLL (1) Słownik implikacja L/b to przypisanie literałowi L wartości logicznej b; ~0 = 1 i ~1= 0; jeżeli L jest literałem negatywnym to zmienna zdaniowa Z tworząca ten literał ma przypisaną wartość ~b literał nieokreślony to literał, któremu nie przypisano żadnej wartości logicznej literał L jest czysty w zbiorze S, jeżeli występuje wśród klauzul ze zbioru S co najmniej jednokrotnie, a żadna klauzula nie zawiera literału ~L klauzula unarna to klauzula zawierająca dokładnie jeden literał nieokreślony, a pozostałe literały (o ile istnieją) mają przypisaną wartość 0 decyzja to implikacja L/b umieszczone na stosie M, decyzja jest L/b końcowa jeżeli wcześniej na stosie umieszczono implikację L/~b konflikt polega na skonstruowaniu implikacji L/b, podczas gdy wcześniej podjęto decyzję L/~b 4

Procedura DPLL (2) Wejście: zbiór klauzul S, zbiór S Z zawierający wszystkie zmienne zdaniowe występujące w zbiorze S, pusty stos M. Wyjście: odpowiedź true jeżeli zbiór S ma model albo odpowiedź false w przeciwnym przypadku. Krok 1: (wykrywanie literałów czystych). Utworzyć zbiór S składający się z klauzul ze zbioru S zawierających co najmniej jeden wspólny literał czysty. Następnie, usunąć elementy zbioru S ze zbioru S. Powtarzać wymienione czynności aż do przetworzenia wszystkich zbiorów S. Krok 2: (podejmowanie decyzji). Jeżeli zbiór S Z jest pusty, to zakończyć działanie z odpowiedzią true, w przeciwnym przypadku wybrać (i usunąć) ze zbioru S Z zmienną Z poczym utworzyć przypisanie Z/b. Następnie, umieścić to przypisanie na stosie decyzji M. Krok 3: (propagowanie ograniczeń). Jeżeli zbiór S zawiera klauzulę unarną z nieokreślonym literałem L, to utworzyć implikację L/1 i usunąć zmienną zdaniową tworzącą literał L ze zbioru S Z. Powtarzać czynności wymienione wcześniej w tym kroku aż do przetworzenia wszystkich klauzul unarnych albo do wystąpienia konfliktu. Powiązać wszystkie implikacje utworzone w tym kroku z decyzją znajdującą się na szczycie stosu M. W przypadku braku konfliktu przejść do kroku 2. Krok 4: (rozwiązywanie konfliktów). Sprawdzić, czy stos M jest pusty. Jeżeli tak, to zakończyć działanie z odpowiedzią false. Jeżeli nie, to unieważnić wszystkie implikacje powiązane z decyzją Z/b, znajdującą się na szczycie stosu M. Następnie sprawdzić, czy decyzja Z/b jest końcowa. Jeżeli tak, to usunąć tę decyzję ze stosu i powtórzyć wszystkie czynności wymienione wcześniej w tym kroku. Jeżeli nie, to zastąpić decyzję Z/b przez decyzję Z/~b, oznaczyć tę decyzję jako końcową i przejść do kroku 3. 5

Format DIMACS SAT-solvery (1) jest to popularny standard reprezentowania danych wejściowych dla SAT-solverów dane wejściowe znajdują się w pliku tekstowym o następującej strukturze: c <Komentarz>... c <Komentarz> p cnf <LiczbaZmiennych> <LiczbaKlauzul> <ReprezentacjaKlauzuli>... <ReprezentacjaKlauzuli> wiersze zawierające komentarze są opcjonalne reprezentacja klauzuli ma postać następującą: literał pozytywny reprezentuje dodatnia liczba całkowita literał negatywny reprezentuje ujemna liczba całkowita na końcu klauzuli znajduje się liczba 0 liczby w klauzuli są rozdzielone znakiem spacji Przykład 2 Zbiór S z przykładu 1 ma następującą reprezentację w formacie DIMACS: p cnf 3 4-1 2 3 0 1-2 3 0 1 2-3 0 1 2 3 0 6

SAT-solvery (2) Przykładowe implementacje (offline) MiniSAT (zwycięzca zawodów SAT 2005 w kilku kategoriach) http://minisat.se/ RSat (zwycięzca zawodów SAT 2007 w kategorii industrial) http://reasoning.cs.ucla.edu/rsat/home.html Lingeling (zwycięzca zawodów SAT 2014 w kilku kategoriach) http://fmv.jku.at/lingeling/ Przykładowe implementacje (online) Logictools (dobre do celów edukacyjnych) http://logictools.org/ MiniSat in your browser https://msoos.github.io/cryptominisat_web/ SATRennesPA http://satrennespa.irisa.fr/webcontent/ Przykładowe translatory CSP SAT BEE Equi-Propagation Encoder http://amit.metodi.me/research/bee/ Sugar: a SAT-based Constraint Solver http://bach.istc.kobe-u.ac.jp/sugar/ 7

Przykładowe problemy SAT (1) Sumator 1-bitowy z przeniesieniem Wynik przekształcenia ww. formuł do postaci klauzulowej: ~S A B I ~S ~B ~A I ~S ~I ~A B ~S ~I ~B A ~A B I S ~B A I S ~I A B S ~I ~B ~A S ~O A I ~O A B ~O B I ~A ~B O ~I ~A B O ~I ~B A O 8

Przykładowe problemy SAT (2) Sumator 1-bitowy z przeniesieniem (cd.) Znaleźć wszystkie wartości wejściowe, dla których S = 0, a O = 1. Przy tym założeniu, zbiór wejściowy obejmuje następujące klauzule: ~A B I ~B A I ~I A B ~I ~B ~A A I A B B I Format DIMACS: p cnf 3 7-1 2 3 0-2 1 3 0-3 1 2 0-3 -2-1 0 1 3 0 1 2 0 2 3 0 Wejściowy zbiór klauzul ma następujące 3 modele: {A, B, ~I}, {A, ~B, I}, {~A, B, I}. 9

Przykładowe problemy SAT (3) Kolorowanie mapy Dana jest przykładowa mapa polityczna. Rozpatruje się fragment mapy, który obejmuje następujące kraje oraz ich wszystkich sąsiadów: Polska Czechy Słowacja Pokolorować dany fragment mapy za pomocą co najwyżej czterech barw w taki sposób, aby żadne dwa kraje sąsiednie nie miały tej samej barwy. 10

Przykładowe problemy SAT (4) Kolorowanie mapy (cd.) Rozpatrywany fragment mapy można przedstawić w postaci następującego grafu. Kodowanie SAT problemu 4-kolorowania grafu [4] 11

Przykładowe problemy SAT (5) Kolorowanie mapy (cd.) Poniższe klauzule stanowią fragment kodowania dotyczący Rosji. Zmienna KR-i oznacza i-ty kolor kraju KR dla i=1,4. RU-1 RU-2 RU-3 RU-4 -RU-1 -RU-2 -RU-1 -RU-3 -RU-1 -RU-4 -RU-2 -RU-3 -RU-2 -RU-4 -RU-3 -RU-4 Rozwiązanie -LT-1 -RU-1 -LT-2 -RU-2 -LT-3 -RU-3 -LT-4 -RU-4 -PL-1 -RU-1 -PL-2 -RU-2 -PL-3 -RU-3 -PL-4 -RU-4 12