Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

Podobne dokumenty
SZTUCZNA INTELIGENCJA

Heurystyki. Strategie poszukiwań

Heurystyczne metody przeszukiwania

Rozwiązywanie problemów metodą przeszukiwania

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

Metody przeszukiwania

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

Wstęp do Sztucznej Inteligencji

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

Znajdowanie wyjścia z labiryntu

Planowanie drogi robota, algorytm A*

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

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

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

Podstawy Sztucznej Inteligencji (PSZT)

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

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

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

Wprowadzenie do Sztucznej Inteligencji

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

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

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

Wyznaczanie strategii w grach

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

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

Definicja pochodnej cząstkowej

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy i struktury danych

Wprowadzenie do Sztucznej Inteligencji

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

Algorytmy i struktury danych

Luty 2001 Algorytmy (4) 2000/2001

PODSTAWY SZTUCZNEJ INTELIGENCJI

Układy równań liniowych. Ax = b (1)

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

Podstawy sztucznej inteligencji

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

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

Matematyczne Podstawy Informatyki

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

Podstawy sztucznej inteligencji

Efektywność algorytmów

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

INWENTARYZACJA W PROGRAMIE INTEGRA

Efektywna metoda sortowania sortowanie przez scalanie

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

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.

Teoretyczne podstawy informatyki

Zaawansowane algorytmy i struktury danych

Algorytmy sztucznej inteligencji

Suma dwóch grafów. Zespolenie dwóch grafów

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

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

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

Programowanie deklaratywne

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

TEORETYCZNE PODSTAWY INFORMATYKI

Program do obsługi ubezpieczeń minifort

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

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

Programowanie dynamiczne i algorytmy zachłanne

Ogólne wiadomości o grafach

Algorytmy i struktury danych. Wykład 4

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

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

Matematyka dyskretna dla informatyków

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

Schemat programowania dynamicznego (ang. dynamic programming)

Wybrane podstawowe rodzaje algorytmów

Zaawansowane programowanie

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

Elementy modelowania matematycznego

SZTUCZNA INTELIGENCJA

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA

Technologia informacyjna Algorytm Janusz Uriasz

10. Wstęp do Teorii Gier

Spis treści. I. Czym jest Indeks Haseł 3 II. Wyszukiwanie hasła 4. 1) Alfabetyczna lista haseł 4 2) Wyszukiwarka haseł 4 3) Grupy haseł 6

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

P r a w d o p o d o b i eństwo Lekcja 1 Temat: Lekcja organizacyjna. Program. Kontrakt.

Metody numeryczne Wykład 4

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

TEORETYCZNE PODSTAWY INFORMATYKI

TEORIA GRAFÓW I SIECI

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

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

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Metody numeryczne w przykładach

Zadanie 1: Piętnastka

OPTYMALIZACJA W LOGISTYCE

PRZEDMIOTOWE ZASADY OCENIANIA I WYMAGANIA EDUKACYJNE Z MATEMATYKI Klasa 3

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry.

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

KARTA PRZEDMIOTU. Algorytmy i struktury danych, C4

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

Transkrypt:

Wrocław, 16.06.2009 Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi Opracował: Janusz Taterka

1. Wstęp W systemach autonomicznych spotykamy się z zadaniami planowania działań. Rozwiązanie polega na wyborze najlepszego (według zadanego kryterium) ze wszystkich moŝliwych rozwiązań. Istotną rolę w procesie 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. metoda przeszukiwania jest jedną z częściej stosowanych podczas procesu rozwiązywania zadań. Spośród czynników decydujących o zastosowaniu metody przeszukiwania następujące dwa wydają się najwaŝniejsze: dla większości problemów trudno jest z góry określić ciąg czynności prowadzących do rozwiązania. Muszą one być określone przez systematyczne analizowanie kolejnych alternatyw; zaletą metod przeszukiwania jest łatwość formułowania zadań. Wymagane jest jedynie określenie zbioru stanów 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. Algorytmiczne realizacje metod przeszukiwania nazywane są strategiami przeszukiwania. Zbiór strategii przeszukiwania zawiera metody niewykorzystujące informacji o dziedzinie rozwiązywanego problemu - nazywane strategiami ślepymi oraz metody ściśle dopasowane do danego problemu, wykorzystujące informacje heurystyczne - strategie heurystyczne. W potocznym znaczeniu terminem heurystyka (z greckiego heuriskein - znaleźć, odkryć) określa się praktyczną, opartą na doświadczeniu, regułę postępowania, która moŝe znacznie uprościć lub skrócić proces rozwiązywania problemu, gdy metoda rozwiązania nie jest znana lub jest zawiła i czasochłonna. W algorytmice heurystyką nazywa się algorytm, który umoŝliwia znalezienie w akceptowalnym czasie przynajmniej "dostatecznie dobrego" przybliŝonego rozwiązania problemu, choć nie gwarantuje tego we wszystkich przypadkach. Metody heurystyczne naleŝą do podstawowych narzędzi sztucznej inteligencji, często uŝywane są teŝ w róŝnych działach badań operacyjnych Idea strategii heurystycznych wywodzi się z obserwacji, Ŝe dla większości problemów przestrzeń stanów zawiera dodatkowe informacje. Koszt wyznaczenia tych informacji jest niewielki, a pozwalają one dodatkowo klasyfikować stany i łatwiej wybierać najlepsze kierunki przeszukiwania. Strategie przeszukiwania przestrzeni stanów "w głąb" i "wszerz" działają "na oślep". Główne strategie heurystyczne to A * i "najpierw najlepszy". 2. Reprezentacja głównych elementów zadania Czynności wykonywane podczas rozwiązywania zadań moŝemy uwaŝać za pewnego rodzaju poszukiwania lub konstruowanie obiektów o danej charakterystyce. Rozwiązanie zadania jest często wyznaczane przez przeszukiwanie zbioru wszystkich moŝliwych stanów, zwanego przestrzenią przeszukiwania. Kompletne przebadanie takiej przestrzeni jest jednak mało efektywne, moŝliwe jedynie w przypadku małych przestrzeni. W odniesieniu do przykładu opisu agenta przeszukującego sklepy prezentowanego na wykładzie, wysoce nieefektywne lub wręcz niemoŝliwe (z punktu widzenia ograniczeń czasowych) byłoby zapoznanie się z ofertą wszystkich dostępnych sklepów internetowych lub tradycyjnych. 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: a. sposób reprezentacji kaŝdego ze stanów przestrzeni przeszukiwania, tzw. kod; b. metody obliczeniowe umoŝliwiające wygenerowanie kodu kolejnego stanu na podstawie kodu danego stanu, czyli operatory; c. 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. Sposób reprezentacji powinien umoŝliwiać efektywne przekształcenia zbioru za pomocą operacji rozszczepiania. Polega ona na podziale problemu 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 łatwego do rozwiązania. Zaprezentowany sposób rozwiązywania zadań jest nazywany metodą rozszczepiania i odrzucania (split-and-prune). W dziedzinie sztucznej inteligencji z powodu duŝych rozmiarów zadań, są stosowane analogiczne reguły postępowania, nazywane metodą generowania i testowania (generateand-test). Zamiast odrzucania stanów z pewnego zbioru, generuje się nowe stany i tylko część z nich wykorzystuje do dalszego badania. 3. Strategie przeszukiwania grafów Zadaniem strategii przeszukiwania jest wybór operatorów, określających gałęzie grafu przestrzeni stanów moŝliwe do wyboru podczas rozwiązywania danego problemu. Większość wyników teoretycznych dotyczących strategii przeszukiwania uzyskano dla drzew, a więc szczególnego typu grafów. Parametrami charakteryzującymi przeszukiwane grafy są: głębokość węzła, stopień rozgałęzienia węzła, stopień rozgałęzienia gałęzi. Dla zadań polegających na wyznaczeniu drogi lub drzewa rozwiązania najbardziej popularne są strategie iteracyjne. Konstruowanie takich strategii ma 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ę. RozróŜniamy dwie grupy strategii przeszukiwania: ślepe oraz skierowane, czyli tzw. heurystyczne. W pierwszej grupie strategii nie wykorzystuje się informacji o zadaniu, dzięki czemu mają one charakter uniwersalny. W drugiej grupie uwzględnia się informację o przestrzeni stanów, operatorach i kryteriach celu. W strategiach ślepych porządek przeszukiwania zaleŝy wyłącznie od informacji dostarczanych przez juŝ zbadane węzły grafu i sam proces przeszukiwania. Z kolei strategie heurystyczne umoŝliwiają w pewnej mierze uwzględnianie informacji o nie zbadanej jeszcze części grafu. W szczególności przy wyborze najbardziej obiecujących kierunków moŝe być przydatna wiedza o dziedzinie danego problemu oraz charakterystyce poszukiwanych węzłów celu. 3.1. Strategia A* Podstawowym algorytmem przeszukiwania przestrzeni stanów wykorzystującym heurystyki jest algorytm A*. W algorytmie tym zakłada się, Ŝe dla danego problemu dana jest pewna dodatkowa funkcja heurystyczna h działająca na zbiorze węzłów (stanów). Wartość h(n) stanowi oszacowanie odległości węzła n do węzła docelowego, przy czym oszacowanie to jest optymistyczne, tzn. faktyczna odległość węzła n do węzła docelowego nie moŝe być mniejsza od h(n). Ponadto funkcja h(n) powinna być łatwa do wyliczenia.

Przyjmijmy następujące oznaczenia: - S - zbiór węzłów (stanów), - g(n) - odległość węzła n od węzła startowego (przez odległość rozumiemy sumę kosztów łuków), - h(n) - funkcja heurystyczna, - h*(n) - faktyczna odległość węzła n do węzła docelowego, - f(n) = g(n)+h(n) - szacowana długość najkrótszej ścieŝki rozwiązania przechodzącej przez węzeł n. Zgodnie z załoŝeniem, h(n) <= h*(n) (ta waŝna własność nosi nazwę "dopuszczalności", ang. admissibility). Działanie algorytmu A* Pojedynczy krok polega na rozwinięciu wybranego węzła przestrzeni stanów. W kaŝdym kroku zbiór węzłów S dzieli się na trzy rozłączne podzbiory: zbiór węzłów juŝ rozwiniętych - E, zbiór węzłów przeznaczonych do rozwinięcia ("kontur") - C, pozostałe, jeszcze "nieodwiedzone" węzły. KaŜdy krok składa się z następujących czynności: a) niech v będzie węzłem konturu (zbioru C), dla którego wartość g(n)+h(n) jest najmniejsza, b) jeśli v jest węzłem docelowym, zakończ działanie, c) przenieś v ze zbioru C do zbioru E, d) do zbioru C dodaj te wszystkie następniki węzła v, które albo nie naleŝą do E, albo naleŝą do E, ale ścieŝka przechodząca przez v jest krótsza niŝ wcześniej znaleziona ścieŝka (w drugim przypadku usuń taki węzeł ze zbioru E). Funkcja heurystyczna f(w) w strategii A* jest sumą dwóch składników: F(w)=h(w)+g(w) WyraŜenie to oznacza, Ŝe dla danego węzła w jest wyznaczana najpierw w sposób heurystyczny estymacja h(w) kosztu drogi łączącej węzeł w z węzłem celu. Następnie wyznacza się dla węzła w koszt drogi łączącej węzeł początkowy p z węzłem w, co reprezentuje składnik g(w). Pomocą w przeszukiwaniu drzewa stanów jest równieŝ funkcja heurystyczna, określająca jakość aktualnego węzła. Funkcja heurystyczna powinna w tym przypadku uwzględnić w swej ocenie zarówno przybliŝoną odległość od węzła celu, koszt drogi od węzła początkowego do węzła aktualnego, jak i złoŝoność procesu obliczeniowego. Dla tego konkretnego algorytmu najwaŝniejsze są długość drogi w grafie oraz przybliŝona odległość od celu. Algorytm A* z iteracyjnym pogłębianiem słuŝy do znajdowania najlepszego istniejącego rozwiązania. Algorytm A* z iteracyjnym pogłębianiem realizuje schemat algorytmu w głąb dla kolejnych iteracji z przyjętą wartością progu, dotyczącego wartości funkcji heurystycznych. JeŜeli wartość funkcji heurystycznej badanego węzła jest większa od zadanego progu, to następuje powrót. W jednej iteracji są badane wszystkie węzły z wartością funkcji heurystycznej mniejszą od zadanego progu; w kolejnych iteracjach algorytmu próg ten jest zwiększany. Zaletą algorytmu A* z iteracyjnym pogłębianiem w porównaniu z tradycyjnym algorytmem A* jest zmniejszenie wymagań dotyczących pamięci komputera.

3.2. Najpierw najlepszy Strategia najpierw najlepszy (best-first) wykorzystuje pewną informacje heurystyczną związaną z rozwiązywaniem problemem do zminimalizowania kosztów przeszukiwania. W tym celu stosuje się pewną funkcję heurystyczną, która wyraŝa ocenę węzła ze względu na następujące kryteria: 1. zbieŝność, czyli osiągnięcia celu; 2. najmniejszego kosztu drogi wyznaczonej od węzła początkowego, przez węzeł w, do węzła końcowego; 3. najmniejszej złoŝoności obliczeniowej procesu przeszukiwania. Do dalszego rozszerzania wybieramy najlepszy węzeł spośród wszystkich węzłów rozpatrywanych do tej pory, nie zaleŝnie od ich połoŝenia w grafie. Przyjmujemy, Ŝe węzeł najbardziej obiecujący ma najmniejsza wartość funkcji heurystycznej. Działanie strategii najpierw najlepszy moŝna przedstawić na podstawie przykładu tzw. pięciu hetmanów. Zadanie to polega na odpowiednim ustawieniu np. pięciu hetmanów na szachownicy o wymiarach 5x5, przy czym Ŝaden z hetmanów nie moŝe atakować innego. Graf w przestrzeni stanów jest generowany zaczynając od stanu początkowego, który odpowiada pustej szachownicy. Hetmani są umieszczani w kolejnych wierszach o numerach od 1 do 5. Węzły na kaŝdym poziomie drzewa reprezentują moŝliwe pozycje hetmanów w kolejnych wierszach. Do oceny aktualnej pozycji jest wykorzystywana funkcja heurystyczna f. Jej wartość moŝe być wyznaczona w róŝny sposób, np. jest to minimalna liczba nie atakowanych pól w wolnych wierszach (pozycja jest bardziej obiecująca, gdy liczba ta jest większa). NajwaŜniejszą operacją, odróŝniającą strategię najpierw najlepszy od wcześniej omawianych algorytmów, jest uporządkowanie listy (zawierającej węzły grafu przestrzeni stanów z niewykorzystanymi krawędziami) według wartości funkcji heurystycznej. Rozszerzenie węzłów jest dokonywane, podobnie jak w strategii w głąb, przez ekspansję, czyli generowanie wszystkich potomków. 4. Wyznaczanie funkcji heurystycznych Aby proces przeszukiwania heurystycznego mógł być efektywnie przeprowadzony przez komputer, naleŝy opracować prostą metodę wyznaczenia funkcji heurystycznej. Jeśli problem moŝna formalnie zapisać w postaci zadania przeszukiwania, to istnieje prosta metoda generowania funkcji heurystycznych. Metoda polega na uproszczeniu zadania (np. dodanie lub eliminacja operatorów) tak, by w powstałym zadaniu koszt wyznaczenia rozwiązania był niewielki. Następnie dla zadań częściowych wykonywany jest algorytm rozwiązujący zadanie uproszczone. Koszt wykonania algorytmu dla zadania uproszczonego jest szukanym oszacowaniem heurystycznym. Sposób wyznaczania funkcji heurystycznej zilustrujemy przykładem układanki gra w ósemkę. Zasady tej układanki są następujące: dany jest 9-polowy kwadrat z ośmioma płytkami; płytki moŝna przesuwać na wolne pole (z pól sąsiednich w pionie i w poziomie); celem jest ustawienie płytek w Ŝądanej kolejności. Formalnie taką układankę moŝna opisać za pomocą notacji rachunku predykatów. Wystarczą trzy następujące predykaty: Miejsce(x,y)-płytka x na miejscu y Puste(y)- miejsce y puste Sd(y,x)- y jest sąsiadem x

Opis aktualnego stanu układanki uzyskamy podając odpowiednie warunki dla wszystkich płytek. Zasada przesunięcia płytki x z miejsca y na miejsce z składa się z trzech części: a. warunki zastosowania: miejsce (x,y) puste (y) sd(y,z) b. stan do dodania: miejsce (x,z) puste (y) c. stan do usunięcia: miejsce (x,y) puste (z) JeŜeli z warunków wstępnych usuniemy predykaty puste oraz sd, to otrzymamy układankę, w której płytki mogą być zamienione miejscami bez Ŝadnych ograniczeń. Z kolei jeŝeli z warunków wstępnych usuniemy predykat puste, to otrzymamy układankę, w której płytki mogą być zamieniane miejscami. W przypadku usunięcia predykatu sd otrzymamy układankę, w której płytki mogą być przesuwne na wolne pole z dowolnego połoŝenia. Rozwiązanie tych uproszczonych zadań moŝe posłuŝyć do wyznaczenia estymacji heurystycznej stanów oryginalnej gry w ósemkę. Zadanie bez predykatów puste i sd wyznacza funkcję heurystyczną, której wartością jest liczba płytek w połoŝeniu róŝnym od docelowego. Zadanie bez predykatu puste generuje funkcje heurystyczną, której wartością jest suma odległości w pionie i w poziomie płytek od ich docelowego połoŝenia. Zadanie bez predykatu sd określa funkcję heurystyczną, której wartością jest suma poprzednio opisanych odległości oraz odległości skośnej płytek od ich docelowego połoŝenia. Przykład rozwiązywania 8-ki metodą A* źródło:http://starbase.trincoll.edu/~ram/cpsc352/notes/heuristics.html f(n) = g(n) + h(n) g(n) - odległość od startu do stanu n. h(n) - liczba elementów na złym miejscu.

Zadania rozwiązywane przez strategie przeszukiwania Praktyczne problemy rozwiązywane przez strategie przeszukiwania moŝna podzielić na trzy grupy: wyznaczanie drogi lub drzewa w grafie, gry dwuosobowe, problemy spełniające zadane ograniczenia. Wyznaczanie drogi lub drzewa rozwiązania Jednym z podstawowych sposobów reprezentacji problemów praktycznych jest skonstruowanie przestrzeni rozwiązania jako grafu. Węzły grafu reprezentują stany. Krawędzie oznaczają operatory odwzorowujące jedne stany przestrzeni stanów na inne stany tej przestrzeni. JeŜeli zadanie polega na znalezieniu ciągu operatorów przekształcających jeden wyróŝniony stan (stan początkowy) w inny z wyróŝnionych stanów (stan końcowy), to w odpowiadającym temu zadaniu grafie mamy do czynienia z problemem wyznaczania drogi z węzła początkowego do węzła celu. Zadaniem strategii przeszukiwania jest wybór operatorów krawędzi moŝliwych dla danego stanu węzła. Gry dwuosobowe Gry w dalszym ciągu stanowią doskonałą metodę badania róŝnych aspektów ludzkiej inteligencji. Przykładowo szachy charakteryzują się stosunkowo niewielką liczbą moŝliwych posunięć (w danym stanie gry), małym zbiorem dobrze zdefiniowanych reguł opisujących zasady gry, pełną informacją w kaŝdym stanie gry. PowyŜsze cechy dają moŝliwość znalezienia rozwiązania z wykorzystaniem heurystycznych strategii przeszukiwania. Problemy spełnienia ograniczeń Wiele problemów praktycznych moŝna modelować następująco: zdefiniowany jest zbiór zmiennych, zbiory wartości tych zmiennych oraz zbiory ograniczeń zmiennych. Proste ograniczenia określają podzbiór wszystkich moŝliwych wartości zmiennej. Ograniczenia binarne określają jakie pary wartości dwóch zmiennych są moŝliwe. Literatura: 1. Leonard Bolc, Jerzy Cytowski Metody przeszukiwania heurystycznego, Warszawa 1991. 2. Wykład mgr Filipa Gralińskiego Sztuczna Inteligencja http://ceti.pl/~gralinski/szi520/zajiv.html 3. Wykłady prof. Włodzisława Ducha: Szukanie heurystyczne I i II http://www.phys.uni.torun.pl/~duch/wyklady/ai/ai2-2.ppt http://www.phys.uni.torun.pl/~duch/wyklady/ai/ai2-3.ppt