SZTUCZNA INTELIGENCJA

Podobne dokumenty
Heurystyki. Strategie poszukiwań

Wstęp do Sztucznej Inteligencji

Rozwiązywanie problemów metodą przeszukiwania

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

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

Heurystyczne metody przeszukiwania

Metody przeszukiwania

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

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

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

Podstawy sztucznej inteligencji

Znajdowanie wyjścia z labiryntu

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Zadanie 1: Piętnastka

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

Sztuczna Inteligencja i Systemy Doradcze

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

Podstawy Sztucznej Inteligencji (PSZT)

Algorytmy i struktury danych

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

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

Planowanie drogi robota, algorytm A*

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Wstęp do programowania

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

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

Matematyczne Podstawy Informatyki

Ogólne wiadomości o grafach

Elementy kognitywistyki II:

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

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

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

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

a) 7 b) 19 c) 21 d) 34

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

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

SZTUCZNA INTELIGENCJA

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

Wybrane podstawowe rodzaje algorytmów

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

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

Zaawansowane programowanie

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Złożoność obliczeniowa zadania, zestaw 2

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Algorytmiczna teoria grafów

Podstawy sztucznej inteligencji

SZTUCZNA INTELIGENCJA

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

Wstęp do programowania

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

OPTYMALIZACJA W LOGISTYCE

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

Sztuczna Inteligencja i Systemy Doradcze

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

Wprowadzenie do Sztucznej Inteligencji

Algorytmy ewolucyjne (3)

SYSTEMY UCZĄCE SIĘ WYKŁAD 3. DRZEWA DECYZYJNE. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

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

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

Sztuczna inteligencja w programowaniu gier

Metody Kompilacji Wykład 3

Algorytmy przeszukiwania

Metoda podziału i ograniczeń

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

Algorytmy i Struktury Danych

Wyznaczanie strategii w grach

ALGORYTMY I STRUKTURY DANYCH

Wykłady z Matematyki Dyskretnej

1 Równania nieliniowe

Wstęp do Programowania potok funkcyjny

9.9 Algorytmy przeglądu

Funkcje wymierne. Jerzy Rutkowski. Działania dodawania i mnożenia funkcji wymiernych określa się wzorami: g h + k l g h k.

Lista 4. Kamil Matuszewski 22 marca 2016

Wprowadzenie do Sztucznej Inteligencji

Struktury danych: stos, kolejka, lista, drzewo

dr inż. Jarosław Forenc

Programowanie obiektowe

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste.

Instrukcja. Laboratorium Metod i Systemów Sterowania Produkcją.

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

Programowanie sieciowe. Tadeusz Trzaskalik

Programowanie obiektowe

LABORATORIUM 7: Problem komiwojażera (TSP) cz. 2

Abstrakcyjne struktury danych - stos, lista, drzewo

Sortowanie. Bartman Jacek Algorytmy i struktury

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

Co to są drzewa decyzji

Wykład 10 Grafy, algorytmy grafowe

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

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Luty 2001 Algorytmy (4) 2000/2001

Algorytmy memetyczne (hybrydowe algorytmy ewolucyjne)

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

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

Programowanie dynamiczne cz. 2

Transkrypt:

SZTUCZNA INTELIGENCJA WYKŁAD 12. PRZESZUKIWANIE Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

ROZWIĄZYWANIE PROBLEMÓW JAKO PRZESZUKIWANIE Istotną rolę podczas rozwiązywania problemu ma wybór sposobu postępowania prowadzącego do uzyskania określonych wyników. Wśród różnych technik postępowania tzw. metody przeszukiwania są jednymi z częściej stosowanych podczas procesu rozwiązywania zadań. Wymagane jest określenie zbioru stanów przestrzeni rozwiązywanego problemu, zbioru operatorów przekształcających te stany, stanu początkowego i zbioru stanów końcowych. Rozwiązanie polega na określeniu ciągu operatorów przekształcających stan początkowy w stan końcowy. Metody przeszukiwania dzielimy na: o ślepe (blind search) nie wykorzystujące informacji o dziedzinie rozwiązywanego problemu o heurystyczne wykorzystujące informacje o dziedzinie rozwiązywanego problemu 2

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ Rozwiązanie zadania jest często wyznaczane przez przeszukiwanie zbioru wszystkich możliwych stanów, zwanych przestrzenią przeszukiwania. Kompletne przebadanie takiej przestrzeni zawodzi w praktyce przy dużych przestrzeniach. Efektywną metodą rozwiązywania dużych zadań jest generowanie stanów za pomocą operatorów według określonych zasad i badanie ich właściwości. Ze względu na opis zadania istotne są trzy podstawowe wymagania: sposób reprezentacji każdego ze stanów przestrzeni przeszukiwania, tzw. kod, metody obliczeniowe umożliwiające wygenerowanie kodu kolejnego stanu na podstawie kodu danego stanu, czyli operatory, metody wyboru operatorów spośród zestawu możliwych do zastosowania, czyli strategie sterowania. Wśród najbardziej pożądanych cech kodu stanów należy wymienić jednoznaczność i uwzględnienie struktury zadania. Taki sposób reprezentacji umożliwia efektywne przekształcenia zbioru za pomocą operacji rozszczepiania. Polega ona na podziale problemu 3

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ reprezentowanego przez dany stan na podproblemy, odrzucaniu części stanów i badaniu jedynie najbardziej obiecujących. Kolejne rozszczepienia mogą sprowadzić problem początkowy do problemu łatwiejszego do rozwiązania. Strategia ta osi nazwę rozszczepiania i odrzucania (splitand-prune) lub generowania i testowania (generate-and-test). 4

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ PRZYKŁAD Problem komiwojażera Znajdź najkrótszą ścieżkę przechodzącą przez wszystkie punkty, zaczynająca się i kończącą w tym samym punkcie (A) 5

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ PRZYKŁAD Świat klocków Pewna początkowa konfiguracja ustawienia na sobie trzech klocków (stan początkowy) ma być przestawiona, np. przy użyciu ramienia robota, w inną konfigurację będącą stanem końcowym (celem). Osiągnięcie celu jest zatem zadaniem zaplanowania sekwencji działania robota mogącego przestawiać klocki pojedynczo, po dwa i po trzy na dwóch określonych pozycjach na stole (oznaczone cyframi 1 i 2). Przyjmijmy stan początkowy 1BCA2 (na pozycji 1 znajdują się klocki w kolejności od dołu: B, C i A, a na pozycji 2 nie ma żadnego klocka). Przyjmijmy stan końcowy: 1CBA2. 6

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ PRZYKŁAD Przejścia pomiędzy stanami obrazuje drzewo (graf) przeszukiwań: Z przedstawionego drzewa przestrzeni stanów wynika, że istnieje kilka dróg dojścia do celu i drogi te nie są równe. W celu przyspieszenie dojścia do celu stosuje się heurystyki. Dla powyższego przykładu, znając stan końcowy i operatory (możliwości przestawiania klocków), można określić pewne reguły postępowania przyśpieszające dojście do celu: 7

REPREZENTACJA PROBLEMU W PRZESTRZENI PRZESZUKIWAŃ PRZYKŁAD klocek C powinien być ustawiany bezpośrednio na stole w pozycji 1 lub 2, klocek A powinien być ustawiany na B, klocek B powinien być ustawiany na C. Stosując te reguły w pierwszym kroku preferowany jest stan 1B2CA, a pozostałe dwa stany będą pominięte. Redukuje się w ten sposób przestrzeń przeszukiwań do jednej trzeciej całego drzewa. Dalej z dwóch stanów otrzymanych z 1B2CA, wybrany będzie 1BA2C, ponieważ klocek C leży na stole, a klocek A leży na B. Pominięcie poddrzewa wychodzącego z 12CAB w dalszym ciągu redukuje przestrzeń stanów. Po rozszczepieniu węzła 1BA2C wybrany będzie węzeł 12CBA, ponieważ odpowiada przyjętym regułom postępowania. Z tego stanu wygenerowany będzie stan końcowy. Pomijanie gałęzi ze stanami mniej obiecującymi nazywane jest przycinaniem gałęzi drzewa przestrzeni stanów. 8

STRATEGIE PRZESZUKIWANIA GRAFÓW Przestrzeń stanu zwykle zawiera ogromną liczbę stanów. Stany generowane i analizowane w kolejnym kroku przeszukiwania możemy przedstawić w postaci drzewa (grafu) przeszukiwania. Strategie przeszukiwania mają na celu wybór operatorów, określających gałęzie grafu przestrzeni stanów możliwe do wyboru podczas rozwiązywania danego problemu. Parametrami charakteryzującymi przeszukiwane grafy są: głębokość węzła (poziom) i stopień rozgałęzienia węzła (liczba potomków, rząd). Drzewo przeszukiwania konstruuje się wykorzystując strategie iteracyjne. Strategie te mają na celu w jak największym stopniu zmniejszyć liczbę badanych węzłów oraz zoptymalizować obszar pamięci przeznaczony na zapamiętanie stanów przejściowych. Najważniejszymi kryteriami przy porównywaniu strategii są: jakość wyznaczonego rozwiązania, koszt obliczeniowy i obszar pamięci wymagany przez strategię. 9

STRATEGIA ŚLEPA PRZESZUKIWANIA WSZERZ W strategiach ślepych nie wykorzystuje się informacji o zadaniu, dzięki czemu mają one charakter uniwersalny. Porządek przeszukiwania zależy wyłącznie od informacji dostarczanych przez już zbadane węzły grafu i sam proces przeszukiwania. Strategia przeszukiwania wszerz (breadth-first) podkreśla kolejność przeszukiwania węzłów grafu. Startując od korzenia (węzeł początkowy) generujemy kolejne węzły "poziom po poziomie". Graf budowany jest to momentu znalezienia stanu końcowego. Numery na rysunku wskazują porządek odwiedzanych węzłów. Węzły z numerami to węzły już rozgałęzione (zamknięte). Węzły szare to węzły w kolejce do rozgałęzienia (otwarte). W przypadku przeszukiwania wszerz jest to kolejka FIFO. 10

STRATEGIA ŚLEPA PRZESZUKIWANIA W GŁĄB W strategii przeszukiwania w głąb (depth-first) dla węzła z poziomu j generuje się potomka z poziomu j+1, dla którego generuje się potomka z poziomu j+2 itd. Po dojściu do liścia (węzeł który nie ma potomków), cofamy się do jego rodzica, z którego generujemy innego potomka i znowu schodzimy w głąb drzewa. Przeszukiwanie w głąb wydaje się rozsądniejsze od przeszukiwania wszerz, gdy graf jest szeroki i płytki (węzły mają dużo potomków). Na rysunkach na szaro zaznaczono węzły otwarte, znajdujące się w kolejce do rozgałęzienia. W przypadku przeszukiwania w głąb jest to kolejka LIFO (stos). 11

MODYFIKACJE PRZESZUKIWANIA W GŁĄB I WSZERZ Modyfikacje strategii w głąb i wszerz: ograniczone przeszukiwanie w głąb generujemy węzły tak jak w metodzie przeszukiwania w głąb, ale tylko do ustalonej głębokości p. przeszukiwanie pogłębiane iteracyjnie rozszerzenie metody przeszukiwania ograniczonego. Jeśli nie znaleziono węzła końcowego dla głębokości p, zwiększamy głębokość do p+1, następnie p+2 itd. przeszukiwanie o jednolitym koszcie zakładamy, że potrafimy oceniać koszt przejścia pomiędzy stanami. Możemy wyznaczyć koszt przejścia od stanu początkowego (korzenia) do węzła n g(n). Wtedy stosujemy strategię wyboru węzłów do rozgałęzienia w kolejności od najniższego do najwyższego kosztu g(n). 12

STRATEGIE ŚLEPE PRZYKŁAD Labirynt * Załóżmy, że zamierzamy odnaleźć drogę w labiryncie, prowadzącą z kratki A do kratki B. Każda kratka ma co najwyżej czterech sąsiadów (brak sąsiada jest zaznaczony grubą linią "ścianą" labiryntu). Kratki labiryntu będą węzłami przestrzeni przeszukiwań. Poszukiwanie wyjścia polega na tym, że wpisujemy do kratek numery iteracji, w których były one węzłem rozwijanym przez algorytm przeszukiwania. Po odnalezieniu rozwiązania drogę będziemy odtwarzać, idąc od węzła B do węzła A w kierunku sąsiedniej kratki o najmniejszym numerze. Załóżmy, że obie metody przeszukiwania (w głąb i wszerz) rozważają kratki sąsiadujące w kolejności: góra, lewo, dół, prawo. Dostajemy wówczas dla obu metod kolejność odwiedzania kratek labiryntu jak na poniższych rysunkach. * Arabas J., Cichosz P.: Sztuczna inteligencja. Materiały do wykładu. http://wazniak.mimuw.edu.pl/index.php?title=sztuczna_inteligencja 13

STRATEGIE ŚLEPE PRZYKŁAD Strategia w głąb Strategia wszerz 14

STRATEGIE HEURYSTYCZNE Strategie heurystyczne umożliwiają w pewnej mierze uwzględnianie informacji o niezbadanej jeszcze części grafu. Przy wyborze węzłów do rozgałęzienia może być przydatna wiedza o dziedzinie danego problemu oraz charakterystyce poszukiwanych węzłów celu. Strategie heurystyczne stosują pewną funkcję heurystyczną, która wyraża ocenę węzła n ze względu na następujące kryteria: zbieżności, czyli osiągnięcia celu, najmniejszego kosztu drogi wyznaczanej od węzła początkowego, przez węzeł n, do węzła końcowego, najmniejszej złożoności obliczeniowej procesu przeszukiwania. Do dalszego rozgałęzienia wybieramy "najlepszy" węzeł spośród wszystkich węzłów rozpatrywanych do tej pory, niezależnie od jego położenia w grafie. Przyjmujemy, że węzeł "najlepszy" ma najmniejszą wartość funkcji heurystycznej. 15

STRATEGIE HEURYSTYCZNE Przeszukiwanie "pierwszy najlepszy" (best-first search) wybiera do rozgałęzienia węzeł, który posiada najmniejszy szacunkowy koszt przejścia do stanu końcowego h(n). Strategia ta jest analogiczna do przeszukiwania o jednolitym koszcie, przy czym zamiast funkcji g(n) stosuje się funkcję h(n). W strategii A* funkcja heurystyczna jest sumą dwóch składników: f(n) = h(n) + g(n) Dla węzła n wyznacza się szacunkowy koszt drogi łączącej ten węzeł z węzłem celu h(n) oraz koszt drogi łączącej węzeł początkowy z węzłem n g(n). Funkcję f(n) oblicza się dla różnych węzłów n i do dalszej ekspansji wybiera się ten węzeł, dla którego f(n) przyjmuje najmniejszą wartość. Strategia A* jest analogiczna do przeszukiwania o jednolitym koszcie, przy czym zamiast funkcji g(n) stosuje się funkcję f(n). Udowodniono, że strategia A* prowadzi do rozwiązania optymalnego, jeśli h(n) jest nie większe niż rzeczywisty koszt drogi łączącej węzeł n z węzłem celu. 16

STRATEGIE HEURYSTYCZNE PRZYKŁAD Oto przykład działania algorytmu A* dla grafu, którego węzłami są miasta, z gałęziami związane są odległości drogowe, a heurystyka h(n) jest odległością w linii prostej od węzła n do węzła celu (węzeł niebieski). Przykład pokazuje prostą sytuację, w której A* wykona nawrót (w węźle c) ze względu na niesłuszne przewidywania heurystyki. 17

STRATEGIA A* PRZYKŁAD Drzewo przeszukiwania dla układanki 3x3 utworzone za pomocą metody A*. Wartości funkcji f(n) pokazano w kółkach. g(n) jest liczbą kroków od węzła startowego do n- tego h(n) jest liczba klocków na niewłaściwych pozycjach (innym pomysłem jest wyrażenie h(n) za pomocą sumy odległości każdego klocka od jego położenia docelowego) 18