Heurystyczne przeszukiwanie przestrzeni stanów

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

Download "Heurystyczne przeszukiwanie przestrzeni stanów"

Transkrypt

1 Heurystyczne przeszukiwanie przestrzeni stanów Wykład Informatyka Studia InŜynierskie Podstawowe pojęcia teorii grafów przeszukiwania Korzeń grafu Stan, od którego zaczynamy przeszukiwanie grafu (drzewa) początkowy stan problemu (instancja problemu) Wierzchołek końcowy (terminalny) Stan, który ma określoną wartość z punktu widzenia wyniku danego zadania (np. poraŝka, zwycięstwo, remis w grze) Liść Dowolny stan w grafie, w którym zatrzymujemy proces przeszukiwania i przypisujemy mu ocenę heurystyczną Wierzchołek wewnętrzny KaŜdy inny stan, którego wartość zaleŝy od jego poprzedników lub następników

2 Podstawowe pojęcia teorii grafów przeszukiwania c.d. Głębokość przeszukiwania (aktualna) Liczba przejść stanów (ruchów) od korzenia grafu do stanu aktualnego Branching factor Średnia liczba następników stanu (śr( śr.. liczba ruchów w stanie) Drzewa przeszukiwania/dag Większość grafów przeszukiwania to DAG (acykliczne grafy skierowane), część z nich to drzewa Generowanie następników Podstawowe pojęcia Korzeń Branching factor Wierzchołek wewnętrzny Stan Głębokość przeszukiwania Stan końcowy Ocena heurystyczna (liść)

3 Heurystyczne przeszukiwanie Połączenie wiedzy przedmiotowej dotyczącej danego zadania i metod przeszukiwania dla efektywnego poszukiwania rozwiązania Stosowane w celu ograniczenie kombinatorycznej eksplozji stanów w grafie przeszukiwania Nie gwarantuje znalezienia rozwiązania, pozwala jednak wybierać lub odrzucać pewne stany, określając tym samym dalsze kierunki przeszukiwania Heurystyka w przeszukiwaniu Jest praktyczną metodą poprawiającą efektywność rozwiązywania złoŝonych problemów Prowadzi do rozwiązania wzdłuŝ najbardziej prawdopodobnej drogi, omijając mniej obiecujące ścieŝki Podaje proste kryteria wyboru kierunków przeszukiwania jednak bez kategorycznego wskazywania stanów jednoznacznie dobrych i/lub złych Powinna pozwalać na unikanie przeszukiwania bezowocnych ścieŝek oraz wykorzystywanie informacji dotychczas zdobytych w trakcie analizy przestrzeni stanów do poprawy dalszego procesu poszukiwania rozwiązania

4 Rola heurystyki w przeszukiwaniu Zwiększa niepewność otrzymania wyniku w procesie konstrukcji rozwiązania ze względu na wykorzystywanie nieformalnej wiedzy przedmiotowej (zasady, reguły, intuicje itp.), której słuszność/uŝyteczność nie do końca jest znana Pozwala w naturalny sposób wykorzystywać informacje niepewne i nieprecyzyjne, które często towarzyszą przetwarzaniu danych pochodzących ze świata rzeczywistego Poprawia efektywność algorytmu poszukiwania rozwiązania danego problemu bezpośrednio (przez wskazywanie najlepszych kierunków przeszukiwania) lub pośrednio (przez eliminowanie najmniej obiecujących kierunków) Realizacja przeszukiwania heurystycznego Systemy eksperckie Gdy problem nie posiada dokładnego rozwiązania ze względu na swoją charakterystykę: * niejednoznaczność zadania (jaki jest cel, który mamy osiągnąć?) * nieprecyzyjne lub niepewne dane (błędy w danych) * brak wszystkich niezbędnych danych (niepełne dane) Algorytmy poszukiwania rozwiązania z numeryczną funkcją oceny stanu Gdy istnieją dokładne rozwiązania, ale wymagania zasobowe (pamięć, czas) są zbyt duŝe (kombinatoryczna eksplozja stanów w problemach rzeczywistych!)

5 Elementy składowe heurystycznych metod przeszukiwania Reprezentacja stanu przestrzeni (silnie zaleŝna od zastosowania) Stany startowe (początkowe, inicjujące) Stany końcowe (terminalne) Generator następników stanu (zbiór dopuszczalnych operatorów/akcji/ruchów) Procedura przeszukiwania Mechanizm wyboru następnego wierzchołka w grafie Mechanizm nawrotów Mechanizmy wykrywania cykli Funkcja heurystycznej oceny stanu Gdzie stosujemy przeszukiwanie heurystyczne? Problemy jednoosobowe (np.zagadki logiczne itp.) Problemy optymalizacji (np. nawigacja robota - znajdowanie najkrótszej ścieŝki, szeregowanie itd.) Gry dwuosobowe Systemy dowodzenia twierdzeń

6 Przykład zastosowania heurystyki Ruch heurystycznie najlepszy Rozmiary przestrzeni: Pełna - 9! Symetria i powtórzenia - 7! Heurystyka -. 9 Algorytmy przeszukiwania heurystycznego Problemy jednoosobowe Algorytm wspinaczkowy Algorytm Best-first first-searchsearch Algorytm A * Algorytm IDA * Gry dwuosobowe Algorytm min-max max Algorytm alfa-beta

7 Algorytm wspinaczkowy (ang. hill climbing) procedure hill_climbing(initial_state initial_state) begin current_node = initial_state; next = []; if current_node = goal then return(success); while true do begin generate all children of current_node; if any of children is a goal state then return(success); assign heuristic value to each child state; set next to a lowest-valued child of current_node; if value of next > value of current_node then return(success); % stop! - no improvements set current_node to next; end; % while end. Algorytm wspinaczkowy - przykład A- B- C- D- E F G H I J K L M N O P Q R S T U 7

8 Algorytm wspinaczkowy - przykład A- B- C- D- E- F- G H I J K L M N O P Q R S T U Algorytm wspinaczkowy - przykład A- B- C- D- E- F- G H I J K- L- M N O P Q R S T U 8

9 Algorytm wspinaczkowy - przykład A- B- C- D- E- F- G H I J K- L- M N O P Q R S T- U Algorytm wspinaczkowy - przykład A- B- C- D- E- F- G H I J K- L- M N O P Q R S T- U 9

10 Algorytm wspinaczkowy: charakterystyka Cechy szczególne Ocena heurystyczna stanu z reguły traktowana jako koszt Małe wymagania pamięciowe (brak historii!) Brak mechanizmu nawrotów Nieoptymalny Wady Lokalne ekstrema funkcji - zatrzymanie Plateaux - brak postępu w przeszukiwaniu Grzbiety funkcji powolny postęp w przeszukiwaniu? Algorytm wspinaczkowy: metody poprawy Nawroty do poprzednich stanów i próba wykorzystania innych, niemal równie dobrych, następników jak ten pierwotnie wybrany (trzeba zarezerwować dodatkową pamięć!) Wykonywanie "duŝych skoków" tzn. wybieranie operatorów, które wprowadzają ogromne zmiany stanu problemu lub, jeśli brak takowych, wykonywanie kilku drobnych kroków "pod rząd" w jednym wybranym kierunku przestrzeni stanów Wykonywanie kilku kroków w róŝnych kierunkach, ale bez sprawdzania wartości osiąganych stanów RóŜne punkty startowe (stany początkowe) algorytmu 0

11 Algorytm Best-first search () procedure best_first_search(initial_state) begin open = [initial_state]; closed = []; while open [] do begin remove the next state from open,, call it X; if X is a goal state then return(solution path that led to X); process X,, generating all its children; for each child of X do case the child is not already on open nor closed:... the child is already on open:... the child is already on closed:... end; %case put X on closed; re-order states on open according to heuristic merit (lower( values first); end; % while return(failure); % open is exhausted end Algorytm Best-first search () case the child is not already on open or closed: begin assign heuristic value to the child state; add the child state to open; end; the child is already on open: begin if the child was reached along shorter path than the state currently on open then give the state on open this shorter path value; end; the child is already on closed: begin if the child was reached along shorter path than the state currently on closed then begin give the state on closed this shorter path value; move the state from closed to open; end end; end; %case

12 Algorytm Best-first search - przykład A B C D E F G H I J Open Closed K L M N O P Q R S T U Algorytm Best-first search - przykład A B- C- D- E F G H I J Open Closed K L M N O P Q R S T U

13 Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K L M N O P Q R S T U Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K- L- M N O P Q R S T U

14 Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K- L- M N O P Q R S T- U Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K- L- M N O P Q R S T- U

15 Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K- L- M- N O P Q R S T- U Algorytm Best-first search - przykład A B- C- D- E- F- G H I J Open Closed K- L- M- N O P Q R S T- U

16 Algorytm Best-first search - przykład A B- C- D- E- F- G- H- I J Open Closed K- L- M- N O P Q R S T- U Algorytm Best-first search - przykład A B- C- D- E- F- G- H- I J Open Closed K- L- M- N O- P- Q R S T- U

17 Algorytm Best-first search - przykład A B- C- D- E- F- G- H- I J Open Closed K- L- M- N O- P- Q R S T- U Algorytm Best-first search - przykład A B- C- D- E- F- G- H- I J Open Closed K- L- M- N O- P- Q R S T- U- 7

18 Algorytm Best-first first-search: : charakterystyka Cechy szczególne Mechanizm nawrotów lista OPEN Historia ruchów wykrywanie cykli lista OPEN i CLOSED Wielokierunkowe przeszukiwanie przestrzeni Im lepsza ocena heurystyczna stanów, tym mniejszy obszar przeszukiwania Wady DuŜe wymagania pamięciowe (złoŝoność pamięciowa O(b d ), b branching factor, d głębokość przeszukiwania) Nieoptymalny (w ogólnym przypadku, ale...) Algorytm Best-fist fist-searchsearch - przykład Ocena heurystyczna: liczba ruchów od startu do danego stanu (głębokość) plus liczba płytek (elementów) poza swoim połoŝeniem docelowym cel 7 8

19 Ocena heurystyczna jaka? Proponowana heurystyczna ocena Próba : Liczba płytek poza pozycjami docelowymi Wada: Nie uwzględnia jak daleko jest kaŝda płytka od miejsca docelowego Próba : Suma odległości wszystkich płytek od miejsca docelowego Wada: Ignoruje fakt (podobnie jak poprzednia heurystyka), Ŝe prosta zamiana miejscami dwóch płytek to więcej niŝ dwa ruchy Próba : Liczba odwróconych par płytek pomnoŝona przez mały współczynnik (np. ) Wada: Nie uwzględnia sekwencji ruchów Funkcja oceny heurystycznej - definicja Funkcją oceny heurystycznej nazywamy funkcję rzeczywistą określoną na zbiorze wierzchołków grafu przestrzeni stanów postaci: f(n) ) = g(n) ) + h(n), gdzie: g(n) jest aktualną długość ścieŝki od stanu n do stanu początkowego, h(n) jest heurystycznym oszacowaniem odległości od stanu n do celu. 9

20 Przykład zastosowania funkcji oceny heurystycznej OPEN CLOSED 8 7 Stan b f(b) ) = Stan a f(a) ) = Stan c f(c) ) = 8 7 Stan d f(d) ) = g(n) = 0 g(n) = 8 7 Stan e f(e) ) = 8 7 Stan f f(f) ) = 8 7 Stan g f(g) ) = g(n) = 8 7 Stan h f(h) ) = 8 7 Stan i f(i) ) =7 8 7 Stan j f(j) ) = 8 7 Stan k f(k) ) =7 g(n) = f(n) ) = g(n) ) + h(n), gdzie: g(n) ) rzeczywista odległość od startu do stanu n, h(n) ) liczba płytek (elementów) poza swoim połoŝeniem docelowym cel 8 7 Stan m f(m) ) = 8 7 Stan l f(l) ) = 7 8 Stan n f(n) ) =7 g(n) = g(n) = Funkcja oceny heurystycznej a algorytm Best-first first-searchsearch Niech dany będzie algorytm Best-first first-searchsearch z oceną heurystyczną postaci: f(n) ) = g(n) ) + h(n), jeŝeli dla kaŝdego stanu g(n) ) = 0 to otrzymujemy tzw. przeszukiwanie zachłanne (brak gwarancji znalezienia optymalnego rozwiązania) jeŝeli dla kaŝdego stanu h(n) ) = 0 i g(n) ) = depth(n) to mamy przeszukiwanie wszerz (moŝliwe znalezienie optymalnego rozwiązania) 0

21 Algorytm A - definicja RozwaŜmy funkcję oceny: f(n) ) = g(n) ) + h(n) gdzie: n jest dowolnym stanem odwiedzonym w czasie przeszukiwania, g(n) jest kosztem osiągnięcia stanu n od początku przeszukiwania, h(n) jest heurystycznym oszacowaniem kosztu przejścia od stanu n do celu. JeŜeli ta ocena (w pełnej postaci) jest realizowana łącznie z algorytmem best-first first-search,, to rezultat nazywa się algorytmem A. A Algorytm A - przykład A B- C- D- E- F- G- H- I- J- K- L- M- N- O- P- Q- R- S- T- U-0 7 Open Closed

22 Algorytm A - przykład A B- 0 C- 0 D- E- F- G- H- I- J- K- L- M- N- O- P- Q- R- S- T- U Open Closed Algorytm A - przykład A B- C-0 D- E- F- G- H- I- J- K- L- M- N- O- P- Q- R- S- T- U Open Closed

23 Algorytm A - przykład A B- C- D- E- F- G- H- I- J- K- L- M- N- O- P- Q- R- S- T- U-0 7 Open Closed Algorytm A - przykład A B- C- D- E- F- G- H- I- J- K- L- M- N- O- P- Q- R- S- T- U-0 7 Open Closed

24 Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K- L- M- N- O- P- Q- R- S- T- U Open Closed Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K- L- M- N- O- P- Q- R- S- T- U Open Closed

25 Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K- 7 L- M- N- O- P- Q- R- S- T- U Open Closed Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K- 7 L- M- N- O- P- Q- R- S- T- U Open Closed

26 Algorytm A - przykład S- A B- C- D- E- F- G- H- I-7 J- K- 7 L- M- T- 7 N- O- P- Q- R- U-0 7 Open Closed Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K- 7 L- M- N- O- P- Q- R- S- T- U Open Closed

27 Algorytm A - przykład A B- C- D- E- F- G- H- I-7 J- K-7 L- M- N-7 O- P- Q- R- S- T- U Open Closed Algorytm A - przykład S- A B- C- D- E- F- G- H- I-7 J- K-7 L- M- T N-7 O- P- Q- R- U-0 7 koniec! Open Closed 7

28 Teoretyczne własności heurystyk a problemy przeszukiwania Czy algorytm znajduje najkrótszą ścieŝkę do celu? Dopuszczalność heurystyki (ang. admissibility) Czy kaŝdy stan w przestrzeni jest osiągany przy najniŝszym koszcie? Monotoniczność heurystyki (ang. monotonicity) Czy moŝna szybciej znaleźć rozwiązanie przy pomocy innej (lepszej) heurystyki? Informatywność heurystyki (ang. informedness) Teoretyczne własności heurystyk: idealna funkcja oceny heurystycznej Przyjmijmy następujące oznaczenia: g * (n) koszt najkrótszej ścieŝki od stanu początkowego do stanu n, h * (n) jest rzeczywistym kosztem przejścia najkrótszą ścieŝką od stanu n do celu, f * (n) rzeczywisty koszt optymalnej ścieŝki prowadzącej od stanu początkowego przez stan n do celu (tj. f * (n)= g * (n)+ h * (n)), Funkcja f * (n) to idealna wyrocznia - jej istnienie eliminowałoby potrzebę przeszukiwania! W trakcie przeszukiwania z reguły g(n) g * (n),, dopóki nie odkryjemy najkrótszej ścieŝki do n,, wtedy g(n) ) = g * (n). Nie jesteśmy w stanie podać wartości h * (n) przed zakończeniem przeszukiwania, dlatego stosujemy jego oszacowanie, czyli h(n). 8

29 Dopuszczalność (ang. admissibility) Definicja Algorytm przeszukiwania jest dopuszczalny,, jeŝeli dla dowolnego grafu zawsze kończy się na optymalnej ścieŝce do rozwiązania, o ile taka ścieŝka istnieje. Przykład Algorytm przeszukiwania wszerz Algorytm A * Definicja JeŜeli algorytm A wykorzystuje funkcję oceny taką, Ŝe h(n) ) jest mniejsze lub równe kosztowi minimalnej ścieŝki od wierzchołka n do celu (tj. h(n) h * (n)), to otrzymany w ten sposób algorytm nazywa się algorytmem A *. Twierdzenie Wszystkie algorytmy A * są dopuszczalne. 9

30 Niedoszacowanie wartości oceny heurystycznej A f = (h ( + g) n g(n)= depth(n) B (+) (+) C D (+) E (+) G F (+) (+) ZaniŜenie wartości, tzn. h < h * H (+) X goal Przeszacowanie wartości oceny heurystycznej A f = (h ( + g) n g(n)= depth(n) B (+) (+) C D (+) E (+) F (+) G (0+) X goal ZawyŜenie wartości, tzn. h > h * 0

31 Monotoniczność (ang. monotonicity) Funkcja oceny heurystycznej f jest monotoniczna,, gdy: dla dowolnych stanów s i oraz s j, gdzie s j jest następnikiem s i zachodzi: h(s i ) - h(s j ) cost(s i, s j ) gdzie cost(s i, s j ) jest rzeczywistym kosztem (w liczbie ruchów) przejścia od stanu s i do s j, i oszacowanie heurystyczne stanu docelowego jest równe zero h(goal) ) = 0 Monotoniczność, czyli spójność heurystyki Monotoniczność to tzw. lokalna dopuszczalność,, która oznacza, iŝ kaŝdy stan (a nie tylko stany docelowe) osiągany jest po najkrótszej ścieŝce. Monotoniczność oznacza równieŝ, Ŝe heurystyka jest spójna w całej przeszukiwanej przestrzeni. s i h(s i ) s i cost(s i, s j ) s j h(s j ) h(s i ) - h(s j ) cost(s i, s j ) h(s i ) cost(s i, s j ) + h(s j ) goal goal

32 Monotoniczność, czyli spójność heurystyki Heurystyka jest monotoniczna (inaczej: lokalnie dopuszczalna) jeŝeli dla kaŝdego stanu s i, kaŝdy jego następnik s j generowany przez akcję a,, która spełnia warunek: h(s i ) cost(s i, a, s j ) + h(s j ) h(s i ) s i goal cost(s i,a,s j ) s j h(s j ) Nierówność trójkątów!!! Jeśli h jest monotoniczna, to: f (s j ) = g(s j ) + h(s j ) = g(s i ) + cost(s i,a,s j ) + h(s j ) g(s i ) + h(s i ) = f(s i ) f (s j ) f(s i ) tzn. f(s i ) nigdy nie maleje podczas przeszukiwania! Czy monotoniczny to równieŝ dopuszczalny? RozwaŜmy dowolną ścieŝkę w przestrzeni stanów s, s,..., s g, prowadzącą od stanu początkowego s do stanu końcowego s g. Dla dowolnego ciągu ruchów na tej ścieŝce zachodzi: od s do s h(s ) - h(s ) cost(s, s ) od s do s h(s ) - h(s ) cost(s, s ) od s do s h(s ) - h(s ) cost(s, s ) od s g- do s g h(s g- ) - h(s g ) cost(s g-, s g ) dodając obustronnie stronami otrzymujemy: ścieŝka od s do s g h(s ) - h(s g ) cost(s, s g ). Na podstawie własności monotoniczności wiemy, Ŝe h(s g ) = 0,, więc: h(s ) cost(s, s g ). PoniewaŜ cost(s, s g ) = h * (s ), to h(s ) h * (s ), czyli heurystyka monotoniczna jest dopuszczalna.

33 Jak uzyskać monotoniczność? JeŜeli funkcja oceny heurystycznej f nie jest monotoniczna,, ale jest dopuszczalna, zawsze moŝliwe jest zapewnienie monotoniczności za pomocą tzw. reguły PATHMAX. Reguła PATHMAX Jeśli dla dowolnych stanów s i oraz s j, gdzie s j jest następnikiem s i zachodzi: f(s i ) > f(s j ), to nową wartość funkcji oceny dla s j naleŝy wyznaczyć według zaleŝności: f(s j ) = max( f(s i ), g(s j ) + h(s j ) ) Co nam daje monotoniczność? procedure MonotonicBFS(initial_state) begin open = [initial_state]; closed = []; while open [] do begin remove the next state from open,, not already on closed,c,call it X; if X is a goal state then return(solution path that led to X); process X,, generating all its children; for each child of X do begin assign heuristic value to the child state; add the child state to open;!!! end; put X on closed; re-order states on open according to monotonic heuristic merit (lower values first); end; % while return(failure); % open is exhausted end.

34 Informatywność (ang. informedness) Dla dwóch heurystyk h i h typu A *, jeŝeli h (n) h (n),, dla dowolnego stanu n w przeszukiwanej przestrzeni, to o h mówi się, Ŝe zawiera więcej informacji niŝ h (jest lepiej poinformowana). JeŜeli heurystyka h jest lepiej poinformowana niŝ h, to zbiór stanów odwiedzanych przez h jest podzbiorem stanów odwiedzanych przez h. h h h h h * NajwaŜniejsze twierdzenia dot. algorytmu A * JeŜeli oszacowanie h(n) ) jest dopuszczalne,, to algorytm A* jest optymalny dla drzew przeszukiwania JeŜeli oszacowanie h(n) ) jest monotoniczne,, to algorytm A* jest optymalny dla dowolnych grafów przeszukiwania JeŜeli heurystyka jest monotoniczna,, to jest równieŝ dopuszczalna JeŜeli oszacowanie h(n) ) jest monotoniczne,, to wartości f(n) ) w trakcie przeszukiwania nigdy nie maleją

35 Funkcje heurystyczne - jak definiować? Uproszczenie oryginalnego zadania poprzez rozluźnienie ograniczeń nałoŝonych na definicję operatorów ruchu (generację następnika) Koszt optymalnego rozwiązania dla tak uproszczonego problemu jest dopuszczalną heurystyką zadania oryginalnego! Przykłady dla układanki 8-polowej8. JeŜeli załoŝymy, Ŝe moŝna dokonywać przesunięć płytkami na dowolne miejsce (a nie tylko puste), to znajdziemy najkrótsze rozwiązanie - tak heurystyka jest dopuszczalna.. JeŜeli załoŝymy, Ŝe moŝna dokonywać przesunięć płytkami na dowolne ortogonalnie sąsiednie pole (a nie tylko puste), to znajdziemy najkrótsze rozwiązanie - tak heurystyka jest równieŝ dopuszczalna. IDA * - algorytm A * z iteracyjnym pogłębianiem Przeszukiwanie z ograniczoną zajętością pamięci Schemat iteracyjnego pogłębiania Limit dopuszczalnej głębokości zastąpiony przez limit wartości funkcji oceny heurystycznej

36 Algorytm IDA * - cz. procedure IDA * -Search( Search(initial_state) begin f_limit f(initial_state initial_state); while true do begin (solution, f_limit ) DFS-Contour( Contour(initial_state, f_limit); if solution null then return(solution solution); if f_limit = then return(failure failure); f_limit f_limit ; end; end. Algorytm IDA * - cz. function DFS-Contour( Contour(current_state, f_limit) begin next_f ; if f(current_state) ) > f_limit then return(null, f(current_state)); if current_state is a goal then return(current_state current_state, f_limit); while current_state has unexamined children do begin child := next unexamined child of current_state; (solution, new_f) DFS-Contour( Contour(child, f_limit); if solution null then return(current_state current_state+solution, f_limit); next_f min(next_f next_f, new_f ); end return(null, next_f); end.

37 Algorytm IDA * - przykład A-0 f_limit=? Algorytm IDA * - przykład A-0 f_limit=0 B- 0 7

38 Algorytm IDA * - przykład A-0 f_limit=0 E- B- 0 Algorytm IDA * - przykład A-0 f_limit=0 B- 0 E- F- 8

39 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit=0 E- F- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit=0 E- F- G- 9

40 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit=0 E- F- G- H- Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit=0 E- F- G- H- 0

41 Algorytm IDA * - przykład A-0 0 f_limit= Algorytm IDA * - przykład A-0 f_limit= B- 0

42 Algorytm IDA * - przykład A-0 f_limit= E- B- 0 Algorytm IDA * - przykład A-0 f_limit= B- 0 E- F-

43 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G-

44 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- O-

45 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- O- P- Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit= E- F- G- H- O- P-

46 Algorytm IDA * - przykład A-0 0 f_limit= Algorytm IDA * - przykład A-0 f_limit= B- 0

47 Algorytm IDA * - przykład A-0 f_limit= E- B- 0 Algorytm IDA * - przykład A-0 f_limit= B- 0 E- F- 7

48 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- 8

49 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- O- 9

50 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- O- P- Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit= E- F- G- H- O- P- 0

51 Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit= E- F- G- H- I- O- P- 7 Algorytm IDA * - przykład A-0 B- 0 C- 0 D- 7 f_limit= E- F- G- H- I-7 J- O- P- 7 7

52 Algorytm IDA * - przykład A-0 0 f_limit= Algorytm IDA * - przykład A-0 f_limit= B- 0

53 Algorytm IDA * - przykład A-0 f_limit= E- B- 0 Algorytm IDA * - przykład A-0 f_limit= K- 7 E- B- 0

54 Algorytm IDA * - przykład A-0 f_limit= E- K-7L- B- 7 0 Algorytm IDA * - przykład A-0 f_limit= K-7L- B- E- F- 7 0

55 Algorytm IDA * - przykład A-0 f_limit= K- 7 L- B- E- F- 0 Algorytm IDA * - przykład A-0 f_limit= K- 7 L- T- B- E- F- 0

56 Algorytm IDA * - przykład A-0 f_limit= B- E- F- 0 K-7L- M- 7 T- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- K-7L- M- 7 T-

57 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- K-7L- M- 7 T- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- K-7L- M- 7 T- N- 7 7

58 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 O- 8

59 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 O- P- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 N- 7 O- P- T- U-0 9

60 Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit= E- F- G- H- K-7L- M- 7 N- 7 O- P- T- U-0 Algorytm IDA * - przykład A-0 B- 0 C- 0 D- f_limit= E- F- G- H- I- K-7L- M- 7 N- 7 O- P- 7 T- U-0 0

61 Algorytm IDA * - przykład A-0 B- 0 C- 0 D- 7 f_limit= E- F- G- H- I-7 J- K-7L- M- 7 N- 7 O- P- 7 7 T- U-0 Algorytm IDA * - przykład A-0 0 f_limit=

62 Algorytm IDA * - przykład A-0 f_limit= B- 0 Algorytm IDA * - przykład A-0 f_limit= E- B- 0

63 Algorytm IDA * - przykład A-0 f_limit= K- 7 E- B- 0 Algorytm IDA * - przykład A-0 f_limit= E- K-7L- B- 7 0

64 Algorytm IDA * - przykład A-0 f_limit= E- K-7L- B- 7 T- 0 Algorytm IDA * - przykład A-0 f_limit= K-7L- B- E- F- 7 T- 0

65 Algorytm IDA * - przykład A-0 f_limit= K- 7 L- T- B- E- F- 0 Algorytm IDA * - przykład A-0 f_limit= K- 7 L- T- B- E- F- 0

66 Algorytm IDA * - przykład A-0 f_limit= B- E- F- 0 K-7L- M- 7 T- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- K-7L- M- 7 T-

67 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- K-7L- M- 7 T- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- K-7L- M- 7 T- N- 7 7

68 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 O- 8

69 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 T- N- 7 O- P- Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 N- 7 O- P- T- U-0 9

70 Algorytm IDA * - przykład A-0 B- 0 C- 0 f_limit= E- F- G- H- K-7L- M- 7 N- 7 O- P- T- U-0 koniec! Algorytm IDA * : charakterystyka Cechy szczególne Brak historii nie ma list OPEN i CLOSED NiŜsze wymagania pamięciowe niŝ A * - proporcjonalne do najdłuŝszej badanej ścieŝki - O(bd bd) Limit wartości f w następnej iteracji jest najmniejszą wartością spośród wszystkich tych ocen, które przekroczyły aktualny limit sukcesywnie powiększany obszar przeszukiwania śadna ścieŝka w trakcie przeszukiwania nie moŝe mieć kosztu o wartości, która byłaby między dwoma kolejnymi limitami na wartość f Optymalny i pełny dla tych samych warunków co algorytm A * Wady W grafach DAG wielokrotnie moŝe docierać do tego samego stanu róŝnymi ścieŝkami Słabe wykorzystanie pamięci: kiedy ocena heurystyczna dla kaŝdego o stanu jest inna, to liczba nowych stanów, którego zostaną objęte przeszukiwaniem w kolejnej iteracji wynosi dokładnie (dla N róŝnych stanów konieczne będzie wykonanie nie N iteracji!!!) 70

71 Heurystyczne przeszukiwanie grafów gier dwuosobowych Wykład Informatyka Studia InŜynierskie Gry dwuosobowe - przeszukiwanie heurystyczne Dwóch przeciwników posiadających pełną informację o stanie gry i wszystkich moŝliwych ruchach Jeden gracz nosi nazwę Max,, bo: maksymalizuje rezultat końcowy kaŝdy wzrost wartości oznacza zysk dla tego gracza i równowaŝną stratę dla przeciwnika Drugi gracz nosi nazwę Min,, bo: minimalizuje rezultat końcowy kaŝdy spadek wartości oznacza zysk dla tego gracza i równowaŝną stratę dla przeciwnika 7

72 Zasada min-max max 8 max 8 7 min max Algorytm min-max max function MinMax(s: state, depth: integer, type: integer): integer; begin if is_terminal_node(s) or depth=0 then return(eval(s)); if type = MAX then begin best := - ; for child:= to NumOfSucc(s) do begin val := MinMax(Succ(s,child), depth-, MIN); if val > best then best := value; end end else { type = MIN } begin best := ; for child:= to NumOfSucc(s) do begin val := MinMax(Succ(s,child), depth-, MAX); if val < best then best := value; end end return best; end; 7

73 Przykład min-max max - gra NIM - korzeń MAX MAX MIN MAX Ocena: mniejsza wartość bo wygrał wygrana MIN MIN większa wartość bo wygrał wygrana MAX MAX MIN MAX MIN Przykład min-max max - gra NIM - korzeń MIN 7 MIN MAX MIN Ocena: mniejsza wartość bo wygrał wygrana MIN MAX większa wartość bo wygrał wygrana MAX MIN MAX MIN MAX 7

74 Zasada negamax max(y) y = -min min = max(x) x = -max max(z) z Algorytm nega-max function MinMax-NegaMax(s: state, depth: integer): integer; begin if is_terminal_node(s) or depth=0 then {terminal position} return(eval(s,depth depth)); {find maximum of child values} best := - ; for child:= to NumOfSucc(s) do best := max(best, -MinMax(Succ(s,child), depth-); return(best); end; Funkcja heurystycznej oceny stanu musi uwzględniać do kogo naleŝy oceniany ruch. JeŜeli do gracza MAX to ocena jest w postaci prostej, jeśli do gracza MIN - w postaci zanegowanej. 7

75 Przykład nega-max - gra NIM - ruch MIN 7 - -MIN MAX -MIN Ocena: MIN wartość zanegowana MAX wartość prosta przegrał MIN ---- wartość zaneg. przegrał MAX wartość prosta MAX -MIN MAX Przykład nega-max - gra NIM - ruch MAX 7 - MAX MIN MAX Ocena: MIN wartość zanegowana MAX wartość prosta przegrał MAX ---- wartość prosta przegrał MIN wartość zanegowana -MIN MAX -MIN 7

76 Kółko i krzyŝyk - heurystyka Funkcja oceny heurystycznej stanu gry - róŝnica liczby moŝliwych wygranych gracza X i gracza O Gracz X ma moŝliwych wygranych Gracz O ma moŝliwych wygranych E(n) = - = Gracz X ma moŝliwych wygranych Gracz O ma moŝliwych wygranych E(n) = - = - Gracz X ma moŝliwych wygranych Gracz O ma moŝliwych wygranych E(n) = - = Kółko i krzyŝyk - przykład gry() - Ruch MAXa - -= -=0=0 -= -=0=0 -= =- -= -= -= =- -=0=0 -= =- -=0=0 -= =- 7

77 Kółko i krzyŝyk - przykład gry() -= -= -= -= -= -= 0 Ruch MAXa -= -=0=0 -= -=0=0 -= -= 0 -= -= -= -= -= -= -= -= -=0=0 Kółko i krzyŝyk - przykład gry() - Ruch MAXa -= -= -= -= - -= -= -= = -=0=0 -= - -= -= -= - -=0=0 -=0=0 -= 77

78 Algorytm min-max max (lub negamax) Przyjmując określony branching factor (b)) oraz stałą głębokość przeszukiwania (d)( ZłoŜoność pamięciowa O(bd) ZłoŜoność czasowa O(b d ) Czy moŝna ten wynik poprawić? Tak! Branch&bound Odcięcie α - ograniczenie dolne odcięcie α

79 Odcięcie β - ograniczenie górneg 9 odcięcie β 9 Odcięcia α-β 8 8 = 8 max 7 = = 8 8 α 8 9 = = β 8 8 α min max

80 Odcięcia α-β C = max = = 0 A D 0 E 0 α = 0 = B 0 β α min max A ma próg β = (A nie będzie większe niŝ ) B odcięcie dla β,, bo > C ma próg α = (C nie będzie mniejsze niŝ ) D odcięcie dla α,, bo 0 < E odcięcie dla α,, bo < C ma wartość Głębokie odcięcia α-β = = = = = 7 7 β α max min max min 0 7 max 80

81 Algorytm AlfaBeta (zapis min-max) max) wywołanie:result = AlphaBeta(s, MAXDEPTH, -,, MAX) int AlphaBeta(state s,int depth,int alpha,int beta,int type) { if( is_terminal_node(s) depth == 0 ) return(eval(s)); if( type == MAX){ for(child=; child<=numofsucc(s); child++) { val = AlphaBeta(Succ(s,child),depth-,alpha,beta,,alpha,beta,MIN); alpha = max(val val,, alpha); if( alpha >= beta ) return beta; //cutoff } //endfor return alpha; } else { // type == MIN for(child=; child<=numofsucc(s); child++) { val = AlphaBeta(Succ(s,child),depth-,alpha,beta,,alpha,beta,MAX); beta = min(val val,, beta); if( alpha >= beta ) return alpha; //cutoff } //endfor return beta; } } Mechanizm odcięć alfa-beta Dwa ograniczenia: α dolne ograniczenie dla wierzchołków max (najwyŝsza wartość jaką dotychczas osiągnął gracz max) β górne ograniczenie dla wierzchołków min (najniŝsza wartość jaką dotychczas osiągnął gracz min) Wartość ograniczenia α ustalana jest w wierzchołku max Wartość ograniczenia β ustalana jest w wierzchołku min Odcięcie α wykonywane jest w wierzchołku min Odcięcie β wykonywane jest w wierzchołku max Kiedy tylko zachodzi warunek α β, nie ma potrzeby analizowania dalszych następnik pników w danego stanu 8

82 Algorytm AlfaBeta (zapis nega-max) function AlfaBeta(s:state, α,β:integer, depth: integer): integer; begin if is_terminal_node(s) or depth=0 then {terminal position} return(eval Eval(s,depth)); {find maximum of child values} for child:= to NumOfSucc(s) do begin α := max(α, -AlfaBeta( Succ(s,child), -β, -α, depth-); if α β then return(β); {cutoff!} end return(α); end; wywołanie: result := AlfaBeta(s, -,, MAXDEPTH) Sformułowanie negamax dla AlfaBeta Sformułowanie min-max max wymaga przemiennych wywołań rekurencyjnych dwóch graczy (raz dla gracza MAX, dwa dla gracza MIN, itd.) Sformułowanie negamax opiera się tylko na graczu MAX (jedna funkcja rekurencyjna) Przy wyjściu z rekurencji negujemy zwracaną wartość Przy zagnieŝdŝeniu rekurencyjnym negujemy ograniczenia i zamieniamy miejscami, aby zachować niezmienność warunku odcięcia 8

83 Analiza algorytmu AlfaBeta Wartości zwracane: w wersji minmax: : ze względu na gracza w korzeniu w wersji negamax: : ze względu na tego czyj jest ruch w liściu Bardzo zawikłany kod ewentualny błędy pozostają długo ukryte (problemy moŝna zauwaŝyć tylko wtedy, gdy niepoprawne wartości zostaną przepropagowane do korzenia grafu) Efektywność algorytmu zaleŝy w ogromnym stopniu od kolejności następników i występowania odcięć Analiza algorytmu AlfaBeta Sytuacja idealna jeśli odcięcie ma się pojawić, to powinno wystąpić jak najszybciej, czyli najlepiej zaraz po sprawdzeniu pierwszego następnika 7 9 odcięcie α 9 7 9? zmieniona kolejność 8

84 Odcięcia α-β (mniej odcięć! ęć!) 8 8 = 8 max 7 = = = 9 9 =? 8 = 9 = = α min max? zmieniona kolejność ZłoŜoność algorytmu AlfaBeta Dla danej głębokości (d)( ) i stałego braching factor (b) Najlepszy przypadek: O(b d/ ) Najgorszy przypadek: brak odcięć (czyli jak MinMax) Średni przypadek: O(( ((b/log b) b d ) 8

85 Słabości algorytmu AlfaBeta Efekt horyzontu (ang. horizont effect) Niewidoczny spadek wartości stanu tuŝ za wyznaczoną głębokością przeszukiwania Występuje we wszystkich odmianach algorytmu Wykrywanie stanów naraŝonych na wystąpienie efektu horyzontu i prowadzenia przeszukiwania za tym stanami - problem otwarty Rozszerzenia algorytmu AlfaBeta Doskonalenie funkcji oceny stanu (funkcji heurystycznej) Modyfikacje sposobu przeszukiwania grafu zastosowanie pamięci (np. tablica przejść) porządkowanie następników manipulowanie zakresem α-β zmienna głębokość g przeszukiwania przeszukiwanie eksploracyjne Rozwiązania sprzętowe (np. obliczenia równoległe) 8

Heurystyczne przeszukiwanie przestrzeni stanów

Heurystyczne przeszukiwanie przestrzeni stanów Heurystyczne przeszukiwanie przestrzeni stanów Wykład Studia Inżynierskie Realizacja przeszukiwania heurystycznego Systemy eksperckie Gdy problem nie posiada dokładnego rozwiązania zania ze względu na

Bardziej szczegółowo

Heurystyczne przeszukiwanie przestrzeni stanów

Heurystyczne przeszukiwanie przestrzeni stanów Heurystyczne przeszukiwanie przestrzeni stanów Wykład Informatyka Studia InŜynierskie Realizacja przeszukiwania heurystycznego Systemy eksperckie Gdy problem nie posiada dokładnego rozwiązania zania ze

Bardziej szczegółowo

Heurystyczne przeszukiwanie grafów gier dwuosobowych

Heurystyczne przeszukiwanie grafów gier dwuosobowych Heurystyczne przeszukiwanie grafów gier dwuosobowych Wykład Informatyka Studia InŜynierskie Teoria gier w dziedzinie SI Liczba graczy jednoosobowe, dwuosobowe oraz wieloosobowe Suma wypłat gry o sumie

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Heurystyczne przeszukiwanie grafów w gier dwuosobowych

Heurystyczne przeszukiwanie grafów w gier dwuosobowych Heurystyczne przeszukiwanie grafów w gier dwuosobowych Wykład Informatyka Studia InŜynierskie Teoria gier w dziedzinie SI Liczba graczy jednoosobowe, dwuosobowe oraz wieloosobowe Suma wypłat gry o sumie

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Studia Inżynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków w odpowiadających

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

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

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

Przeszukiwanie przestrzeni stanów. Wprowadzenie do Sztucznej Inteligencji. Podstawowe problemy teorii przeszukiwania przestrzeni stanów

Przeszukiwanie przestrzeni stanów. Wprowadzenie do Sztucznej Inteligencji. Podstawowe problemy teorii przeszukiwania przestrzeni stanów Przeszukiwanie przestrzeni stanów Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia Inynierskie Przestrze stanów jest to czwórka uporzdkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków

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

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

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

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

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

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

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

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n

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

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi Wrocław, 16.06.2009 Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi Opracował: Janusz Taterka 1. Wstęp W systemach autonomicznych spotykamy się z zadaniami planowania działań.

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

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

Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb POLITECHNIKA WROCŁAWSKA WYDZIAŁ ELEKTRONIKI INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, wgłąb AUTOR: Krzysztof Górski Indeks: 133247 e-mail: 133247@student.pwr.wroc.pl

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

Mechanizm wyboru następnego wierzchołka w grafie

Mechanizm wyboru następnego wierzchołka w grafie Zaawansowane metody przeszukiwania grafów przestrzeni stanów gier dwuosobowych Informatyka Laboratorium Sztucznej Inteligencji 2012 Elementy składowe heurystycznych metod przeszukiwania Definicja stanu

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

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

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

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

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

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

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

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

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

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

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

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

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące

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

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

Programowanie w VB Proste algorytmy sortowania

Programowanie w VB Proste algorytmy sortowania Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich

Bardziej szczegółowo

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

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli

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

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

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

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, wprowadzenie Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu, w przepisie tym podaje się opis czynności, które trzeba wykonać, oraz dane, dla których algorytm będzie określony.

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

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

Krzysztof Jakubczyk. Zadanie 2

Krzysztof Jakubczyk. Zadanie 2 Zadanie 2 Krzysztof Jakubczyk Moje rozwiązanie nie znajduje strategii pozycyjnej w znaczeniu zdefiniowanym na wykładzie (niezaleŝnie od pozycji startowej), gdyŝ takowa nie istnieje. Przykład: 1 1 0 Środkowa

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

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

Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

Wykład 7 i 8. Przeszukiwanie z adwersarzem. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach (4g) Wykład 7 i 8 w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 177 / 226 (4g) gry optymalne decyzje w grach algorytm

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Podstawowe pojęcia Definition Graf = wierzchołki + krawędzie. Krawędzie muszą mieć różne końce. Między dwoma wierzchołkami może

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

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

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

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

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

Metody numeryczne I Równania nieliniowe

Metody numeryczne I Równania nieliniowe Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem

Bardziej szczegółowo

ALHE Jarosław Arabas. Przeszukiwanie przestrzeni ścieżek w grafie. Algorytm A*

ALHE Jarosław Arabas. Przeszukiwanie przestrzeni ścieżek w grafie. Algorytm A* ALHE Jarosław Arabas Przeszukiwanie przestrzeni ścieżek w grafie Algorytm A* Zbiór rozwiązań 2134 1234 1243 2143 2314 2413 1324 2341 1342 1423 2431 1432 3124 4123 3142 4132 3214 4213 3241 3412 4312 3421

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Symulowane wyżarzanie Maciej Hapke maciej.hapke at put.poznan.pl Wyżarzanie wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje powolne zmniejszanie

Bardziej szczegółowo

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład II Problem solving 03 październik 2012 Jakie problemy możemy rozwiązywać? Cel: Zbudować inteligentnego agenta planującego, rozwiązującego problem. Szachy Kostka rubika Krzyżówka Labirynt Wybór trasy

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Zaawansowane algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Sortowanie za pomocą malejących przyrostów metoda Shella Metoda jest rozwinięciem metody sortowania

Bardziej szczegółowo

Definicja pochodnej cząstkowej

Definicja pochodnej cząstkowej 1 z 8 gdzie punkt wewnętrzny Definicja pochodnej cząstkowej JeŜeli iloraz ma granicę dla to granicę tę nazywamy pochodną cząstkową funkcji względem w punkcie. Oznaczenia: Pochodną cząstkową funkcji względem

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

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

P r a w d o p o d o b i eństwo Lekcja 1 Temat: Lekcja organizacyjna. Program. Kontrakt. P r a w d o p o d o b i eństwo Lekcja 1 Temat: Lekcja organizacyjna. Program. Kontrakt. Lekcja 2 Temat: Podstawowe pojęcia związane z prawdopodobieństwem. Str. 10-21 1. Doświadczenie losowe jest to doświadczenie,

Bardziej szczegółowo

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

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

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

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj

Bardziej szczegółowo

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

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 2 Przeszukiwanie grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów 3. Spójność grafu,

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

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

Programowanie deklaratywne

Programowanie deklaratywne Programowanie deklaratywne Artur Michalski Informatyka II rok Plan wykładu Wprowadzenie do języka Prolog Budowa składniowa i interpretacja programów prologowych Listy, operatory i operacje arytmetyczne

Bardziej szczegółowo

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Metody Kompilacji Wykład 7 Analiza Syntaktyczna Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej

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

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

Wstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości

Bardziej szczegółowo

Kolorowanie wierzchołków grafu

Kolorowanie wierzchołków grafu Kolorowanie wierzchołków grafu Niech G będzie grafem prostym. Przez k-kolorowanie właściwe wierzchołków grafu G rozumiemy takie przyporządkowanie wierzchołkom grafu liczb naturalnych ze zbioru {1,...,

Bardziej szczegółowo

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

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Tworzenie gier na urządzenia mobilne

Tworzenie gier na urządzenia mobilne Katedra Inżynierii Wiedzy Teoria podejmowania decyzji w grze Gry w postaci ekstensywnej Inaczej gry w postaci drzewiastej, gry w postaci rozwiniętej; formalny opis wszystkich możliwych przebiegów gry z

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

Optymalizacja. Przeszukiwanie lokalne

Optymalizacja. Przeszukiwanie lokalne dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x

Bardziej szczegółowo

Luty 2001 Algorytmy (4) 2000/2001

Luty 2001 Algorytmy (4) 2000/2001 Mając dany zbiór elementów, chcemy znaleźć w nim element największy (maksimum), bądź najmniejszy (minimum). We wszystkich naturalnych metodach znajdywania najmniejszego i największego elementu obecne jest

Bardziej szczegółowo

Wnioskowanie jako przeszukiwanie przestrzeni stanów

Wnioskowanie jako przeszukiwanie przestrzeni stanów Plan wykładu Wnioskowanie jako przeszukiwanie przestrzeni stanów Rozwiązywanie problemów jako poszukiwanie ścieżki rozwiązania Przestrzeń stanów jako graf skierowany Dokładne metody przeszukiwania przestrzeni

Bardziej szczegółowo

Poprawność semantyczna

Poprawność semantyczna Poprawność składniowa Poprawność semantyczna Poprawność algorytmu Wypisywanie zdań z języka poprawnych składniowo Poprawne wartościowanie zdań języka, np. w języku programowania skutki wystąpienia wyróżnionych

Bardziej szczegółowo

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy Informatyka wprowadze do algorytmów (II) dr hab. inż. Mikołaj Morzy plan wykładu cechy algorytmów sposoby zapisu algorytmów klasyfikacja algorytmów przykłady algorytmów sumowa przeszukiwa ciągu liczb sortowa

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Proste algorytmy sortowania Witold Marańda maranda@dmcs.p.lodz.pl 1 Pojęcie sortowania Sortowaniem nazywa się proces ustawiania zbioru obiektów w określonym porządku Sortowanie

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

Podstawy Informatyki. Sprawność algorytmów

Podstawy Informatyki. Sprawność algorytmów Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych

Bardziej szczegółowo

Metody Kompilacji Wykład 3

Metody Kompilacji Wykład 3 Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

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

Optymalizacja. Przeszukiwanie tabu

Optymalizacja. Przeszukiwanie tabu dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Naturalny sposób powstania algorytmu Algorytm optymalizacji lokalnej Niezdolność wyjścia z lokalnych

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty

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

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

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak

Indukcja. Materiały pomocnicze do wykładu. wykładowca: dr Magdalena Kacprzak Indukcja Materiały pomocnicze do wykładu wykładowca: dr Magdalena Kacprzak Charakteryzacja zbioru liczb naturalnych Arytmetyka liczb naturalnych Jedną z najważniejszych teorii matematycznych jest arytmetyka

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

Optymalizacja. Symulowane wyżarzanie

Optymalizacja. Symulowane wyżarzanie dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Wyżarzanie wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje powolne

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

Bardziej szczegółowo