Rozwiązywanie problemów przez przeszukiwanie. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach

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

Download "Rozwiązywanie problemów przez przeszukiwanie. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach"

Transkrypt

1 (4g) Wykład 3 i 4 w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach P. Kobylański Wprowadzenie do Sztucznej Inteligencji 81 / 198

2 (4g) agenci rozwiązujący problemy przykłady problemów poszukiwanie rozwiązania strategie przeszukiwania bez wiedzy heurystyczne strategie przeszukiwania algorytm A* funkcje heurystyczne P. Kobylański Wprowadzenie do Sztucznej Inteligencji 82 / 198

3 (4g) Agenci rozwiązujący problemy schemat formułowanie poszukiwanie wykonanie wfazieformułowania zostaje sformułowany cel (goal) oraz na jego podstawie zostaje sformułowany problem w fazie poszukiwania agent poszukuje rozwiązanie problemu będące ciągiem akcji do wykonania wfaziewykonania agent wykonuje akcje z ciągu akcji będących rozwiązaniem problemu P. Kobylański Wprowadzenie do Sztucznej Inteligencji 83 / 198

4 (4g) Agenci rozwiązujący problemy function SIMPLE-PROBLEM-SOLVING-AGENT(percept) returns an action persistent seq, anactionsequence,initiallyempty state, somedescriptionofthecurrentworldstate goal, agoal,initiallynull problem, aproblemformulation state UPDATE-STATE(state, percept) if seq is empty then goal FORMULATE-GOAL(state) problem FORMULATE-PROBLEM(state, goal) seq SEARCH(problem) if seq = failure then return anullaction action FIRST(seq) seq REST(seq) return action P. Kobylański Wprowadzenie do Sztucznej Inteligencji 84 / 198

5 (4g) Agenci rozwiązujący problemy Problem może być sformułowany przez następujące jego składowe: Stan początkowy. Opis dostępnych dla agenta akcji. Dladanegostanus, ACTIONS(s) dostarcza zbiór akcji jakie mogą być wykonane w stanie s. Model przejść opisujący co każda akcja robi. Funkcja RESULT(s, a) zwraca stan będący wynikiem wykonania akcji a wstanies. Przestrzenią stanów jest graf o węzłach będących stanami i łukach odpowiadającym możliwym przejściom. Test celu, który jest warunkiem sprawdzającym czy w danym stanie osiągnięto cel. Może on być zadany albo jako zbiór stanów albo jako predykat. Koszt ścieżki jest funkcją przypisującą każdej ścieżce liczbę. Koszt powinien odpowiadać mierze efektywności jaką uznaje agent. Koszt kroku c(s, a, s 0 ) 0, to koszt wykonania akcji a wstanies i osiągnięcie stanu s 0 = RESULT(s, a). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 85 / 198

6 (4g) Przykłady problemów: świat odkurzacza Stany: Stany określone są położeniem agenta i położeniem brudu. Agent może być w jednym z dwóch miejsc i każde z nich może być brudne lub nie. Zatem jest = 8 możliwych stanów. Większe środowisko z n miejscami ma n 2 n stanów. Stan początkowy: Każdystanmożebyćstanempoczątkowym. Akcje: Wkażdymstaniemożnawykonaćtrzyakcje:Left, Right, Suck. Model przejść: Pełnaprzestrzeństanówprzedstawionajestna następnej stronie. Test celu: Sprawdza czy we wszystkich miejscach jest czysto. Koszt ścieżki: Każdy koszt kroku równy 1, zatem koszt ścieżki jest równy licznie kroków na ścieżce. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 86 / 198

7 (4g) Przykłady problemów: świat odkurzacza L R L R S S R R L R L R L L S S S S L R L R S S P. Kobylański Wprowadzenie do Sztucznej Inteligencji 87 / 198

8 (4g) Przykłady problemów: 8-puzzle Start State Goal State P. Kobylański Wprowadzenie do Sztucznej Inteligencji 88 / 198

9 (4g) Przykłady problemów: 8-puzzle Stan: Stan opisany jest położeniem każdej z ośmiu płytek i jednego pustego miejsca w kwadracie o dziewięciu polach. Stan początkowy: Każdystanmożebyćprzyjętyzapoczątkowy. Zauważ, że każdy zadany cel może być osiągnięty z dokładnie połowy możliwych stanów. Akcje: Wnajprostszymsformułowaniurozpatrujesięczteryakcje przemieszczające puste pole w jednym z czterech kierunków: Left, Right, Up, Down. Różne podzbiory tych akcji są dopuszczalne w zależności od położenia pustego miejsca. Model przejścia: W wyniku wykonania akcji puste miejsce i odpowiednia sąsiednia płytka z liczbą zamieniają się miejscami. Test celu: Sprawdza czy osiągnięto konfigurację końcową. Możliwe są inne inne konfiguracje końcowe. Koszt ścieżki: Każdy koszt kroku równy 1, zatem koszt ścieżki jest równy liczbie kroków na ścieżce. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 89 / 198

10 (4g) Przykłady problemów: problem 8 hetmanów P. Kobylański Wprowadzenie do Sztucznej Inteligencji 90 / 198

11 (4g) Przykłady problemów: problem 8 hetmanów Stany: Każderozmieszczenieod0do8hetmanównaszachownicy jest stanem. Stan początkowy: Pusta szachownica. Akcja: Dostawieniejednegohetmananapustepoleszachownicy. Model przejścia: Zwracaszachownicęzdostawionymjednym hetmanem. Test celu: 8hetmanówustawionychnaplanszy,żadenniejest atakowany. Wpowyższymsformułowaniujest stanów. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 91 / 198

12 (4g) Przykłady problemów: problem 8 hetmanów Stany: Każderozmieszczenien hetmanów (0 apple n apple 8), po jednym w n skrajnie lewych kolumnach. Stan początkowy: Pusta szachownica. Akcja: Dostawienie jednego hetmana w skrajnie lewej pustej kolumnie, na takiej pozycji, która nie jest bita przez żadnego z hetmanów na lewo od dostawianego hetmana. Model przejścia: Zwracaszachownicęzdostawionymjednym hetmanem. Test celu: 8hetmanówustawionychnaplanszy,żadenniejest atakowany. Wpowyższymsformułowaniujesttylko2057stanów. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 92 / 198

13 (4g) Przykłady problemów: problemy rzeczywiste wyznaczanie tras wyznaczanie objazdów (tras będących cyklem) problem komiwojażera projektowanie VLSI nawigacja robotów automatyczny montaż podzespołów P. Kobylański Wprowadzenie do Sztucznej Inteligencji 93 / 198

14 (4g) Poszukiwanie rozwiązania Dopuszczalne ciągi akcji rozpoczynające się w stanie początkowym tworzą drzewo poszukiwań. Węzły w drzewie poszukiwań odpowiadają stanom a rozwidlenia odpowiadają akcjom. Rozszerzenie (expanding) stanu, polega na zastosowaniu do niego wszystkich dopuszczalnych akcji, co generuje nowy zbiór stanów. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 94 / 198

15 (4g) Poszukiwanie rozwiązania: przegląd drzewa function TREE-SEARCH(problem) returns asolution, orfailure initialize the frontier using the initial state of problem loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution expand the chosen node, adding the resulting nodes to the frontier P. Kobylański Wprowadzenie do Sztucznej Inteligencji 95 / 198

16 (4g) Poszukiwanie rozwiązania: przegląd grafu function GRAPH-SEARCH(problem) returns asolution, orfailure initialize the frontier using the initial state of problem initialize the explored set to be empty loop do if the frontier is empty then return failure choose a leaf node and remove it from the frontier if the node contains a goal state then return the corresponding solution add the node to the explored set expand the chosen node, adding the resulting nodes to the frontier only if not in the frontier or explored set P. Kobylański Wprowadzenie do Sztucznej Inteligencji 96 / 198

17 (4g) Poszukiwanie rozwiązania: infrastruktura dla algorytmu poszukiwania Dla każdego węzła n wdrzewie,mamystrukturęzawierającąnastępujące składowe: n.state: stan z przestrzeni stanów odpowiadający węzłowi; n.parent: węzeł w drzewie z którego wygenerowano ten węzeł; n.action: akcja jaką zastosowano u rodzica aby wygenerować ten węzeł; n.path-cost: koszt, oznaczany tradycyjnie przez g(n), ścieżki od stanu początkowego do węzła, zgodnie ze wskaźnikami na rodziców. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 97 / 198

18 (4g) Poszukiwanie rozwiązania: infrastruktura dla algorytmu poszukiwania function CHILD-NODE(problem, parent, action) returns anode return anodewith STATE = problem.result(parent.state, action), PARENT = parent, ACTION= action, PATH-COST = parent.path-cost + problem.step-cost(parent.state, action) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 98 / 198

19 (4g) Poszukiwanie rozwiązania: infrastruktura dla algorytmu poszukiwania Granica (frontier) będzie przechowywana w strukturze kolejki (queue) z następującymi operacjami: EMPTY?(queue) zwraca true tylko wtedy gdy nie ma więcej elementów w kolejce. POP(queue) usuwa element z kolejki i zwraca go. INSERT(element, queue) wstawia element i zwraca otrzymaną nową kolejkę. Możliwe są następujące kolejki: FIFO usuwa najstarszy element w kolejce; LIFO usuwa najnowszy element w kolejce (nazywa się też stosem); kolejka priorytetowa usuwa element o najwyższym priorytecie. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 99 / 198

20 (4g) Poszukiwanie rozwiązania: infrastruktura dla algorytmu poszukiwania PARENT 5 4 Node ACTION = Right PATH-COST = STATE P. Kobylański Wprowadzenie do Sztucznej Inteligencji 100 / 198

21 (4g) Poszukiwanie rozwiązania: ocena algorytmu poszukiwania Zupełność: Czyalgorytmgwarantujeznalezienierozwiązaniagdyono istnieje? Optymalność: Czyalgorytmznajdujerozwiązanieonajmniejszym koszcie ścieżki? Złożoność czasowa: Jak długo trwa poszukiwanie rozwiązania? Złożoność pamięciowa: Ilepamięcipotrzebanawykonanie poszukiwania? P. Kobylański Wprowadzenie do Sztucznej Inteligencji 101 / 198

22 (4g) Poszukiwanie rozwiązania: miary wydajności rozmiar przestrzeni stanów V + E współczynnik rozgałęzienia b równy maksymalnej liczbie następników dowolnego węzła głębokość równa liczbie kroków od korzenia do danego węzła P. Kobylański Wprowadzenie do Sztucznej Inteligencji 102 / 198

23 (4g) Strategie poszukiwania bez wiedzy: przeszukiwanie wszerz function BREADTH-FIRST-SEARCH(problem) returns asolution, orfailure node anodewithstate= problem.initial-state, PATH-COST = 0 if problem.goal-test(node.state) then return SOLUTION(node) frontier afifoqueuewithnode as the only element explored an empty set loop do if EMPTY?(frontier) then return failure node POP(frontier) /* choose the shallowest node in frontier */ add node.state to explored for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) if child.state is not in explored or frontier then if problem.goal-test(child.state) then return SOLUTION(child) frontier INSERT(child, frontier) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 103 / 198

24 (4g) Strategie poszukiwania bez wiedzy: przeszukiwanie wszerz Głębokość Węzły Czas Pamięć milisekund 107 kilobytes milisekund 10.6 megabytes sekund 1 gigabyte minuty 103gigabytes godziny 10terabytes dni 1 petabytes roku 99 petabytes lat 10 exabytes Przy założeniu, że współczynnik rozgałęzienia b = 10; 1 milion węzłów/sekundę; 1000 bajtów/węzeł. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 104 / 198

25 (4g) Strategie poszukiwania bez wiedzy: przeszukiwanie z jednolitym kosztem function UNIFORM-COST-SEARCH(problem) returns asolution, orfailure node anodewithstate= problem.initial-state, PATH-COST = 0 if problem.goal-test(node.state) then return SOLUTION(node) frontier apriorityqueueorderedbypath-cost,withnode as the only element explored an empty set loop do if EMPTY?(frontier) then return failure node POP(frontier) /* choose the lowest-cost node in frontier */ if problem.goal-test(node.state) then return SOLUTION(node) add node.state to explored for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) if child.state is not in explored or frontier then frontier INSERT(child, frontier) else if child.state is in frontier with higher PATH-COST then replace that frontier node with child P. Kobylański Wprowadzenie do Sztucznej Inteligencji 105 / 198

26 (4g) Strategie poszukiwania bez wiedzy: przeszukiwanie wgłąb function DEPTH-FIRST-SEARCH(problem) returns asolution, orfailure node anodewithstate= problem.initial-state, PATH-COST = 0 if problem.goal-test(node.state) then return SOLUTION(node) frontier a LIFO queue with node as the only element explored an empty set loop do if EMPTY?(frontier) then return failure node POP(frontier) /* choose the deepest node in frontier */ add node.state to explored for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) if child.state is not in explored or frontier then if problem.goal-test(child.state) then return SOLUTION(child) frontier INSERT(child, frontier) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 106 / 198

27 (4g) Strategie poszukiwania bez wiedzy: ograniczone przeszukiwanie wgłąb function DEPTH-LIMITED-SEARCH(problem, limit) returns asolution, orfailure/cutoff return RECURSIVE-DLS(MAKE-NODE(problem.INITIAL-STATE), problem, limit) function RECURSIVE-DLS(node, problem, limit) returns asolution, orfailure/cutoff if problem.goal-test(node.state) then return SOLUTION(node) else if limit = 0 then return cutoff else cuto _occured? false for each action in problem.actions(node.state) do child CHILD-NODE(problem, node, action) result RECURSIVE-DLS(child, problem, limit 1) if result = cuto then cuto _occured? true else if result 6= failure then return result if cuto _occured? then return cuto else return failure P. Kobylański Wprowadzenie do Sztucznej Inteligencji 107 / 198

28 (4g) Strategie poszukiwania bez wiedzy: iteratywne ograniczone przeszukiwanie wgłąb function ITERATIVE-DEEPENING-SEARCH(problem) returns asolution, orfailure for depth = 0 to 1 do result DEPTH-LIMITED-SEARCH(problem, depth) if result 6= cuto then return result P. Kobylański Wprowadzenie do Sztucznej Inteligencji 108 / 198

29 (4g) Strategie poszukiwania bez wiedzy: przeszukiwanie dwukierunkowe Start Goal P. Kobylański Wprowadzenie do Sztucznej Inteligencji 109 / 198

30 (4g) Strategie poszukiwania bez wiedzy: porównanie strategii Kryterium BFS UCS DFS DLS IDS BI-DIR Zupełna? tak? tak? nie nie tak tak? Czas O(b d ) O(b 1+bC /"c ) O(b m ) O(b l ) O(b d ) O(b d/2 ) Pamięć O(b d ) O(b 1+bC /"c ) O(bm) O(bl) O(bd) O(b d/2 ) Optymalna? tak? tak nie nie tak? tak? Gdzie b jest współczynnikiem rozgałęzienia; d jest głębokością najpłytszego rozwiązania; m jest maksymalną głębokością drzewa poszukiwania; l jest ograniczeniem głębokości; " jest dolnym ograniczeniem kosztu kroku; C jest kosztem optymalnego rozwiązania. Znak zapytania oznacza, że strategia ma tę własność ale przy pewnych dodatkowych założeniach. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 110 / 198

31 (4g) Heurystyczne strategie przeszukiwania: najpierw najlepszy strategia najpierw najlepszy jest ogólnym podejściem do przeszukiwania jest przykładem algorytmu TREE-SEARCH albo GRAPH-SEARCH, w którym węzeł do rozszerzenia jest wybierany na podstawie funkcji oceny (evaluation function) f (n) funkcja f (n) estymuje koszt należy zastąpić w algorytmie UNIFORM-COST-SEARCH funkcję g(n) funkcją f (n) większość strategii najpierw najlepszy używa funkcję heurystyczną: h(n) =estymacja kosztu najtańszej ścieżki od stanu w węźle n do celu funkcja heurystyczna zawiera dodatkową wiedzę o problemie wykorzystywaną w algorytmie przeszukiwania P. Kobylański Wprowadzenie do Sztucznej Inteligencji 111 / 198

32 (4g) Heurystyczne strategie przeszukiwania: zachłannie najpierw najlepszy strategia zachłanna najpierw najlepszy stara się rozszerzać węzeł, który jest najbliższy celowi za funkcję oceny przyjmuje funkcję heurystyczną: f (n) =h(n) Example Zgodnie ze strategią zachłanną, algorytm wyznaczający drogę między miastami może w pierwszej kolejności kierować się do miast, które są w linii prostej najbliżej celu (funkcja h SLD STRAIGHT-LINE DISTANE) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 112 / 198

33 (4g) Heurystyczne strategie przeszukiwania: A* szczególną formą strategii najpierw najlepszy jest algorytm A* walgorytmiea*oceniasięwęzełzapomocąnastępującejfunkcji: f (n) =g(n)+h(n) stosowana funkcja f (n) jest oceną najtańszego rozwiązania przechodzącego przez węzeł n algorytm A* różni się od algorytmu przeszukiwania z jednolitym kosztem (UNIFORM-COST-SEARCH) jedynie tym, że zamiast funkcji g(n) używa funkcję g(n)+h(n) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 113 / 198

34 (4g) Heurystyczne strategie przeszukiwania: A* przykład 71 Oradea Neamt Arad Zerind Sibiu Fagaras 87 Iasi 92 Vaslui Timisoara Rimnicu Vilcea 111 Lugoj 97 Pitesti Mehadia Urziceni 98 Hirsova 75 Drobeta 120 Craiova 138 Bucharest 90 Giurgiu 86 Eforie P. Kobylański Wprowadzenie do Sztucznej Inteligencji 114 / 198

35 (4g) Heurystyczne strategie przeszukiwania: A* przykład (a) The initial state (b) After expanding Arad Arad 366=0+366 Arad Sibiu 393= Timisoara 447= Zerind 449= (c) After expanding Sibiu Arad Sibiu Timisoara Zerind 447= = Arad Fagaras Oradea Rimnicu Vilcea 646= = = = (d) After expanding Rimnicu Vilcea Arad Sibiu Timisoara Zerind 447= = Arad Fagaras Oradea 646= = = Rimnicu Vilcea Craiova Pitesti Sibiu 526= = = (e) After expanding Fagaras Arad Sibiu Timisoara Zerind 447= = Arad Fagaras Oradea Rimnicu Vilcea 646= = Sibiu Bucharest Craiova Pitesti Sibiu 591= = = = = (f) After expanding Pitesti Arad Sibiu Timisoara Zerind 447= = Arad Fagaras Oradea Rimnicu Vilcea 646= = Sibiu Bucharest Craiova Pitesti Sibiu 591= = = = Bucharest Craiova Rimnicu Vilcea 418= = = P. Kobylański Wprowadzenie do Sztucznej Inteligencji 115 / 198

36 (4g) Heurystyczne strategie przeszukiwania: A* warunki na optymalność dopuszczalność h(n) jest dopuszczalna jeśli nigdy nie przeszacowuje kosztu osiągnięcia celu monotoniczność h(n) jest monotoniczna jeśli dla każdego węzła n ikażdego jego następnika n 0 wygenerowanego akcją a zachodzi: h(n) apple c(n, a, n 0 )+h(n 0 ) Theorem Każda heurystyczna funkcja monotoniczna jest dopuszczalna. Example Funkcja h SLD jest monotoniczna. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 116 / 198

37 (4g) Heurystyczne strategie przeszukiwania: A* optymalność Theorem Wersja A* w formie przeglądu drzewa (TREE-SEARCH) jest optymalna jeśli h(n) jest dopuszczalna. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 117 / 198

38 (4g) Heurystyczne strategie przeszukiwania: A* optymalność Theorem Wersja A* w formie przeglądu grafu (GRAPH-SEARCH) jest optymalna jeśli h(n) jest monotoniczna. Dowód. 1 Jeśli h(n) jest monotoniczna, to wartości f (n) na dowolnej ścieżce są niemalejące: f (n 0 )=g(n 0 )+h(n 0 )=g(n)+c(n, a, n 0 )+h(n 0 ) g(n)+h(n) =f (n) 2 Jeśli A* wybiera węzeł n do rozszerzenia, to optymalna ścieżka do n została znaleziona. W przeciwnym przypadku w granicy byłby inny węzeł n 0 na optymalnej ścieżce od węzła początkowego do n, ale z nierosnących wartości f na ścieżce, węzeł n 0 powinien być wybrany wcześniej. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 118 / 198

39 (4g) Heurystyczne strategie przeszukiwania: A* optymalność Wewnątrz konturu dla wartości V znajdują się węzły o ocenie f (n) apple V. CEL CEL a) gdy h(n) = 0 b) gdy h(n) dokładniej oszacowuje P. Kobylański Wprowadzenie do Sztucznej Inteligencji 119 / 198

40 (4g) Heurystyczne strategie przeszukiwania: A* przykład Dla heurystycznej funkcji h SLD : O Z N A T 380 S 400 R F I V L P D M C 420 G B U H E P. Kobylański Wprowadzenie do Sztucznej Inteligencji 120 / 198

41 (4g) Heurystyczne strategie przeszukiwania: A* optymalność Niech C będzie kosztem ścieżki optymalnego rozwiązania, wówczas A* rozszerza wszystkie węzły, dla których f (n) < C A* może rozszerzyć niektóre węzły, dla których f (n) =C A* nie rozszerza żadnego węzła, dla którego f (n) > C żaden inny algorytm znajdujący optymalne rozwiązanie nie gwarantuje rozszerzenia mniejszej liczby węzłów niż A* P. Kobylański Wprowadzenie do Sztucznej Inteligencji 121 / 198

42 (4g) Heurystyczne strategie przeszukiwania: A* złożoność obliczeniowa Załóżmy, że koszt kroku jest stały. niech =h h będzie błędem bezwzględnym, gdzie h jest rzeczywistym kosztem przejścia od korzenia do celu niech " =(h h)/h będzie błędem względnym analiza złożoności bardzo mocno zależy od przyjętej przestrzeni stanów załóżmy, że jest jeden stan będący celem a akcje są odwracalne (np. układanka 8-puzzle) złożoność czasowa A* jest rzędu O(b ) dla stałego kosztu kroku i głębokości rozwiązania d jest rzędu O(b "d ) bardzo istotna jest również złożoność pamięciowa ponieważ wszystkie algorytmy przeszukujące grafy przechowują w pamięci wszystkie wygenerowane węzły P. Kobylański Wprowadzenie do Sztucznej Inteligencji 122 / 198

43 (4g) Heurystyczne strategie przeszukiwania: IDA* najprostszą redukcją złożoności pamięciowej algorytmu A* jest zaadaptowanie w nim idei iteratywnego ograniczonego przeszukiwania algorytm IDA* używa dla odcięcia f -wartości g + h zamiast głębokości IDA* jest praktyczny dla wielu problemów z jednostkowym kosztem kroku i unika pamiętania posortowanej kolejki węzłów P. Kobylański Wprowadzenie do Sztucznej Inteligencji 123 / 198

44 (4g) Heurystyczne strategie przeszukiwania: heurystyczna z ograniczoną pamięcią function RECURSIVE-BEST-FIRST-SEARCH(problem) returns asolution, orfailure return RBFS(problem, MAKE-NODE(problem.INITIAL-STATE), 1) function RBFS(problem, node, f _limit) returns asolution,orfailureandanewf-cost limit if problem.goal-test(node.state) then return SOLUTION(node) successors [] for each action in problem.actions(node.state) do add CHILD-NODE(problem, node, action) intosuccessors if successors is empty then return failure, 1 for each s in successors do /* update f with value from previous search, if any */ s.f max(s.g + s.h, node.f ) loop do best the lowest f -value node in successors if best.f > f _limit then return failure, best.f alternative the second-lowest f -value among successors result, best.f RBFS(problem, best, min(f _limit, alternative)) if result 6= failure then return result P. Kobylański Wprowadzenie do Sztucznej Inteligencji 124 / 198

45 (4g) Heurystyczne strategie przeszukiwania: heurystyczna z ograniczoną pamięcią przykład (a) After expanding Arad, Sibiu, and Rimnicu Vilcea 447 Sibiu Arad Fagaras Oradea Rimnicu Vilcea Arad 366 Timisoara Zerind Craiova Pitesti Sibiu (b) After unwinding back to Sibiu and expanding Fagaras Arad 366 Arad 447 Sibiu Fagaras Oradea Rimnicu Vilcea Timisoara 447 Zerind 449 Sibiu 591 Bucharest 450 (c) After switching back to Rimnicu Vilcea and expanding Pitesti Arad Sibiu 393 Timisoara 447 Zerind Arad Fagaras Oradea Rimnicu Vilcea Craiova Pitesti Sibiu Bucharest Craiova Rimnicu Vilcea P. Kobylański Wprowadzenie do Sztucznej Inteligencji 125 / 198

46 (4g) Heurystyczne strategie przeszukiwania: heurystyczna z ograniczoną pamięcią optymalność Theorem Jeśli h(n) jest dopuszczalna, to RBFS jest algorytmem optymalnym. złożoność pamięciowa RBFS jest liniowa jest w stosunku do głębokości najgłębszego optymalnego rozwiązania RBFS, podobnie jak IDA*, wykorzystuje za mało pamięci: między iteracjami IDA* przechowuje tylko jedną wartość: limit f -kosztu między iteracjami RBFS przechowuję więcej informacji ale używa tylko liniowo dużej pamięci, nawet jeśli dostępne jest jej więcej P. Kobylański Wprowadzenie do Sztucznej Inteligencji 126 / 198

47 (4g) Funkcje heurystyczne: układanka 8-puzzle Średnia długość rozwiązania dla losowego przykładu 8-puzzle wynosi 22. Współczynnik rozgałęzienia wynosi około 3. Pełne drzewo przeglądu ma około stanów. Przeszukiwanie grafu zmniejsza tę liczbę około razy, gdyż jest tylko 9!/2 = 181, 440 różnych osiągalnych stanów. Układanka 15-puzzle ma jednak około różnych osiągalnych stanów, zatem konieczne jest opracowanie heurystyk. Dwie proste heurystyki opracowane dla 15-puzzle: h 1 liczba płytek nie znajdujących się na swoim docelowym miejscu h 2 suma odległości płytek od ich docelowych miejsc (odległość Manhattan) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 127 / 198

48 (4g) Funkcje heurystyczne: wpływ heurystyki na działanie jeśli liczba węzłów generowanych przez A* wynosi N agłębokośćd, to efektywny współczynnik rozwidlenia b jest średnią liczbą potomków w zrównoważonym drzewie o N + 1węzłachi głębokości d: N + 1 = 1 + b +(b ) 2 + +(b ) d dobrze zaprojektowana heurystyka ma wartość b bliską 1 ocenę h 1 i h 2 przeprowadzono eksperymentalnie rozwiązując 1200 przykładów po 100 dla każdej z długości rozwiązania 2, 4,...,24 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 128 / 198

49 (4g) Funkcje heurystyczne: wpływ heurystyki na działanie Tabela : Średnia ze 100 przykładów 8-puzzle dla każdej z długości rozwiązania d Liczba generowanych węzłów Współczynnik efektywnego rozgałęzienia d IDS A (h 1 ) A (h 2 ) IDS A (h 1 ) A (h 2 ) P. Kobylański Wprowadzenie do Sztucznej Inteligencji 129 / 198

50 (4g) Funkcje heurystyczne: wpływ heurystyki na działanie dla d = 12 algorytm A* z heurystyką h 2 jest razy bardziej efektywny od algorytmu IDS heurystyka h 2 dominuje heurystykę h 1,gdyżdladowolnegon h 2 (n) h 1 (n) heurystyka h 2 jest lepsza od heurystyki h 1 P. Kobylański Wprowadzenie do Sztucznej Inteligencji 130 / 198

51 (4g) Funkcje heurystyczne: tworzenie dopuszczalnych heurystyk z relaksacji problemów relaksacją problemu nazywamy takie przeformułowanie problemu, w którym osłabiono warunki Example (Relaksacje układanki 8-puzzle) Zregułyopisującejakcję: Płytka może być przesunięta z kwadratu A na kwadrat B jeśli A poziomo lub pionowo sąsiaduje z B i B jest pusty. możemy wygenerować trzy relaksacje przez usunięcie jednego lub obu warunków: 1 Płytka może być przesunięta z kwadratu A na kwadrat B jeśli A sąsiaduje z B. 2 Płytka może być przesunięta z kwadratu A na kwadrat B jeśli B jest pusty. 3 Płytka może być przesunięta z kwadratu A na kwadrat B. Z relaksacji (1) można wyprowadzić h 2,z(2)można wyprowadzić heurystykę Gaschinga, natomiastz(3)można wyprowadzić h 1. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 131 / 198

52 (4g) Funkcje heurystyczne: tworzenie dopuszczalnych heurystyk z relaksacji problemów załóżmy, że mamy kolekcję dopuszczalnych heurystyk h 1, h 2,...,h m i żadna z nich nie dominuje żadnej innej poniższa heurystyka jest dopuszczalna, monotoniczna i dominuje każdą ze swoich składowych: h(n) =max{h 1 (n), h 2 (n),...,h m (n)} program ABSOLVER (Prieditis, 1993) generuje automatycznie heurystyki na podstawie relaksacji problemu i innych technik ABSOLVER wygenerował nową heurystykę dla 8-puzzle, która była lepsza od znanych wcześniej oraz wygenerował pierwszą użyteczną heurystykę dla kostki Rubika P. Kobylański Wprowadzenie do Sztucznej Inteligencji 132 / 198

53 (4g) Funkcje heurystyczne: tworzenie dopuszczalnych heurystyk z podproblemów Przykład podproblemu w układance 8-puzzle: Start State Goal State Należy ułożyć liczby 1, 2, 3, 4 nie przejmując się położeniem innych liczb. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 133 / 198

54 (4g) Funkcje heurystyczne: tworzenie dopuszczalnych heurystyk z podproblemów Koszt rozwiązania podproblemu jest dolnym oszacowaniem rozwiązania pełnego problemu. Koszt rozwiązania podproblemu można traktować jako funkcję heurystyczną h(n). Można rozpatrywać różne podproblemy odpowiadające wzorcom , , iinnych. Uzyskane w ten sposób heurystyki można łączyć w jedną istotnie lepszą od nich heurystyk. Nie każde oceny z różnych wzorców można dodawać (mogą mieć wspólne ruchy). Mówimy, że dwa wzorce są rozłączne jeśli odpowiadają podproblemom, w których porusza się rozłączne zbiory płytek. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 134 / 198

55 (4g) Funkcje heurystyczne: tworzenie dopuszczalnych heurystyk z podproblemów Tworzy się bazy rozłącznych wzorców. Oceny z takich wzorców można dodawać nie naruszając dopuszczalności heurystyki. Stosując bazę rozłącznych wzorców można rozwiązać 15-puzzle w czasie kilku milisekund liczba generowanych węzłów jest zmniejszona krotnie w stosunku do odległości Manhattan. Dla układanki 24-puzzle przyspieszenie jest milionkrotne. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 135 / 198

56 (4g) Funkcje heurystyczne: uczenie heurystyk niech x 1 (n) i x 2 (n) będą dwiema miarami dla węzła n, np.x 1 (n) jest liczbą płytek nie na miejscu a x 2 (n) liczbą par sąsiadujących płytek, które nie sąsiadują w stanie będącym celem zocenx 1 (n) i x 2 (n) można stworzyć liniową kombinację: h(n) =c 1 x 1 (n)+c 2 x 2 (n) współczynniki c 1 i c 2 są korygowane aby uzyskać jak najlepszą ocenę heurystyczną powyższa heurystyka spełnia warunek h(n) =0dlawęzła odpowiadającego stanowi końcowemu powyższa heurystyka nie musi być dopuszczalna ani monotoniczna P. Kobylański Wprowadzenie do Sztucznej Inteligencji 136 / 198

57 (4g) Dodatek: kody źródłowe w Prologu :- module(trans, [start/1, action/3, goal/1]). start(s0). action(s0, a1, s1). action(s1, a2, s2). action(s2, a3, s3). action(a3, a4, s0). action(s1, a5, s4). action(s4, a6, s5). action(s2, a7, s5). goal(s5). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 137 / 198

58 (4g) Dodatek: kody źródłowe w Prologu :- module(dfs, [dfs/1]). dfs(solution) :- start(start), dfs(start, [], Solution). dfs(state, _, []) :- goal(state). dfs(state, Explored, [Action Rest]) :- action(state, Action, New), \+ member(new, Explored), dfs(new, [State Explored], Rest). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 138 / 198

59 (4g) Dodatek: kody źródłowe w Prologu :- module(bfs, [bfs/1]). bfs(solution) :- start(start), bfs([(start, [])], [], Solution). bfs([(state, Solution) _], _, Solution) :- goal(state). bfs([(state, Path) Rest], Explored, Solution) :- findall((new, [Action Path]), (action(state, Action, New), \+member(new, Explored)), Successors), append(rest, Successors, Queue), bfs(queue, [State Explored], Solution). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 139 / 198

60 (4g) Dodatek: kody źródłowe w Prologu :- module(ids, [ids/1]). ids(solution) :- start(start), nat(limit), rdls(start, Limit, [], Solution). rdls(state, _, _, []) :- goal(state). rdls(state, Limit, Explored, [Action Rest]) :- Limit > 0, Limit1 is Limit - 1, action(state, Action, New), \+ member(new, Explored), rdls(new, Limit1, [State Explored], Rest). nat(0). nat(n) :- nat(n1), N is N1+1. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 140 / 198

61 (4g) Dodatek: kody źródłowe w Prologu Example (Farmer-wilk-koza-kapusta) start([farmer, wilk, koza, kapusta] - []). goal([] - _). action(l1-p1, na_prawy, L2-P2) :- select(farmer, L1, L2), P2 = [farmer P1], dopuszczalny(l2). action(l1-p1, na_lewy, L2-P2) :- select(farmer, P1, P2), L2 = [farmer L1], dopuszczalny(p2). action(l1-p1, na_prawy(x), L3-P2) :- select(farmer, L1, L2), select(x, L2, L3), P2 = [farmer, X P1], dopuszczalny(l3). action(l1-p1, na_lewy(x), L2-P3) :- select(farmer, P1, P2), select(x, P2, P3), L2 = [farmer, X L1], dopuszczalny(p3). dopuszczalny(x) :- \+ (member(koza, X), member(kapusta, X)), \+ (member(wilk, X), member(koza, X)). P. Kobylański Wprowadzenie do Sztucznej Inteligencji 141 / 198

62 (4g) Dodatek: kody źródłowe w Prologu Example (cd.)?- time(dfs(x)). % 276 inferences, CPU in seconds (94% CPU, Lips) X = [na_prawy(koza), na_lewy, na_prawy(wilk), na_lewy(koza), na_prawy(kapusta), na_lewy, na_prawy(koza)].?- time(bfs(x)). % 1,485 inferences, CPU in seconds (94% CPU, Lips) X = [na_prawy(koza), na_lewy, na_prawy(kapusta), na_lewy(koza), na_prawy(wilk), na_lewy, na_prawy(koza)].?- time(ids(x)). % 2,220 inferences, CPU in seconds (99% CPU, Lips) X = [na_prawy(koza), na_lewy, na_prawy(wilk), na_lewy(koza), na_prawy(kapusta), na_lewy, na_prawy(koza)]. P. Kobylański Wprowadzenie do Sztucznej Inteligencji 142 / 198

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

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

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

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

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

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

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

Bardziej szczegółowo

SID Wykład 1 Wprowadzenie

SID Wykład 1 Wprowadzenie SID Wykład 1 Wprowadzenie Wydział Matematyki, Informatyki i Mechaniki UW slezak@mimuw.edu.pl Program przedmiotu algorytmy heurystyczne problemy optymalizacyjne strategie w grach wnioskowanie w logice planowanie

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

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

SID Wykład 2 Przeszukiwanie

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

Bardziej szczegółowo

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

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

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

Bardziej szczegółowo

wykład 2 Inteligentny agent i jego otoczenie Przeszukiwanie dla problem-solving dr inż. Joanna Kołodziejczyk Zakład Sztucznej Inteligencji ISZiMM

wykład 2 Inteligentny agent i jego otoczenie Przeszukiwanie dla problem-solving dr inż. Joanna Kołodziejczyk Zakład Sztucznej Inteligencji ISZiMM Inteligentny agent i jego otoczenie Przeszukiwanie dla problem-solving wykład 2 dr inż. Joanna Kołodziejczyk jkolodziejczyk@wi.ps.pl Zakład Sztucznej Inteligencji ISZiMM ESI - wykład 2 p. 1 Plan wykładu

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

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

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

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA Instytut Automatyki, Robotyki i Informatyki Politechniki Poznańskiej Adam Meissner Adam.Meissner@put.poznan.pl http://www.man.poznan.pl/~ameis Literatura SZTUCZNA INTELIGENCJA Modelowanie problemów za

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

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

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

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

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

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

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

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

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

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

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

Strategie przeszukiwania ślepe i heurystyczne

Strategie przeszukiwania ślepe i heurystyczne Strategie przeszukiwania ślepe i heurystyczne dr inż. Joanna Kołodziejczyk jkolodziejczyk@wi.ps.pl Zakład Sztucznej Inteligencji ISZiMM ESI - wykład 3 p. 1 Przeszukiwanie charakterystyka zadań problemsolving

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

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

Sztuczna Inteligencja (SI)

Sztuczna Inteligencja (SI) Sztuczna Inteligencja (SI) Wykład dla III roku ZSI Na podstawie: Stuart Russel & Peter Norvig Artificial Intelligence: A Modern Approach, Prentice Hall, 1995. http://www.cs.berkeley.edu/ russell/aima 1

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

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

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

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

Bardziej szczegółowo

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: 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

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład 2 Strategie przeszukiwania - ślepe i heurystyczne Algorytmy ewolucyjne 03 kwietnia 2011 Plan wykładu 1 Strategie czyli jak znaleźć rozwiązanie problemu 2 Jak wykonać przeszukiwanie Przeszukiwanie

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

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

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

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

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

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

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

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np. Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa

Bardziej szczegółowo

METODY HEURYSTYCZNE wykład 1

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

Bardziej szczegółowo

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

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

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

METODY HEURYSTYCZNE wykład 1

METODY HEURYSTYCZNE wykład 1 METODY HEURYSTYCZNE wykład 1 1 MB4 n2z, sem. II prowadzący: dr hab. inż. Witold Beluch (p. 149) wykład: 9h laboratorium: 9h ZAJĘCIA KOŃCZĄ SIĘ EGZAMINEM OCENA KOŃCOWA: O=0.65k+0.35L k- ocena z kolokwiom

Bardziej szczegółowo

Sztuczna Inteligencja

Sztuczna Inteligencja Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Sztuczna Inteligencja Krzysztof Grąbczewski Katedra Informatyki Stosowanej Uniwersytet Mikołaja Kopernika

Bardziej szczegółowo

wykład 1 Inteligentny agent i jego otoczenie Szukanie jako metoda rozwiązywania problemów dr inż. Joanna Kołodziejczyk

wykład 1 Inteligentny agent i jego otoczenie Szukanie jako metoda rozwiązywania problemów dr inż. Joanna Kołodziejczyk Inteligentny agent i jego otoczenie Szukanie jako metoda rozwiązywania problemów wykład 1 dr inż. Joanna Kołodziejczyk jkolodziejczyk@wi.ps.pl Zakład Sztucznej Inteligencji ISZiMM ESI - wykład 1 p. 1 Literatura

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

Sortowanie. Bartman Jacek Algorytmy i struktury

Sortowanie. Bartman Jacek Algorytmy i struktury Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39

Bardziej szczegółowo

Sztuczna inteligencja w grach

Sztuczna inteligencja w grach Sztuczna inteligencja w grach Krzysztof Grąbczewski Katedra Informatyki Stosowanej Uniwersytet Mikołaja Kopernika Toruń 4 czerwca 2019 http://www.is.umk.pl/~kg/zajecia/siwg/siwg.pdf 1 / 127 Literatura

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

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

Stos LIFO Last In First Out

Stos LIFO Last In First Out Stos LIFO Last In First Out Operacje: push - dodanie elementu na stos pop - usunięcie elementu ze stosu empty - sprawdzenie, czy stos jest pusty size - zwrócenie liczby elementów na stosie value (peek)

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

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

ĆWICZENIE 1: Przeszukiwanie grafów strategie heurystyczne

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

Bardziej szczegółowo

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

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

METODY HEURYSTYCZNE wykład 2

METODY HEURYSTYCZNE wykład 2 METODY HEURYSTYCZNE wykład 2 1 STRATEGIE HEURYSTYCZNE 2 METODA WZROSTU (SIMPLE) HILL-CLIMBING Operator - działanie podejmowane w stosunku do stanu aktualnego aby otrzymać z niego kolejny stan. 1. Wygeneruj

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

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

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

Wstęp do programowania. Zastosowania stosów i kolejek. Piotr Chrząstowski-Wachtel Wstęp do programowania Zastosowania stosów i kolejek Piotr Chrząstowski-Wachtel FIFO - LIFO Kolejki i stosy służą do przechowywania wartości zbiorów dynamicznych, czyli takich, które powstają przez dodawanie

Bardziej szczegółowo

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych Modelowanie hierarchicznych struktur w relacyjnych bazach danych Wiktor Warmus (wiktorwarmus@gmail.com) Kamil Witecki (kamil@witecki.net.pl) 5 maja 2010 Motywacje Teoria relacyjnych baz danych Do czego

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

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

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

Listy, kolejki, stosy

Listy, kolejki, stosy Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

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

Bardziej szczegółowo

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

METODY HEURYSTYCZNE wykład 2

METODY HEURYSTYCZNE wykład 2 www.kwmimkm.polsl.pl METODY HEURYSTYCZNE wykład 2 1 www.kwmimkm.polsl.pl STRATEGIE HEURYSTYCZNE 2 www.kwmimkm.polsl.pl METODA WZROSTU (SIMPLE) HILL-CLIMBING Operator - działanie podejmowane w stosunku

Bardziej szczegółowo

STRATEGIE HEURYSTYCZNE

STRATEGIE HEURYSTYCZNE HC: PROBLEM 8 KRÓLOWYCH METODY HEURYSTYCZNE Lokalne minimum: wykład 2 1 Stan ma 1 konflikt. Każde przesunięcie w kolumnie zwiększa liczbę konfliktów. 4 STRATEGIE HEURYSTYCZNE 2 METODA NAJSZYBSZEGO WZROSTU

Bardziej szczegółowo

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

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

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

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

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

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

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

dodatkowe operacje dla kopca binarnego: typu min oraz typu max: ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu

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

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

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

Wykład 6. Drzewa poszukiwań binarnych (BST)

Wykład 6. Drzewa poszukiwań binarnych (BST) Wykład 6 Drzewa poszukiwań binarnych (BST) 1 O czym będziemy mówić Definicja Operacje na drzewach BST: Search Minimum, Maximum Predecessor, Successor Insert, Delete Struktura losowo budowanych drzew BST

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

Strategia "dziel i zwyciężaj"

Strategia dziel i zwyciężaj Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania

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

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

Wykład 2. Poprawność algorytmów

Wykład 2. Poprawność algorytmów Wykład 2 Poprawność algorytmów 1 Przegląd Ø Poprawność algorytmów Ø Podstawy matematyczne: Przyrost funkcji i notacje asymptotyczne Sumowanie szeregów Indukcja matematyczna 2 Poprawność algorytmów Ø Algorytm

Bardziej szczegółowo

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych Algorytmy i Struktury Danych Wykład IV Sortowania cd. Elementarne struktury danych 1 Co dziś? Dolna granica sortowań Mediany i statystyki pozycyjne Warstwa implementacji Warstwa abstrakcji #tablice #listy

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień 2014 1 / 26 Algorytmy zachłanne Strategia polegająca

Bardziej szczegółowo

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Więcej o sprawności algorytmów Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie Załóżmy, że możemy wykonać dane zadanie przy użyciu dwóch algorytmów: jednego o złożoności czasowej

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

Zaawansowane programowanie

Zaawansowane programowanie Zaawansowane programowanie wykład 3: inne heurystyki prof. dr hab. inż. Marta Kasprzak Instytut Informatyki, Politechnika Poznańska Heurystyką nazywamy algorytm (metodę) zwracający rozwiązanie przybliżone.

Bardziej szczegółowo