Przeszukiwanie przestrzeni stanów. Wprowadzenie do Sztucznej Inteligencji. Podstawowe problemy teorii przeszukiwania przestrzeni stanów

Podobne dokumenty
Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Sztuczna Inteligencja i Systemy Doradcze

Rozwiązywanie problemów metodą przeszukiwania

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Wstęp do Sztucznej Inteligencji

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

Wstp. Warto przepływu to

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Heurystyczne przeszukiwanie przestrzeni stanów

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

Heurystyki. Strategie poszukiwań

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Heurystyczne przeszukiwanie przestrzeni stanów

Sztuczna Inteligencja i Systemy Doradcze

Heurystyczne przeszukiwanie przestrzeni stanów

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Heurystyczne metody przeszukiwania

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

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

Ogólne wiadomości o grafach

Szukanie najkrótszych dróg z jednym ródłem

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

Wykład2,24II2010,str.1 Przeszukiwanie przestrzeni stanów powtórka

Podstawy sztucznej inteligencji

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

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Matematyczne Podstawy Informatyki

Algorytmy i Struktury Danych.

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

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

Elementy kognitywistyki II:

Optymalizacja. Wybrane algorytmy

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

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

SZTUCZNA INTELIGENCJA

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmiczna teoria grafów

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Wstęp do Programowania potok funkcyjny

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Wybrane podstawowe rodzaje algorytmów

SZTUCZNA INTELIGENCJA

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Programowanie obiektowe

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD III: Problemy agenta

Sortowanie topologiczne skierowanych grafów acyklicznych

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Systemy eksperowe. Agnieszka Nowak Brzezińska Wykład I

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

Programowanie obiektowe

Projektowanie algorytmów rekurencyjnych

Podstawy sztucznej inteligencji

Optymalizacja. Przeszukiwanie lokalne

Systemy ekspertowe. Wnioskowanie w systemach regułowych. Część piąta. Autor Roman Simiński.

Podstawowe algorytmy grafowe i ich zastosowania

Podstawy Sztucznej Inteligencji (PSZT)

Gramatyki regularne i automaty skoczone

Metody przeszukiwania

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

Złożoność obliczeniowa klasycznych problemów grafowych

Wstęp do Programowania potok funkcyjny

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

Metody Kompilacji Wykład 3

Detekcja zakleszczenia (1)

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

ALHE Jarosław Arabas. Przeszukiwanie przestrzeni ścieżek w grafie. Algorytm A*

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2012/2013

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Wstęp do programowania

Technologie informacyjne Wykład VII-IX

Algorytmy i struktury danych

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

E S - uniwersum struktury stosu

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Listy i operacje pytania

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

RÓWNANIA NIELINIOWE Maciej Patan

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

Programowanie w VB Proste algorytmy sortowania

Podstawowe algorytmy grafowe i ich zastosowania

Zaawansowane algorytmy i struktury danych

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

FUNKCJA REKURENCYJNA. function s(n:integer):integer; begin if (n>1) then s:=n*s(n-1); else s:=1; end;

Temat: Algorytmy zachłanne

Systemy ekspertowe. Krzysztof Patan

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Struktury danych (I): kolejka, stos itp.

Wykład 10 Grafy, algorytmy grafowe

oraz spełnia warunki: (*) dla wszystkich wierzchołków

Sprawozdanie do zadania numer 2

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

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Przykłady problemów optymalizacyjnych

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

Transkrypt:

Przeszukiwanie przestrzeni stanów Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia Inynierskie Przestrze stanów jest to czwórka uporzdkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków odpowiadajcych stanom w procesie rozwizywania problemu jest zbiorem krawdzi, odpowiadajcych krokom w procesie rozwizywania problemu S jest niepustym podzbiorem N, zawierajcym stany pocztkowe problemu GD jest niepustym podzbiorem N, zawierajcym stany docelowe problemu. Stany GD s opisane: przez podanie własnoci stanów wystpujcych w przeszukiwaniu przez podanie własnoci cieki tworzonej podczas przeszukiwania ciek rozwizania nazywamy ciek wiodc przez ten graf z wierzchołka nalecego do S do wierzchołka nalecego do GD. Podstawowe problemy teorii przeszukiwania przestrzeni stanów Sformułowanie zadania dla algorytmów przeszukiwania Czy metoda gwarantuje znalezienie rozwizania? Czy algorytm zakoczy si w kadym przypadku, czy moe wpa w ptl nieskoczon? Czy jeli rozwizanie zostanie znalezione, to mamy gwarancj, e bdzie to rozwizanie optymalne? Jaka jest czasowa i pamiciowa ("przestrzenna") złoono obliczeniowa procesu przeszukiwania? Czy i w jaki sposób mona zredukowa złoono obliczeniow? Definicja stanu przestrzeni Stan pocztkowy problemu (ang. initial state) Zbiór dopuszczalnych operatorów/akcji (ang. operator/action set) lub funkcja nastpnika (ang. successor function) Zbiór stanów docelowych (ang. goal states) lub funkcja weryfikacji celu (ang. goal test) Funkcja u cieki (ang. path cost) - z reguły jest to głboko przeszukiwania 1

Istotne cechy przestrzeni stanów w reprezentacji grafowej Powtarzajce si stany: efektywno przeszukiwania Powtarzajce si stany (cykle) Identyfikacja typu grafu reprezentujcego przestrze przeszukiwania: drzewa, acykliczne grafy skierowane (DG) Rozmiar przestrzeni stanów (ograniczanie złoonoci) B C D C B C C B C Przestrze stanów Graf przeszukiwania przestrzeni Powtarzajce si stany: charakterystyka Powtarzajce si stany: metody przeciwdziałania Konieczno wykrywania ze wzgldu na efektywno przeszukiwania Nieuniknione w niektórych zadaniach (np. z odwracalnymi operatorami) - warunek zatrzymania Uwaga! Kompromis midzy ami przeszukiwania a ami wykrywania powtórze stanów Zakaz powrotu do bezporednio poprzedzajcego stanu Wykrywanie cykli w ciece - zakaz generowania jakiegokolwiek stanu poprzedzajcego (porednio) Wykrywanie dowolnego powtarzajcego si stanu w całym grafie przeszukiwania (due wymagania pamiciowe!)

Przykład przeszukiwania przestrzeni stanów: problem komiwojaera E 7 1 0 100 100 1 D 7 B 1 0 100 CDBE = 0 C Przykład przeszukiwania przestrzeni stanów: problem komiwojaera B 10 17 C D E 7 0 7 D E C E 00 00 00 E D E C 7 7 100 B 1 17 C D 100 7 0 E D E Kierunki przeszukiwania przestrzeni stanów Przeszukiwanie w przód Fakty Przeszukiwanie w przód (ang. forward chaining) Przeszukiwanie w tył (ang. backward chaining) Przeszukiwanie dwukierunkowe (ang. bidirectional search) Cel

Przeszukiwanie w tył Branching factor - co to takiego? Fakty Cel Kiedy przeszukiwanie w przód? Kiedy przeszukiwanie w tył? Wszystkie lub wikszo danych zawarta jest w pocztkowym sformułowaniu problemu - np. interpretacja i analiza duych zbiorów danych Wystpuje dua liczba potencjalnych celów, ale jest tylko kilka moliwoci zastosowania faktów i informacji wejciowych dla konkretnej instancji problemu Trudno sformułowa hipotez docelow - np. okrelanie struktury zwizków chemicznych Przeszukiwanie w przód wykorzystuje wiedz i ograniczenia zawarte w danych i opisie stanu pocztkowego problemu, aby pokierowa przeszukiwaniem zgodnie z zasadami opisanymi przez operatory zmiany stanów. Cel lub hipoteza jest dana w sformułowaniu problemu albo mona j łatwo sformułowa np. dowodzenie twierdze matematycznych, systemy diagnostyczne Liczba reguł moliwych do zastosowania ronie szybko i powoduje, e liczba odwiedzanych stanów jest bardzo dua; wczesna sekcja celów moe wyeliminowa wikszo gałzi tak, e przeszukiwanie bdzie bardziej efektywne np. dowodzenie twierdze Dane o problemie nie s znane explicite, tylko musz by pozyskane przez rozwizujcego; przeszukiwanie w tył moe pomóc ukierunkowa proces pozyskiwania danych - np. diagnostyka medyczna Przeszukiwanie wstecz wykorzystuje informacje o danym celu i kieruje procesem przeszukiwania poprzez dobór odpowiednich operatorów zmiany stanów oraz eliminacj pewnych gałzi z przestrzeni stanów.

Przeszukiwanie dwukierunkowe Przeszukiwanie dwukierunkowe Fakty Cel Jednoczesne przeszukiwanie w przód i w tył Ograniczenie złoonoci czasowej Problem generowania poprzedników stanu Problem wielu stanów docelowych (np. stany poprzedzajce mata w szachach) Efektywna metoda sprawdzania wystpowania stanu w grafie przeszukiwania przeciwnego kierunku (problem wyminicia!) Dobór odpowiedniej strategii przeszukiwania w kadym kierunku Praktyczna realizacja przeszukiwania - mechanizm nawrotów Fakty Strategie przeszukiwania przestrzeni stanów Cel Nawroty gwarantuj realizacj przeszukiwania wszystkich cieek w sposób systematyczny. Przeszukiwanie wszerz (ang. breadth-first search) Przeszukiwanie w głb (ang. depth-first search) Przeszukiwanie w głb z nawrotami (ang. depth-first search with backtracking) Przeszukiwanie z iteracyjnym pogłbianiem (ang. iterative deepening search) Przeszukiwanie metod jednolitego (równomiernego) u (ang. uniform-cost search)

lgorytm przeszukiwania w głb Przeszukiwanie w głb - przykład procedure depth_first_search(initial_state) open = [initial_state]; closed = []; while open [] do remove the leftmost state from open, call it X; if X is goal state then return(success); generate all children of X; put X on closed; eliminate any children of X already on either open or closed, as this will cause loops in the search; put the remaining descendants, in order of discovery, on the LEFT end of open; end end. Przeszukiwanie w głb - przykład Przeszukiwanie w głb - przykład

Przeszukiwanie w głb - przykład Przeszukiwanie w głb - przykład Przeszukiwanie w głb - przykład Przeszukiwanie w głb - przykład itd. 7

lgorytm przeszukiwania w głb (rekurencja) function depth_first_search(current_state) if current_state is a goal then return(success) else add current_state to closed; while current_state has unexamined children do child := next unexamined child of current_state end end; return(fail) end. if child is not a member of closed then if depth_first_search(child) = success then return(success) {check for loops} Przeszukiwanie w głb - przykład 1 1 7 19 1 7 1 7 0 9 7 1 7 1 1 7 7 1 1 1 7 1 7 1 7 1 7 9 1 1 1 0 1 7 7 1 7 1 1 7 1 7 7 1 7 1 1 7 1 7 cel 7 10 11 1 1 1 17 7 1 lgorytm przeszukiwania wszerz Przeszukiwanie wszerz - przykład procedure breadth_first_search(initial_state) open = [initial_state]; closed = []; while open [] do remove the leftmost state from open, call it X; if X is goal state then return(success); generate all children of X; put X on closed; eliminate any children of X already on either open or closed, as this will cause loops in the search; put the remaining descendants, in order of discovery, on the RIGHT end of open; end end.

Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład 9

Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład 1 1 7 1 1 7 7 1 7 7 9 1 7 1 7 1 7 1 7 10 11 1 1 1 1 1 17 1 19 1 7 7 1 1 7 1 7 1 7 1 7 1 7 1 7 itd. 0 1 7 9 7 1 1 7 7 1 1 7 7 1 1 7 7 1 1 7 1 7 1 7 1 7 1 7 7 1 1 7 7 1 1 7 1 7 1 7 0 1 1 7 cel 7 9 0 1 7 10

lgorytm przeszukiwania z iteracyjnym pogłbianiem (1) procedure iterative_deepening_search(initial_state) for depth 0 to do if depth_limited_search(initial_state, depth) = success then return(its result); end; return(failure); end. lgorytm przeszukiwania z iteracyjnym pogłbianiem () function depth_limited_search(current_state, depth) if current_state is a goal then return(success) else if depth = 0 then return(failure) else add current_state to closed; while current_state has unexamined children do child := next unexamined child of current_state end end; return(failure) end. if child is not a member of closed then if depth_limited_search(child, depth-1) = success then return(success) {check for loops} depth=0 depth=1 11

depth=1 depth=1 depth=1 depth=1 1

depth= depth= depth= depth= 1

depth= depth= depth= depth= 1

depth= depth= depth= depth= 1

depth= depth= depth= depth= 1

depth= depth= itd. lgorytm Uniform-cost search procedure uniform_cost_search(initial_state) open = [initial_state]; closed = []; while open [] do remove the first state from open, not already on closed, call it X; if X is a goal state then return(solution path that led to X); generate all children of X; put X on closed; for each child of X do assign path cost to the child state; add the child state to the open; end; re-order states on open according to path cost value (lower values first) end end. lgorytm UCS - przykład(1) -0 B- C- D- 17

lgorytm UCS - przykład() lgorytm UCS - przykład() -0 B- C- D- -0 B- C- D- E-9 F-9 G H I J lgorytm UCS - przykład() lgorytm UCS - przykład() -0-0 B- C- D- E-9 F-9 G-9 H- I J B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 1

lgorytm UCS - przykład() lgorytm UCS - przykład(7) -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K L M N O-10 P-11 Q R -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1 L-1 M N O-10 P-11 Q R lgorytm UCS - przykład() lgorytm UCS - przykład(9) -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1 L-1/11 M-1 N O-10 P-11 Q R -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1 L-1/11 M-1 N-1 O-10 P-11 Q R 19

lgorytm UCS - przykład(10) lgorytm UCS - przykład(11) -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1 L-1/11M-1 N-1 O-10 P-11 Q R -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1 L-1/11M-1 N-1 O-10 P-11 Q R S T-1 U lgorytm UCS - przykład(1) lgorytm UCS: charakterystyka -0 B- C- D- 7 E-9 F-9 G-9 H- I-1 J-1 K-1L-1/11M-1N-1 O-10 P-11 Q R 1 S T-1 U-1 itd. Cechy szczególne Ocena stanu to dojcia do tego stanu ( pokonanej cieki od stanu pocztkowego) - przejcia z dowolnego stanu do jego stanu potomnego musi by zawsze 0 Stanowi uogólnienie algorytmu przeszukiwania wszerz - w algorytmie przesz. wszerz, to głboko na jakiej ley stan Optymalny (gwarantuje znalezienie najkrótszego rozwizania) Wady Due wymagania czasowe i pamiciowe (rosnce wykładniczo!)!!! 0

Porównanie strategii przeszukiwania Zasady implementacji algorytmów przeszukiwania przestrzeni stanów W głb Iteracyjne Dwukierunkowe Kryterium Wszerz Uniformcost z nawrotami pogłbianie ( jeli moliwe) Czas B d B d B n B d B d/ Pami B d B d Bn Bd B d/ Optymalny? Tak Tak Nie Tak Tak Zupełny? Tak Tak Tak Tak Tak B - rednia liczba nastpników kadego stanu (ang. branching factor) n - maksymalna głboko przeszukiwania d - głboko rozwizania 1. Reprezentacja rozwizania problemu jako cieki od stanu pocztkowego do stanu docelowego.. Przegldanie systematyczne wszystkich cieek w poszukiwaniu celu.. Powrót do poprzedniego stanu pozwalajcy na wznowienie przeszukiwania w sytuacji, gdy dotychczasowa cieka nie prowadzi do celu - mechanizm nawrotów.. Struktury listowe umoliwiajce utrzymywanie w sposób jawny danych o aktualnie analizowanych stanach: lista open, pozwalajca na powrót do nie odwiedzonych jeszcze stanów, lista closed stanów ju odwiedzonych, pozwalajca na wykrywanie ptli i uniknicie powtarzania bezowocnych cieek.. Zastosowanie stosu w algorytmie przeszukiwania w głb i kolejki jednokierunkowej w przeszukiwaniu wszerz. 1