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ń

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

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

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

Heurystyczne przeszukiwanie przestrzeni stanów

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

Podstawy Sztucznej Inteligencji (PSZT)

Heurystyczne przeszukiwanie przestrzeni stanów

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

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

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

Sortowanie topologiczne skierowanych grafów acyklicznych

SZTUCZNA INTELIGENCJA

Matematyczne Podstawy Informatyki

Podstawy sztucznej inteligencji

Elementy kognitywistyki II:

Ogólne wiadomości o grafach

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

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

Wstęp do Programowania potok funkcyjny

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

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

Optymalizacja. Wybrane algorytmy

Algorytmy i Struktury Danych.

Wybrane podstawowe rodzaje algorytmów

Podstawy sztucznej inteligencji

Algorytmiczna teoria grafów

Metody przeszukiwania

Porządek symetryczny: right(x)

SZTUCZNA INTELIGENCJA

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

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

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

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

Programowanie obiektowe

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

Wykład 10 Grafy, algorytmy grafowe

Digraf. 13 maja 2017

Zaawansowane algorytmy i struktury danych

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

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

Programowanie obiektowe

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

Wstęp do Programowania potok funkcyjny

Algorytmiczna teoria grafów Przepływy w sieciach.

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

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

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

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

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

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

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

Algorytmy i struktury danych. wykład 5

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

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

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

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

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

Przykłady problemów optymalizacyjnych

Detekcja zakleszczenia (1)

Sprawozdanie do zadania numer 2

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Heurystyczne przeszukiwanie grafów w gier dwuosobowych

Programowanie w VB Proste algorytmy sortowania

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Metody Kompilacji Wykład 3

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

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

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

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

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

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

Optymalizacja. Przeszukiwanie lokalne

Algorytmy i struktury danych

Zadania laboratoryjne i projektowe - wersja β

TEORETYCZNE PODSTAWY INFORMATYKI

Zadanie 1: Piętnastka

Podstawy Informatyki. Sprawność algorytmów

Algorytm genetyczny (genetic algorithm)-

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

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

Transkrypt:

Wprowadzenie do Sztucznej Inteligencji Wykład 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 w odpowiadających stanom w procesie rozwiązywania zywania problemu jest zbiorem krawędzi, odpowiadających krokom w procesie rozwiązywania 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 pujących w przeszukiwaniu przez podanie własności ścieżki tworzonej podczas przeszukiwania Ścieżką rozwiązania 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 zania? Czy algorytm zakończy się w każdym przypadku, czy może e wpaść w pętlę nieskończon czoną? Czy jeśli rozwiązanie zanie zostanie znalezione, to mamy gwarancję, że e będzie b to rozwiązanie zanie optymalne? Jaka jest czasowa i pamięciowa ("przestrzenna") złożoność obliczeniowa procesu przeszukiwania? Czy i w jaki sposób b można zredukować złożoność obliczeniową? Sformułowanie owanie zadania dla algorytmów przeszukiwania Definicja stanu przestrzeni Stan początkowy problemu (ang. initial state) Zbiór r dopuszczalnych operatorów/akcji (ang. operator/action action set) lub funkcja następnika (ang. successor function) Zbiór stanów 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łęg łębokość przeszukiwania 2

Istotne cechy 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 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) cykle (zapewnienie warunku stopu) Uwaga! Kompromis między kosztami przeszukiwania a kosztami wykrywania powtórze rzeń stanów Powtarzające się stany: metody przeciwdziałania ania Zakaz powrotu do bezpośrednio poprzedzającego stanu Wykrywanie cykli w ścieżce ce - zakaz generowania jakiegokolwiek stanu poprzedzającego (pośrednio) Wykrywanie dowolnego powtarzającego się stanu w całym grafie przeszukiwania (duże e wymagania pamięciowe!)

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

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

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

Kiedy przeszukiwanie w przód? Wszystkie lub większo kszość danych zawarta jest w początkowym sformułowaniu owaniu problemu - np. interpretacja i analiza dużych zbiorów danych Występuje duża a liczba potencjalnych celów, ale jest tylko kilka możliwo liwości zastosowania faktów w i informacji wejściowych dla konkretnej instancji problemu Trudno sformułowa ować hipotezę docelową - np. określanie struktury związk zków w chemicznych Przeszukiwanie w przód 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 owaniu problemu albo można jąj łatwo sformułowa ować np. dowodzenie twierdzeń matematycznych, systemy diagnostyczne Liczba reguł możliwych do zastosowania rośnie szybko i powoduje, że e liczba odwiedzanych stanów w jest bardzo duża; wczesna sekcja celów w może e wyeliminować większo kszość gałę łęzi tak, że e przeszukiwanie będzie bardziej efektywne np. dowodzenie twierdzeń Dane o problemie nie sąs znane explicite,, tylko muszą być pozyskane przez rozwiązuj zującego; przeszukiwanie w tył może e pomóc ukierunkować proces pozyskiwania danych - np. diagnostyka medyczna Przeszukiwanie wstecz wykorzystuje informacje o żądanym celu i kieruje procesem przeszukiwania poprzez dobór r odpowiednich operatorów w zmiany stanów w oraz eliminację pewnych gałę łęzi z przestrzeni stanów. 8

Przeszukiwanie dwukierunkowe Fakty Cel Przeszukiwanie dwukierunkowe Jednoczesne przeszukiwanie w przód d i w tył Ograniczenie złożonoz oności czasowej Problem generowania poprzedników w stanu Problem wielu stanów 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 r odpowiedniej strategii przeszukiwania w każdym kierunku 9

Mechanizm nawrotów: w: praktyczna realizacja przeszukiwania Fakty Cel Nawroty gwarantują realizację przeszukiwania wszystkich ścieżek ek w sposób systematyczny. Strategie przeszukiwania przestrzeni stanów Przeszukiwanie wszerz (ang. breadth-first search) Przeszukiwanie w głąg łąb b (ang. depth-first search) Przeszukiwanie w głąg łąb b z nawrotami (ang. depth-first search with backtracking) Przeszukiwanie z iteracyjnym pogłę m (ang. iterative deepening search) Przeszukiwanie metodą jednolitego (równomiernego) kosztu (ang. uniform-cost search) 10

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

Przeszukiwanie w głąg łąb Przeszukiwanie w głąg łąb 12

Przeszukiwanie w głąg łąb Przeszukiwanie w głąg łąb 1

Przeszukiwanie w głąg łąb Przeszukiwanie w głąg łąb itd. 1

lgorytm przeszukiwania w głąg łąb (rekurencja) function depth_first_search(current_state 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 if child is not a member of closed then {check for loops} if depth_first_search(child child) ) = success then return(success) end end; return(fail) end. 8 2 1 7 Przeszukiwanie w głąg łąb 8 2 1 7 2 8 1 7 1 7 2 18 1 7 19 28 1 7 1 7 8 2 1 7 7 1 1 7 8 20 2 29 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 1

lgorytm przeszukiwania wszerz procedure breadth_first_search(initial_state initial_state) begin open = [initial_state[ 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 1

Przeszukiwanie wszerz Przeszukiwanie wszerz 17

Przeszukiwanie wszerz Przeszukiwanie wszerz 18

Przeszukiwanie wszerz Przeszukiwanie wszerz 19

Przeszukiwanie wszerz itd. Przeszukiwanie wszerz 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 2 8 1 7 1 7 1 7 8 2 1 7 7 1 7 1 8 2 1 7 7 1 2 1 8 7 1 2 8 7 2 1 8 7 2 1 8 7 1 7 2 1 7 1 7 20 21 22 2 2 2 2 27 28 29 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 20

lgorytm przeszukiwania z iteracyjnym pogłę m (1) procedure iterative_deepening_search(initial_state initial_state) begin for depth 0 to do begin if depth_limited_search(initial_state initial_state, depth) = success then return(its result); end; return(failure); end. lgorytm przeszukiwania z iteracyjnym pogłę m (2) function depth_limited_search(current_state 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 if child is not a member of closed then {check for loops} if depth_limited_search(child child, depth-1) = success then return(success) end end; return(failure) end. 21

depth=0 depth=1 22

depth=1 depth=1 2

depth=1 depth=1 2

depth=2 depth=2 2

depth=2 depth=2 2

depth=2 depth=2 27

depth=2 depth=2 28

depth=2 depth=2 29

depth=2 depth= 0

depth= depth= 1

depth= depth= 2

depth= depth= itd.

lgorytm Uniform-cost search procedure uniform_cost_search(initial_state initial_state) begin open = [initial_state[ 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 (1) -0 B- C- D- koszt operacji

lgorytm UCS (2) -0 B- C- D- koszt operacji lgorytm UCS () -0 B- C- D- E-9 F-9 G H I J koszt operacji

lgorytm UCS () -0 B- C- D- E-9 F-9 G-9 H-8 I J koszt operacji lgorytm UCS () -0 B- C- D- 7 E-9 F-9 G-9 H-8 I-12 J-1 koszt operacji

lgorytm UCS () -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 lgorytm UCS (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 7

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

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

lgorytm UCS (12) -0 B- C- D- 7 E-9 F-9 G-9 H-8 I-12 J-1 2 2 K-1 L-12/11 M-1N-11 O-10 P-11 Q R 1 2 S T-1 U-12 itd. koszt operacji 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łęg łębokość na jakiej leży y stan Optymalny (gwarantuje znalezienie najkrótszego rozwiązania) zania)!!! Wady Duże e wymagania czasowe i pamięciowe (rosnące wykładniczo! adniczo!) 0

Porównanie strategii przeszukiwania W głąb Iteracyjne Dwukie- Kryterium Wszerz Uniformcost z nawrotami pog 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 zania problemu jako ścieżki od stanu początkowego do stanu docelowego. 2. Przeglądanie systematyczne wszystkich ścieżek ek w poszukiwaniu celu.. Powrót 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 liwiające utrzymywanie w sposób b jawny danych o aktualnie analizowanych stanach: lista open,, pozwalająca na powrót t do nie odwiedzonych jeszcze stanów, lista closed stanów w już odwiedzonych, pozwalająca na wykrywanie pętli p i uniknięcie powtarzania bezowocnych ścieżek. ek.. Zastosowanie stosu w algorytmie przeszukiwania w głąg łąb b i kolejki jednokierunkowej w przeszukiwaniu wszerz. 1