Elementy kognitywistyki II:

Podobne dokumenty
Heurystyczne metody przeszukiwania

Sztuczna Inteligencja i Systemy Doradcze

Wstęp do Sztucznej Inteligencji

Podstawy sztucznej inteligencji

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

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

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

Heurystyki. Strategie poszukiwań

Podstawy Sztucznej Inteligencji (PSZT)

Sztuczna Inteligencja i Systemy Doradcze

Rozwiązywanie problemów metodą przeszukiwania

Metody przeszukiwania

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

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

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

SZTUCZNA INTELIGENCJA

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

Wprowadzenie do Sztucznej Inteligencji

SZTUCZNA INTELIGENCJA

Podstawy sztucznej inteligencji

Planowanie drogi robota, algorytm A*

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

Wprowadzenie do Sztucznej Inteligencji

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Wprowadzenie do Sztucznej Inteligencji

Między umysłem, mózgiem i maszyną. O kognitywistyce

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

Wybrane podstawowe rodzaje algorytmów

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

Kognitywistyka: odkrywanie labiryntu umysłu z różnymi nićmi Ariadny w ręku

SID Wykład 1 Wprowadzenie

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

Podstawy sztucznej inteligencji

Drzewa BST i AVL. Drzewa poszukiwań binarnych (BST)

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

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

Listy, kolejki, stosy

Sztuczna inteligencja w programowaniu gier

Algorytmy sztucznej inteligencji

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

SID Wykład 2 Przeszukiwanie

Programowanie obiektowe

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

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

Wstęp do programowania

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

Sortowanie. Bartman Jacek Algorytmy i struktury

METODY HEURYSTYCZNE wykład 1

Programowanie obiektowe

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

Znajdowanie wyjścia z labiryntu

Teoretyczne podstawy informatyki

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

ALGORYTMY I STRUKTURY DANYCH

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

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

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

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

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

Algorytmy i struktury danych

Drzewa poszukiwań binarnych

Ogólne wiadomości o grafach

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

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.

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

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

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

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

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmiczna teoria grafów

Teoretyczne podstawy informatyki

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

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

Zadanie 1: Piętnastka

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

METODY HEURYSTYCZNE wykład 1

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Metody numeryczne w przykładach

Algorytm genetyczny (genetic algorithm)-

Podstawy Informatyki. Metody dostępu do danych

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

Algorytmy i Struktury Danych

Zaawansowane programowanie

dr inż. Paweł Myszkowski Wykład nr 11 ( )

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

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

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

Zaawansowane algorytmy i struktury danych

Projekty zaliczeniowe Podstawy Programowania 2012/2013

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

Wykład 6. Drzewa poszukiwań binarnych (BST)

Algorytm Grovera. Kwantowe przeszukiwanie zbiorów. Robert Nowotniak

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

Transkrypt:

Elementy kognitywistyki II: Sztuczna inteligencja WYKŁAD IV: Agent szuka rozwiązania (na ślepo)

Poprzednio: etapy rozwiązywania problemu sformułowanie celu sformułowanie problemu stan początkowy (initial state) zbiór możliwych działań agenta test celu koszt ścieżki poszukiwanie rozwiązania (proces szukania, search) faza wykonania problem jednostanowy problem wielostanowy problem z przypadkowością problem eksploracyjny

Przykład: drogami Rumunii

Dobór stanów i działań...rozwiązywania problemu: przestrzeń stanów: 20 stanów {w-arad,w-zerind,...} stan wyjściowy: {w Arad} test celu: czy to Bukareszt? operatory: jazda drogami między miejscowościami koszt ścieżki: odległość, oczekiwany czas przejazdu, tutaj: ilość kroków Sztuka rozwiązywania problemów, to: ocena, co wchodzi w skład opisów stanów i operatorów proces usuwania z reprezentacji szczegółów opisu stanów/operatorów: abstrakcja

Dobór stanów i działań Odpowiednia reprezentacja to znaczna część rozwiązania: uwidacznia istotne relacje; ujawnia wszystkie więzy ograniczające możliwe relacje; jest zrozumiała, kompletna, zwięzła; jest efektywne wykorzystywalna w modelu komputerowym

Przykładowe problemy problem 8 hetmanów: (stan zupełny) stan początkowy: dowolny układ 8 hetmanów na szachownicy operator: przestaw królową na jedno z pustych pól cel: ustawienie 8 królowych tak, by żadna nie atakowała pozostałych cel dodatkowy: znaleźć wszystkie możliwe rozwiązania alternatywne opisy: (sformułowanie przyrostowe, incremental form.) stany: układ 0-8 hetmanów na szachownicy operator: dodaj hetmana na któreś z wolnych pól (64 8 sekwencji) lub: stany: układ 0-8 hetmanów na szachownicy, żaden nie jest atakowany operator: umieść hetmana w najbardziej na lewo położonej kolumnie tak, by nie był atakowany (2057 sekwencji)

Przykładowe problemy przesuwanka 8-elementowa: stan początkowy i cel: patrz obrazek przestrzeń stanów: 9!/2=181440 elementów (połowa jest niedostępna bez np. zamiany 1<=>2). operator: przesunięcie pustego pola w lewo, w prawo, w górę lub w dół koszt ścieżki: każda operacja kosztuje 1

Przykładowe problemy kryptoarytmetyka: stan początkowy: słupek z literami operator: zastępowanie liter cyframi nie pojawiającymi się jeszcze w rozwiązaniu test celu: łamigłówka zawiera tylko cyfry i reprezentuje poprawną sumę koszt ścieżki: 0, każde rozwiązanie jest równie ważne FORTY + TEN + TEN SIXTY

Rzeczywiste problemy szukanie optymalnej drogi: nawigacja drogowa, kierowanie pakietów w sieci komputerowej, systemy planowania podróży lotniczych problem wędrownego handlarza (TSP, travelling salesperson problem) projektowanie VLSI czipów krzemowych (milion bramek pozycja i powiązania tych bramek mają kluczowe znaczenie dla funkcjonowania czipa) szukanie drogi przez roboty dowodzenie twierdzeń matematycznych

Przykład: drogi Rumunii 1. stan początkowy {w-arad} 2. po rozwinięciu Arad: {w-sibiu, w-timisoara, w-zerind} 3. po rozwinięciu Sibiu: {w-timisoara, w-zerind, w-arad, w- Fagaras, w-oradea, w-rimnicu Vilcea}

Generowanie ciągów działań (1) rozpoczynamy od stanu początkowego (2) test: czy jest to stan docelowy (3) stosujemy operatory do bieżącego stanu, generując zbiór nowych stanów: rozwijanie [expanding] stanu (4) wybór jednej z możliwości i odłożenie pozostałych na później wybór podyktowany jest strategią przeszukiwania (5) powrót do pkt. (2), powtarzamy aż test celu da wynik pozytywny proces przeszukiwania warto przedstawiać jako drzewo przeszukiwania [search tree] należy rozróżniać przestrzeń stanów i drzewo przeszukiwań

Struktury danych dla przeszukiwania propozycja reprezentacji węzła: stan, któremu węzeł odpowiada (np. w-arad) węzeł, z którego dany został wygenerowany (rodzic) operator, który wygenerował ten węzeł liczba węzłów w ścieżce od węzła głównego (korzenia, root node) do definiowanego (głębokość węzła) koszt ścieżki od węzła początkowego do definiowanego należy rozróżniać węzły i stany! za obliczanie powyższych elementów węzła odpowiada funkcja ROZWIŃ (EXPAND)

Struktury danych dla przeszukiwania musimy reprezentować zbiór węzłów pozostałych do rozwinięcia (fringe, frontier) wygodnie jest ten zbiór węzłów reprezentować w postaci kolejki (listy) operacje na kolejkach: UTWORZ KOLEJKE(elementy) tworzy listę ze wskazanych elementów, np. LIST (element1,element2,...) PUSTA?(kolejka)- wartość funkcji to prawda, jeśli lista jest pusta, np. NULL (lista) USUN CZOLO(kolejka) wartością funkcji jest pierwszy element listy, lista zostaje skrócona, np. car(lista) KOLEJKOWANIE(elementy, kolejka) wstawia zbiór elementów do listy. Różne odmiany funkcji KOLEJKOWANIE decydują o rodzaju algorytmów szukania,np.: APPEND((element), lista)

Algorytm szukania ogólnego wezly < (w Arad) wezly >< () /* () oznacza pustą listę(kolejkę) wezel < w Arad, wezly < () w Bukareszt >< w Arad wezly < (w Sibiu,w Timisoara,w Zerind) wezel < (w Sibiu), wezly < (w Timisoara,w Zerind) w Bukareszt >< w Sibiu wezly < (w Timisoara,w Zerind, w Arad, w Oradea, w Fagaras, w Riminicu) /*zależne od strategii

Strategie szukania - ocena zupełność czy gwarantuje odnalezienie rozwiązania, gdy takie istnieje? złożoność czasowa ile czasu zajmuje odnalezienie rozwiązania złożoność przestrzenna ile wymaga pamięci proces przeszukiwania optymalność czy przy kilku rozwiązaniach strategia pozwala znaleźć najlepsze

Jak szukać? szukanie na ślepo [blind search, uninformed search]: brak informacji o ilości kroków do rozwiązania lub koszcie ścieżki od bieżącego stanu do celu niekiedy mało efektywne są problemy nie wymagające dodatkowych informacji grozi eksplozja kombinatoryczna wszerz, w głąb, z ograniczoną głębokością, iteracyjne pogłębianie, szukanie dwukierunkowe szukanie heurystyczne [heuristic search, informed search] wykorzystujemy dodatkowe informacje potrafimy ocenić postępy najpierw najlepszy, szukanie zachłanne, szukanie A*,

Najpierw wszerz [breadth-first search] najpierw rozwijany jest stan początkowy następnie rozwijane są wszystkie wygenerowane węzły funkcja KOLEJKOWANIE wstawia nowowygenerowane węzły na końcu kolejki węzłów BF odnajduje najpłycej położony w drzewie cel strategia zupełna, pod pewnymi warunkami optymalna pamięciożerna i czasochłonna (b d węzłów) stosowana w mało złożonych przypadkach (zwł. głębokość)

Najpierw wszerz 1. 2.

3. Najpierw wszerz 4. 5.

[depth-first search] Najpierw w głąb zawsze rozwijany jest jeden z węzłów na najgłębszym poziomie drzewa gdy przeszukiwanie dotrze do ślepej uliczki (węzeł nie będący celem bez dalszego rozwinięcia) przeszukiwanie wraca na płytszy poziom funkcja KOLEJKOWANIE wstawia nowowygenerowane węzły na początku kolejki węzłów DF może odnaleźć szybciej rozwiązanie niż BF, gdy możliwych rozwiązań jest kilka może utknąć rozwijając niewłaściwą ścieżkę (np. w pętli) nie jest zupełne nie gwarantuje optymalnego rozwiązania duża złożoność czasowa w drzewach o dużej głębokości

Najpierw w głąb

[depth-limited search] Ograniczona głębokość można uniknąć pułapek DF narzucając granicę przeszukiwania w głąb wymaga użycia operatorów śledzących głębokość przeszukiwania nie gwarantuje uzyskania najkrótszego rozwiązania (nie jest optymalne) przy źle dobranej głębokości nie gwarantuje odnalezienia jakiegokolwiek rozwiązania (nie jest zupełne)

Szukanie pogłębiane iteracyjnie [iterative deepening search] rozwiązuje problem doboru odpowiedniej głębokości......próbując wszystkie możliwe limity przeszukiwania w głąb (0, 1, 2, 3,...) łączy zalety DF i BF jest zupełne i optymalne (BF), ma rozsądne wymogi pamięciowe (DF) niektóre stany są rozwijane wielokrotnie (co nie ma wielkiego znaczenia) preferowane przy dużych przestrzeniach problemowych do przeszukania i nieznanej głębokości

Szukanie dwukierunkowe [bidirectional search, BDS] przeszukiwanie jednocześnie rozpoczyna się od stanu początkowego i (wstecznie) od celu......kończąc się, gdy dwa procesy szukania się napotkają gdy b=10, d=6: BF generuje 1111111 węzłów, BDS: 2222 wątpliwości: co to znaczy szukać wstecz od celu? (jak generować poprzedniki węzła?) problem wielu stanów docelowych jak sprawdzić, czy wygenerowany z jednego kierunku węzeł nie znajduje się już w drzewie rozwijanym z drugiej strony? jakiego rodzaju przeszukiwania zastosować?

Szukanie dwukierunkowe

Szukanie dwukierunkowe

Szukanie na ślepo - zestawienie b współczynnik rozgałęzienia d głębokość rozwiązania m maksymalna głębokość drzewa przeszukiwania l limit głębokości