SID Wykład 2 Przeszukiwanie

Podobne dokumenty
Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze

SID Wykład 1 Wprowadzenie

Heurystyczne metody przeszukiwania

Podstawy sztucznej inteligencji

SID Wykład 3 Przeszukiwanie iteracyjne

Heurystyki. Strategie poszukiwań

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Rozwiązywanie problemów przez przeszukiwanie. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

METODY HEURYSTYCZNE wykład 2

wykład 2 Inteligentny agent i jego otoczenie Przeszukiwanie dla problem-solving dr inż. Joanna Kołodziejczyk Zakład Sztucznej Inteligencji ISZiMM

Podstawy sztucznej inteligencji

METODY HEURYSTYCZNE wykład 2

Elementy kognitywistyki II:

Strategie heurystyczne

Metody przeszukiwania

STRATEGIE HEURYSTYCZNE

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

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo)

Strategie przeszukiwania ślepe i heurystyczne

METODY HEURYSTYCZNE wykład 1

Przykłady problemów optymalizacyjnych

METODY HEURYSTYCZNE wykład 1

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Elementy sztucznej inteligencji. Materiał udostępniony na prawach rękopisu

METODY HEURYSTYCZNE wykład 2

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

Rozwiązywanie problemów metodą przeszukiwania

Sztuczna Inteligencja (SI)

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

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

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

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

METODY HEURYSTYCZNE wykład 1

wykład 1 Inteligentny agent i jego otoczenie Szukanie jako metoda rozwiązywania problemów dr inż. Joanna Kołodziejczyk

Wysokość drzewa Głębokość węzła

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A

Wprowadzenie do Sztucznej Inteligencji

Automatyczne planowanie oparte na sprawdzaniu spełnialności

Wprowadzenie do Sztucznej Inteligencji

SID Wykład 5 Wnioskowanie w rachunku zdań

Optymalizacja. Wybrane algorytmy

Planowanie drogi robota, algorytm A*

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

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

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Sztuczna Inteligencja

Porządek symetryczny: right(x)

METODY HEURYSTYCZNE wykład 1

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Wybrane podstawowe rodzaje algorytmów

Sztuczna inteligencja w grach

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Struktura danych. Sposób uporządkowania informacji w komputerze.

Programowanie liniowe

Matematyczne Podstawy Informatyki

Wstęp do Sztucznej Inteligencji

Wstęp do programowania

Programowanie liniowe

Techniki optymalizacji

Podstawowe własności grafów. Wykład 3. Własności grafów

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Optimizing Programs with Intended Semantics

Kolorowanie wierzchołków grafu

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW

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

Analiza algorytmów zadania podstawowe

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

Matematyka dyskretna dla informatyków

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Analiza stanów gry na potrzeby UCT w DVRP

Wprowadzenie do Sztucznej Inteligencji

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

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

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wyznaczanie strategii w grach

Ogólne wiadomości o grafach

Modele całkowitoliczbowe zagadnienia komiwojażera (TSP)

Wykład 8. Drzewo rozpinające (minimum spanning tree)

SZTUCZNA INTELIGENCJA

Algorytmy sztucznej inteligencji

Programowanie liniowe

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

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Metody Optymalizacji: Przeszukiwanie z listą tabu

Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Wstęp do programowania

Sztuczna Inteligencja Projekt

Algorytmy i Struktury Danych.

Optymalizacja. Przeszukiwanie lokalne

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

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

STRATEGIE HEURYSTYCZNE HEURYSTYCZNE METODY HC: PROBLEM 8 KRÓLOWYCH METODA WZROSTU (SIMPLE) HILL-CLIMBING METODA NAJSZYBSZEGO WZROSTU

Sztuczna inteligencja w programowaniu gier

Transkrypt:

SID Wykład 2 Przeszukiwanie Wydział Matematyki, Informatyki i Mechaniki UW slezak@mimuw.edu.pl

Strategie heurystyczne Strategie heurystyczne korzystaja z dodatkowej, heurystycznej funkcji oceny stanu (np. szacujacej koszt rozwiazania od bieżacego stanu do celu): 1 Przeszukiwanie pierwszy najlepszy Przeszukiwanie zachłanne Przeszukiwanie A 2 Iteracyjne poprawianie Przeszukiwanie lokalne zachłanne (hill-climbing) Symulowane wyżarzanie Algorytmy genetyczne

Przeszukiwanie pierwszy najlepszy Używa funkcji użyteczności i wykonuje ekspansję najbardziej użytecznego stanu spośród wcześniej nieodwiedzonych stanów. Implementacja: fringe jest kolejka porzadkuj ac a węzły rosnaco według wartości funkcji użyteczności. function TREE-SEARCH(problem, fringe) returns a solution, or failure fringe INSERT(MAKE-NODE(INITIAL-STATE[problem]), fringe) loop if fringe is empty then return failure end if node REMOVE-FRONT(fringe) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node end if fringe INSERT-ALL(EXPAND(node, problem), fringe) end loop end function Przypadki szczególne: przeszukiwanie zachłanne, przeszukiwanie A.

Przeszukiwanie zachłanne Funkcja użyteczności = heurystyczna funkcja oceny stanu h(n) Szacuje koszt rozwiazania z bieżacego stanu n do najbliższego stanu docelowego. Przeszukiwanie zachłanne wykonuje ekspansję tego węzła, który wydaje się być najbliżej celu.

Przeszukiwanie zachłanne: przykład h SLD (n) = odległość w linii prostej z miasta n do Bukaresztu Oradea 71 Neamt 87 Zerind 75 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 80 Vaslui Timisoara Rimnicu Vilcea 111 142 211 Lugoj 97 Pitesti 70 98 146 Hirsova Mehadia 101 85 Urziceni 75 138 86 Bucharest 120 Dobreta 90 Craiova Eforie Giurgiu Straight line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374

Przykład problemu: Maximum Satisfiability problem (MAX-SAT) (p 11 p 12... p 1k1 ) (p 21 p 22... p 2k2 )... (p n1 p n2... p nkn ) gdzie p ij sa literałami. stany: wartościowania zmiennych zdaniowych cel: określenie czy (i dla jakiego) wartościowania formuła jest spełniona koszt rozwiazania: liczba klauzul niespełnionych

Przeszukiwanie A Pomysł: unikać ekspansji stanów, dla których dotychczasowa ścieżka jest już kosztowna. Funkcja użyteczności: f(n) = g(n) + h(n) g(n) = dotychczasowy koszt dotarcia do stanu n h(n) = oszacowanie kosztu od stanu bieżacego n do stanu docelowego f(n) = oszacowanie pełnego kosztu ścieżki od stanu poczatkowego do celu prowadzacej przez stan n

Heurystyka dopuszczalna Ogólnie o każdej funkcji heurystycznej h(n) zakłada się, że h(n) 0. Funkcja heurystyczna h(n) jest dopuszczalna, jeśli dla dowolnego stanu n spełniony jest warunek: h(n) h (n) gdzie h (n) jest rzeczywistym kosztem ścieżki od stanu n do celu. Problem uproszczony wersja oryginalnego problemu, dla której koszt rozwiazania jest zawsze nie większy niż koszt rozwiazania problemu oryginalnego. Heurystyka dopuszczalna może być dokładnym kosztem rozwiazania uproszczonej wersji problemu.

Heurystyka dopuszczalna: najkrótsza droga Funkcja odległości w linii prostej h SLD (n) jest dopuszczalna nigdy nie przekracza rzeczywistej odległości drogowej. Oradea 71 Neamt 87 Zerind 75 151 Iasi Arad 140 92 Sibiu 99 Fagaras 118 80 Vaslui Timisoara Rimnicu Vilcea 111 142 211 Lugoj 97 Pitesti 70 98 146 Hirsova Mehadia 101 85 Urziceni 75 138 86 Bucharest 120 Dobreta 90 Craiova Eforie Giurgiu Straight line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374

Heurystyki dopuszczalne: 8-elementowe puzzle Uproszczenie 1: klocek może być przesunięty na dowolne pole: h 1 (n) = liczba klocków nie będacych w docelowym położeniu Uproszczenie 2: klocek może być przesunięty na dowolne sasiednie pole: h 2 (n) = suma odległości miejskiej (ilości ruchów) od docelowych miejsc dla poszczególnych klocków 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Start State Goal State h 1 (S) = 6 h 2 (S) = 4 + 0 + 3 + 3 + 1 + 0 + 2 + 1 = 14

Heurystyka dopuszczalna: optymalność A Twierdzenie: Przeszukiwanie A bez eliminacji powtarzajacych się stanów przy użyciu heurystyki dopuszczalnej znajduje zawsze rozwiazanie optymalne. Dowód: Załóżmy, że stan docelowy G 2 o nieoptymalnym koszcie rozwiazania został wstawiony do kolejki stanów. Niech n będzie dowolnym stanem na najkrótszej ścieżce do optymalnego celu G. Start n G G 2 f(g 2 ) = g(g 2 )ponieważ h(g 2 ) = 0 > g(g) ponieważ G 2 jest nieoptymalny f(n) ponieważ g(g) = g(n) + h (n) g(n) + h(n) = f(n) f(g 2 ) > f(n) dla wszystkich n z optymalnej ścieżki, A wyjmie je przed G 2

Heurystyka spójna Heurystyka jest spójna jeśli dla każdego stanu n i każdej akcji a z tego stanu: h(n) c(n,a,n ) + h(n ) gdzie c(n,a,n ) jest kosztem wykonania akcji a. Fakt 1: Każda heurystyka spójna jest dopuszczalna. Fakt 2: Jeśli heurystyka h jest spójna to ciag wartości funkcji f(n) wzdłuż dowolnej ścieżki w drzewie przeszukiwań stanów jest niemalejacy. f(n ) = g(n ) + h(n ) = g(n) + c(n,a,n ) + h(n ) g(n) + h(n) = f(n) n c(n,a,n ) n h(n ) h(n) G

Heurystyka spójna: optymalność A Twierdzenie: Przeszukiwanie A z eliminacja powtarzajacych się stanów przy użyciu heurystyki spójnej znajduje zawsze rozwiazanie optymalne. Dowód: f(g) = g(g) dla każdego stanu docelowego G = f(g opt ) f(g) Z lematu stan docelowy z optymalnym kosztem ścieżki G opt będzie wyjęty z kolejki jako pierwszy spośród wszystkich stanów docelowych G.

Heurystyka dominujaca Niech h 1, h 2 - heurystyki dopuszczalne. Heurystyka h 2 dominuje heurystykę h 1 jeśli h 2 (n) h 1 (n) dla wszystkich stanów n. Twierdzenie: Wszystkie węzły odwiedzone przez algorytm A z heurystyka h 2 będa odwiedzone również przez algorytm A z heurystyka h 1. Wniosek: jeśli h 2 dominuje h 1, to opłaca się użyć h 2.

Heurystyka dominujaca: przykład h 1 (n) = liczba klocków nie będacych w docelowym położeniu h 2 (n) = suma odległości miejskiej (ilości ruchów) od docelowych miejsc dla poszczególnych klocków 7 2 4 51 2 3 5 6 4 5 6 8 3 1 7 8 Start State Goal State h 2 dominuje h 1, bo dla każdego stanu n zachodzi h 2 (n) h 1 (n), np. h 1 (n) = 6 h 2 (n) = 4 + 0 + 3 + 3 + 1 + 0 + 2 + 1 = 14

Problemy z więzami (CSP - Constraint satisfaction problem) Ogólnie: stan jest czarna skrzynka, dla której: CSP: można sprawdzić, czy jest celem dana jest wartość funkcji oceny użyteczności stanu można obliczyć sasiednie stany stan jest zdefiniowany przez zmienne X i z wartościami z dziedziny D i test celu jest zbiorem więzów (ograniczeń) specyfikujacych dopuszczalne kombinacje wartości dla podzbiorów zmiennych CSP jest prostym przykładem formalnego języka do reprezentacji stanów. Reprezentacja CSP umożliwia skonstruowanie algorytmów bardziej efektywnych niż ogólne algorytmy przeszukiwania.

Przykład CSP: Kolorowanie mapy Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Zmienne: WA, NT, Q, NSW, V, SA, T Dziedziny: D i = {red,green,blue} Więzy: sasiednie regiony maja mieć różne kolory, np. WA NT (jeśli symbol należy do języka) lub (WA,NT ) {(red,green),(red,blue),(green,red),(green,blue),...}

Przykład CSP: Kolorowanie mapy Western Australia Northern Territory South Australia Queensland New South Wales Victoria Tasmania Rozwiazania sa wartościowaniami spełniajacymi wszystkie więzy, np. {WA = red,nt = green,q = red,nsw = green,v = red,sa = blue,t = green}

Rodzaje więzów Więzy unarne dotycza pojedynczych zmiennych, np. SA green Więzy binarne dotycza dwu zmiennych, np. SA WA Więzy wyższego rzędu dotycza 3 lub więcej zmiennych, np. w Sudoku Preferencje (więzy nieostre), np. red jest lepszy niż green często reprezentowane przez funkcję kosztu przypisania wartości do zmiennej problemy optymalizacyjne z więzami

Przykład: Sudoku Zmienne: X 1,1,X 1,2,...,X 9,9 Dziedziny: {1,2,3,4,5,6,7,8,9} Więzy: X 1,1,X 1,2,...,X 1,9 - wszystkie różne X 1,1,X 2,1,...,X 9,1 - wszystkie różne X 1,1,X 1,2,X 1,3,X 2,1,X 2,2, X 2,3,X 3,1,X 3,2,X 3,3 - wszystkie różne... X 1,1 X 1,2 X 1,3...... X 1,9 X 2,1 X 2,2 X 2,3...... X 2,9 X 3,1 X 3,2 X 3,3...... X 3,9........................... X 7,1 X 7,2 X 7,3...... X 7,9 X 8,1 X 8,2 X 8,3...... X 8,9 X 9,1 X 9,2 X 9,3...... X 9,9

Rzeczywiste problemy CSP Problem przydziału, np. kto która klasę będzie uczyć? Problem rozplanowania zadań, np. gdzie i kiedy będa odbywać się poszczególne zajęcia? Konfiguracja sprzętowa Arkusze elektroniczne Logistyka Zaplanowanie produkcji Planowanie kondygnacji Wiele rzeczywistych problemów ma zmienne o wartościach rzeczywistych.

Przeszukiwanie przyrostowe z powracaniem Stany: zmienne częściowo przypisane (tzn. tylko niektóre) więzy zawsze spełnione dla ustalonych zmiennych Stan poczatkowy: pusty zbiór przypisań /0 Funkcja następnika: przypisuje wartość do nieprzypisanej zmiennej tak, żeby nie powodować konfliktu więzów z dotychczasowym przypisaniem = porażka, gdy ustalenie kolejnej zmiennej jest niewykonalne Cel: pełne przypisanie zmiennych

Przeszukiwanie przyrostowe z powracaniem 1 Dla problemu z n zmiennymi każde rozwiazanie jest na głębokości n = warto używać przeszukiwania wgłab 2 Ścieżka jest nieistotna, przypisanie zmiennych jest przemienne, np. [najpierw WA = red potem NT = green] to tak samo jak [najpierw NT = green potem WA = red] = wystarczy rozważyć jeden ustalony porzadek przypisywania zmiennych

Przeszukiwanie przyrostowe z powracaniem Przeszukiwanie przyrostowe z powracaniem (ang. backtracking) przeszukiwanie wgłab, każdy krok to ustalenie wartości jednej zmiennej kolejność przypisywania zmiennych jest ustalona jeśli ustalenie kolejnej zmiennej jest niewykonalne bez łamania więzów następuje powrót, tzn. cofnięcie niektórych przypisań

Przeszukiwanie przyrostowe z powracaniem function BACKTRACKING-SEARCH(csp) returns a solution, or failure return RECURSIVE-BACKTRACKING([], csp) end function function RECURSIVE-BACKTRACKING(assigned, csp) returns a solution, or failure if assigned is complete then return assigned end if var SELECT-UNASSIGNED-VARIABLE(VARIABLES[csp], assigned, csp) for each value in ORDER-DOMAIN-VALUES(var, assigned, csp) do if value is consistent with assigned according to CONSTRAINTS[csp] then result RECURSIVE-BACKTRACKING([var = value assigned], csp) if result failure then return result end if end if end for return failure end function

Przeszukiwanie przyrostowe z powracaniem: przykład

Przeszukiwanie przyrostowe z powracaniem: przykład

Przeszukiwanie przyrostowe z powracaniem: przykład

Przeszukiwanie przyrostowe z powracaniem: przykład

Heurystyki przyspieszajace Wybór zmiennej w kolejnym kroku przeszukiwania: najbardziej ograniczona zmienna, tzn. zmienna z najmniejsza liczba dopuszczalnych wartości

Heurystyki przyspieszajace Wybór zmiennej w kolejnym kroku przeszukiwania: najbardziej ograniczajaca zmienna, tzn. zmienna z największa liczba więzów z pozostałymi zmiennymi

Sprowadzanie problemu do rozwiazywania SAT

Przykład: Sprowadzanie problemu do rozwiazywania SAT Western Australia Northern Territory Queensland South Australia New South Wales Victoria Tasmania Zmienne: WA, NT, Q, NSW, V, SA, T Dziedziny: D i = {red,green,blue} Więzy: sasiednie regiony maja mieć różne kolory, np. WA NT

Przykład: Sprowadzanie problemu do rozwiazywania SAT Western Australia Northern Territory Queensland South Australia New South Wales Victoria Tasmania (r WA g WA b WA r NT r SA ) (g WA r WA b WA g NT g SA ) (b WA g WA r WA b NT b SA )...

Przykład "SAT solver a" Algorytm DPLL (Davis-Putnam-Logemann-Loveland algorithm) Efektywna metoda zaproponowana w 1962, bazujaca na zasadzie algorytmu z powrotami. Algorytm wybiera literał i przypisuje mu wartość true upraszajac formułę. astępnie, dla uproszczonej formuły, uruchamiane jest rekurencyjnie sprawdzenie jej spełnialności. Jeśli kończy się ono niepowodzeniem, literałowi przypisywana jest wartość false i wyliczenie jest powtarzane. Algorytm korzysta dodatkowo z dwóch prostych reguł: Unit propagation - jeśli pewna klauzula jest złożona z jednego literału (ang. unit clause), to jej spełnialność poprzez przypisanie wartości zmiennym zdaniowym może być osiagnięta tylko w jeden sposób. Pure literal elimination - jeśli zmienna zdaniowa występuje w literałach formuły tylko w jednej postaci (jako zmienna albo jako jej zaprzeczenie), to można wybrać takie jej wartościowanie, że wszystkie klauzule, które ja zawieraja będa spełnione. Klauzule te moga zostać usunięte z formuły.

Dziękuję za uwagę!