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

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

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

Transkrypt

1 Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek Przemysław Klęsk pklesk@wi.zut.edu.pl Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej

2 Zagadnienia i algorytmy 1 Algorytm Breadth-First-Search 2 Algorytm Best-First-Search 3 Algorytm A 4 Algorytm MIN-MAX 5 Algorytm przycinanieα-β Przemysław Klęsk (KMSIiMS, ZUT) 2/48

3 Algorytm Breadth-First-Search Czy istnieje ścieżka do celu? v 1 v 6 v 7 v 2 v 4 v5 v 8 v 3 Przemysław Klęsk (KMSIiMS, ZUT) 3/48

4 Algorytm Breadth-First-Search Własności algorytmu Breadth First Search Wykonuje zachłanne (w skrajnym przypadku wyczerpujące) przeszukiwanie całego grafu wszerz, aż do natrafienia na węzeł docelowy. Algorytm ten można traktować, jako ogólny schemat, którego szczególne (usprawnione) przypadki to algorytmy: Best First Search, A, algorytm Dijkstry, i inne. Breadth First Search operuje na dwóch zbiorach: Open (zawiera węzły, które mają być jeszcze rozpatrzone) i Closed (zawiera węzły, które już rozpatrzono). Każdy z węzłów ma możliwość zapamiętania jednego swojego poprzednika, tak aby po znalezieniu rozwiązania można było prześledzić ścieżkę. Przemysław Klęsk (KMSIiMS, ZUT) 4/48

5 Algorytm Breadth-First-Search Breadth First Search Algorytm 1 Ustaw w węźle początkowym pustego poprzednika i dodaj ten węzeł do zbioru Open. 2 Dopóki zbiór Open pozostaje niepusty powtarzaj: 1 Pobierz (i usuń) jeden węzeł ze zbioru Open. Nazwijmy ten węzeł v. 2 Jeżeli v jest węzłem docelowym (spełnia warunek stopu), to przerwij cały algorytm i zwróć v jako wynik. 3 Włóż do zbioru Open tych wszystkich potomków węzła v, którzy nie występują w zbiorze Closed. Zapamiętaj w nich v jako ich poprzednika. 4 Włóż v do zbioru Closed. Przemysław Klęsk (KMSIiMS, ZUT) 5/48

6 Algorytm Breadth-First-Search Breadth First Search Śledzenie ścieżki 1 Przypisz do roboczego węzła o nazwie v, węzeł będący rozwiązaniem. 2 Zainicjalizuj ciąg reprezentujący ścieżkę zawartością v: Path=(v). 3 Dopóki v ma niepustego poprzednika, powtarzaj: 1 Przypisz w miejsce v jego poprzednika (v v.parent). 2 Dopisz z przodu ścieżki Path zawartość v. Przemysław Klęsk (KMSIiMS, ZUT) 6/48

7 Algorytm Breadth-First-Search Przykładowe działanie (dla grafu ze str. 3) 1 Open={v 1 }, Closed={}. 2 Open={v 1 } więc wykonujemy ciało pętli: 2.1 v=v 1, Open={}. 2.2 v=v 1 v 8 (warunek stopu niespełniony). 2.3 Open={v 2, v 3, v 6 }. 2.4 Closed={v 1 }. 2 Open={v 2, v 3, v 6 } więc wykonujemy ciało pętli: 2.1 v=v 2, Open={v 3, v 6 }. 2.2 v=v 2 v 8 (warunek stopu niespełniony). 2.3 Open={v 3, v 6 } (uwaga: v 3 jako potomek v 2 nie jest po raz drugi dodawany do Open). 2.4 Closed={v 1, v 2 }. 2 Open={v 3, v 6 } więc wykonujemy ciało pętli: 2.1 v=v 3, Open={v 6 }. 2.2 v=v 3 v 8 (warunek stopu niespełniony). 2.3 Open={v 6, v 4 } (uwaga: v 1 jako potomek v 3 nie jest dodawany do Open, bo jest już w Closed.) Closed={v 1, v 2, v 3 }. Przemysław Klęsk (KMSIiMS, ZUT) 7/48

8 Algorytm Breadth-First-Search Uwagi o Breadth First Search Zbiory Open i Closed w przypadku Breadth First Search zazwyczaj implementuje się jako zwykłe kolejki FIFO. Dopiero w specjalizowanych wersjach algorytmu tj. w algorytmach BestFirstSearch i A, zbiory te implementuje się odpowiednio jako: kolejkę priorytetową i hashmapę. Jeżeli przeszukiwanie dotyczy drzewa (grafu bez cykli), to zbiór Closed można pominąć. Breadth First Search nie jest w żaden sposób ukierunkowany na szybsze dotarcie do rozwiązania (przeszukuje wszerz): nie minimalizuje długości ścieżki, nie wykorzystuje żadnej heurystyki. Przemysław Klęsk (KMSIiMS, ZUT) 8/48

9 Algorytm Best-First-Search Własności algorytmu Best First Search (Judea Pearl) Każdemu przeszukiwanemu stanowi (węzłowi) v nadawana jest heurystyczna ocena liczbowa f (v), szacująca, na ile daleko dany stan jest od docelowego. Algorytm przeszukuje w pierwszej kolejności stany o najniższej wartości funkcji heurystycznej. Zbiór Open implementowany jest przez kolejkę priorytetową (ang. PriorityQueue) porządkującą stany wg heurystyki. Wstawienie nowego elementu do kolejki z zachowaniem porządku ma złożoność O(log n). Wyciągnięcie elementu z kolejki ma złożoność O(1). Zbiór Closed implementowany jest przez hashmapę. Sprawdzenie, czy pewien stan już był rozpatrzony i jest w zbiorze Closed, ma złożoność O(1). Każdy stan przechowuje dotychczas najkorzystniejszego dla niego poprzednika. Przemysław Klęsk (KMSIiMS, ZUT) 9/48

10 Sudoku Algorytm Best-First-Search Mając dany pewien stan początkowy planszy 9 9, podzielonej dodatkowo na 9 podkwadratów o wymiarach 3 3 każdy, należy napełnić planszę tak, aby w każdym wierszu, w każdej kolumnie i w każdym podkwadracie były wykorzystane wszystkie liczby ze zbioru {1, 2,...,9}. 1*5 *37 **8 *7* *** *** **8 1** *** **3 *7* **1 74* *1* *63 2** *4* 9** *** **5 1** *** *** *8* 4** 62* 5* (Best First Search w Javie: czas=1607 ms (procesor 2 GHz), odwiedzonych stanów=3168.) Przemysław Klęsk (KMSIiMS, ZUT) 10/48

11 Sudoku Algorytm Best-First-Search Ogólne sudoku n 2 Mając dany pewien stan początkowy planszy n 2 n 2, podzielonej dodatkowo na n 2 podkwadratów o wymiarach n n każdy, należy napełnić planszę tak, aby w każdym wierszu, w każdej kolumnie i w każdym podkwadracie były wykorzystane wszystkie liczby ze zbioru {1, 2,...,n 2 }. Przemysław Klęsk (KMSIiMS, ZUT) 11/48

12 Algorytm Best-First-Search Problem n-hetmanów Na szachownicy n n należy ustawić n hetmanów, w taki sposób, aby żaden przez żadnego nie był szachowany. Dla n=2, 3 rozwiązanie nie istnieje. Przykład rozwiązania dla n=4: Q Q Q Q Przemysław Klęsk (KMSIiMS, ZUT) 12/48

13 Best First Search Algorytm Best-First-Search Algorytm 1 Ustaw w stanie początkowym pustego poprzednika i dodaj ten stan do zbioru Open. 2 Dopóki zbiór Open pozostaje niepusty powtarzaj: 1 Pobierz (i usuń) jeden stan v ze zbioru Open (jest to stan najlepszy w sensie zadanej heurystyki). 2 Jeżeli v jest stanem docelowym (spełnia warunek stopu), to przerwij cały algorytm i zwróć v jako wynik. 3 Wygeneruj wszystkie stany potomne dla v i dla każdego z nich wykonaj: 1 Jeżeli stan występuje w Closed, to nie badaj go dalej. 2 Policz wartość heurystyki dla tego stanu. 3 Jeżeli stan nie występuje w Open, to dodaj go ustawiając v jako jego poprzednik. 4 Jeżeli stan występuje w Open, to podmień w nim wartość heurystyki i poprzednika, o ile nowo obliczona wartość jest korzystniejsza, i uaktualnij jego pozycję w Open. 4 Włóż v do zbioru Closed. Przemysław Klęsk (KMSIiMS, ZUT) 13/48

14 Algorytm Best-First-Search Przykładowe heurystyki Sudoku (heurystyka naiwna) Rozpoczynamy od zadanej planszy (stan początkowy) i dostawiamy w puste pola (dowolne) dopuszczalne liczby (maks. 9 potomków na każdym poziomie drzewa). Mówimy, że stan jest tym bliższy rozwiązaniu, im mniej ma pustych pól. f (v)= liczba pustych pól w v., jeżeli stan jest niepoprawny; Przemysław Klęsk (KMSIiMS, ZUT) 14/48

15 Algorytm Best-First-Search Przykładowe proste heurystyki Sudoku (heurystyka wg minimum pozostałych możliwości) Utożsamijmy v z tablicą sudoku. Niech R v (i, j) oznacza pozostałe możliwości dla komórki (i, j) tablicy v pozostałe poprzez wyeliminowanie liczb obecnych w wierszu i, kolumnie j i podkwadracie, do którego należy (i, j). Mówimy, że stan jest tym bliższy rozwiązaniu, im ma mniej pozostałych możliwości dla pewnej komórki. Dzieci podpinamy w tej właśnie komórce. f (v)=min #R v (i, j). i,j Przemysław Klęsk (KMSIiMS, ZUT) 15/48

16 Algorytm Best-First-Search Przykładowe proste heurystyki Sudoku (heurystyka wg sumy pozostałych możliwości) Mówimy, że stan jest tym bliższy rozwiązaniu, im ma mniejszą sumę pozostałych możliwości wziętą po wszystkich komórkach. Dzieci podpinamy w komórce: arg min i,j #R v (i, j). f (v)= #R v (i, j). i,j Przemysław Klęsk (KMSIiMS, ZUT) 16/48

17 Algorytm Best-First-Search Przykładowe proste heurystyki n-hetmanów (heurystyka naiwna) Rozpoczynamy od pustej szachownicy i dostawiamy w kolejnych wierszach hetmany. Mówimy, że stan jest bliższy rozwiązaniu im ma mniej pustych wierszy., jeżeli hetmany szachują się; f (v)= liczba pustych wierszy w v. Przemysław Klęsk (KMSIiMS, ZUT) 17/48

18 Algorytm Best-First-Search Przykładowe proste heurystyki n-hetmanów (heurystyka wg minimum pozostałych możliwości) Niech R v oznacza liczbę pozostałych nieszachowanych pól w v. Mówimy, że stan jest bliższy rozwiązaniu im ma mniej nieszachowanych pól. f (v)= R v., jeżeli hetmany szachują się; Przemysław Klęsk (KMSIiMS, ZUT) 18/48

19 Algorytm Best-First-Search Minimalne sudoku Problem (w ogólności dla sudoku n 2 ) Znaleźć wszystkie początkowe układy sudoku, dla których istnieje dokładnie jedno rozwiązanie i które mają minimalną liczbę ustalonych pól w stanie początkowym. Dowód, że takie stany istnieją Poczynając od dowolnej rozwiązanej planszy (całkowicie wypełnionej) odbieramy kolejno po jednej liczbie i sprawdzamy, czy nadal można będzie rozwiązać sudoku jednoznacznie. Przerywamy, gdy będzie istniało więcej niż jedno rozwiązanie. Zważywszy na fakt, że całkowicie pusta plansza nie jest jednoznacznie rozwiązywalna, widać że takie postępowanie będzie miało punkt stopu przy pewnym częściowym zapełnieniu planszy. Przemysław Klęsk (KMSIiMS, ZUT) 19/48

20 Algorytm Best-First-Search Poszukiwanie minimalnych sudoku Zarys algorytmu zachłannego Rozpoczynamy od pełnej (rozwiązanej) planszy. Potomkami danego stanu są stany powstałe przez odebranie jednej liczby z rodzica. Zatem możemy utworzyć n 2 potomków tyle, ile jest pól. Dla każdego potomka sprawdzamy, wykonując algorytm Best First Search dla zwykłego problemu sudoku, czy istnieją co najmniej 2 rozwiązania. Jeżeli pewien stan ma jedno rozwiązanie, a wszystkie jego potomki mają więcej niż jedno, to należy go zapamiętać jako kandydata na minimalne sudoku. Algorytm musimy jednak wykonać, aż do przejrzenia pełnego grafu. Nie można zatrzymać się na pierwszym rozwiązaniu, jako że w innych rejonach grafu, mogą istnieć rozwiązania o mniejszej liczbie elementów na planszy początkowej. Przemysław Klęsk (KMSIiMS, ZUT) 20/48

21 Algorytm Best-First-Search Poszukiwanie minimalnych sudoku Dla n=2rozpoczynając od poniższej planszy znaleziono 128 minimalnych sudoku (mających 4 pozycje ustalone) , 12 41, ,... Oczywiście, aby poznać prawdziwą liczbę wszystkich rozwiązań bazowych należałoby: (1) utożsamić wszystkie układy równoważne sobie ze względu na jedną z osi symetrii planszy, (2) utożsamić wszystkie stany równoważne sobie ze względu na permutację symboli, (3) uruchomić przeszukiwanie dla wszystkich nietożsamych układów początkowych. Przemysław Klęsk (KMSIiMS, ZUT) 21/48

22 Algorytm Best-First-Search Poszukiwanie minimalnych sudoku Dla n=3 Nie udało się wykonać programu do końca przy 2GB pamięci RAM, a swap owanie bardzo istotnie spowalnia pracę programu. Sugestia: można próbować zadanie obliczyć w sposób rozproszony (na wielu maszynach). Udało się na pewno wykryć, że minimalne sudoku 3 2 są o liczności początkowej 18. Przemysław Klęsk (KMSIiMS, ZUT) 22/48

23 Algorytm Best-First-Search Uwagi o Best First Search Best First Search przeszukuje w głąb (a nie wszerz) coraz bardziej oddalając się od stanu początkowego. Przy natknięciu się na stan niepoprawny (w szczególności, gdy wszyscy potomkowie są niepoprawni), algorytm wycofuje się do stanów o gorszej wartości heurystyki. Liczba takich wycofań zależy od: jakości podanej heurystyki i od sposobu budowania stanów potomnych (pewną wiedzę o problemie można zawrzeć już tu, aby nie dopuszczać do stanów bezpośrednio niepoprawnych). Przemysław Klęsk (KMSIiMS, ZUT) 23/48

24 Algorytm A Własności algorytmu A (Hart, Nilsson, Raphael, 1968) Funkcja decydująca o porządku wyciągania stanów ze zbioru Open jest sumą dwóch funkcji: f (v)=g(v)+h(v), gdzie g(v) wyraża faktyczny koszt (odległość) przebyty od stanu początkowego do v, natomiast h(v) jest heurystyką szacującą koszt (odległość) od stanu v do stanu docelowego. Funkcja h musi być tzw. dopuszczalną heurystyką, tzn. nie wolno jej przeszacowywać kosztu (odległości) do stanu docelowego (o tym dokładniej jeszcze później... ). W zastosowaniach path-finding czy routing (gdzie mamy fizyczny/geograficzny graf) częstym i poprawnym wyborem dla h, jest zwykła odległość w linii prostej od v do stanu docelowego (na pewno nie przeszacowujemy). Przemysław Klęsk (KMSIiMS, ZUT) 24/48

25 Algorytm A Własności algorytmu A (Hart, Nilsson, Raphael, 1968) W odróżnieniu od Best First Search, A bierze pod uwagę także g(v), a nie tylko heurystykę zorientowaną na cel. A zatem w budowanej ścieżce z jednej strony preferowane są stany bliskie początkowemu, a z drugiej jednocześnie bliskie końcowemu (w sensie minimalizacji tej sumy). W algorytmie, każdy stan v musi mieć możliwość zapamiętania swoich trzech wartości: g(v), h(v), f (v). Przechodząc od pewnego stanu v do pewnego stanu w, wartość funkcji g wyznaczamy jako: g(w) = g(v) + d(v, w), gdzie d(v, w) oznacza koszt przejścia z v do w. Przemysław Klęsk (KMSIiMS, ZUT) 25/48

26 Algorytm A A Algorytm 1 Dla stanu początkowego wyznacz wartość h, a następnie ustaw: g = 0, f = 0 + h. Ustaw także pustego poprzednika i wstaw stan początkowy do zbioru Open. 2 Dopóki zbiór Open pozostaje niepusty powtarzaj: 1 Pobierz (i usuń) jeden stan v ze zbioru Open (jest to stan najlepszy w sensie wartości f ). 2 Jeżeli v jest stanem docelowym (spełnia warunek stopu), to przerwij cały algorytm i zwróć v jako wynik. 3 Wygeneruj wszystkie stany w potomne dla v i dla każdego z nich wykonaj: 1 Jeżeli stan w występuje w Closed, to nie badaj go dalej. 2 Policz: g(w)=g(v)+d(v, w) i f (w)=g(w)+h(w). 3 Jeżeli stan nie występuje w Open, to dodaj go ustawiając v jako jego poprzednik. 4 Jeżeli stan występuje w Open, to podmień w nim wartości g i f (oraz poprzednika), o ile f korzystniejsze, i uaktualnij jego pozycję w Open. 4 Włóż v do zbioru Closed. Przemysław Klęsk (KMSIiMS, ZUT) 26/48

27 Zastosowania A Algorytm A Ogólnie: poszukiwanie najkrótszej ścieżki w grafie... poruszanie się postaci (boot ów) w grach komputerowych, przechodzenie labiryntów, routing problems, układanki, łamigłówki, gdzie należy dodatkowo zminimalizować liczbę ruchów (np. puzzle n 2 1),... Przemysław Klęsk (KMSIiMS, ZUT) 27/48

28 Algorytm A Labirynty wyniki A Rozmiary siatki: 30 30, odwiedzonych stanów do momentu rozwiązania: 258. Przemysław Klęsk (KMSIiMS, ZUT) 28/48

29 Algorytm A Labirynty wyniki A Rozmiary siatki: 30 30, odwiedzonych stanów do momentu rozwiązania: 331. Przemysław Klęsk (KMSIiMS, ZUT) 29/48

30 Algorytm A Labirynty wyniki A Rozmiary siatki: 50 50, odwiedzonych stanów do momentu rozwiązania: Przemysław Klęsk (KMSIiMS, ZUT) 30/48

31 Algorytm A Dobra i zła (przeszacowująca) heurystyka h(v)= (v x goal x ) 2 + (v y goal y ) 2 lub h(v)= v x goal x + (v y goal y ) h(v)=4 (v x goal x ) 2 + (v y goal y ) 2 Przemysław Klęsk (KMSIiMS, ZUT) 31/48

32 Puzzle n 2 1 Algorytm A Dla n=3 Wychodząc od stanu początkowego i przesuwając pola z liczbami w miejsce puste 9 (w ogólności niech pole puste równe jest n 2 ), należy w jak najmniejszej liczbie ruchów dojść do stanu docelowego: Przemysław Klęsk (KMSIiMS, ZUT) 32/48

33 Puzzle n 2 1 Algorytm A Przykładowa heurystyka Dla danego węzła v niech v ix oraz v iy oznaczają odpowiednio współrzędne x i y, na których położona jest liczba i w układance. Niech lewe górne pole ma współrzędne (0, 0) a prawe dolne (n 1, n 1). Przykładowa funkcja heurystyczna może mieć wówczas postać: h(v)= 1 ( vix ((i 1) mod n) + v iy (i 1)/n ). 2 i {1,2,...,n 2 } Przemysław Klęsk (KMSIiMS, ZUT) 33/48

34 Algorytm A Przykładowa ścieżka A dla puzzle Odwiedzonych stanów: 15. Przemysław Klęsk (KMSIiMS, ZUT) 34/48

35 Algorytm A Przykładowa ścieżka A dla puzzle Odwiedzonych stanów: 19. Przemysław Klęsk (KMSIiMS, ZUT) 35/48

36 Algorytm A Własności A i monotoniczność heurystyki Heurystyka jest na pewno dopuszczalna, jeżeli jest monotoniczna, tzn.: v, w h(v) d(v, w)+h(w). (1) Innymi słowy, dodanie do jakiejkolwiek ścieżki dodatkowego węzła powoduje, że nowa ścieżka jest niekrótsza od poprzedniej. A równość może mieć miejsce tylko, gdy dodamy węzeł poruszając się po prostej do celu. Jeżeli heurystyka h spełnia w/w warunek to algorytm A gwarantuje, że: (1) znalezione rozwiązanie jest optymalne (ścieżka najkrótsza), (2) sam algorytm jest optymalny w ramach h, tj. żaden inny algorytm używający h jako heurystyki nie odwiedzi mniejszej liczby stanów niż A. Niech h oznacza doskonałą heurystykę tj. taką, która ani nie przeszacowuje, ani nie niedoszacowuje. Algorytm pracujący na podstawie h jest także doskonały odwiedza możliwie najmniej węzłów. Stąd też oryginalnie rozróżniano dwie nazwy tego algorytmu A i A. Przemysław Klęsk (KMSIiMS, ZUT) 36/48

37 Algorytm A Jak A ma się do algorytmu Dijkstry i Best First Search? Przy ustawieniu v h(v)=0 algorytm A staje się klasycznym algorytmem Dijkstry do poszukiwania najkrótszej ścieżki w grafie z punktu do punktu. Przy ustawieniu v g(v)=0 algorytm A staje się algorytmem Best First Search. Nieistotna jest długość ścieżki, liczy się tylko osiągnięcie/odkrycie rozwiązania/rozwiązań (np. sudoku, problem n hetmanów). Przemysław Klęsk (KMSIiMS, ZUT) 37/48

38 Algorytm MIN-MAX Algorytm MIN-MAX (lub MINIMAX) Stosuje się do gier dwuosobowych jak np. szachy, warcaby, GO, itp.. Algorytm w wersji niezmodyfikowanej składa się z dwóch części: (1) budującej drzewo gry do zadanej głębokości (np. poprzez Breadth First Search), (2) przechodzącej drzewo od dołu w górę i nadającej oceny poszczególnym stanom gry, tak że w efekcie ocenione zostają możliwe ruchy pochodzące od stanu podstawowego. Przechodzenie drzewa w górę rozpoczyna się od wystawienia ocen stanom końcowym (liściom). Zwykle jest to heurystyka np. różnica pomiędzy liczbą bierek białych i czarnych. Następnie drzewo przechodzone jest poziomami w górę. Każdy poziom jest skojarzony z ruchami jednego z graczy. Jeden z graczy nazywany jest minimalizującym, drugi maksymalizującym. Przemysław Klęsk (KMSIiMS, ZUT) 38/48

39 Algorytm MIN-MAX Algorytm MIN-MAX (lub MINIMAX) Zwycięstwo gracza maksymalizującego reprezentowane jest przez (w szachach: białe matują czarne), a minimalizującego (czarne matują białe). Pozycje inne niż zwycięskie musimy oceniać heurystycznie. Np. jedna z najprostszych heurystyk dla szachów mierzy różnicę pomiędzy materiałem białych a czarnych, licząc piony za 1 pkt., skoczki za 3 pkt., gońce za 3.5 pkt, wieże za 5 pkt., hetmana za 9 pkt. Tylko poziom najniższy (stany liście) jest oceniany heurystycznie. Oceny dla wyższych poziomów wynikają z minimaksowej procedury przechodzenia drzewa w górę. Uwaga: w literaturze ruch jednego z graczy nazywany jest często półruchem (ang. ply), a przesuwanie się o jeden poziom w drzewie liczone jest jako± 1 2. Dopiero 2 ruchy obu graczy traktowane są jako całe posunięcie. Przemysław Klęsk (KMSIiMS, ZUT) 39/48

40 Algorytm MIN-MAX Ilustracja fragmentu drzewa gry dla szachów Przemysław Klęsk (KMSIiMS, ZUT) 40/48

41 Algorytm MIN-MAX Algorytm MIN-MAX (lub MINIMAX) Rysunek: Źródło: Przemysław Klęsk (KMSIiMS, ZUT) 41/48

42 Algorytm MIN-MAX Algorytm MIN-MAX rekurencyjnie Procedura mmevaluatemax(s, d, D) 1 Jeżeli s jest terminalem, to zwróć h(s). 2 Przypisz v=. 3 Dla wszystkich stanów t będących potomkami s wykonuj: 1 v := max{v, mmevaluatemin(t, d+ 2 1, D)}. 4 Zwróć v. Procedura mmevaluatemin(s, d, D) 1 Jeżeli s jest terminalem, to zwróć h(s). 2 Przypisz v=. 3 Dla wszystkich stanów t będących potomkami s wykonuj: 1 v := min{v, mmevaluatemax(t, d+ 2 1, D)}. 4 Zwróć v. Przemysław Klęsk (KMSIiMS, ZUT) 42/48

43 Algorytm MIN-MAX Algorytm MIN-MAX (lub MINIMAX) Podstawowym problemem algorytmu w wersji niezmodyfikowanej jest duża złożoność pamięciowa. Niech dla uproszczenia b oznacza średnią lub stałą liczbę ruchów dostępną na każdym poziomie dla każdego z graczy (dla szachów b 40). Wówczas przejrzenie D poziomów głębokości wymaga O(b b b)=o(b } {{ } D ) pamięci. D Najbardziej znaną modyfikacją algorytmu, która redukuje w pewnym stopniu złożoność pamięciową, jest przycinanieα-β (ang.α-β cutoffs). Przemysław Klęsk (KMSIiMS, ZUT) 43/48

44 Algorytm MIN-MAX Algorytm MIN-MAX (lub MINIMAX) Efekt horyzontu Z uwagi na ograniczoną głębokość przeszukiwania, algorytm może cierpieć na tzw. efekt horyzontu następny ruch poza najgłębszym przejrzanym poziomem może okazać się katastrofalny dla jednego z graczy, mimo że poziom wyżej oceny są dla niego korzystne (np. w szachach nie rozpatrzenie aż do tzw. pozycji martwej kombinacji zbić). Przemysław Klęsk (KMSIiMS, ZUT) 44/48

45 Algorytm przycinanieα-β Algorytm przycinanieα-β (ang.α-β cut-offs lubα-β pruning) Wielu niezależnych odkrywców: Samuel (1952), McCarthy (1956), Newell i Simon (1958). W trakcie analizy drzewa propagowane są w dół i górę drzewa wartości: α gwarantowana dotychczas wypłata gracza maksymalizującego, β gwarantowana dotychczas wypłata gracza minimalizującego. W wywołaniu dla korzenia zadaje sięα=,β=. Dzieci (i ich poddrzewa) są analizowane dopókiα<β. W momencie gdyα β, przestajemy rozpatrywać kolejne dzieci (i ich poddrzewa) nie będą one miały wpływu na wynik całego drzewa, są wynikiem nieoptymalnego postępowania graczy. W optymistycznym przypadku zysk w złożoności względem MIN-MAX a z O(b D ) na O ( b D/2) = O ( b D), gdzie b branching factor (stały lub średni współczynnik rozgałęziania). Np. dla szachów b 40. Dzięki zyskowi w złożoności można szukać głębiej. Przemysław Klęsk (KMSIiMS, ZUT) 45/48

46 Algorytm przycinanieα-β Algorytm przycinanieα-β Procedura fsalphabetaevaluatemax(s, d, D, α, β) 1 Jeżeli s jest terminalem, to zwróć h(s). 2 Dla wszystkich stanów t będących potomkami s wykonuj: 1 v := fsalphabetaevaluatemin(t, d+ 1 2, D,α,β). 2 α := max{α, v}. 3 Jeżeliα β, to zwróćα. (przycięcie) 3 Zwróćα. Procedura fsalphabetaevaluatemin(s, d, D, α, β) 1 Jeżeli s jest terminalem, to zwróć h(s). 2 Dla wszystkich stanów t będących potomkami s wykonuj: 1 v := fsalphabetaevaluatemax(t, d+ 1 2, D,α,β). 2 β := min{β, v}. 3 Jeżeliα β, to zwróćβ. (przycięcie) 3 Zwróćβ. Przemysław Klęsk (KMSIiMS, ZUT) 46/48

47 Algorytm przycinanieα-β Ilustracja przycinaniaα-β przykład 1 α=, 5 β= MAX α= β=, 5 α=5 β=, 10, 5 MIN α=, 5 β= α=, 6 β=5 α=5, 7, 10 β= α=5 β=10 MAX Przemysław Klęsk (KMSIiMS, ZUT) 47/48

48 Algorytm przycinanieα-β Ilustracja przycinaniaα-β przykład 2 α=, 5 β= MAX α= β=, 5 α=5 β=, 5 MIN α=, 5 β= α=, 6 β=5 α=5 β= MAX * * Przemysław Klęsk (KMSIiMS, ZUT) 48/48

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

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek 1/ 39 Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek Przemysław Klęsk pklesk@wi.ps.pl Zagadnienia i algorytmy 2/ 39 1 Zachłanne (wyczerpujące) przeszukiwanie grafu (algorytm Breadth First

Bardziej szczegółowo

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

Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek Algorytmy przeszukiwania grafów i drzew dla gier i łamigłówek Przemysław Klęsk pklesk@wi.zut.edu.pl Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej Zagadnienia i algorytmy 1 Algorytm Breadth-First-Search

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

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

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

Algorytm Stentz a D. Przemysław Klęsk Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej

Algorytm Stentz a D. Przemysław Klęsk Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej Algorytm tentz a D Przemysław Klęsk pklesk@wi.zut.edu.pl Katedra Metod ztucznej Inteligencji i Matematyki tosowanej Zadanie W nieznanym terenie (lub znanym tylko częściowo) należy dojść do celu o podanych

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

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

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

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

Metody SI w grach komputerowych Gra Policjanci i złodziej (Algorytmy przeszukiwania grafów)

Metody SI w grach komputerowych Gra Policjanci i złodziej (Algorytmy przeszukiwania grafów) Metody SI w grach komputerowych Gra Policjanci i złodziej (Algorytmy przeszukiwania grafów) Przemysław Klęsk pklesk@wi.zut.edu.pl Katedra Metod Sztucznej Inteligencji i Matematyki Stosowanej Reguły gry

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

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

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne Algorytmy mrówkowe H. Bednarz Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne 13 kwietnia 2015 1 2 3 4 Przestrzeń poszukiwań Ograniczenia

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

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

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

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

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

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

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

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

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

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

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

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

Ć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

Algorytmy i struktury danych

Algorytmy i struktury danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i struktury danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 5: Algorytmy

Bardziej szczegółowo

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

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

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

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

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

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

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

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

Ć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

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

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

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

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

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

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

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

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

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

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego. Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego

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

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

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy Wykład7,31III2010,str.1 Gry dzielimy Wykład7,31III2010,str.1 Gry dzielimy ze względu na: liczbę graczy: 1-osobowe, bez przeciwników(np. pasjanse, 15-tka, gra w życie, itp.), Wykład7,31III2010,str.1 Gry

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

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie!

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie! Gry dzielimy ze względu na: liczbę graczy: 1-osobowe, bez przeciwników(np. pasjanse, 15-tka, gra w życie, itp.), 2-osobowe(np. szachy, warcaby, go, itp.), wieloosobowe(np. brydż, giełda, itp.); wygraną/przegraną:

Bardziej szczegółowo

Algorytmy sztucznej inteligencji

Algorytmy sztucznej inteligencji www.math.uni.lodz.pl/ radmat Przeszukiwanie z ograniczeniami Zagadnienie przeszukiwania z ograniczeniami stanowi grupę problemów przeszukiwania w przestrzeni stanów, które składa się ze: 1 skończonego

Bardziej szczegółowo

Algorytmy dla gier dwuosobowych

Algorytmy dla gier dwuosobowych Algorytmy dla gier dwuosobowych Wojciech Dudek Seminarium Nowości Komputerowe 5 czerwca 2008 Plan prezentacji Pojęcia wstępne (gry dwuosobowe, stan gry, drzewo gry) Algorytm MiniMax Funkcje oceniające

Bardziej szczegółowo

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

Każdy węzeł w drzewie posiada 3 pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Drzewa binarne Każdy węzeł w drzewie posiada pola: klucz, adres prawego potomka i adres lewego potomka. Pola zawierające adresy mogą być puste. Uporządkowanie. Zakładamy, że klucze są różne. Klucze leżące

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

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

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

Przeszukiwanie z nawrotami. Wykład 8. Przeszukiwanie z nawrotami. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 Wykład 8 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 238 / 279 sformułowanie problemu przegląd drzewa poszukiwań przykłady problemów wybrane narzędzia programistyczne J. Cichoń, P. Kobylański

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,

Bardziej szczegółowo

Podstawy Informatyki. Metody dostępu do danych

Podstawy Informatyki. Metody dostępu do danych Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie

Bardziej szczegółowo

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

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie

Bardziej szczegółowo

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

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

Lista 4. Kamil Matuszewski 22 marca 2016

Lista 4. Kamil Matuszewski 22 marca 2016 Lista 4 Kamil Matuszewski 22 marca 2016 1 2 3 4 5 6 7 8 9 10 Zadanie 2 Ułóż algorytm który dla danego n-wierzchołkowego drzewa i liczby k pokoloruje jak najwięcej wierzchołków tak, by na każdej ścieżce

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

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Algorytmy z powrotami. Algorytm minimax

Algorytmy z powrotami. Algorytm minimax Algorytmy z powrotami. Algorytm minimax Algorytmy i struktury danych. Wykład 7. Rok akademicki: 2010/2011 Algorytm z powrotami rozwiązanie problemu budowane jest w kolejnych krokach, po stwierdzeniu (w

Bardziej szczegółowo

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

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

Metoda podziału i ograniczeń

Metoda podziału i ograniczeń Seminarium: Algorytmy heurystyczne Metoda podziału i ograniczeń Mateusz Łyczek Wrocław, 16 marca 011 r. 1 Metoda podziału i ograniczeń Metoda podziału i ograniczeń służy do rozwiązywania problemów optymalizacyjnych.

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

Algorytmy przeszukiwania wzorca

Algorytmy przeszukiwania wzorca Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Algorytmy przeszukiwania wzorca 1 Wstęp Algorytmy

Bardziej szczegółowo

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

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce. POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie

Bardziej szczegółowo

Matematyka Dyskretna - zadania

Matematyka Dyskretna - zadania zad. 1. Chcemy zdefiniować rekurencyjnie zbiór Z wszystkich trójkątów równoramiennych ABC, gdzie współrzędne wierzchołków będą liczbami całkowitymi, wierzchołek A zawsze będzie leżeć w początku układu

Bardziej szczegółowo

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

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Teoria gier. wstęp. 2011-12-07 Teoria gier Zdzisław Dzedzej 1

Teoria gier. wstęp. 2011-12-07 Teoria gier Zdzisław Dzedzej 1 Teoria gier wstęp 2011-12-07 Teoria gier Zdzisław Dzedzej 1 Teoria gier zajmuje się logiczną analizą sytuacji, gdzie występują konflikty interesów, a także istnieje możliwość kooperacji. Zakładamy zwykle,

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

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

Programowanie dynamiczne

Programowanie dynamiczne Programowanie dynamiczne Ciąg Fibonacciego fib(0)=1 fib(1)=1 fib(n)=fib(n-1)+fib(n-2), gdzie n 2 Elementy tego ciągu stanowią liczby naturalne tworzące ciąg o takiej własności, że kolejny wyraz (z wyjątkiem

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów gry Przeszukiwanie przestrzeni stanów gry 1 Gry a problemy przeszukiwania Nieprzewidywalny przeciwnik rozwiązanie jest strategią

Bardziej szczegółowo

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak:

liniowa - elementy następują jeden za drugim. Graficznie możemy przedstawić to tak: Sortowanie stogowe Drzewo binarne Binary Tree Dotychczas operowaliśmy na prostych strukturach danych, takich jak tablice. W tablicy elementy ułożone są zgodnie z ich numeracją, czyli indeksami. Jeśli za

Bardziej szczegółowo

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO

D. Miszczyńska, M.Miszczyński KBO UŁ 1 GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO D. Miszczyńska, M.Miszczyński KBO UŁ GRY KONFLIKTOWE GRY 2-OSOBOWE O SUMIE WYPŁAT ZERO Gra w sensie niżej przedstawionym to zasady którymi kierują się decydenci. Zakładamy, że rezultatem gry jest wypłata,

Bardziej szczegółowo

Rekurencja. Przykład. Rozważmy ciąg

Rekurencja. Przykład. Rozważmy ciąg Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu

Bardziej szczegółowo

Szachy INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

Szachy INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt. INSTRUKCJA Szachy rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt. Partia szachowa jest rozgrywana między dwoma przeciwnikami, którzy wykonują posunięcia bierkami na kwadratowej tablicy, zwanej szachownicą.

Bardziej szczegółowo

Adam Meissner. SZTUCZNA INTELIGENCJA Gry dwuosobowe

Adam Meissner. SZTUCZNA INTELIGENCJA Gry dwuosobowe Instytut Automatyki i Inżynierii Informatycznej Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis SZTUCZNA INTELIGENCJA Gry dwuosobowe Literatura [1] Sterling

Bardziej szczegółowo

SZACHY mini INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt.

SZACHY mini INSTRUKCJA. rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt. INSTRUKCJA SZACHY mini rekwizyty: 1) Bierki - 32 szt. 2) plansza - 1 szt. Partia szachowa jest rozgrywana między dwoma przeciwnikami, którzy wykonują posunięcia bierkami na kwadratowej tablicy, zwanej

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

Sztuczna inteligencja w programowaniu gier

Sztuczna inteligencja w programowaniu gier ztuczna inteligencja w programowaniu gier Algorytmy przeszukiwania przestrzeni rozwiązań Krzysztof Ślot Wprowadzenie Ogólna charakterystyka zagadnienia Cel przeszukiwania: znaleźć element będący rozwiązaniem

Bardziej szczegółowo

FUNKCJA LINIOWA - WYKRES

FUNKCJA LINIOWA - WYKRES FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (Postać kierunkowa) Funkcja liniowa jest podstawowym typem funkcji. Jest to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu

Bardziej szczegółowo

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe

FUNKCJA LINIOWA - WYKRES. y = ax + b. a i b to współczynniki funkcji, które mają wartości liczbowe FUNKCJA LINIOWA - WYKRES Wzór funkcji liniowej (postać kierunkowa) Funkcja liniowa to funkcja o wzorze: y = ax + b a i b to współczynniki funkcji, które mają wartości liczbowe Szczególnie ważny w postaci

Bardziej szczegółowo

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

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

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

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

Bardziej szczegółowo

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

Wysokość drzewa Głębokość węzła Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

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

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

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

Propozycje tematów zadań

Propozycje tematów zadań Propozycje tematów zadań 1. WARCABY Opracować program do gry w warcaby dla dwu graczy. Program ma umożliwiać przesuwanie kursora na zmianę po polach białych lub czarnych, wskazywanie początku końca ruchu.

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Maciej Drwal maciej.drwal@pwr.wroc.pl 1 Problem programowania liniowego min x c T x (1) Ax b, (2) x 0. (3) gdzie A R m n, c R n, b R m. Oznaczmy przez x rozwiązanie optymalne, tzn.

Bardziej szczegółowo