Rozwiązywanie problemów przez przeszukiwanie. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach
|
|
- Przybysław Stachowiak
- 7 lat temu
- Przeglądów:
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
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ółowoSztuczna 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ółowoPodstawy 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ółowoPodstawy 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ółowoHeurystyczne 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ółowoElementy 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ółowoWPROWADZENIE 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ółowoSID 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ółowoHeurystyki. 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ółowoElementy 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ółowoSID 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ółowoUniwersytet 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ółowoElementy 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ółowowykł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ółowoRozwią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ółowoSZTUCZNA 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ółowoWykł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ółowoWprowadzenie 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ółowoSZTUCZNA 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
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ółowoMetody 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ółowoWprowadzenie 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ółowoWprowadzenie 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ółowoPodstawy 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ółowoPrzeszukiwanie 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ółowoWstę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ółowoWysokość 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ółowoZadanie 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ółowoPlanowanie 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ółowoWstę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ółowoprowadzą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ółowoWykł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ółowoStrategie 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ółowoZASADY 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ółowoOgó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ółowoSztuczna 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ółowoStruktury 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ółowoLABORATORIUM 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ółowoWykł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ółowoDrzewo. 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ółowoPodstawy 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ółowoAlgorytmy 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ółowoMarcel 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ółowoAlgorytmy 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ółowoElementy 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ółowoWybrane 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ółowoDrzewa 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ółowoMETODY 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ółowoDział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ółowoPorzą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ółowoStruktury 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ółowoMETODY 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ółowoSztuczna 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ółowowykł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ółowoAlgorytmy 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ółowoSortowanie. 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ółowoSztuczna 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ółowoSztuczna 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ółowoWykł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ółowoStos 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ółowoALHE 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ółowoGrafem 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
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ółowoAlgorytmy 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ółowoKompresja 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ółowoMETODY 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ółowoOSTASZEWSKI 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ółowoPodstawy 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ółowoWstę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ółowoModelowanie 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ółowoZastosowania 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ółowoAlgorytmiczna 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ółowoProgramowanie 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ółowoSortowanie - 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ółowoListy, 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ółowoProgramowanie 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ółowoEGZAMIN - 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ółowoMETODY 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ółowoSTRATEGIE 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ółowoRó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ółowoProgramowanie 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ółowoAlgorytmy 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ółowoHeurystyczne 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ółowoDrzewa 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ółowoAlgorytmy 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ółowododatkowe 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ółowoKolejka 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ółowoPrzeszukiwanie 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ółowo1. 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ółowoWykł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ółowoStruktury 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ółowoStrategia "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ółowoTeoretyczne 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ółowoWstę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ółowoWykł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ółowoAlgorytmy 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ółowoWstę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ółowoPoró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ółowoWykł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ółowoZaawansowane 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