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

Wielkość: px
Rozpocząć pokaz od strony:

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

Transkrypt

1 Elementy sztucznej inteligencji. Materiał udostępniony na prawach rękopisu Sławomir T.Wierzchoń Instytut Podstaw Informatyki PAN Instytut Informatyki Uniwersytetu Gdańskiego 2 marca 2009

2 2

3 Spis treści 1 Wstęp Krótka historia SI Nieśmiałe próby ( ) Wczesny entuzjazm ( ) Doza realizmu ( ) Systemy oparte na wiedzy ( ) SI wkracza do przemysłu ( ) Współczesność (1987 ) Podsumowanie Rozwiązywanie problemów Systemy sztucznej inteligencji Przestrzeń stanów Klasyfikacja problemów Rozwiązywanie problemów w przestrzeni stanów Ślepe strategie przeszukiwania Przeszukiwanie wszerz i w głąb Strategia równomiernego kosztu Ograniczone przeszukiwanie w głąb Strategia iterowanego pogłębiania Przeszukiwanie dwukierunkowe Porównanie ślepych strategii przeszukiwania Przeszukiwanie heurystyczne Algorytm zachłanny Algorytm A Algorytm IDA Algorytm SM A Algorytmy iteracyjnego poprawiania Algorytm wspinaczkowy Symulowane wyżarzanie Algorytmy ewolucyjne Elementy logiki formalnej Języki formalne Formuły Teoria dowodu a teoria modeli

4 4 SPIS TREŚCI Niesprzeczność, zupełność i rozstrzygalność Logika zdań Język formalny dla logiki zdań Interpretacja formuł logiki zdań

5 Rozdział 2 Rozwiązywanie problemów Zdolność rozwiązywania problemów to jedna z cech inteligencji. Dlatego badacze zajmujący się sztuczną inteligencja poświęcają temu problemowi tak wiele uwagi. Chodzi przy tym o rozwiązywanie nie tylko dobrze sformułowanych i specyficznych zadań, ale o umiejętność i gotowość systemu do rozwiązywania dowolnych problemów. Takim problemem może więc być zarówno znalezienie funkcji pierwotnej, wyznaczenie wzoru strukturalnego pewnej substancji przy zadanym jej wzorze sumarycznym i pewnych dodatkowych informacjach, czy też rekomendacja diagnozy wraz ze stosownym uzasadnieniem, ale także rozwiązanie łamigłówki, rozegranie partii szachów, czy znalezienie najkrótszej drogi w grafie. W dalszym ciągu przez problem będziemy rozumieli cel postawiony przed agentem 1 wraz z zestawem środków zapewniających osiągnięcie owego celu. Specyfikację sposobu wykorzystania dostępnych środków, która zapewnia osiągnięcie celu nazwiemy rozwiązaniem problemu, natomiast proces tworzenia takiej specyfikacji przeszukiwaniem. Obecny rozdział poświęcamy przeglądowi zagadnień związanych z tak rozumianym rozwiązywaniem problemów. 2.1 Systemy sztucznej inteligencji Efektem rozważań dotyczących rozwiązywania problemów są inteligentne systemy zdolne do rozwiązywania stawianych im zadań. Nazywane są one przez Nilssona [8] systemami produkcji, a przez Russela i Norviga [10] agentami działającymi w oparciu o cele. Naszkicowane wyżej spojrzenie na rozwiązywanie problemów pozwala wyróżnić trzy zasadnicze elementy: dane, które charakteryzują zarówno postawiony cel jak też i kolejne etapy rozwiązania, operacje utożsamiane ze wspomnianym wcześniej zestawem środków, oraz strategię sterowania odpowiedzialną za wybór kolejnych operacji. Oddzielne traktowanie owych elementów jest charakterystyczną cechą systemów produkcji. Pozwala to z jednej strony zachować uniwersalność tworzonych systemów, a z drugiej skoncentrować uwagę na strategiach tworzenia rozwiązania z elementów zawartych w zbiorze operacji. Takie statyczne spojrzenie na inteligentne systemy jest typowe dla fazy konstrukcji systemów opartych na wiedzy. Jednakże rozwiązując problemy działamy nie w izolacji, lecz w określonym środowisku. Ponadto stawiane cele mogą ulegać pewnym modyfikacjom, może się zmieniać także 1 coś o agencie

6 14 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW wachlarz dostępnych środków. Dlatego wspomniane wyżej pojęcie agenta, który reaguje na bodźce płynące ze środowiska i aktywnie wpływa na owo środowisko może okazać się bardziej praktyczne i realistyczne. Agent traktowany jest zazwyczaj jako pewna funkcja odwzorowująca bodźce na akcje, przy czym owa funkcja może być implementowana na różne sposoby: jako system produkcji, jako sieć neuronowa, sieć bayesowska, itp. Podstawową cechą agenta powinna być racjonalność przejawiająca się między innymi podejmowaniem najlepszych (zgodnie z pewnym ustanowionym kryterium) decyzji w każdej sytuacji i konsekwentnym zmierzaniem do celu. Typowy sposób rozwiązywania problemów przedstawiono w postaci algorytmu 2.1. Algorytm 2.1 System produkcji przeznaczony do rozwiązywanie problemów WE: g zadany cel O zbiór operacji S etapy rozwiązania (stany) WY: r rozwiązanie problemu s := stan-początkowy; r := nil dopóki (s g) { wybierz najlepszą operację o O dodaj o do r, tzn. r := r + o zastosuj operację o do stanu s przekształcając go w nowy stan, tzn. s := o(s) } zwróć r Jest to właściwie typowe przeszukiwanie metodą generuj-i-testuj polegające na poszukiwaniu rozwiązania poprzez serię rozwiązań cząstkowych, przekształcających kolejne fazy procesu poszukiwania rozwiązywania za pomocą odpowiednio dobieranych operatorów. Za wybór konkretnego operatora odpowiada zastosowana strategia wynikająca z przyjętej metody przeszukiwania. 2.2 Przestrzeń stanów Strategia przeszukiwania przyjmuje szczególnie prostą i elegancką postać jeżeli założymy, że przeszukiwanie odbywa się w tzw. przestrzeni stanów reprezentującej wszystkie możliwe stany między etapem początkowym, a etapem końcowym rozwiązywanego problemu. Pojęcie stanu jest szeroko stosowane w naukach fizycznych oraz w automatyce, która ma ścisły związek z cybernetyką dyscypliną związaną z początkowym okresem rozwoju sztucznej inteligencji. Także rozwiązując problemy wygodnie jest mówić o stanach. Przestrzeń stanów można traktować jako pewien graf. Węzłami tego grafu są właśnie stany, natomiast operatory pozwalają wskazać sąsiednie stany, tzn. stany s i s są swoimi sąsiadami jeżeli istnieje taki operator o, który przeprowadza stan s w stan s. W zależności od tego czy skutki wykonywanych operacji są odwracalne, czy nie, graf będzie algo nieskierowany, albo skierowany. Pojęcia stanu i przestrzeni stanów ilustrujemy dwoma przykładami.

7 2.2. PRZESTRZEŃ STANÓW 15 Przykład (8-ka, lub 8 puzzle) Jest to znana układanka złożona z 9 ruchomych pól. Osiem z nich ponumerowanych jest kolejnymi liczbami naturalnymi, a jedno (przesuwne) pole jest puste. Owo pole należy przesuwać w taki sposób, aby uzyskać zadaną konfigurację pozostałych pól por. rysunek 2.1. Konkretna konfiguracja reprezentuje tu aktualny stan, natomiast zestaw ruchów jest równoważny zestawowi dostępnych operacji. Na rysunku 2.2 pokazano trzy możliwe do uzyskania stany po zastosowaniu do aktualnego stanu dostępnych operatorów Rysunek 2.1: Stan początkowy i docelowy w zadaniu 8-ka L P D Rysunek 2.2: Fragment drzewa poszukiwań w problemie 8-ka. Kolejność przesuwania pustej płytki: w lewo (L), w prawo (P ), w górę (G), w dół (D). Jeżeli pewien ruch jest niedopuszczalny w danym stanie, pomija się go. Przykład (Wieża Hanoi) Jest to kolejna, równie popularna, łamigłówka por. rysunek 2.3. Dane sa trzy słupki, a na jednym z nich ulokowano trzy 2 dyski o różnych średnicach. Zadanie polega na przeniesieniu wszystkich dysków na inny słupek, przy czym: (a) jednorazowo można przenieść tylko jeden dysk, (b) pojedynczy dysk można nałożyć albo na pusty słupek, albo na słupek, na którym znajduje się już dysk o większej średnicy. Jeżeli stany będziemy reprezentować jako trójki s m l gdzie poszczególne pozycje określają numer słupka, na którym znajduje się mały (s), średni (m) i duży (l) dysk, to przestrzeń stanów ma postać jak na rysunku Jest to najprostszy wariant łamigłówki. W ogólnym przypadku można rozważać wieżę zbudowaną z k 3 dysków.

8 16 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW Rysunek 2.3: Wieża Hanoi. Przedstawionej tu sytuacji odpowiada stan (1 1 1). Rysunek 2.4: Przestrzeń stanów dla zadania wieża Hanoi. Stanem początkowym jest stan (1 1 1), a stanem końcowym (3 3 3). Inne, o bardziej praktycznym zabarwieniu, problemy to: zadanie komiwojażera, poszukiwanie najkrótszej drogi łączącej wybrane punkty (np. miasta na mapie), harmonogramowanie, planowanie ruchów robota, itp. Należy podkreślić, że na efektywność rozwiązywania problemów wpływa przyjęta reprezentacja zadania. Przede wszystkim powinno wybierać się takie reprezentacje, które gwarantują minimalny rozmiar przestrzeni stanów. Wybór odpowiedniej reprezentacji jest sztuką. Przykładowo, w zadaniu 8-królowych polegającym na takim rozmieszczeniu figur na szachownicy o wymiarach 8 8, aby żadna z nich nie zagrażała pozostałym por. rysunek 2.5. Z warunków zadania wynika, że każda figura powinna być ulokowana w innym wierszu i innej kolumnie niż pozostałe figury. Zatem konkretny stan wystarczy reprezentować przez 8-wymiarowy wektor, którego i-ta pozycja wskazuje numer wiersza, w którym występuje figura zajmująca pole należące do i-tej kolumny. 2.3 Klasyfikacja problemów Russel i Norvig [10] wyróżniają, w zależności od tego jaka wiedzą o środowisku dysponuje agent, cztery klasy problemów. Jeżeli jego wiedza jest doskonała, mamy do czynienia z problemami jednostanowymi, w których zastosowanie operatora o do stanu s pozwala uzyskać kolejny, jednoznacznie wyznaczony, stan s = o(s). Oba wcześniejsze przykłady są ilustracją takich właśnie problemów. Jeżeli wiedza o świecie jest niedoskonała mamy do czynienia z problemami wielostanowymi. Np. agent nie ma pewności jaki jest stan początkowy s 0 ; wie jedynie, że s 0 S 0, gdzie S 0 jest pewnym podzbiorem zbioru stanów. W takim wypadku działanie operatorem o przeprowadza podzbiór S t w inny podzbiór S t+1 gdzie t = 0, 1,... jest indeksem

9 2.4. ROZWIĄZYWANIE PROBLEMÓW W PRZESTRZENI STANÓW Q 7 7 Q 6 6 Q 5 5 Q 4 4 Q 3 3 Q 2 2 Q 1 1 Q Rysunek 2.5: Problem 8-królowych. (a) Pola blokowane przez figurę ustawioną w zaznaczonym czarnym kolorem polu (4, 5). (b) Konfiguracja ( ) wraz z zaznaczonymi pogrubioną linią trzema niewłaściwymi położeniami figur. oznaczającym kolejny etap. Z podobnym efektem mamy do czynienia wówczas, gdy efekt zastosowania operatora o prowadzi do różnych skutków (np. na skutek niedoskonałości sprzętu realizującego dana operację). Jeżeli przejścia do kolejnych stanów są obarczone ryzykiem błędu mamy do czynienia z trzecią grupą problemów, problemów awaryjnych, które wymagają bardzo ostrożnego rozwiązywania. Po niemal każdej operacji należy sprawdzać, czy doprowadziła ona do oczekiwanego stanu, czy też należy wykonać dodatkowe czynności naprawcze. Z taką sytuacją stykamy się np. w zadaniach planowania. Wreszcie do czwartej, najtrudniejszej, grupy należą te problemy, w których agent nie posiada informacji o skutkach podejmowanych działań. Wyobraźmy sobie, że musimy wyznaczyć trasę z miasta A do miasta B w nieznanym kraju i bez korzystania z mapy. Są to problemy eksploracyjne, do rozwiązywania których stosuje się zaawansowane techniki uczenia maszynowego (np. tzw. uczenie ze wzmocnieniem). 2.4 Rozwiązywanie problemów w przestrzeni stanów Podstawowymi elementami definicji problemu, w ramach rozważanego obecnie formalizmu, są stany i operacje. Bardziej precyzyjnie, aby stosować formalizm przestrzeni stanów, musimy wyróżnić: Stan początkowy s 0, ewentualnie zbiór stanów początkowych S 0. Stan docelowy g, ewentualnie zbiór stanów docelowych G. Zbiór dostępnych operacji, które mogą być stosowane w określonym stanie. Często operacje nazywane są ruchami, szczególnie gdy agent rozwiązuje gry lub łamigłówki logiczne.

10 18 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW W takim kontekście przestrzeń stanów to nic innego jak zbiór stanów osiągalnych ze stanu początkowego po wykonaniu skończonej sekwencji ruchów. Formalnie należałoby określić jeszcze procedurę testującą, czy aktualny stan jest stanem końcowym, lub też czy należy do zbioru stanów końcowych. Dowolną ścieżkę łączącą stan początkowy ze stanem spełniającym warunek zatrzymania, a więc takim stanem, dla którego powyższa procedura zwraca wartość true nazywamy rozwiązaniem. Aby wybierać między alternatywnymi rozwiązaniami, należy przypisać im określony koszt. Ten koszt, nazywany też kosztem ścieżki, jest zazwyczaj sumą kosztów związanych ze stosowaniem operacji generujących kolejne węzły leżące na ścieżce łączącej stan początkowy z końcowym. Podstawowy algorytm przeszukiwania przestrzeni stanów zapisano w postaci pseudokodu 2.2. Przestrzeń stanów wygodnie jest wyobrażać sobie jako graf G S = (V, E), którego zbiór węzłów V reprezentuje wszystkie możliwe stany rozwiązywanego problemu, zaś E to zbiór krawędzi, przy czym para (v, w) E tylko wtedy, gdy istnieje operacja przeprowadzająca stan v w nowy stan w. Jeżeli dozwolone jest cofanie ruchów, mamy do czynienia z procesem odwracanym i G S jest grafem nieskierowanym. W przypadku przeciwnym mamy do czynienia z grafem skierowanym. Algorytm 2.2 Podstawowy algorytm przeszukiwania przestrzeni stanów WE: R lista węzłów do rozwinięcia W lista zbadanych węzłów N operator zwracający listę sąsiadów danego węzła w 0 węzeł początkowy w g węzeł końcowy WY: p ścieżka łącząca węzeł początkowy z węzłem końcowym begin W := {w 0 } R := N(w 0 ) dopóki nie osiągnięto węzła końcowego { wybierz węzeł w z listy R dodaj ten węzeł do listy odwiedzonych węzłów, W := W {w} dodaj nieodwiedzonych sąsiadów węzła w do listy R, tzn. R := R (N(w)\W } zwróć ścieżkę p łączącą węzeł w 0 z węzłem w g end Należy zauważyć, że nie jest konieczne (a czasami wręcz niemożliwe) przechowywanie w pamięci komputera całej przestrzeni stanów. Dysponując grafem G S można łatwo skonstruować funkcję N : V 2 V, która każdemu węzłowi w G S przypisuje zbiór jego sąsiadów. W istocie N(w) to nic innego, jak zbiór stanów, w jakie można przekształcić aktualny stan reprezentowany przez węzeł w za pomocą dostępnych operacji (ruchów). Wówczas, wychodząc z pewnego węzła w 0 i odwiedzając jego sąsiadów, a następnie sąsiadów tych sąsiadów itd., można wędrować po całym grafie. Taką filozofię reprezentuje algorytm 2.2. Lista R zawiera węzły, które można odwiedzić w kolejnych krokach, natomiast lista W zawiera węzły już zbadane. Analizując zawartość tej listy rekonstruuje się następnie ścieżkę łączącą węzeł początkowy z węzłem końcowym. W takim formalizmie

11 2.5. ŚLEPE STRATEGIE PRZESZUKIWANIA 19 problem poszukiwania rozwiązania sprowadza się do wyboru strategii odpowiedzialnej za pobieranie kolejnych węzłów z listy R. Strategie przeszukiwania oceniane są ze względu na cztery aspekty: (a) Kompletność: czy strategia pozwala zawsze znaleźć rozwiązanie, o ile ono istnieje? (b) Złożoność czasowa: ile czasu zajmie znalezienie rozwiązania? (c) Złożoność pamięciowa: jak dużej pamięci potrzeba, aby uzyskać rozwiązanie? (d) Optymalność: Czy strategia gwarantuje znalezienie najlepszego spośród wszystkich możliwych rozwiązań? Ogólnie, strategie dzieli się na: (i) ślepe strategie przeszukiwania, a więc takie, w których wybór kolejnego węzła zależy od porządku, w jakim kolejne węzły są dodawane do listy R, oraz (ii) strategie heurystyczne (poinformowane), w których wybór węzła zależy od pewnych priorytetów nadawanych węzłom z listy R poprzez odwołanie się do wiedzy heurystycznej. Poniżej omawiamy szczegółowo reprezentantów obu typów strategii. 2.5 Ślepe strategie przeszukiwania Wyróżnia się sześć strategii ślepego przeszukiwania. Różnią sie one nie tylko porządkiem, w jakim rozwijane są kolejne węzły, ale także i jakością zwracanych rozwiązań Przeszukiwanie wszerz i w głąb Zarówno przeszukiwanie grafu G S metodą w głąb jak i wszerz to podstawowe algorytmy grafowe. Posiadają one szerokie zastosowanie jako składowe bardziej złożonych algorytmów. Np. przeszukiwanie wszerz wykorzystywane jest w algorytmie badania spójności grafu, a przeszukiwanie w głąb stosowane jest w takich algorytmach, jak: sortowanie topologiczne, algorytm Kruskala czy Prima. W pierwszym przypadku R implementowane jest jako stos, albo kolejka LIFO 3. Innymi słowy, sąsiedzi aktualnego węzła w wstawiani są na początek listy, z której pobiera się pierwszy element. Z kolei w przypadku strategii wszerz elementy zbioru N(w) dodawane są na koniec listy R; mamy tu więc do czynienia z kolejką typu FIFO 4 Aby porównać obie te strategie załóżmy, że każdy węzeł posiada dokładnie b następników i załóżmy, że węzeł celowy znajduje się w grafie G S na głębokości d. W przypadku metody wszerz należy w najgorszym razie rozwinąć 1 + b + b b d 3 Skrót od Last In, First Out, tzn. ostatni przyszedł, pierwszy obsłużony. 4 Skrót od FIFO, tzn. pierwszy przyszedł, pierwszy obsłużony.

12 20 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW węzłów. Zatem przeszukiwanie to charakteryzuje się wykładniczą złożonością czasową i pamięciową. Jednak gwarantuje ono znalezienie rozwiązania, a ponadto jest to rozwiązanie optymalne. Przeszukiwanie metodą w głąb charakteryzuje się wykładniczą złożonością czasową O(b m ) gdzie m jest głębokością drzewa poszukiwań oraz liniową złożonością pamięciową O(bm). Nie gwarantuje jednak znalezienia rozwiązania, ani jego optymalności. Mówi się, że jeżeli celem przeszukiwania jest odnalezienie docelowego węzła o pożądanych własnościach, to strategia w głąb ma szanse znaleźć ten węzeł szybciej niż strategia wszerz. Jeżeli w przestrzeni przeszukiwań istnieją ścieżki nieskończonej długości, nie można zagwarantować, że strategia w głąb nie wybierze takiej właśnie ścieżki. Natomiast jeżeli celem przeszukiwania jest znalezienie najkrótszej ścieżki łączącej węzeł początkowy z węzłem celowym, to stosując strategię wszerz mamy gwarancję jej wyznaczenia, nawet w przypadku występowania nieskończonych ścieżek Strategia równomiernego kosztu Chociaż przeszukiwanie wszerz gwarantuje znalezienie najpłytszego rozwiązania, w ogólnym przypadku nie musi to być rozwiązanie najtańsze. Aby znaleźć takowe, stosuje się strategię równomiernego kosztu, w której rozwija się zawsze węzeł w o najniższym koszcie ścieżki, g(w). Ów koszt jest sumą kosztów przypisanych krawędziom należącym do ścieżki łączącej węzeł początkowy w 0 z węzłem w. Zatem g(w 0 ) = 0 oraz g(v) = g(w) + κ(w, v) dla każdego sąsiada v węzła w, natomiast κ(w, v) 0 jest kosztem przejścia z w do v. Taka definicja zapewnia, że dla dowolnej pary (w, v) węzłów, w której v N(w) koszt ścieżki nigdy nie maleje, tzn. g(v) g(w). Jest to warunek konieczny na to, aby strategia równomiernego kosztu generowała ścieżkę o najniższym koszcie. Tutaj niewizytowany węzeł v N(w) dodawany jest do listy R tylko wówczas, gdy albo nie ma go na liście R, albo też w R istnieje węzeł v ale przypisano mu większy koszt. Aby rozróżniać między identycznymi węzłami, którym przypisuje się różny koszt potrzebujemy bardziej wyrafinowanej struktury do reprezentacji pojedynczego węzła v V. Powinna ona zawierać nie tylko informacje o koszcie dojścia do tego węzła, ale także informację o jego poprzedniku, czyli tym węźle w, którego aktualnym sąsiadem jest badany właśnie węzeł w. Poniższy fragment kodu przedstawia przykładową strukturę węzła zapisaną w języku Java: public class Node { State stan; Node ojciec; int g; } //informacja o aktualnym stanie //informacja o bezpośrednim poprzedniku aktualnego węzła //koszt przejścia ze stanu początkowego do aktualnego stanu Algorytm przeszukiwania przestrzeni rozwiązań metodą równomiernego kosztu przedstawiono w postaci pseudokodu 2.3. Ostatni krok wewnętrznej pętli w tym algorytmie jest równoważny dodawaniu do listy R tylko tych nieodwiedzonych węzłów v, które albo nie występują na niej, albo też już tam się pojawiły, ale przypisany im koszt g(v) jest większy od aktualnie obliczonego. Rezygnując z takiego sprawdzania oszczędzamy czas konieczny na przejrzenie listy R.

13 2.5. ŚLEPE STRATEGIE PRZESZUKIWANIA 21 Algorytm 2.3 Algorytm przeszukiwania metodą równomiernego kosztu WE: R lista węzłów do rozwinięcia W lista zbadanych węzłów N operator zwracający listę sąsiadów danego węzła w 0 węzeł początkowy w g węzeł końcowy κ: V V R koszt przejścia od węzła w do jego sąsiada g : V R koszt ścieżki od w 0 do aktualnego węzła WY: p ścieżka łącząca węzeł początkowy z węzłem końcowym begin w 0.g = 0; W := {w 0 }; oceń sąsiadów węzła w 0, tzn. dla każdego węzła w N(w 0 ) wyznacz w.g = κ(w 0, w); zapamiętaj ocenionych sąsiadów, R := N(w 0 ); dopóki nie osiągnięto węzła końcowego { jeżeli R = nil to wypisz komunikat Porażka i zakończ przeszukiwanie; z listy R wybierz węzeł w o najniższym koszcie g(w); jeżeli w = w g to wypisz komunikat Sukces, zwróć ścieżkę p łączącą węzeł w 0 z węzłem w g i zakończ przeszukiwanie; usuń węzeł w z listy R i dodaj go do listy W odwiedzonych węzłów; oceń sąsiadów węzła w, tzn. wyznacz g(v) = g(w) + κ(w, v) dla v N(w); dodaj do listy R wszystkich nieodwiedzonych sąsiadów węzła w; } end Jednym z typowych zastosowań algorytmu jest poszukiwanie najkrótszej trasy, co ilustruje poniższy przykład. Przykład Rozważmy uproszczoną mapę komunikacyjną Rumunii przedstawioną na rysunku 2.6 pochodzącym z [10]. Interesuje nas znalezienie najkrótszej drogi łączącej dwa miasta: Arad i Bucharest. Kolejne etapy przeszukiwania prze3dstawiono w tablicy 2.1. Dla zwiększenia czytelności stosujemy tam 3-literowe symbole odpowiadające trzem pierwszym literom w nazwie odpowiedniego miasta. Dla przykładu zapis [Tim(Ara), 118] oznacza węzeł, którego pole stan = Tim, pole ojciec = Ara, natomiast koszt ścieżki dodarcia do Timisoary przez Arad jest równy 118. W przypadku węzłów wymienianych w kolumnie oznaczonej N(w) podajemy tylko nazwę miasta i koszt κ(w, v) dotarcia do niego z aktualnie badanego miasta w. Pobierając węzeł [Buc(Pit), 4], t = 13, stwierdzamy, że: (a) długość trasy łączącej interesujące nas miasta jest równa 4 km. Znając zawartość listy W : [Ara, 0], [Zer(Ara), 75], [Tim(Ara), 118], [Sib(Ara), 1], [Ora(Zer), 146], [Rim(Sib), 220], [Lug(Tim), 229], [Fag(Sib), 239], [Meh(Lug), 299], [Pit(Rim), 317], [Cra(Rim), 366], [Dob(Meh), 374] z łatwością rekonstruujemy właściwą trasę: Buc - Pit - Rim - Sib - Ara. Powyższy przykład ilustruje zasadniczą wadę strategii równomiernego kosztu: błądzi ona badając nieistotne węzły, a tym samym jest ona czasowo złożona.

14 22 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW 71 Oradea Zerind 75 Arad Timisoara Dobreta Neamt Iasi 92 Sibiu 99 Fagaras Vaslui 80 Rimnicu Vilcea 142 Lugoj Pitesti Hirsova Mehadia Urziceni Bucharest Craiova Eforie Giurgiu Rysunek 2.6: Uproszczona mapa drogowa Rumunii. (Źródło: [10].) t w N(w) R W 0 {Ara} 1 Ara [Zer, 75], [Sib, 1], [Zer(Ara), 75], [Sib(Ara), 1], [Ara, 0] [Tim, 118] [Tim(Ara), 118] 2 Zer [Ara, 75], [Ora, 71], [Sib(Ara), 1], [Tim(Ara), 118] W [Zer(Ara), 75] [Ora(Zer), 146] 3 Tim [Ara, 118], [Lug, 111], [Sib(Ara), 1], [Ora(Zer), 146], W [Tim(Ara), 118] [Lug(Tim) 229] 4 Sib [Ara, 1], [Far, 99], [Ora(Zer), 146], [Lug(Tim) 229], W [Sib(Ara), 1] [Rim, 80] [Fag(Sib), 239], [Rim(Sib), 220] [Tim(Ara), 118], 5 Ora [Zer, 71], [Sib, 151], [Lug(Tim) 229], [Fag(Sib), 239], W [Ora(Zer), 146] [Rim, 80] [Rim(Sib), 220] 6 Rim [Zer, 71], [Sib, 80], [Lug(Tim) 229], [Fag(Sib), 239], W [Rim(Sib), 220] [Pit, 97], [Cra, 146] [Cra(Rim), 366], [Pit(Rim), 317] 7 Lug [Tim, 111], [Meh, 70] [Fag(Sib), 239], Cra(Rim), 366], W [Lug(Tim), 229] [Pit(Rim), 317], [Meh(Lug), 299] 8 Fag [Buc, 211], [Sib, 99] [Cra(Rim), 366], [Pit(Rim), 317], W [Fag(Sib), 239] [Meh(Lug), 299], [Buc(Fag), 4] 9 Meh [Lug, 70], [Dob, 75] [Cra(Rim), 366], [Pit(Rim), 317], W [Meh(Lug), 299] [Buc(Fag), 4], [Dob(Meh), 374] 10 Pit [Rim, 97], [Buc, 101] [Cra(Rim), 366], [Buc(Fag), 4], W [Pit(Rim), 317] [Dob(Meh), 374] 11 Cra [Dob, 120], [Pit, 138] [Buc(Fag), 4], [Dob(Meh), 374] W [Cra(Rim), 366] 12 Dob [Meh,75], [Cra, 120] [Buc(Fag), 4] W [Dob(Meh), 374] 12 Buc Tablica 2.1: Etapy znajdowania najkrótszej trasy z Arad do Bucuresti w oparciu o mapę z rysunku Ograniczone przeszukiwanie w głąb Przeszukiwanie w głąb z ograniczeniem na głębokość l, tzn. węzły na głębokości l nie mają następników. Tutaj problemem jest wybór właściwej głębokości l (nazywanej średnicą

15 2.5. ŚLEPE STRATEGIE PRZESZUKIWANIA 23 przestrzeni poszukiwań) Strategia iterowanego pogłębiania W przypadku iterowanego pogłębiania wykonuje się przeszukiwanie w głąb ograniczone do pewnej głębokości l. Jeżeli przeszukiwanie nie kończy sie sukcesem, zwiększa się wartość parametru l, tzn. l = l + 1 i ponownie rozpoczyna ograniczone przeszukiwanie w głąb. każdorazowo przeszukiwanie rozpoczyna się od początkowego węzła w o. Będąc zupełną i optymalną, jest to bardzo popularna metoda przeszukiwania. Wadą przeszukiwania wszerz jest duża złożoność pamięciowa, natomiast wadą metody w głąb jest jej niezupełność. Iterowane pogłębianie jest efektywnym kompromisem między tymi dwiema metodami. Z uwagi na ograniczoność przeszukiwania możliwe jest uzyskanie rozwiązania tej samej jakości co w metodzie wszerz, lecz bez zużycia tak dużej pamięci. Pomimo wielokrotnego rozwijania tych samych węzłów, pesymistyczne zużycie pamięci jest niewiele większe niż w metodzie wszerz. Istotnie, przypuśćmy, że rozwiązanie znajduje się na głębokości d. W przypadku przeszukiwania metodą wszerz należy w najgorszym przypadku przejrzeć d n w = b i i=0 węzłów, natomiast stosując metodę iterowanego pogłębiania przeglądamy d n ip i=0 (d + 1 i)b i węzłów. Przypuśćmy, że d = 10 i każdy węzeł ma b = 5 potomków. Wówczas n w = , natomiast n ip = , co oznacza, że n ip = 1.25n w Przeszukiwanie dwukierunkowe Rozpoczynamy przeszukiwanie w przód rozpoczynając od węzła początkowego i równocześnie przeszukiwanie w tył rozpoczynając od węzła końcowego. O ile przeszukiwanie w przód jest tożsame, że znanym dotychczas rozwijaniem sąsiadów badanego węzła, potem sąsiadów tych sąsiadów, itd., o tyle przeszukiwanie w tył wymaga dysponowania listą poprzedników danego węzła, P (w). Do P (w) zaliczamy te wszystkie węzły, których sąsiadem (następnikiem) jest w. Oczywiście, jeżeli dopuszczalne w rozwiązaniu danego problemu operacje sa odwracalne, to jeżeli v N(w) wówczas w P (v). W ogólności wyznaczanie poprzedników jest procesem złożonym i kosztownym. Możliwość stosowania przeszukiwania dwukierunkowego wymaga także sprawdzania, czy węzeł, który właśnie jest rozwijany w jednym drzewie, nie wystąpił już w drugim drzewie przeszukiwań Porównanie ślepych strategii przeszukiwania Załóżmy, jak poprzednio, że w grafie reprezentującym przestrzeń poszukiwań każdy węzeł ma b potomków, d oznacza głębokość, na której występuje rozwiązanie, m jest maksymalną głębokością drzewa, a l jest ograniczeniem na głębokość przeszukiwania. Własności poszczególnych strategii ilustruje tabela 2.2.

16 24 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW Strategia Kompletność Optymalność Złożoność czasowa pamięciowa Wszerz Tak Tak b d b d W głab Nie Nie b m bm Równomiernego kosztu Tak Tak b d b d Ograniczone przeszukiwanie Tak, Nie b l bl w głąb gdy l d Iteracyjne pogłębianie Tak Tak b d b d Dwukierunkowa (o ile stosowalna) Tak Tak b d/2 b d/2 Tablica 2.2: Odpowiedniość między etapami procesu schładzania i etapami procesu wyznaczania optimum 2.6 Przeszukiwanie heurystyczne Jeżeli w algorytmie ślepego przeszukiwania wiedza o problemie zostanie wykorzystana do porządkowania listy R, to otrzymamy algorytm przeszukiwania heurystycznego. Do porządkowania węzłów stosuje się tzw. funkcję oceniającą, f : V R, która każdemu węzłowi przypisuje jego atrakcyjność, czy też potencjalną korzyść z jego rozwinięcia. Zakładając, że rozwija się węzeł, któremu odpowiada najbardziej atrakcyjna ocena, otrzymujemy tzw. strategię pierwszy najlepszy. Algorytm realizujący tę strategię jest identyczny z algorytmem 2.3 z tą różnicą, że rolę występującej tam funkcji g pełni teraz funkcja oceniająca f Algorytm zachłanny Najprostszym wariantem strategii pierwszy najlepszy jest strategia zachłanna, w której do oceny atrakcyjności węzła korzysta się wyłącznie z funkcji heurystycznej h: V R. Każdemu węzłowi przypisuje ona szacowany koszt najkrótszej ścieżki od tegoż węzła do węzła celowego v g. Za h można przyjąć w zasadzie dowolną funkcję, o ile tylko dla każdego węzła v V będzie ona spełniać następujące warunki: (i) h(v) 0, (ii) h(v) h (v), (iii) h(v g ) = 0 gdzie h (v) jest rzeczywistym kosztem ścieżki od węzła v do węzła docelowego. Heurystykę spełniającą powyższe warunki nazywamy dopuszczalną. Np. w zadaniu poszukiwania najkrótszej drogi na mapie rolę takiej funkcji może pełnić odległość między aktualnie rozwijanym węzłem, a węzłem docelowym. Wersję oryginalnego problemu, dla której koszt rozwiązania nigdy nie przekracza kosztu rozwiązania oryginalnego problemu nazywamy problemem uproszczonym.

17 2.6. PRZESZUKIWANIE HEURYSTYCZNE 25 Przykład Poszukiwanie najkrótszej drogi jest jednym z kluczowych zadań m.in. w takich problemach jak sterowanie robotem, czy gry komputerowe. Reprezentacją często stosowaną do znalezienia właściwego rozwiązania jest pokrycie przestrzeni, w jakiej porusza się agent, regularną (np. kwadratową) siatką. Dzięki temu ciągłą przestrzeń poszukiwań zastępuje się skończoną liczbą połączonych ze sobą węzłów. Przykład takiego postępowania przedstawiono w pierwszej kolumnie pierwszego od góry wiersza na rysunku 2.7. Czarny prostokąt oznacza tu przeszkodę, a zadanie polega na znalezieniu trasy łączącej punkt startowy, oznaczony literą S z, leżącym po drugiej stronie przeszkody, punktem końcowym zaznaczonym jako szary kwadrat. Załóżmy, że agent może poruszać się w jednym z ośmiu kierunków, por. prawy rysunek w pierwszym rzędzie na rys Jako funkcję heurystyczną przyjmuje się często odległość Manhattan między aktualnym położeniem agenta, a punktem docelowym. W niniejszym przykładzie odległość tę mnożono przez 10. Kolejne rysunki przedstawiają analizowana sekwencję ruchów, a ostateczną trasę przedstawiono w prawej kolumnie w ostatnim wierszu rysunku 2.7. Sposób przeszukiwania za pomocą strategii zachłannej przypomina nieco przeszukiwanie metodą w głąb: algorytm podąża wzdłuż ścieżki wskazującej cel. W przypadku, gdy ścieżka okazuje sie nieefektywna, następuje powrót do jednego z wcześniej wizytowanych węzłów. Podobnie jak przeszukiwanie w głąb tak i przeszukiwanie zachłanne nie jest ani zupełne, ani optymalne. Ponadto, algorytm często błądzi wykonując zbędne ruchy. Przykład Dla przykładu rozpatrzmy ponownie problem wyznaczenia najkrótszej trasy z Arad do Bucuresti badany w przykładzie Wartości funkcji heurystycznej, reprezentujące odległość w linii prostej z danego miasta do miasta docelowego przedstawiono w poniższej tablicy: Miasto Odległość Miasto Odległość Arad 366 Mehadia 241 Bucharest 0 Neamt 234 Craiova 1 Oradea 380 Dobreta 242 Pitesti 98 Eforie 161 Rimnicu Vilcea 193 Fagaras 178 Sibiu 253 Giurgiu 77 Timisoara 329 Hirsova 151 Urziceni 80 Iasi 226 Vaslui 199 Lugoj 244 Zerind 374 Tablica 2.3: Odległość w linii prostej z danego miasta do miasta docelowego Algorytm wybiera najpierw sąsiada miasta Arad, któremu przypisano najniższą wartość heurystyki jest to Sibiu, następnie sąsiada tego miasta, czyli Fagaras, a stąd wybiera się już miasto docelowe por. rys Długość wygenerowanej w ten sposób trasy jest równa 4 w porównaniu trasą o długości 412 km uzyskaną przez zastosowanie strategii równomiernego kosztu.

18 26 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW S G S G Rysunek 2.7: Kolejno wizytowane stany w zadaniu poszukiwania najkrótszej drogi w labiryncie. Punkt startowy oznaczono jako szary kwadrat z literą S, a punkt docelowy jako szary kwadrat. Czarny prostokąt oznacza przeszkodę. Dopuszczalne kierunki ruchu zaznaczono w pierwszej kolumnie pierwszego wiersza. Ostateczną trasę zaznaczono szarymi kwadratami w prawej kolumnie ostatniego wiersza. Przekreślone kwadraty reprezentuję wizytowane węzły. Liczby wewnątrz kwadratów oznaczają wartości funkcji heurystycznej. W powyższym przykładzie stosunkowo szybko znaleziono rozwiązanie sub-optymalne. Jednakże próba znalezienia drogi z Iasi do Fagaras na mapie z rysunku 2.6 nie jest już tak owocna. Algorytm wybiera jako pierwsze miasto Neamt i ponownie (przy braku listy W ) wizytuje Iasi, skąd wraca do Neamt. Ogólnie, strategia zachłanna jest strategią zupełną jeżeli eliminuje się powtarzające się stany, a więc jeżeli używa się listy W. Nie jest to jednak strategia optymalna. Ponadto

19 2.6. PRZESZUKIWANIE HEURYSTYCZNE 27 Arad Zerind Sibiu Timisoara Arad Fagaras Oradea Rimnicu Sibiu Bucharest Rysunek 2.8: Rozwiązanie problemu znalezienia najkrótszej drogi z przykładu za pomocą strategii zachłannej. charakteryzuje ją duża złożoność czasowa i pamięciowa, O(b m ), gdzie jak poprzednio m to maksymalna głębokość drzewa, a b to maksymalna liczba sąsiadów węzła. Warto jednak pamiętać, że wybór odpowiedniej heurystyki pozwala znacząco zredukować złożoność czasową Algorytm A W 1968 roku Peter Hart, Nils Nilsson oraz Bertram Raphael zaproponowali niezwykle efektywny wariant przeszukiwania metodą pierwszy najlepszy algorytm A. Odnajduje on najkrótszą ścieżkę pomiędzy dwoma danymi wierzchołkami grafu (lub dokładniej, między wierzchołkiem początkowym a dowolnym z wierzchołków docelowych). wykorzystując specjalnie skonstruowaną funkcję oceny f, która reprezentuje szacowany koszt rozwiązania zawierającego węzeł w. Funkcja ta obliczana jest jako f(w) = g(w) + h(w) (2.1) gdzie g(w) jest rzeczywistym kosztem ścieżki od węzła początkowego do aktualnie rozwijanego węzła w, natomiast h(w) to szacowany koszt najtańszej ścieżki z w do w g. Jak w przypadku strategii zachłannej, h powinna być heurystyką dopuszczalną, tzn. nie może ona przeszacowywać rzeczywistego kosztu h (v) ścieżki łączącej węzły v i w g. Wymaga się również, żeby heurystyka h była funkcją monotoniczną w tym sensie, że jej wartości maleją (bądź rosną) monotonicznie wzdłuż każdej ścieżki łączącej węzły w 0 i w g. W takim przypadku koszt f nie maleje (bądź nie rośnie) wzdłuż każdej ścieżki. Jeżeli f nie spełnia tego warunku, można tę funkcję umonotonicznić przyjmując f(v) = max[f(w), g(v) + h(v)] (2.2) dla każdego potomka v węzła w. Algorytm A jest nie tylko zupełny (nawet jeżeli nie korzysta się z listy W ), ale również i optymalny. Aby pokazać optymalność, rozważmy rozwijany węzeł w leżący na ścieżce wiodącej do w g. Niech w g będzie optymalnym węzłem docelowym, któremu odpowiada koszt f, a w n będzie suboptymalnym węzłem celowym, tzn. takim, że g(w n ) > f. Skoro h jest heurystyką dopuszczalną, to f h(w). Ponadto, skoro w nie został wybrany do rozwinięcia w kierunku w n, to musi być spełniony warunek f(w) f(w n ), skąd wynika,

20 28 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW że f f(w n ). Ponieważ jednak w n jest węzłem docelowym, musi być h(w n ) = 0, czyli f(w n ) = g(w n ), czyli f g(w n ), a to przeczy założeniu, że w n jest węzłem suboptymalnym. Tym samym pokazaliśmy, że A nigdy nie wybiera suboptymalnego celu do rozwijania. Można też pokazać, że A jest strategią zupełną w przestrzeniach, reprezentowanych przez lokalnie skończone grafy, tzn. grafy, w których każdy węzeł ma skończoną liczbę sąsiadów. Działanie algorytmu A przedstawia pseudokod 2.4. Jeżeli przyjmiemy, że dla każdego w V koszt g(w) = 0, otrzymamy algorytm zachłanny, a jeżeli założymy, że h(w) = 0 algorytm równomiernego kosztu. Algorytm 2.4 Algorytm A WE: R lista węzłów do rozwinięcia W lista zbadanych węzłów N operator zwracający listę sąsiadów danego węzła w 0 węzeł początkowy w g węzeł końcowy g : V R koszt ścieżki od w 0 do aktualnego węzła h: V R oszacowanie kosztu ścieżki od węzła w do w g f : V R funkcja kosztu, f(v) = g(v) + h(v) κ: V V R funkcja przejścia ze stanu w V do sąsiedniego stanu v N(w) WY: p ścieżka łącząca węzeł początkowy z węzłem końcowym begin w 0.g = 0, w 0.f = w 0.h; W := {w 0 }; oceń węzły z R, tzn. przypisz każdemu węzłowi w R wartości funkcji g, h oraz f; dopóki nie osiągnięto węzła końcowego { jeżeli R = nil to wypisz komunikat Porażka i zakończ przeszukiwanie; z listy R wybierz węzeł w o najniższym koszcie f(w); jeżeli w = w g to wypisz komunikat Sukces, zwróć ścieżkę p łącząca węzeł początkowy z celowym i zakończ przeszukiwanie; dodaj węzeł w do listy odwiedzonych węzłów, W := W {w}; oceń sąsiadów węzła w, tzn. dla każdego v N(w) wyznacz g(v) = g(w) + κ(w, v), oblicz h(v) oraz f(v) = g(v) + h(v); dodaj do listy R wszystkich nieodwiedzonych sąsiadów węzła w, którzy albo nie występują w R, albo są już w R, ale przypisany im koszt jest większy od kosztu aktualnie wyznaczonego; } end Algorytm IDA Iteracyjne pogłębianie jest użyteczną techniką redukujacą złożoność pamięciową algorytmu przeszukiwania. Pomysł ów można także zastosować do algorytmu A przyjmując, że węzły będą rozwijane zgodnie ze strategią w głąb, przy czym ograniczeniem nie jest głębokość,

21 2.6. PRZESZUKIWANIE HEURYSTYCZNE 29 lecz wartość funkcji kosztu f. Otrzymuje się w ten sposób pogłębiany algorytm A, czyli IDA. Sformułował go Korf [4]. Istotą algorytmu jest rozwijanie w każdej iteracji tylko tych węzłów, których koszt nie przekracza zadanej wartości progowej K. Węzły, którym przypisano większy koszt f umieszczane są na specjalnej liście D zawierającej kandydatów do przeglądania w dalszej kolejności. Początkowo przyjmuje się, że K = h(w 0 ), a w kolejnych iteracjach K jest równe najniższemu kosztowi przypisanemu węzłom z listy D. Istotę algorytmu przedstawia pseudokod 2.5. IDA jest, podobnie jak A, algorytmem kompletnym i optymalnym. Dobrym oszacowaniem jego złożoności pamięciowej jest O(bd) co świadczy o jego przewadze nad algorytmem A. Natomiast złożoność czasowa jest uzależniona od liczby wartości, które przyjmuje funkcja heurystyczna Algorytm SM A Simplified Memory-Bounded A, czyli SM A to kolejny wariant algorytmu A usprawniający jego wymogi pamięciowe. Jest to algorytm kompletny, o ile tylko pozwala zapamiętać ścieżkę prowadząca do najpłytszego rozwiązania. W przypadku przeciwnym zwraca on najlepsze do uzyskania, w ramach posiadanej pamięci, rozwiązania. Ponadto jest to algorytm optymalny, jeśli tylko pozwala na to pamięć. Jego istotą jest przechowywanie węzłów na skończonej liście. Gdy należy rozwinąć kolejny węzeł, a lista jest pełna usuwa się z niej węzeł u o najwyższym koszcie jednocześnie zachowując w poprzedniku węzła u informację o koszcie ścieżki przechodzącej przez u. W takim przypadku powraca się do usuniętego węzła tylko wtedy, gdy wszystkie inne drogi okazały się gorsze Algorytmy iteracyjnego poprawiania W wielu sytuacjach opis stanu zawiera informację wystarczającą do znalezienia rozwiązania. ak jest np. w zadaniu ośmiu królowych. Jeżeli kompletną konfigurację (reprezentującą aktualny stan) można przeprowadzić do stanu docelowego drogą drobnych modyfikacji warto wówczas stosować algorytmy iteracyjnego poprawiania Algorytm wspinaczkowy Przypuśćmy, że w zadaniu 8-ka jako h(w) przyjmuje się poprzedzoną znakiem minus liczbę pól znajdujących się na niewłaściwej (w stosunku do węzła docelowego) pozycji. Jeżeli np. stan aktualny przedstawia lewa część rysunku 2.9, a stan docelowy jego prawa część, to h(w) = 2. Zauważmy, że stan ten jest lokalnym optimum dowolne przesunięcie pustego pola tylko pogarsza wartość funkcji h Symulowane wyżarzanie Algorytmy ewolucyjne

22 30 ROZDZIAŁ 2. ROZWIĄZYWANIE PROBLEMÓW Algorytm 2.5 Algorytm IDA WE: R lista węzłów do rozwinięcia W lista zbadanych węzłów D lista odrzuconych węzłów N operator zwracający listę sąsiadów danego węzła w 0 węzeł początkowy w g węzeł końcowy g : V R koszt ścieżki od w 0 do aktualnego węzła h: V R oszacowanie kosztu ścieżki od węzła w do w g f : V R funkcja kosztu, f(v) = g(v) + h(v) κ: V V R funkcja przejścia ze stanu w V do sąsiedniego stanu v N(w) WY: p ścieżka łącząca węzeł początkowy z węzłem końcowym begin w 0.g = 0, w 0.f = w 0.h; K = h(w 0 ); W := {w 0 }; R := N(w 0 ); dopóki nie znaleziono rozwiązania { dopóki R nil { wybierz pierwszy węzeł w z listy R i usuń go z tej listy; jeżeli w.f K to wstaw węzeł na listę D; w przeciwnym razie { dodaj w do listy W ; jeżeli w = w g to wypisz komunikat Sukces, zwróć ścieżkę p łącząca węzeł początkowy z celowym i zakończ przeszukiwanie; oceń sąsiadów węzła w, tzn. dla każdego v N(w) wyznacz g(v) = g(w) + κ(w, v), oblicz h(v) oraz f(v) = g(v) + h(v); dodaj do listy R wszystkich nieodwiedzonych sąsiadów węzła w, którzy albo nie występują w R, albo są już w R, ale przypisany im koszt jest większy od kosztu aktualnie wyznaczonego; } } jeżeli D = nil to wypisz komunikat Porażka i zakończ przeszukiwanie; wybierz z D węzeł u o najniższym koszcie; podstaw k = u.f; } end Rysunek 2.9: Stan aktualny i stan docelowy w zadaniu 8-ka.

23 2.6. PRZESZUKIWANIE HEURYSTYCZNE 31 Algorytm 2.6 Algorytm symulowanego wyżarzania WE: f optymalizowana funkcja, g(x, T ) reguła generowania sąsiadów rozwiązania x P A (x, y, T ) prawdopodobieństwo akceptacji rozwiązania y C(x, T, t) scenariusz schładzania WY: x end rozwiązanie, f end = f(x end ). begin 1. Inicjalizacja: wybrać losowo punkt x 0 A, ustalić temperaturę T 0, t 0. Podstawić f 0 f(x 0 ), x end x 0, f end f(x end ). 2. while (not done) 2(a). Wygenerować sąsiada y t+1 rozwiązania x t korzystając z reguły g(x t, T t ). 2(b). Zaakceptować sąsiada z prawdopodobieństwem P A (x t, y t+1, T t ), tzn. x t+1 = { y k+1 jeżeli r P A (x t, y t+1, T t ) x t wpp (2.3) gdzie r [0, 1] jest liczbą losową. 2(c). Jeżeli f(y t+1 ) < f end, to f end f(y t+1 ), x end y t+1. 2(d). Zmodyfikować temperaturę T t+1 = C(x t, T t, t). 2(e). Jeżeli nie jest spełnione kryterium zatrzymania, to t t end while 4. return x end, f end. end

24 Skorowidz średnica przestrzeni poszukiwań, 23 agent, 14 funkcja heurystyczna, 24 oceniająca, 24 heurystyka dopuszczalna, 24, 27 koszt ścieżki, 18 problem, 13 problem uproszczony, 24 przestrzeń stanów, 18 przeszukiwanie, 13 ruchy, 17 strategia pierwszy najlepszy, 24 system produkcji, 13 32

Heurystyczne metody przeszukiwania

Heurystyczne metody przeszukiwania Heurystyczne metody przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Pojęcie heurystyki Metody heurystyczne są jednym z ważniejszych narzędzi sztucznej inteligencji.

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

Metody przeszukiwania

Metody przeszukiwania Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania

Bardziej szczegółowo

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

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, w głąb. Spis treści: 1. Wprowadzenie 3. str. 1.1 Krótki Wstęp

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów algorytmy ślepe Przeszukiwanie przestrzeni stanów algorytmy ślepe 1 Strategie slepe Strategie ślepe korzystają z informacji dostępnej

Bardziej szczegółowo

Znajdowanie wyjścia z labiryntu

Znajdowanie wyjścia z labiryntu Znajdowanie wyjścia z labiryntu Zadanie to wraz z problemem pakowania najcenniejszego plecaka należy do problemów optymalizacji, które dotyczą znajdowania najlepszego rozwiązania wśród wielu możliwych

Bardziej szczegółowo

Rozwiązywanie problemów metodą przeszukiwania

Rozwiązywanie problemów metodą przeszukiwania 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

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA 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

Bardziej szczegółowo

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

Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Zadanie do wykonania 1) Utwórz na pulpicie katalog w formacie Imię nazwisko, w którym umieść wszystkie pliki związane z

Bardziej szczegółowo

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

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. 1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie

Bardziej szczegółowo

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

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ). Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze

Bardziej szczegółowo

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

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze ztuczna Inteligencja i ystemy Doradcze Przeszukiwanie przestrzeni stanów Przeszukiwanie przestrzeni stanów 1 Postawienie problemu eprezentacja problemu: stany: reprezentują opisy różnych stanów świata

Bardziej szczegółowo

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

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe opracował:

Bardziej szczegółowo

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

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

Bardziej szczegółowo

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład 2 Strategie przeszukiwania - ślepe i heurystyczne 27 październik 2011 Plan wykładu 1 Strategie czyli jak znaleźć rozwiązanie problemu Jak wykonać przeszukiwanie Przeszukiwanie przestrzeni stanów

Bardziej szczegółowo

Elementy kognitywistyki II:

Elementy kognitywistyki II: 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

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

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

Wykład2,24II2010,str.1 Przeszukiwanie przestrzeni stanów powtórka Wykład2,24II2010,str.1 Przeszukiwanie przestrzeni stanów powtórka DEFINICJA: System produkcji M zbiórst.zw.stanów wyróżnionys 0 St.zw.stanpoczątkowy podzbiórg St.zw.stanówdocelowych zbiórot.zw.operacji:

Bardziej szczegółowo

Wstęp do Sztucznej Inteligencji

Wstęp do Sztucznej Inteligencji Wstęp do Sztucznej Inteligencji Rozwiązywanie problemów-i Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki Rozwiązywanie problemów Podstawowe fazy: Sformułowanie celu -

Bardziej szczegółowo

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

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI POLITECHNIKA WARSZAWSKA WYDZIAŁ MECHANICZNY ENERGETYKI I LOTNICTWA MEL WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI NS 586 Dr inż. Franciszek Dul Poziomy sztucznej inteligencji Sztuczna świadomość? Uczenie się

Bardziej szczegółowo

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy Sztucznej Inteligencji (PSZT) Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Przeszukiwanie Przeszukiwanie przestrzeni stanów Motywacja Rozwiązywanie problemów: poszukiwanie sekwencji operacji prowadzącej do celu poszukiwanie

Bardziej szczegółowo

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

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

Złożoność obliczeniowa zadania, zestaw 2 Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

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

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

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

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

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

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania: ANALIZA ALGORYTMÓW Analiza algorytmów polega między innymi na odpowiedzi na pytania: 1) Czy problem może być rozwiązany na komputerze w dostępnym czasie i pamięci? 2) Który ze znanych algorytmów należy

Bardziej szczegółowo

Planowanie drogi robota, algorytm A*

Planowanie drogi robota, algorytm A* Planowanie drogi robota, algorytm A* Karol Sydor 13 maja 2008 Założenia Uproszczenie przestrzeni Założenia Problem planowania trasy jest bardzo złożony i trudny. W celu uproszczenia problemu przyjmujemy

Bardziej szczegółowo

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Używane struktury danych: V - zbiór wierzchołków grafu, V = {1,2,3...,n} E - zbiór krawędzi grafu, E = {(i,j),...}, gdzie i, j Î V i istnieje

Bardziej szczegółowo

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

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo) Elementy kognitywistyki II: Sztuczna inteligencja WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo) Poprzednio: węzeł reprezentowany jest jako piątka: stan odpowiadający węzłowi rodzic węzła

Bardziej szczegółowo

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.

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. Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na

Bardziej szczegółowo

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE studia niestacjonarne ĆWICZENIE 1: Przeszukiwanie grafów strategie

Bardziej szczegółowo

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

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

Instrukcje dla zawodników

Instrukcje dla zawodników Instrukcje dla zawodników Nie otwieraj arkusza z zadaniami dopóki nie zostaniesz o to poproszony. Instrukcje poniżej zostaną ci odczytane i wyjaśnione. 1. Arkusz składa się z 3 zadań. 2. Każde zadanie

Bardziej szczegółowo

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

Metoda tabel semantycznych. Dedukcja drogi Watsonie, dedukcja... Definicja logicznej konsekwencji. Logika obliczeniowa. Plan Procedura decyzyjna Reguły α i β - algorytm Plan Procedura decyzyjna Reguły α i β - algorytm Logika obliczeniowa Instytut Informatyki 1 Procedura decyzyjna Logiczna konsekwencja Teoria aksjomatyzowalna

Bardziej szczegółowo

9.9 Algorytmy przeglądu

9.9 Algorytmy przeglądu 14 9. PODSTAWOWE PROBLEMY JEDNOMASZYNOWE 9.9 Algorytmy przeglądu Metody przeglądu dla problemu 1 r j,q j C max były analizowane między innymi w pracach 25, 51, 129, 238. Jak dotychczas najbardziej elegancka

Bardziej szczegółowo

Zadanie 1: Piętnastka

Zadanie 1: Piętnastka Informatyka, studia dzienne, inż. I st. semestr VI Sztuczna Inteligencja i Systemy Ekspertowe 2010/2011 Prowadzący: mgr Michał Pryczek piątek, 12:00 Data oddania: Ocena: Grzegorz Graczyk 150875 Marek Rogalski

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

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

3. MINIMAX. Rysunek 1: Drzewo obrazujące przebieg gry. 3. MINIMAX. Bardzo wygodną strukturą danych pozwalającą reprezentować stan i przebieg gry (szczególnie gier dwuosobowych) jest drzewo. Węzły drzewa reprezentują stan gry po wykonaniu ruchu przez jednego

Bardziej szczegółowo

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

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

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Materiały dla finalistów

Materiały dla finalistów Materiały dla finalistów Malachoviacus Informaticus 2016 11 kwietnia 2016 Wprowadzenie Poniższy dokument zawiera opisy zagadnień, które będą niezbędne do rozwiązania zadań w drugim etapie konkursu. Polecamy

Bardziej szczegółowo

Wykład 10 Grafy, algorytmy grafowe

Wykład 10 Grafy, algorytmy grafowe . Typy złożoności obliczeniowej Wykład Grafy, algorytmy grafowe Typ złożoności oznaczenie n Jedna operacja trwa µs 5 logarytmiczna lgn. s. s.7 s liniowa n. s.5 s. s Logarytmicznoliniowa nlgn. s.8 s.4 s

Bardziej szczegółowo

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

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

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

3. Macierze i Układy Równań Liniowych

3. Macierze i Układy Równań Liniowych 3. Macierze i Układy Równań Liniowych Rozważamy równanie macierzowe z końcówki ostatniego wykładu ( ) 3 1 X = 4 1 ( ) 2 5 Podstawiając X = ( ) x y i wymnażając, otrzymujemy układ 2 równań liniowych 3x

Bardziej szczegółowo

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

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Algorytmy decyzyjne będące alternatywą dla sieci neuronowych Piotr Dalka Przykładowe algorytmy decyzyjne Sztuczne sieci neuronowe Algorytm k najbliższych sąsiadów Kaskada klasyfikatorów AdaBoost Naiwny

Bardziej szczegółowo

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody Optymalizacji: Przeszukiwanie z listą tabu Metody Optymalizacji: Przeszukiwanie z listą tabu Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: wtorek

Bardziej szczegółowo

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

Bardziej szczegółowo

Metody numeryczne w przykładach

Metody numeryczne w przykładach Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

1 Automaty niedeterministyczne

1 Automaty niedeterministyczne Szymon Toruńczyk 1 Automaty niedeterministyczne Automat niedeterministyczny A jest wyznaczony przez następujące składniki: Alfabet skończony A Zbiór stanów Q Zbiór stanów początkowych Q I Zbiór stanów

Bardziej szczegółowo

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

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD III: Problemy agenta Elementy kognitywistyki II: Sztuczna inteligencja WYKŁAD III: Problemy agenta To już było: AI to dziedzina zajmująca się projektowaniem agentów Określenie agenta i agenta racjonalnego Charakterystyka PAGE

Bardziej szczegółowo

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym

Bardziej szczegółowo

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów: Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów: Listy rozkładane są do różnych przegródek. O tym, do której z nich trafi koperta, decydują różne fragmenty

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Jest to technika probabilistyczna rozwiązywania problemów obliczeniowych, które mogą zostać sprowadzone do problemu znalezienie

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Wyznaczanie strategii w grach

Wyznaczanie strategii w grach Wyznaczanie strategii w grach Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Definicja gry Teoria gier i konstruowane na jej podstawie programy stanowią jeden z głównych

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

Bardziej szczegółowo

Sortowanie Shella Shell Sort

Sortowanie Shella Shell Sort Sortowanie Shella Shell Sort W latach 50-tych ubiegłego wieku informatyk Donald Shell zauważył, iż algorytm sortowania przez wstawianie pracuje bardzo efektywnie w przypadku gdy zbiór jest w dużym stopniu

Bardziej szczegółowo

Metoda Tablic Semantycznych

Metoda Tablic Semantycznych Procedura Plan Reguły Algorytm Logika obliczeniowa Instytut Informatyki Plan Procedura Reguły 1 Procedura decyzyjna Logiczna równoważność formuł Logiczna konsekwencja Procedura decyzyjna 2 Reguły α, β,

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Zagadnienie najkrótszej drogi w sieci

Zagadnienie najkrótszej drogi w sieci L L Zagadnienie najkrótszej drogi w sieci 1 Rozważmy sieć, gdzie graf jest grafem skierowanym (digrafem) a jest funkcją określoną na zbiorze łuków. Wartość tej funkcji na łuku!"$#%'&, którą oznaczać będziemy

Bardziej szczegółowo

SID Wykład 2 Przeszukiwanie

SID Wykład 2 Przeszukiwanie SID Wykład 2 Przeszukiwanie Wydział Matematyki, Informatyki i Mechaniki UW slezak@mimuw.edu.pl Strategie heurystyczne Strategie heurystyczne korzystaja z dodatkowej, heurystycznej funkcji oceny stanu (np.

Bardziej szczegółowo

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

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zad. 1 (12p.)Niech n 3k > 0. Zbadać jaka jest najmniejsza możliwa liczba krawędzi w grafie, który ma dokładnie n wierzchołków oraz dokładnie k składowych, z których

Bardziej szczegółowo

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie:

Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: Ciągi rekurencyjne Zadanie 1 Znaleźć wzór ogólny i zbadać istnienie granicy ciągu określonego rekurencyjnie: w dwóch przypadkach: dla i, oraz dla i. Wskazówka Należy poszukiwać rozwiązania w postaci, gdzie

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

METODY HEURYSTYCZNE wykład 1

METODY HEURYSTYCZNE wykład 1 METODY HEURYSTYCZNE wykład 1 1 prowadzący: dr hab. inż. Witold Beluch (p. 149) Instytut Mechaniki i Inżynierii Obliczeniowej konsultacje: https://plan.polsl.pl/ wykład: 15h ćwiczenia: 15h ZAJĘCIA KOŃCZĄ

Bardziej szczegółowo

7. Pętle for. Przykłady

7. Pętle for. Przykłady . Pętle for Przykłady.1. Bez użycia pętli while ani rekurencji, napisz program, który wypisze na ekran kolejne liczby naturalne od 0 do pewnego danego n. 5 int n; 6 cin >> n; 8 for (int i = 0; i

Bardziej szczegółowo

5c. Sieci i przepływy

5c. Sieci i przepływy 5c. Sieci i przepływy Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 5c. Sieci i przepływy zima 2016/2017 1 / 40 1 Definicje

Bardziej szczegółowo

WYRAŻENIA ALGEBRAICZNE

WYRAŻENIA ALGEBRAICZNE WYRAŻENIA ALGEBRAICZNE Wyrażeniem algebraicznym nazywamy wyrażenie zbudowane z liczb, liter, nawiasów oraz znaków działań, na przykład: Symbole literowe występujące w wyrażeniu algebraicznym nazywamy zmiennymi.

Bardziej szczegółowo

Podstawowe struktury danych

Podstawowe struktury danych Podstawowe struktury danych 1) Listy Lista to skończony ciąg elementów: q=[x 1, x 2,..., x n ]. Skrajne elementy x 1 i x n nazywamy końcami listy, a wielkość q = n długością (rozmiarem) listy. Szczególnym

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

Wybrane podstawowe rodzaje algorytmów

Wybrane podstawowe rodzaje algorytmów Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 1 Podstawowe struktury danych Tablica Najprostsza metoda przechowywania serii danych, zalety: prostota, wady: musimy wiedzieć, ile elementów chcemy przechowywać

Bardziej szczegółowo

Przykładowe rozwiązania

Przykładowe rozwiązania Przykładowe rozwiązania Poniższy dokument zawiera przykładowe rozwiązania zadań z I etapu I edycji konkursu (2014 r.). Rozwiązania w formie takiej jak przedstawiona niżej uzyskałyby pełną liczbę punktów

Bardziej szczegółowo

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

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego

Bardziej szczegółowo

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

Złożoność obliczeniowa klasycznych problemów grafowych Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.

Bardziej szczegółowo

Optymalizacja. Wybrane algorytmy

Optymalizacja. Wybrane algorytmy dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu

Bardziej szczegółowo

Przekształcanie wykresów.

Przekształcanie wykresów. Sławomir Jemielity Przekształcanie wykresów. Pokażemy tu, jak zmiana we wzorze funkcji wpływa na wygląd jej wykresu. A. Mamy wykres funkcji f(). Jak będzie wyglądał wykres f ( ) + a, a stała? ( ) f ( )

Bardziej szczegółowo

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Ćwiczenie 3 stos Laboratorium Metod i Języków Programowania Celem ćwiczenia jest zapoznanie studentów z najprostszą dynamiczną strukturą

Bardziej szczegółowo

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

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

znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany. Przedstawiamy algorytmy porządkowania dowolnej liczby elementów, którymi mogą być liczby, jak również elementy o bardziej złożonej postaci (takie jak słowa i daty). Porządkowanie, nazywane również często

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Dokładne algorytmy optymalizacji Maciej Hapke maciej.hapke at put.poznan.pl Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem minimalizacji

Bardziej szczegółowo

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Politechnika Poznańska Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Joanna Józefowska POZNAŃ 2010/11 Spis treści Rozdział 1. Metoda programowania dynamicznego........... 5

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Imię, nazwisko, nr indeksu

Imię, nazwisko, nr indeksu Imię, nazwisko, nr indeksu (kod) (9 punktów) Wybierz 9 z poniższych pytań i wybierz odpowiedź tak/nie (bez uzasadnienia). Za prawidłowe odpowiedzi dajemy +1 punkt, za złe -1 punkt. Punkty policzymy za

Bardziej szczegółowo