Wprowadzenie do Sztucznej Inteligencji

Podobne dokumenty
Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji

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

Sztuczna Inteligencja i Systemy Doradcze

Rozwiązywanie problemów metodą przeszukiwania

Wstęp do Sztucznej Inteligencji

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

Heurystyczne przeszukiwanie przestrzeni stanów

Heurystyki. Strategie poszukiwań

Heurystyczne przeszukiwanie przestrzeni stanów

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

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

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

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

Sztuczna Inteligencja i Systemy Doradcze

Heurystyczne metody przeszukiwania

Sortowanie topologiczne skierowanych grafów acyklicznych

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

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

Podstawy Sztucznej Inteligencji (PSZT)

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Wstęp do Programowania potok funkcyjny

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

Heurystyczne przeszukiwanie przestrzeni stanów

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:

Podstawy sztucznej inteligencji

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

SZTUCZNA INTELIGENCJA

Matematyczne Podstawy Informatyki

Ogólne wiadomości o grafach

Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Krzysztof Jakubczyk. Zadanie 2

Algorytmiczna teoria grafów

SZTUCZNA INTELIGENCJA

Optymalizacja. Wybrane algorytmy

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

Metody przeszukiwania

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

Podstawy sztucznej inteligencji

Algorytmy i Struktury Danych.

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

Wstęp do Programowania potok funkcyjny

Heurystyczne przeszukiwanie grafów gier dwuosobowych

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

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

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

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

Programowanie obiektowe

Algorytmy i struktury danych

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

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

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

Zaawansowane algorytmy i struktury danych

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Programowanie obiektowe

Optymalizacja. Przeszukiwanie lokalne

Wybrane podstawowe rodzaje algorytmów

Wstęp do programowania. Zastosowania stosów i kolejek. Piotr Chrząstowski-Wachtel

Algorytmy i struktury danych. wykład 5

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

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

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

Wykład 10 Grafy, algorytmy grafowe

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

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

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

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

Digraf. 13 maja 2017

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

Porządek symetryczny: right(x)

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

Zadanie 1: Piętnastka

TEORETYCZNE PODSTAWY INFORMATYKI

Metody Kompilacji Wykład 3

Dynamiczne struktury danych

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

Programowanie w VB Proste algorytmy sortowania

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

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

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

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Algorytmy i struktury danych

Kolejkowanie. Graf sekwencyjny. Graf sekwencyjny: biegunowy, acykliczny Graf acykliczny to graf nie zawierający cykli G(V,E)

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

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

Detekcja zakleszczenia (1)

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Algorytmy i struktury danych, C3

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

Indukowane Reguły Decyzyjne I. Wykład 3

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

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Transkrypt:

Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków odpowiadających stanom w procesie rozwiązywania problemu jest zbiorem krawędzi, odpowiadających krokom w procesie rozwiązywania problemu S jest niepustym podzbiorem N, zawierającym stany początkowe problemu GD jest niepustym podzbiorem N, zawierającym stany docelowe problemu. Stany GD są opisane: przez podanie własności stanów występujących w przeszukiwaniu przez podanie własności ścieŝki tworzonej podczas przeszukiwania ŚcieŜką rozwiązania nazywamy ścieŝkę wiodącą przez ten graf z wierzchołka naleŝącego do S do wierzchołka naleŝącego do GD. 1

Podstawowe problemy teorii przeszukiwania przestrzeni stanów Czy metoda gwarantuje znalezienie rozwiązania? Czy algorytm zakończy się w kaŝdym przypadku, czy moŝe wpaść w pętlę nieskończoną? Czy jeśli rozwiązanie zostanie znalezione, to mamy gwarancję, Ŝe będzie to rozwiązanie optymalne? Jaka jest czasowa i pamięciowa ("przestrzenna") złoŝoność obliczeniowa procesu przeszukiwania? Czy i w jaki sposób moŝna zredukować złoŝoność obliczeniową? Sformułowanie zadania dla algorytmów przeszukiwania Definicja stanu przestrzeni Stan początkowy problemu (ang. initial state) Zbiór dopuszczalnych operatorów/akcji (ang. operator/action set) lub funkcja następnika (ang. successor function) Zbiór stanów docelowych (ang. goal states) lub funkcja weryfikacji celu (ang. goal test) Funkcja kosztu ścieŝki (ang. path cost) - z reguły jest to głębokość przeszukiwania 2

Własności przestrzeni stanów w reprezentacji grafowej Powtarzające się stany (cykle) Identyfikacja typu grafu reprezentującego przestrzeń przeszukiwania: drzewa, acykliczne grafy skierowane (DG) Rozmiar przestrzeni stanów (ograniczanie złoŝoności) Powtarzające się stany: efektywność przeszukiwania B B B C C C C C D Przestrzeń stanów Graf przeszukiwania przestrzeni

Powtarzające się stany: charakterystyka Konieczność wykrywania ze względu na efektywność przeszukiwania Nieuniknione w niektórych zadaniach (np. z odwracalnymi operatorami) - warunek zatrzymania Uwaga! Kompromis między kosztami przeszukiwania a kosztami wykrywania powtórzeń stanów Powtarzające się stany: metody przeciwdziałania Zakaz powrotu do bezpośrednio poprzedzającego stanu Wykrywanie cykli w ścieŝce - zakaz generowania jakiegokolwiek stanu poprzedzającego (pośrednio) Wykrywanie dowolnego powtarzającego się stanu w całym grafie przeszukiwania (duŝe wymagania pamięciowe!)

Przykład przeszukiwania przestrzeni stanów: problem komiwojaŝera 100 B 7 100 0 E 12 0 12 7 12 100 C D CDBE = 0 Przykład przeszukiwania przestrzeni stanów: problem komiwojaŝera B 10 22 17 C D E 27 20 27 22 D E C E 2 00 00 00 E D E C 7 2 7 2 100 B 12 17 C D 100 7 22 20 E D E

Kierunki przeszukiwania przestrzeni stanów Przeszukiwanie w przód (ang. forward chaining) Przeszukiwanie w tył (ang. backward chaining) Przeszukiwanie dwukierunkowe (ang. bidirectional search) Przeszukiwanie w przód Start Cel

Przeszukiwanie w tył Start Cel Branching factor - co to takiego? 2 2 2 7

Kiedy przeszukiwanie w przód? Wszystkie lub większość danych zawarta jest w początkowym sformułowaniu problemu - np. interpretacja i analiza duŝych zbiorów danych Występuje duŝa liczba potencjalnych celów, ale jest tylko kilka moŝliwości zastosowania faktów i informacji wejściowych dla konkretnej instancji problemu Trudno sformułować hipotezę docelową - np. określanie struktury związków chemicznych Przeszukiwanie w przód wykorzystuje wiedzę i ograniczenia zawarte w danych i opisie stanu początkowego problemu, aby pokierować przeszukiwaniem zgodnie z zasadami opisanymi przez operatory zmiany stanów. Kiedy przeszukiwanie w tył? Cel lub hipoteza jest dana w sformułowaniu problemu albo moŝna ją łatwo sformułować np. dowodzenie twierdzeń matematycznych, systemy diagnostyczne Liczba reguł moŝliwych do zastosowania rośnie szybko i powoduje, Ŝe liczba odwiedzanych stanów jest bardzo duŝa; wczesna sekcja celów moŝe wyeliminować większość gałęzi tak, Ŝe przeszukiwanie będzie bardziej efektywne np. dowodzenie twierdzeń Dane o problemie nie są znane explicite, tylko muszą być pozyskane przez rozwiązującego; przeszukiwanie w tył moŝe 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. 8

Przeszukiwanie dwukierunkowe Start Cel Przeszukiwanie dwukierunkowe Jednoczesne przeszukiwanie w przód i w tył Ograniczenie złoŝoności czasowej Problem generowania poprzedników stanu Problem wielu stanów docelowych (np. stany poprzedzające mata w szachach) Efektywna metoda sprawdzania występowania stanu w grafie przeszukiwania przeciwnego kierunku (problem wyminięcia!) Dobór odpowiedniej strategii przeszukiwania w kaŝdym kierunku 9

Praktyczna realizacja przeszukiwania - mechanizm nawrotów Start Cel Strategie przeszukiwania przestrzeni stanów 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 kosztu (ang. uniform-cost search) 10

lgorytm przeszukiwania w głąb procedure depth_first_search(initial_state) begin open = [initial_state]; closed = []; while open [] do begin 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 11

Przeszukiwanie w głąb - przykład Przeszukiwanie w głąb - przykład 12

Przeszukiwanie w głąb - przykład Przeszukiwanie w głąb - przykład 1

Przeszukiwanie w głąb - przykład Przeszukiwanie w głąb - przykład S nawrót T U 1

Przeszukiwanie w głąb - przykład Przeszukiwanie w głąb - przykład nawrót 1

Przeszukiwanie w głąb - przykład S eliminacja T U powtórzeń Przeszukiwanie w głąb - przykład itd. 1

lgorytm przeszukiwania w głąb (rekurencja) function depth_first_search(current_state) begin if current_state is a goal then return(success) else begin add current_state to closed; while current_state has unexamined children do begin 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} 8 2 1 7 Przeszukiwanie w głąb - przykład 1 7 2 18 1 7 19 28 8 2 1 7 8 2 1 7 1 7 8 20 2 29 2 8 1 7 1 7 1 7 7 1 7 1 8 2 1 7 7 1 1 1 7 1 7 2 1 8 7 2 1 8 7 9 12 1 21 2 0 1 2 8 7 8 2 1 7 8 2 1 7 2 8 1 7 2 8 1 7 1 7 1 7 7 1 7 1 8 2 1 7 8 1 2 7 7 1 7 1 1 2 7 8 1 2 8 7 cel 7 10 11 1 1 1 17 22 2 2 27 1 2 17

lgorytm przeszukiwania wszerz procedure breadth_first_search(initial_state) begin open = [initial_state]; closed = []; while open [] do begin 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 18

Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład 19

Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład 20

Przeszukiwanie wszerz - przykład Przeszukiwanie wszerz - przykład 21

Przeszukiwanie wszerz - przykład itd. Przeszukiwanie wszerz - przykład 1 1 7 2 1 7 1 7 1 7 8 2 1 7 7 2 8 9 1 7 1 7 1 8 7 1 7 1 7 10 11 12 1 1 1 1 17 18 19 8 2 1 7 1 7 8 2 1 7 7 1 2 1 8 7 2 1 8 7 1 7 1 7 20 21 22 2 2 2 2 27 28 29 2 8 1 7 1 7 7 1 8 2 1 7 7 1 1 2 8 7 2 1 8 7 2 1 7 8 1 7 1 7 1 7 1 7 2 1 8 7 1 7 2 1 7 0 1 2 8 8 2 1 7 8 2 1 7 2 8 1 7 2 8 1 7 1 7 1 7 7 1 7 1 8 2 1 7 8 1 2 7 7 1 7 1 1 2 7 8 1 2 8 7 cel 7 8 9 0 1 2 7 22

lgorytm przeszukiwania z iteracyjnym pogłębianiem (1) procedure iterative_deepening_search(initial_state) begin for depth 0 to do begin if depth_limited_search(initial_state, depth) = success then return(its result); end; return(failure); end. lgorytm przeszukiwania z iteracyjnym pogłębianiem (2) function depth_limited_search(current_state, depth) begin if current_state is a goal then return(success) else if depth = 0 then return(failure) else begin add current_state to closed; while current_state has unexamined children do begin 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} 2

depth=0 depth=1 2

depth=1 depth=1 2

depth=1 depth=2 2

depth=2 depth=2 27

depth=2 depth=2 28

depth=2 depth=2 29

depth=2 depth=2 0

depth=2 depth= 1

depth= depth= 2

depth= depth=

depth= itd. lgorytm Uniform-cost search procedure uniform_cost_search(initial_state) begin open = [initial_state]; closed = []; while open [] do begin 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- koszt operacji lgorytm UCS - przykład(2) -0 B- C- D- koszt operacji

lgorytm UCS - przykład() -0 B- C- D- E-9 F-9 G H I J koszt operacji lgorytm UCS - przykład() -0 B- C- D- E-9 F-9 G-9 H-8 I J koszt operacji

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

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

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

lgorytm UCS - przykład(11) -0 B- C- D- 7 E-9 F-9 G-9 H-8 I-12 J-1 2 K-1 L-12 M-1N-1 O-10 P-11 Q 1 R koszt operacji -12 itd. lgorytm UCS: charakterystyka Cechy szczególne Ocena stanu to koszt dojścia do tego stanu (koszt pokonanej ścieŝki od stanu początkowego) - koszt przejścia z dowolnego stanu do jego stanu potomnego musi być zawsze 0 Stanowi uogólnienie algorytmu przeszukiwania wszerz - w algorytmie przesz. wszerz koszt, to głębokość na jakiej leŝy stan Optymalny (gwarantuje znalezienie najkrótszego rozwiązania)!!! Wady DuŜe wymagania czasowe i pamięciowe (rosnące wykładniczo!) 0

Porównanie strategii przeszukiwania W głąb Iteracyjne Dwukie- Kryterium Wszerz Uniformcost z nawrotami pogłębianie runkowe ( jeśli moŝliwe) Czas B d B d B n B d B d/2 Pamięć B d B d Bn Bd B d/2 Optymalny? Tak Tak Nie Tak Tak Zupełny? Tak Tak Tak Tak Tak B - średnia liczba następników kaŝdego stanu (ang. branching factor) n - maksymalna głębokość przeszukiwania d - głębokość rozwiązania Zasady implementacji algorytmów przeszukiwania przestrzeni stanów 1. Reprezentacja rozwiązania problemu jako ścieŝki od stanu początkowego do stanu docelowego. 2. Przeglądanie systematyczne wszystkich ścieŝek w poszukiwaniu celu.. Powrót do poprzedniego stanu pozwalający na wznowienie przeszukiwania w sytuacji, gdy dotychczasowa ścieŝka nie prowadzi do celu - mechanizm nawrotów.. Struktury listowe umoŝliwiające utrzymywanie w sposób jawny danych o aktualnie analizowanych stanach: lista open, pozwalająca na powrót do nie odwiedzonych jeszcze stanów, lista closed stanów juŝ odwiedzonych, pozwalająca na wykrywanie pętli i uniknięcie powtarzania bezowocnych ścieŝek.. Zastosowanie stosu w algorytmie przeszukiwania w głąb i kolejki jednokierunkowej w przeszukiwaniu wszerz. 1