Rozwiązywanie problemów metodą przeszukiwania

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

Wstęp do Sztucznej Inteligencji

Heurystyczne metody przeszukiwania

SZTUCZNA INTELIGENCJA

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

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji

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

Metody przeszukiwania

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

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

Ogólne wiadomości o grafach

Wprowadzenie do Sztucznej Inteligencji

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

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

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

Zadania laboratoryjne i projektowe - wersja β

Sztuczna Inteligencja i Systemy Doradcze

Wyznaczanie strategii w grach

SZTUCZNA INTELIGENCJA

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Matematyczne Podstawy Informatyki

Podstawy sztucznej inteligencji

Zadanie 1: Piętnastka

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

Podstawy Sztucznej Inteligencji (PSZT)

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

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

Wstęp do programowania

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

Elementy kognitywistyki II:

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

Algorytmiczna teoria grafów

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

Podstawy sztucznej inteligencji

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

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek

Algorytm obejścia drzewa poszukiwań i zadanie o hetmanach szachowych

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

Kilka zagadnień dotyczących Sztucznej inteligencji.

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

Wykłady z Matematyki Dyskretnej

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

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

Programowanie obiektowe

Podstawy sztucznej inteligencji

Algorytmy i struktury danych

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

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

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

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

Sortowanie topologiczne skierowanych grafów acyklicznych

Wstęp do Programowania potok funkcyjny

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

Programowanie obiektowe

Wybrane podstawowe rodzaje algorytmów

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Planowanie drogi robota, algorytm A*

Digraf o V wierzchołkach posiada V 2 krawędzi, zatem liczba różnych digrafów o V wierzchołkach wynosi 2 VxV

Sztuczna Inteligencja i Systemy Doradcze

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Algorytmy i Struktury Danych.

Sztuczna inteligencja w programowaniu gier

Metoda podziału i ograniczeń

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

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

METODY HEURYSTYCZNE wykład 1

Porządek symetryczny: right(x)

Matematyczne Podstawy Informatyki

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

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

METODY HEURYSTYCZNE wykład 1

Algorytmy i Struktury Danych

Wyrażenia regularne.

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

Zaawansowane algorytmy i struktury danych

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Struktury danych: stos, kolejka, lista, drzewo

Algorytmy i Struktury Danych

Algorytmy dla gier dwuosobowych

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

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

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

Optymalizacja. Wybrane algorytmy

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

9.9 Algorytmy przeglądu

Matematyka dyskretna - 7.Drzewa

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Definicja pliku kratowego

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.

Transkrypt:

Rozwiązywanie problemów metodą przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska

Reprezentacja problemu w przestrzeni stanów Jedną z ważniejszych metod sztucznej inteligencji jest szukanie (ang. searching). Metodą przeszukiwania można rozwiązywać następujące typy zadań: przesuwanki np. kostka Rubika, puzzle labirynty, poszukiwanie optymalnej drogi problemy układania klocków np. wieża z Hanoi zagadki logiczne np. misjonarze i kanibale gry planszowe inne Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 2

Reprezentacja problemu w przestrzeni stanów Aby zastosować metodę przeszukiwania należy w odpowiedni sposób określić przestrzeń poszukiwań. W tym celu należy zdefiniować trzy elementy: bazę danych (fakty, stany, możliwości, opis sytuacji) możliwe operacje, które zmieniają stan bazy danych strategię kontrolną (start, koniec i kolejność operacji) Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 3

Reprezentacja problemu w przestrzeni stanów Przestrzeń stanów definiowana jest jako uporządkowana czwórka [N, A, S, G], gdzie: N jest zbiorem wierzchołków odpowiadających stanom w procesie rozwiązywania problemu A jest zbiorem krawędzi odpowiadających krokom (operacjom) w procesie rozwiązywania problemu S jest niepustym podzbiorem N, zawierającym stany początkowe problemu G jest niepustym podzbiorem N, zawierającym stany docelowe (końcowe) problemu Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 4

Reprezentacja problemu w przestrzeni stanów Bardzo wygodnym sposobem reprezentacji przestrzeni stanów są grafy lub drzewa (czasami stosowane są specjalne typy grafów np. AND/OR). Ścieżką rozwiązania danego problemu jest wówczas ścieżka wiodąca przez ten graf z wierzchołka S do wierzchołka G. W przypadku niektórych problemów z każdym przejściem między stanami związany jest określony koszt. W procesie szukania należy dążyć wówczas do znalezienia ścieżki o minimalnym całkowitym koszcie. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 5

Reprezentacja problemu w przestrzeni stanów Graf (drzewo) opisujące wszystkie możliwe sytuacje wyznacza przestrzeń szukania. W zależności od złożoności problemu przestrzeń szukania może mieć różny rozmiar (może być również nieskończona). puzzle (3x3) 9!/2 = 181440 wierzchołków warcaby 10 40 stanów końcowych szachy 10 120 stanów końcowych Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 6

Reprezentacja problemu w przestrzeni stanów Problem 1 Lis, gęś i ziarno Nad rzeką znajduje się farmer z lisem, gęsią i ziarnem, które musi przewieźć na drugi brzeg. Zadanie posiada następujące ograniczenia: w danej chwili można przewieźć łódką tylko jedną rzecz bez opieki nie mogą zostać lis z gęsią oraz gęś z ziarnem Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 7

Reprezentacja problemu w przestrzeni stanów F L G Z Opis stanu: (x 1, x 2, x 3, x 4 ), gdzie x i = {L, P} Stan początkowy: (L, L, L, L) Stan końcowy: (P, P, P, P) Dopuszczalne operacje: 1. Farmer płynie sam 2. Farmer przewozi lisa 3. Farmer przewozi gęś 4. Farmer przewozi ziarno Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 8

Reprezentacja problemu w przestrzeni stanów Liczba wszystkich stanów: 2 4 = 16 Liczba stanów akceptowalnych: 10 Liczba stanów nieakceptowalnych: 6 Przykłady stanów nieakceptowalnych: (P, L, L, P), (L, P, P, L) lis i gęś razem bez opieki (P, P, L, L), (L, L, P, P) gęś i ziarno razem bez opieki Na następnym rysunku przedstawiono rozwiązanie problemu, które zawiera jedynie stany akceptowalne. Pominięto stany ślepe, które nie prowadzą do rozwiązania. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 9

Reprezentacja problemu w przestrzeni stanów (L, L, L, L) 3 (P, L, P, L) 1 4 (L, L, P, L) 2 (P, L, P, P) (P, P, P, L) 3 3 (L, L, L, P) 2 4 (L, P, L, L) (P, P, L, P) 1 (L, P, L, P) 3 (P, P, P, P) 1. Farmer płynie sam 2. Farmer przewozi lisa 3. Farmer przewozi gęś 4. Farmer przewozi ziarno Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 10

Reprezentacja problemu w przestrzeni stanów Problem 2 Napełnianie naczyń Posiadamy dwa puste dzbanki: o pojemności 4 l (dzbanek 1) o pojemności 3 l (dzbanek 2) Dzbanek 1 (o pojemności 4 l) należy napełnić do połowy. Opis stanu: (x, y) x ilość wody w dzbanku 1 Stan początkowy: (0, 0) Stan końcowy: (2, 0) y ilość wody w dzbanku 2 Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 11

Reprezentacja problemu w przestrzeni stanów Dopuszczalne operacje: 1. wypełnij dzbanek 1 ((x, y) (4, y), warunek: x<4) 2. wypełnij dzbanek 2 ((x, y) (x, 3), warunek: y<3) 3. opróżnij dzbanek 1 ((x, y) (0, y), warunek: x>0) 4. opróżnij dzbanek 2 ((x, y) (x, 0), warunek: y>0) 5. przelej wszystko z dzbana 1 do dzbana 2 ((x, y) (0, x+y), war.: x>0, x+y 3) 6. przelej wszystko z dzbana 2 do dzbana 1 ((x, y) (x+y, 0), war.: y>0, x+y 4) 7. uzupełnij do pełna dzban 1 z dzbana 2 ((x, y) (4, y-(4-x)), war.: y>0, x+y 4) 8. uzupełnij do pełna dzban 2 z dzbana 1 ((x, y) (x-(3-y), 3), war.: x>0, x+y 3) 9. odlej pewną ilość wody z dzbana 1 ((x, y) (x-d, y), war.: x>0) 10. odlej pewną ilość wody z dzbana 2 ((x, y) (x, y-d), war.: y>0) 11.... Można definiować kolejne operacje. Do rozwiązania problemu wystarczą operacje 1-8. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 12

Reprezentacja problemu w przestrzeni stanów (4, 0) (0, 0) 1 2 (4, 0) (0, 3) 2 8 3 1 6 4 (4, 3) (1, 3) (0, 0) (4, 3) (3, 0) (0, 0) 4 3 1 4 6 3 4 3 1 2 (0, 3) (4, 3) (1, 0) (4, 0) (0, 3) 5 (0, 1) 1 (4, 1) 8 (2, 3) 4 (2, 0) (4, 0) (0, 3) (4, 0) (3, 3) (0, 0) (0, 3) 1. wypełnij dzbanek 1 2. wypełnij dzbanek 2 3. opróżnij dzbanek 1 4. opróżnij dzbanek 2 5. przelej wszystko z dzbana 1 do dzbana 2 6. przelej wszystko z dzbana 2 do dzbana 1 7. uzupełnij do pełna dzban 1 z dzbana 2 8. uzupełnij do pełna dzban 2 z dzbana 1 Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 13

Reprezentacja problemu w przestrzeni stanów Problem 3 Puzzle 3x3 (tzw. ósemka) 1 3 8 2 4 7 6 5 1 2 3 4 5 6 7 8 Opis stanu: (x 1, x 2, x 3, x 4, x 5, x 6, x 7, x 8, x 9 ), gdzie x i = {0, 1,..., 8} Stan początkowy: (?,?,?,?,?,?,?,?,?) Stan końcowy: (1, 2, 3, 4, 5, 6, 7, 8, 0) Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 14

Reprezentacja problemu w przestrzeni stanów 1 3 8 2 4 7 6 5 2 3 1 1 3 4 8 2 7 6 5 2 1 3 8 2 4 7 6 5 3 2 3 1 3 1 3 4 1 3 4 1 2 3 1 3 8 2 4 8 2 5 8 2 8 4 8 2 4 7 6 5 7 6 7 6 5 7 6 5 7 6 5 Dopuszczalne operacje: 1. przesuń wolne pole do góry 2. przesuń wolne pole w dół 3. przesuń wolne pole w lewo 4. przesuń wolne pole w prawo 2 8 1 3 2 4 7 6 5 4 1 3 8 2 4 7 6 5 Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 15

Algorytmy przeszukiwania przestrzeni stanów W celu uzyskania rozwiązania danego problemu metodą przeszukiwania należy: określić reprezentację problemu w przestrzeni stanu (wyróżnienie poszczególnych stanów, sposób ich kodowania), określić dopuszczalne operatory, które pozwalają dla dowolnego stanu określić stany następne, zdefiniować stan początkowy i stan (lub stany) docelowe, określić strategię przeszukiwania, czyli metodę wyboru operatora spośród wszystkich operatorów możliwych. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 16

Algorytmy przeszukiwania przestrzeni stanów Przestrzeń poszukiwań może być reprezentowana w postaci grafu lub drzewa. Rozwiązanie problemu polega wówczas na szukaniu w grafie (drzewie) ścieżki od wierzchołka początkowego do jednego z wierzchołków docelowych: St := [stan_początkowy] WHILE ( St <> stan_docelowy) DO BEGIN END Op := [wybrany operator dla stanu St] St := [wynik zastosowania Op do stanu St] Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 17

Algorytmy przeszukiwania przestrzeni stanów Metodę wyboru operatora w powyższym algorytmie nazywa się strategią poszukiwań. Wybierając odpowiednią strategię należy uwzględnić następujące czynniki: ograniczenie rozmiaru drzewa poszukiwań (np. eliminacja operatorów nie prowadzących do celu) znalezienie optymalnego rozwiązania w przypadku wielu rozwiązań (np. znalezienie najkrótszej ścieżki od wierzchołka początkowego do docelowego) znalezienie rozwiązania w najkrótszym czasie zakończenie algorytmu w przypadku braku rozwiązania (ograniczenie głębokości poszukiwań) Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 18

Algorytmy przeszukiwania przestrzeni stanów Podstawowym algorytmem przeszukiwania przestrzeni stanów jest systematyczne badanie grafu (tzw. przegląd zupełny). Celem takiego algorytmu jest sprawdzenie wszystkich wierzchołków grafu począwszy od wierzchołka startowego. Rozwiązanie takie jest często nieefektywne!!! Stosowane strategie przeszukiwania możemy podzielić na dwie grupy: metody szukania na ślepo (klasyczne) metody heurystyczne Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 19

Algorytmy przeszukiwania przestrzeni stanów Metody szukania na ślepo W większości zadań praktycznych rozmiary drzew są tak duże, że nie jest możliwe ich zapamiętanie w całości. Dlatego często stosuje się metodę generowania tych drzew na bieżąco. W zależności od kolejności przeszukiwanych wierzchołków w drzewie rozróżnia się następujące strategie: Monte Carlo (metoda Muzeum Brytyjskiego) szukanie w głąb (DFS - ang. depth-first search) szukanie wszerz (BFS - ang. breadth-first search) szukanie z nawracaniem (BT - ang, backtracking) inne Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 20

Algorytmy przeszukiwania przestrzeni stanów Szukanie w głąb (DFS) Szukanie w głąb jest podstawową metodą przeszukiwania grafów. Przeszukiwanie prowadzone jest zawsze od ostatnio sprawdzanego wierzchołka, który ma jeszcze niewykorzystane operatory. W algorytmie wykorzystuje się listę OPEN, która zawiera wierzchołki drzewa, które nie zostały jeszcze rozpatrzone. Lista OPEN zorganizowana jest w postaci stosu (ostatnio umieszczony element pobierany jest jako pierwszy). Metoda może być nieskuteczna dla dużych grafów (np. dla grafów o nieskończonej głębokości)!!! Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 21

Algorytmy przeszukiwania przestrzeni stanów Zapis algorytmu: 1. wstaw wierzchołek początkowy na listę OPEN 2. IF (lista OPEN jest pusta) THEN STOP (brak rozwiązania) 3. St := FIRST (OPEN) 4. IF (St jest wierzchołkiem docelowym) THEN STOP (sukces) 5. usuń St z listy OPEN 6. utwórz wszystkie wierzchołki potomne od St i wstaw je na początek listy OPEN, 7. GOTO 2 Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 22

Algorytmy przeszukiwania przestrzeni stanów Działanie algorytmu: 1 2/1 8/1 10/1 3/2 5/2 9/5 11/6 4/3 6/4 7/4 wierzchołek celu n/ m n liczba określająca kolejność analizy wierzchołków, m liczba określająca kolejność dodawania nowych wierzchołków do listy OPEN. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 23

Algorytmy przeszukiwania przestrzeni stanów Szukanie wszerz (BFS) Szukanie wszerz polega na rozwijaniu na każdym poziomie wszystkich wierzchołków następnej generacji (określenie wszystkich potomków dla wszystkich wierzchołków z danego poziomu i ich sprawdzenie). Metoda ta, kolejno badając wierzchołki grafu o jednakowej głębokości, przyznaje wyższy priorytet wierzchołkom o mniejszej głębokości. Jeżeli rozwiązanie położone jest niezbyt głęboko procedura szukania wszerz szybciej prowadzi do jego znalezienia. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 24

Algorytmy przeszukiwania przestrzeni stanów Algorytm szukania wszerz jest podobny do algorytmu przedstawionego dla strategii szukania w głąb. Podstawowa różnica polega na sposobie organizacji listy OPEN. Podczas szukania wszerz lista OPEN zorganizowana jest w postaci kolejki. Strategia ta wyznacza wierzchołek celu o najmniejszej głębokości. Wadą strategii są duże wymagania pamięciowe (należy przechowywać całą dotychczas przebadaną część grafu). Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 25

Algorytmy przeszukiwania przestrzeni stanów Działanie algorytmu: 1 2/2 8/3 10/4 3/5 5/6 9/7 11/8 4/- 6/- 7/- wierzchołek celu n/ m n liczba określająca kolejność analizy wierzchołków dla algorytmu w głąb m liczba określająca kolejność analizy wierzchołków dla algorytmu wszerz Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 26

Algorytmy przeszukiwania przestrzeni stanów Szukanie z nawracaniem (BT) Strategia z nawracaniem jest modyfikacją algorytmu przeszukiwania w głąb. Lista OPEN jest również zorganizowana w postaci stosu, jednak dla badanego wierzchołka generowany jest tylko jeden jego potomek. Jeżeli nowy wierzchołek nie spełnia kryterium celu lub końcowego, to jest dalej rozszerzany (ale określamy tylko jednego potomka). Gdy po kolejnych rozszerzeniach otrzymany wierzchołek jest końcowy lub nie można dla niego określić wierzchołka potomnego następuje powrót do najbliższego przodka, dla którego możliwe jest wygenerowanie potomków. Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 27

Algorytmy przeszukiwania przestrzeni stanów Główną zaletą strategii z powracaniem jest oszczędność pamięci dla danego węzła wystarczy zapamiętać tylko jednego potomka. Oszczędność pamięci okupiona jest jednak komplikacją algorytmu przy powrocie do wcześniej analizowanego wierzchołka należy sprawdzić, które krawędzie z niego wychodzące zostały już rozpatrzone. Jednym z problemów algorytmu szukania z nawracaniem jest możliwość powstawania pętli (powrót do stanów już raz zbadanych). Rozwiązaniem tego problemu może być utworzenie dodatkowej listy CLOSED (zawiera wykaz stanów już rozpatrzonych). Autor: Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 28