Sztuczna Inteligencja
|
|
- Bronisława Kaźmierczak
- 7 lat temu
- Przeglądów:
Transkrypt
1 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 Toruń 4 czerwca / 208
2 Program zajęć Wprowadzenie, historia, filozofia AI Metody szukania (proste, heurystyczne, z oponentem, programowanie genetyczne) Logika w AI (zdaniowa, klasyczna, rozmyta, zbiorów przybliżonych) Języki AI - Prolog Języki AI - Lisp/Scheme Maszyny stanów skończonych, procesy Markowa Drzewa zachowań Sieci Bayesowskie Systemy agentowe Rozumienie języka naturalnego Uczenie maszynowe i odkrywanie wiedzy z danych 2 / 208
3 Literatura Notatki z wykładu. Stuart Rusell, Peter Norvig, Artificial Intelligence. A Modern Approach., 2nd Edition 2003, 3rd Edition 2010, Patrick H. Winston, Artificial Intelligence, 3rd Edition, Addison Wesley Mariusz Flasiński, Wstęp do sztucznej inteligencji, Wydawnictwo Naukowe PWN, Warszawa / 208
4 Agent, agenty Agent ktoś kto (lub coś co) postrzega środowisko za pomocą czujników i wpływa na środowisko (działa) poprzez urządzenia wykonawcze (ang. agent, environment, sensor, actuator). Spostrzeżenie (ang. percept) stan wejść agenta w danej chwili. Agent może analizować ciąg spostrzeżeń (ang. percept sequence) całą historię stanów wejść. Agent Sensors Percepts? Environment Actuators Actions 4 / 208
5 Agenty Funkcja agenta mapowanie ciągów spostrzeżeń na działania=akcje (wejść na wyjścia) tabela działań, program agenta. Prosty przykład środowiska dla agenta: A B Tabela działań: Ciąg spostrzeżeń Działanie [A, czysto] w prawo [A, brudno] odkurzaj [A, czysto], [A, czysto] w prawo [A, czysto], [A, brudno] odkurzaj... 5 / 208
6 Ocena działań agenta Agent racjonalny Miary jakości działań zależne od celu, jakiemu agent ma służyć Racjonalność = maksymalizacja miary jakości działań. Przykład odkurzacza agent odkurzaj gdy brudno przejdź do drugiego pomieszczenia, gdy czysto racjonalny, czy nie? ilość zebranego kurzu, ocena czystości pomieszczeń, kary za zużywanie energii,... Warunki środowiska istotnie wpływają na racjonalność działań znajomość geografii z pomieszczenia A nie ma sensu próbować iść w lewo, ocena prawdopodobieństwa wystąpienia kurzu. Cechy zaawansowanych agentów: gromadzenie informacji, uczenie się, autonomiczność. 6 / 208
7 Środowiska Specyfikacja zadania dla agenta: Jakość działania (ang. Performance) Środowisko (ang. Environment) Urządzenia wykonawcze (ang. Actuators) Czujniki (ang. Sensors) Przykład: taksówkarz Miara jakości: bezpieczeństwo, czas dojazdu, przestrzeganie przepisów, wygoda podróży, maksymalizacja zysku Środowisko: drogi, inne pojazdy, piesi, klienci Urz. wykonawcze: kierownica, pedał gazu, pedał hamulca, przełączniki, klakson, wyświetlacz dla klientów Czujniki: kamery, sonar, prędkościomierz, GPS, licznik, miernik przyspieszenia, czujniki silnika, klawiatura 7 / 208
8 Właściwości środowisk w pełni i częściowo obserwowalne (ang. fully/partially observable) deterministyczne i stochastyczne (ang. deterministic/stochastic) epizodyczne i sekwencyjne (ang. episodic/sequential) statyczne i dynamiczne (ang. static/dynamic) dyskretne i ciągłe (ang. discrete/continuous) jedno- i wieloagentowe (ang. single/multiagent) współpracy i współzawodnictwa (ang. cooperative/competitive) 8 / 208
9 Struktury agentów Agent = architektura + program Architektura: czujniki i urządzenia wykonawcze Programy zapisywane różnymi językami meta-kod, schematy blokowe, zestawy reguł warunek-działanie,... Podstawowe typy agentów: działania jako proste odruchy (ang. simple reflex), działanie oparte na modelach (ang. model-based), ukierunkowanie na cele (ang. goal-based), użyteczność działań (ang. utility-based). 9 / 208
10 Agenty prostych odruchów Programy odpowiadają wprost tabelom działań bądź zestawom reguł warunek działanie Agent Sensors What the world is like now Condition-action rules What action I should do now Environment Actuators 10 / 208
11 Odruchy oparte na modelach Wewnętrzna pamięć (stan) pozwala uwzględniać aspekty nieobserwowalne w bieżącym wejściu. Model świata uwzględniający wpływ działania agenta. State How the world evolves What my actions do Condition-action rules Sensors What the world is like now What action I should do now Environment Agent Actuators 11 / 208
12 Agenty ukierunkowane na cele Ocena na ile działanie agenta zbliży go do celu. Bardziej złożone procedury maksymalizacji funkcji celu, procesy szukania, planowanie. Sensors State How the world evolves What the world is like now What my actions do Goals What it will be like if I do action A What action I should do now Environment Agent Actuators 12 / 208
13 Agenty z funkcjami użyteczności Funkcje użyteczności oceniają jakość decyzji (poziom satysfakcji z danego działania) State How the world evolves Sensors What the world is like now What my actions do Utility What it will be like if I do action A How happy I will be in such a state Environment Agent What action I should do now Actuators 13 / 208
14 Agenty uczące się Uczenie się może wzbogacić każdy z typów agentów. Część wykonawcza korzysta z wyników procesów uczenia się. Uczenie się ze wzmocnieniem (z nagrodą lub karą). Performance standard Critic Sensors feedback learning goals Learning element changes knowledge Performance element Environment Problem generator Agent Actuators 14 / 208
15 Rozwiązywanie problemów Definicja problemu: zbiór stanów S (przestrzeń), stan początkowy s 0 S, cel (podzbiór zbioru stanów G S, funkcja-test osiągnięcia celu G : S {0, 1}), zbiór możliwych działań agenta A i ich skutków w danym kontekście, często funkcja następnika (ang. successor) succ : S 2 A S, funkcja kosztu (koszt ścieżki, koszt kroku). Rozwiązanie = ścieżka od stanu początkowego do celu. 15 / 208
16 Problem szukania Proces szukania To proces wyznaczający sekwencję działań prowadzących do celu. Algorytm szukania otrzymuje na wejściu definicję problemu i zwraca ciąg działań (rozwiązanie). Środowisko agenta stosującego problemy szukania: obserwowalne (przynajmniej znany stan początkowy), deteministyczne, statyczne (założenie dynamiczności istotnie zmienia problem), dyskretne, jednoagentowe. Różne cele znalezienie jakiejkolwiek drogi, znalezienie optymalnej drogi, znalezienie stanu celu, działanie w czasie rzeczywistym, z oponentem itp. 16 / 208
17 Przykład odkurzacz Stany: S = {L, P } {czysto, brudno} 2 pozycja odkurzacza i stan pomieszczeń (2 2 2 = 8 stanów). Stan początkowy: Dowolny z możliwych. Test celu: Działania: Cel osiągnięty gdy w obu pomieszczeniach czysto. {w lewo, w prawo, odkurzaj}. Koszt ścieżki: Liczba kroków (fragmentów ścieżki). Ogólniej: dla n pomieszczeń mamy n 2 n stanów. 17 / 208
18 Przykład odkurzacz L R R S L S L R R L R R S L S S L S L R R L S S 18 / 208
19 Przykład ósemka Popularna zabawka polegająca na ustawianiu w kolejności ośmiu ponumerowanych kostek poprzez przesuwanie ich w zamkniętej kwadratowej tabliczce 9 pól Start State Goal State 19 / 208
20 Przykład ósemka Stany: opis położeń wszystkich kostek w tabliczce (9! możliwości). Stan początkowy: Dowolny z możliwych. Każdy cel jest osiągalny z połowy stanów początkowych. Test celu: Działania: Kostki ułożone w kolejności, puste miejsce w lewym górnym rogu (oczywiście można inaczej). {w lewo, w prawo, w górę, w dół}. Koszt ścieżki: Liczba kroków (fragmentów ścieżki). Osiągnięcie celu jest dość łatwe, ale znalezienie optymalnej ścieżki NP-zupełne. 20 / 208
21 Przykład 8 hetmanów Zadanie: ustawić 8 hetmanów na szachownicy tak by się żadna para nie szachowała. Możliwe podejścia: inkrementacyjne/przyrostowe dostawianie po jednym, całkowite rozmieszczenie 8 od razu i ich przestawianie. Stany: Pozycje k {0, 1,..., 8} hetmanów. Stan początkowy: k = 0. Test celu: 8 hetmanów poprawnie rozmieszczonych. Działania: Dostawienie kolejnego hetmana. Koszt ścieżki: nieistotny/stały. Liczba sekwencji: / 208
22 Przykład 8 hetmanów Efektywniejsze podejście: Stany: Działania: Pozycje k {0, 1,..., 8} hetmanów w kolejnych kolumnach. Dostawienie kolejnego hetmana w kolejnej kolumnie. Liczba sekwencji: 8 8 = Jeszcze inne możliwości: sprawdzanie permutacji (8! = stanów), dostawianie hetmanów tylko na pozycjach nieszachowanych (2057 stanów, ale kosztowniejsze ich odnajdywanie). Ogólnie, problem N hetmanów dla szachownicy N N, dla większych N, daje przestrzeń stanów niemożliwą do przeiterowania. 22 / 208
23 Przykład szukania optymalnych tras Stany: Aktualna lokalizacja i bieżący czas. Stan początkowy i test celu: definiowane indywidualnie dla problemu miejsce startu, miejsce docelowe i pożądany czas dotarcia. Działania: Skorzystanie z dostępnego lotu. Koszt ścieżki: Różnie: koszt finansowy, czas lotu, czas oczekiwania, konieczność odpraw celnych i imigracyjnych, jakość miejsc, typ samolotu, pora dnia itp. 23 / 208
24 Inne przykłady ważnych problemów Problemy objazdowe odwiedzić wszystkie miejsca i wrócić do źródła komiwojażera, podróży dookoła świata, skoczka szachowego. Lis, gęś i ziarno lub podobny problem kanibali i misjonarzy. Problem układów VLSI rozkład elementów i trasowanie ścieżek. Nawigacja robotem w ciągłym świecie. Automatyczny montaż kolejność montażu wielu komponentów w przestrzeni 3D. Projektowanie białek. Inteligentne wyszukiwanie informacji w internecie. Gry planszowe, gry komputerowe, strategiczne. Dowodzenie twierdzeń matematycznych. 24 / 208
25 Procesy szukania Struktura drzewa Stan początkowy to korzeń. W kolejnym kroku rozwija się bieżący węzeł według aktualnych możliwości działania. Różne strategie szukania kolejność rozwijania wygenerowanych dotąd węzłów. (ang. fringe) zestaw węzłów-kandydatów do rozwijania. Węzeł drzewa bieżący stan, węzeł nadrzędny (rodzic), działanie, które doprowadziło do bieżącego stanu, koszt ścieżki, głębokość. 25 / 208
26 Przykład fragment Rumunii 71 Oradea Neamt Zerind 75 Arad Timisoara Drobeta 151 Sibiu 99 Fagaras 80 Rimnicu Vilcea Lugoj Mehadia 120 Pitesti Bucharest 90 Craiova Giurgiu 87 Iasi Urziceni Vaslui Hirsova 86 Eforie 26 / 208
27 Przykład fragment Rumunii (a) The initial state Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Arad Lugoj Arad Oradea (b) After expanding Arad Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Arad Lugoj Arad Oradea (c) After expanding Sibiu Arad Sibiu Timisoara Zerind Arad Fagaras Oradea Rimnicu Vilcea Arad Lugoj Arad Oradea 27 / 208
28 Szukanie w drzewie Prototype: TreeSearch(problem,strategy) Input: Problem definition, search strategy. Output: A solution or failure. 1 initialize the tree with the node of initial state 2 while exist candidates for expansion do 1 use the strategy to select the node to examine/expand 2 if a goal state reached then return the solution 3 expand the node (grow the tree) 3 return failure 28 / 208
29 Szukanie z kolejką Prototype: TreeSearchWithQueue(problem, fringe) Input: Problem definition, fringe interface. Output: A solution or failure. 1 fringe one-element collection with the initial state 2 while fringe is not empty do 1 node remove first node from the fringe 2 if a goal state reached then return the solution 3 expand the node add new nodes to the fringe 3 return failure 29 / 208
30 Analiza procesów szukania Najważniejsze aspekty: Zupełność czy metoda gwarantuje dotarcie do celu, jeśli taki istnieje. Optymalność czy znajdziemy optymalne rozwiązanie. Złożoność czasowa. Złożoność pamięciowa. Podstawowe oznaczenia: b czynnik rozgałęzień (ang. branching factor), d minimalna głębokość drzewa, na której można znaleźć cel, m maksymalna długość ścieżki. Szukanie na ślepo (ang. blind, uninformed) i heurystyczne (ang. heuristic, informed). 30 / 208
31 Szukanie wszerz (ang. breadth-first search) Szukanie w kolejności od najpłytszych węzłów do coraz głębszych A A A A B C B C B C B C D E F G D E F G D E F G D E F G Algorytm realizowany przez procedurę TreeSearchWithQueue i zwykłą kolejkę (FIFO). Liczba generowanych węzłów: b + b b d + b d+1 b O(b d+1 ) (1) Takie same: złożoność czasowa i pamięciowa, jednak pamięciowa doskwiera bardziej. Metoda zupełna i optymalna. 31 / 208
32 Szukanie wg kosztów (ang. uniform-cost search) Tak jak wszerz, ale najpierw nie najkrótsze ścieżki, a te z najniższym kosztem. Zerowy koszt kroku może zapętlić metodę. Algorytm realizowany przez procedurę TreeSearchWithQueue i kolejkę priorytetową. Zupełność i optymalność zachowana. Złożoność czasowa i pamięciowa: O(b 1+ C /ɛ ), gdzie C to koszt optymalnego rozwiązania, a ɛ to dolne ograniczenie kosztu pojedynczego kroku. 32 / 208
33 Szukanie w głąb (ang. depth-first search) A A A B C B C B C D E F G H I J K L M N O D E F G H I J K L M N O D E F G H I J K L M N O A A A B C B C B C D E F G H I J K L M N O D E F G H I J K L M N O D E F G H I J K L M N O A A A B C B C B C D E F G H I J K L M N O D E F G H I J K L M N O D E F G H I J K L M N O A A A B C B C B C D E F G H I J K L M N O D E F G H I J K L M N O D E F G H I J K L M N O 33 / 208
34 Szukanie w głąb (ang. depth-first search) Szukanie w kolejności od najgłębszych węzłów. Algorytm realizowany przez procedurę TreeSearchWithQueue i stos ( kolejkę LIFO). Możliwość utknięcia w nieskończonej gałęzi metoda niezupełna. Metoda nieoptymalna. Złożoność pamięciowa O(bm). Szukanie z nawrotami (ang. backtracking search) pozwala zredukować złożoność pamięciową do O(m). Łatwiejsza i bardziej naturalna implementacja rekurencyjna. 34 / 208
35 Rekurencja Funkcje rekurencyjne w bardzo prosty sposób wykonują złożone operacje na danych o rekurencyjnej naturze. Definicje rekurencyjne: Liczby naturalne N 0 N, n N succ(n) N. Silnia liczby n N 0! N, n N succ(n)! = succ(n) n!. Listy elementów zbioru X jako złożenie głowy i ogona (pierwszy element i reszta) () L, x X M L x.m L ([x M] L w notacji prologowej). Drzewa binarne z etykietami ze zbioru X () D, x x X d 1, d 2 D / \ D. d 1 d 2 35 / 208
36 Operacje rekurencyjne Długość listy dl(l) = { 0 jeśli L = (), 1 + dl(m) jeśli L = x.m. (2) Suma wartości z węzłów drzewa 0 jeśli d = (), x suma(d) = x + suma(d 1 ) + suma(d 2 ) jeśli d = / \. d 1 d 2 (3) 36 / 208
37 Rekurencyjne szukanie w głąb Prototype: RecursiveDFS(problem, node) Input: Problem definition, current node. Output: A solution or failure. 1 if node reached the goal then return the solution 2 for each subnode sn do 1 result RecursiveDFS(problem, sn) 2 if result is a solution then return the solution 3 return failure Prototype: RecursiveDFS(problem) 1 return RecursiveDFS(problem, the root node) 37 / 208
38 Szukanie z ograniczeniem głębokości Szukanie z ograniczeniem głębokości (ang. depth-limited search). Jak w głąb, ale nie rozwijamy gałęzi po uzyskaniu zadanej głębokości l. Dodatkowe ograniczenie łatwe do wprowadzenia. Złożoność czasowa O(b l ). Złożoność pamięciowa O(bl). Brak zupełności i optymalności. 38 / 208
39 Iteracyjne pogłębianie Iteracyjne pogłębianie szukania w głąb (ang. iterative deepening depth-first search). Prototype: IDDFS(problem) Input: Problem definition. Output: A solution or failure. 1 for depth 0 to do 1 result DepthLimitedSearch(problem, depth) 2 if result cutoff then return result Właściwości: Złożoność pamięciowa O(bd). Złożoność czasowa O(b d ) powtórki nie kosztują tak dużo jakby się wydawało. Metoda zupełna i optymalna. 39 / 208
40 Iteracyjne pogłębianie Limit = 0 A A Limit = 1 A A A A B C B C B C B C Limit = 2 A A A A B C B C B C B C D E F G D E F G D E F G D E F G A A A A B C B C B C B C D E F G D E F G D E F G D E F G Limit = 3 A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O A A A A B C B C B C B C D E F G D E F G D E F G D E F G H I J K L M N O H I J K L M N O H I J K L M N O H I J K L M N O 40 / 208
41 Szukanie dwukierunkowe Dwa równoległe szukania od startu do celu i odwrotnie: Start Goal Znacznie szybciej, bo 2 b d/2 << b d. Problematyczne, gdy cel obejmuje wiele stanów (być może nawet nieskończenie wiele). 41 / 208
42 Różne problemy Ponowne odwiedzanie tych samych stanów znacznie spowalnia szukanie może być wyeliminowane przez oznaczanie sprawdzonych stanów (flaga w obiekcie stanu lub tablica haszująca) Brak pełnej informacji o bieżącym stanie nieznany stan początkowy, sytuacja niekoniecznie beznadziejna przykład odkurzacza sekwencja (w prawo, odkurzaj, w lewo, odkurzaj) zapewni osiągnięcie celu niezależnie od stanu początkowego, trudno oceniać optymalność rozwiązań, gotowość na niespodzianki, gry z adwersażem. 42 / 208
43 Szukanie optymalnych dróg Ogólny schemat generuj i sprawdzaj (ang. generate and test) Prototype: GenerateAndTest(P,G,SC) Input: Problem P definition, state generator G, stop condition SC. Output: A solution or failure. 1 while SC not satisfied do 1 S generate next state with G 2 if S is a goal state then return the solution 2 return failure Najbardziej prymitywne podejścia: Monte Carlo losuj aż trafisz, brytyjskie muzeum sprawdź wszystko i wybierz. 43 / 208
44 Szukanie optymalnych dróg Rozwijaj i ograniczaj (ang. branch and bound) ogólna technika polegająca na rozwijaniu kolejnych węzłów i ograniczaniu się do tych najbardziej obiecujących. Najprostsze ujęcie: Badanie węzłów w kolejności rosnących kosztów. Rozwijane węzły do kolejki priorytetowej. Początek: korzeń do kolejki Potem pobieramy z kolejki ścieżkę o najniższym koszcie i ją rozwijamy. Następniki dodajemy do kolejki. Jeśli wiemy, że istnieje droga długości <= 420, to wszystkie dłuższe możemy odrzucać. 44 / 208
45 Grafy Podstawowe definicje: Graf skierowany (digraf) para (V, E), gdzie V to dowolny zbiór (zbiór wierzchołków) a E to zbiór krawędzi (par wierzchołków, E V V ). Graf nieskierowany jak skierowany, ale w krawędziach nieistotna jest kolejność wierzchołków. Graf ważony graf, w którym dodatkowo każdej krawędzi przypisana jest wartość rzeczywista zwana wagą: (V, E, w), w : E R. v 5 3 v v 2 v 5 2 v v 2 7 v v v 4 1 v / 208
46 Grafy reprezentacja tablicowa Ważony graf skierowany G = (V, E, w) najczęściej reprezentujemy tablicą W (macierzą przyległości, ang. adjacency matrix) taką, że: 0 jeśli i = j, W [i, j] = w(v i, v j ) jeśli (v i, v j ) E (w G istnieje krawędź (v i, v j )), jeśli (v i, v j ) / E. Graf nieskierowany można traktować jako skierowany o symetrycznych połaczeniach. Tablice dla grafów z poprzedniego slajdu: / 208
47 Grafy definicji c.d. Droga ciąg wierzchołków taki, że istnieje krawędź z każdego wierzchołka do jego następnika, droga prosta droga, która nie przechodzi dwa razy przez ten sam wierzchołek. Długość drogi suma wag krawędzi, z których składa się droga. Dla grafów nieważonych liczba krawędzi. Cykl droga, w której wierzchołek początkowy jest również końcowym, cykl prosty cykl będący drogą prostą. Graf cykliczny/acykliczny graf, w którym istnieje/nie istnieje cykl. Graf nieskierowany jest spójny, gdy między każdymi dwoma wierzchołkami istnieje droga. Drzewo graf nieskierowany, acykliczny i spójny. Drzewo rozpinające graf (ang. spanning tree) drzewo, które zawiera wszystkie wierzchołki grafu. Minimalne drzewo rozpinające drzewo rozpinające o minimalnej sumie wag krawędzi. 47 / 208
48 Problemy grafowe Najpopularniejsze problemy: Szukanie drogi o minimalnej długości. Wyznaczanie minimalnego drzewa rozpinającego: jak najmniej asfaltu, by połączyć określone miasta, jak najmniej kabli w sieci komputerowej, itp. Podstawowe algorytmy: Szukanie dróg: Dijkstry, Floyda (alg. programowania dynamicznego). Wyznaczanie minimalnego drzewa rozpinającego: Prima, Kruskala. 48 / 208
49 Algorytm Prima Dane: Graf nieskierowany G = (V, E, w). Wynik: Minimalne drzewo rozpinające D = (V, F, w F ) grafu G. Y {v 1 } F Aż do uzyskania drzewa rozpinającego (Y = V ): wyznaczamy wierzchołek y z V Y o minimalnej odległości do Y (jednocześnie zapamiętujemy krawędź f, która dała minimalną odległość), Y Y {y} tzn. dodajemy wierzchołek y do zbioru Y, F F {f} tzn. dodajemy krawędź f do zbioru F, Wynik: drzewo D = (V, F, w F ). Złożoność czasowa: O(n 2 ) (n to liczba wierzchołków). 49 / 208
50 Algorytm Prima przykład 2 v v 5 v 2 2 v v 5 v 2 2 v v 5 v 2 v 4 1 v 3 v 4 1 v 3 v 4 v v v 5 v 2 2 v v 5 v 2 v 4 v 3 1 v 4 v / 208
51 Algorytm Kruskala Dane: Graf nieskierowany G = (V, E, w). Wynik: Minimalne drzewo rozpinające D = (V, F, w F ) grafu G. V i {v i } rozłączne jednoelementowe zbiory (dla każdego wierzchołka), F Sortujemy krawędzie ze zbioru E niemalejąco względem wag, Aż do uzyskania drzewa rozpinającego (wszystkie podzbiory V zostały scalone): bierzemy kolejną krawędź f E wg. ustalonego porządku, jeśli krawędź f łączy wierzchołki z różnych podzbiorów to: scalamy podzbiory zawierające wierzchołki, F F {f} tzn. dodajemy krawędź f do zbioru F, Wynik: drzewo D = (V, F, w F ). Złożoność czasowa: (n liczba wierzchołków, m liczba krawędzi) Inicjowanie zbiorów: O(n), sortowanie: O(m log m), pętla w najgorszym przypadku O(m log m) (każda krawędź). W najgorszym przypadku m n 2, więc m log m = n 2 log n 2 = n 2 2 log n, czyli O(n 2 log n). 51 / 208
52 Algorytm Kruskala przykład 7 v 5 2 v 4 v v 3 v (v 3, v 4 ) 1 2 (v 1, v 5 ) 2 3 (v 2, v 4 ) 2 4 (v 2, v 3 ) 3 5 (v 1, v 2 ) 3 6 (v 2, v 5 ) 5 7 (v 4, v 5 ) 7 v 5 v 4 v 1 v 3 v 2 52 / 208
53 Algorytm Kruskala przykład c.d. 1 (v 3, v 4 ) 1 2 (v 1, v 5 ) 2 3 (v 2, v 4 ) 2 4 (v 2, v 3 ) 3 5 (v 1, v 2 ) 3 6 (v 2, v 5 ) 5 7 (v 4, v 5 ) 7 3. Dodajemy (v 2, v 4 ). 1. Dodajemy (v 3, v 4 ). v 1 v 5 v 2 v 4 1 v 3 4. Nie dodajemy (v 2, v 3 ). 2. Dodajemy (v 1, v 5 ). 2 v 5 v 4 v 1 v 2 1 v 3 5. Dodajemy (v 1, v 2 ). 2 v 1 2 v 1 2 v 1 3 v 5 v 2 v 5 v 2 v 5 v v 4 1 v 3 v 4 1 v 3 v 4 1 v 3 53 / 208
54 Algorytm Dijkstry Dane: Graf G = (V, E, w). Wynik: Najkrótsze (dokładniej: minimalnej długości) drogi z wierzchołka v V do wszystkich pozostałych, długości dróg; drzewo rozpinające zawierające najkrótsze drogi z wierzchołka v. Y {v} F Tak długo jak Y V : wyznaczamy wierzchołek y V Y, o minimalnej długości najkrótszej drogi z v poprzez wierzchołki z Y. Y Y {y}, F F {f}. Złożoność czasowa: O(n 2 ) (n to liczba wierzchołków). 54 / 208
55 Algorytm Dijkstry przykład 7 3 v 5 v v v 3 v 2 2 v 5 Y = {v 1 } v 2 Y, d(v 1, v 2 ) = 4 v 1 v 1 v 1 v 2 v 5 v 2 v 4 v 3 v 4 v 3 4 v 3 Y, d(v 1, v 3 ) = 6 v 1 4 v 4 Y, d(v 1, v 4 ) = 8 v 1 4 v 5 Y, d(v 1, v 5 ) = 11 v 1 4 v 5 v 2 v 5 v 2 v 5 v 2 v 4 v 3 2 v 4 2 v 3 2 v v / 208
56 Algorytm Floyda programowanie dynamiczne Idea: Najkrótsza droga z v i do v j wiodąca przez v k składa się z najkrótszej drogi z v i do v k oraz najkrótszej drogi z v k do v j. Dane: Graf G = (V, E, w). Wynik: Długości najkrótszych (dokładniej: minimalnej długości) dróg pomiędzy każdą parą wierzchołków. 1 Floyd(Array2D W, Array2D D) 2 { 3 D.CopyFrom(W); 4 for (int k = 1; k<=n; k++) 5 for (int i = 1; i<=n; i++) 6 for (int j = 1; j<=n; j++) 7 D[i,j] := minimum(d[i,j], D[i,k] + D[k,j]; 8 return D; 9 } Złożoność czasowa: O(n 3 ) (n to liczba wierzchołków). Uwaga na indeksy! 56 / 208
57 Algorytm Floyda Ważna własność: W k-tym kroku wartość D[i, j] to długość najkrótszej drogi z v i do v j o wierzchołkach pośrednich ze zbioru {v 1,..., v k }. Przykład: D D D D D D / 208
58 Szukanie heurystyczne W przeciwieństwie do szukania na ślepo informacja zwrotna, możliwość użycia funkcji oceny do oszacowania jakości bieżącego stanu. Heurystyki cenne wskazówki, oparte na doświadczeniu, które dają często, choć nie zawsze, pozytywne skutki. Zwykle to funkcje z przestrzeni stanów do zbioru liczb rzeczywistych takie, że Dla wygody, dla węzła n, h(n) ozn = h(s n ). h : S R, (4) h(s) = 0. (5) s G Proste wykorzystanie heurystyk w szukaniu: rozwijaj węzły drzewa w kolejności rosnącej heurystyki, kolejka priorytetowa. 58 / 208
59 Metoda najpierw najlepszy Wykorzystanie funkcji heurystycznych nowa rodzina metod najpierw najlepszy (ang. best-first search). Podejście zachłanne (ang. greedy best-first search) f(n) = h(s n ). (6) Przykład dróg do Bukaresztu (str. 26) dobra heurystyka: jak daleko do celu w linii prostej. Arad Bucharest Craiova Drobeta Eforie Fagaras Giurgiu Hirsova Iasi Lugoj Mehadia Neamt Oradea Pitesti Rimnicu Vilcea Sibiu Timisoara Urziceni Vaslui Zerind / 208
60 Metoda A* Cel: minimalizacja łącznego estymowanego kosztu rozwiązania: f(n) = g(n) + h(n). (7) Własność: A* jest optymalna, gdy heurystyka h nigdy nie przeszacowuje rzeczywistego kosztu. Mówimy wtedy, że h jest dopuszczalna (ang. admissible). Dowód: Niech n będzie nieoptymalnym węzłem ze stanem końcowym oraz C* kosztem optymalnego rozwiązania. Oczywiście f(n) = g(n) > C*. Jeśli n 0 jest węzłem z optymalną ścieżką, to f(n 0 ) = g(n 0 ) + h(n 0 ) C* < f(n), bo h (a więc również f) nie przeszacowuje kosztu. Stąd węzeł n nie zostanie nigdy rozwinięty, a rozwiązaniem będzie węzeł optymalny. 60 / 208
61 Heurystyki Heurystyka jest monotoniczna (ang. monotonic, consistent) jeśli dla każdego węzła n oraz jego węzła potomnego n zachodzi h(n) c(n, a, n ) + h(n ), (8) gdzie c(n, a, n ) jest kosztem działania a skutkującego zmianą stanu z s n do s n. Jeśli h jest monotoniczna, to f jest niemalejąca na danej ścieżce. Monotoniczność heurystyki gwarantuje optymalność szukania z odrzucaniem odwiedzonych stanów. 61 / 208
62 Metoda A* Rozwija wszystkie węzły n, dla których f(n) < C*. Nie rozwija węzłów n, dla których f(n) > C*. Jest zupełna, jeśli zbiór węzłów n, dla których f(n) < C* jest skończony, w szczególności, jeśli koszt pojedynczego działania jest zawsze ɛ > 0 oraz b jest skończone. Jest optymalnie efektywna tzn. żaden inny algorytm optymalny nie rozwija mniej węzłów (chyba, że węzłów, dla których f(n) = C*). Dowód: Algorytm, który nie rozwinie wszystkich węzłów o f(n) < C* nie jest optymalny. 62 / 208
63 IDA* Iterative Deepening A* Cel: ograniczenie zapotrzebowania na pamięć. IDA*- zwykły ID dla A*, ale z limitem kosztów f = g + h zamiast głębokości. Próg f-kosztów najmniejszy koszt węzła, przekraczający poprzedni próg odcięcia. 63 / 208
64 RBFS recursive best-first search Prototype: RecursiveBestFS(P, node, flimit) Input: Problem P, current node, f limit. Output: A solution or failure and a new f-cost. 1 if node reached the goal then return the solution 2 successors subnodes of the node 3 if successors is empty then return failure, 4 for each s in successors do f[s] max(g(s) + h(s), f[node]) 5 repeat 1 best arg min s successors f(s) 2 if f[best] > flimit then return failure, f[best] 3 falt second best f(s) among successors 4 result, f[best] RecursiveBestFS(P, best, min(flimit, falt)) 5 if result failure then return result 64 / 208
65 (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 Sibiu Arad 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 / 208
66 RBFS Niebezpieczeństwo częstych zmian zdania (zmian ścieżki szukania). Złożoność czasowa trudna do określenia. Optymalny, jeśli heurystyka h jest dopuszczalna. Złożoność pamięciowa liniowa względem głębokości najgłębszego rozwiązania optymalnego. Jak w IDA* niebezpieczeństwo wielokrotnego badania tych samych stanów. Nadmierna oszczędność pamięci. Algorytmy wykorzystujące dostępną pamięć: MA*, SMA*. SMA* rozwija węzły aż do zapełnienia pamięci wówczas wyrzuca z pamięci najgorszy węzeł (największe f(n)), zapamiętując jego jakość w węźle-rodzicu. Na wypadek równych f(n) usuwany najstarszy, rozwijany najmłodszy. 66 / 208
67 Szukanie wiązką (ang. beam search) Cel: ograniczenie ilości pamięci. Jak w szukaniu wszerz, ale po każdej iteracji ograniczanie zajętości pamięci do k stanów. k to szerokość wiązki. Porzucanie części stanów skutkuje brakiem zupełności i optymalności. Atrakcyjna złożoność pamięciowa. Złożoność czasowa trudna do określenia w szczególności brak gwarancji zakończenia procesu sukcesem. Niebezpieczeństwo degeneracji wiązki różne techniki dbania o różnorodność wiązki. 67 / 208
68 Heurystyki Przykłady dla problemu 8-ki: h 1 liczba elementów nie na swoim miejscu, h 2 suma odległości Manhattan elementów od swoich pozycji docelowych. Dla przykładu obok: h 1 (n) = 8, h 2 (n) = 18. Start State Goal State h 1 i h 2 są dopuszczalne. Miara jakości heurystyki: efektywny czynnik rozgałęzień b* liczba rzeczywista spełniająca: N + 1 = 1 + b* + (b*) (b*) d, (9) gdzie N to liczba węzłów w procesie szukania, a d to głębokość rozwiązania. Im b* jest bliższe 1, tym lepsza heurystyka / 208
69 Heurystyki h 2 dominuje nad h 1, tzn. dla dowolnego węzła n, h 2 (n) h 1 (n). Konsekwencja: każdy węzeł, rozwinięty przez h 2 będzie również rozwinięty przez h 1 (w A*, bo to metoda optymalna). Wniosek: im wyższe wartości heurystyki, tym lepiej! Zadania: porównać liczby węzłów rozwijanych heurystykami h 1 i h 2. Poszukiwanie dopuszczalnych heurystyk Problem uproszczony (ang. relaxed problem) problem ze zredukowaną liczbą ograniczeń. Ważna własność: koszt optymalnego rozwiązania problemu uproszczonego jest dopuszczalną heurystyką problemu wyjściowego. Dowód: Rozwiązanie problemu wyjściowego jest też rozwiązaniem problemu uproszczonego więc jest co najmniej tak kosztowne jak jego rozwiązanie optymalne. 69 / 208
70 Poszukiwanie dopuszczalnych heurystyk Wyrażenie ograniczeń w języku formalnym i ich upraszczanie: Element można przesunąć: poziomo lub pionowo o jedno pole, pod warunkiem, że pole docelowe jest puste. Maksimum heurystyk dopuszczalnych jest heurystyką dopuszczalną. Koszt rozwiązania podproblemu jest heurystyką dopuszczalną. Bazy wzorców zapamiętanie rozwiązań wszystkich podproblemów i odnajdywanie kosztów dla konkretnych konfiguracji zgodnych z danym stanem. dla 15-tki i maksimum kosztów dla 4 wybranych kostek 1000 razy szybciej niż Manhattan. Bazy rozłącznych wzorców liczymy tylko ruchy dla wybranych elementów i sumujemy dla różnych (rozłącznych) wzorców. dla 15-tki i wzorców dla 4 kostek razy szybciej niż Manhattan. 70 / 208
71 Lokalne szukanie Nie zawsze istotna jest ścieżka dojścia do rozwiązania (drzewa niepotrzebne). Lokalne szukanie operuje tylko bieżącym stanem zamiast ścieżki. Metody szukania mogą również rozwiązywać problemy optymalizacyjne (zadana jest funkcja do minimalizacji). Założenie ciągłości problemu w sensie, że podobne stany są podobnie oceniane. objective function global maximum Optima globalne i lokalne. Ramię, płaskie maksimum, grzbiet, plateaux. shoulder local maximum flat local maximum current state state space 71 / 208
72 Metoda wspinaczki (ang. hill climbing) Zachłanne podążanie zawsze w kierunku rosnących wartości maksymalizowanej funkcji. Analizowane tylko bezpośrednie sąsiedztwo bieżącego stanu. Prototype: HillClimbing(P) Input: Problem P, w tym funkcja maksymalizowana F. Output: Stan lokalnego maksimum. 1 current initial state 2 repeat 1 neighbor the highest-valued successor of current 2 if F(neighbor) F(current) then return current 3 current neighbor 72 / 208
73 Przykład: problem 8 hetmanów Sformułowanie pełnego stanu (wszystkie hetmany na szachownicy, każdy ma jedną kolumnę). Funkcja następnika: jeden hetman przestawiony w inne miejsce. Heurystyka: liczba szachujących się par (do minimalizacji) / 208
74 Problemy wspinaczki Lokalne maksima/minima, grzbiety, plateaux... Przyzwolenie na odejście w bok z minimum lokalnego przyzwolenie na 100 kolejnych ruchów w bok podnosi współczynnik sukcesu z 14% do 94%. Stochastyczna metoda wspinaczki losuje kolejny stan spośród tych idących w górę. Wspinaczka pierwszego wyboru (ang. first-choice hill climbing) losuje spośród następników aż wylosuje lepszy stan niż bieżący. Problem niezupełności losowe restarty. 74 / 208
75 Symulowane wyżarzanie Symulowanie fizycznych procesów wyżarzania (ang. simulated annealing). Prototype: SimulatedAnnealing(P,H) Input: Problem P w tym funkcja maksymalizowana F, harmonogram schładzania H. Output: Stan lokalnego minimum. 1 current initial state 2 for t = 1 to do 1 T H(t) 2 if T = 0 then return current 3 next random successor of current 4 E F(next) - F(current) 5 if E > 0 then current next else current next with probability e E/T 75 / 208
76 Lokalne szukanie wiązką Lokalne szukanie wiązką (ang. local beam search) działa jak szukanie wiązką, tyle, że nie utrzymuje pełnych ścieżek, a same stany bieżące. Ograniczenie pamięci do k stanów. Start: k losowo wybranych stanów. Niebezpieczeństwo degeneracji wiązki wszystkie stany z jednego rodzica. Podejście stochastyczne wybór wiązki losowy, prawdopodobieństwa proporcjonalne do wartości maksymalizowanej funkcji. 76 / 208
77 Algorytmy genetyczne Inspiracje biologiczne kodowanie stanów (osobników) przez chromosomy, naturalna selekcja (funkcja przystosowania), krzyżowanie, mutacje. Schemat algorytmu: Ustalamy zasady kodowania osobników. Wybieramy losowo pierwszą populację k osobników. Dla kolejnych populacji: mierzymy przystosowanie (ang. fitness) osobników, losujemy pary osobników do krzyżowania, losujemy punkt krzyżowania (ang. crossover point), krzyżujemy, pozwalamy na mutacje z określonym p-stwem, nowe osobniki to nowa populacja. 77 / 208
78 Algorytmy genetyczne 8 hetmanów % % % % (a) Initial Population (b) Fitness Function (c) Selection (d) Crossover (e) Mutation + = 78 / 208
79 Szukanie online Szukanie na boku (offline) spisuje się dobrze w środowiskach statycznych i deterministycznych. Środowiska dynamiczne, semidynamiczne (kary za opieszałość) i stochastyczne wymagają reakcji w trakcie szukania (online). Szukanie online Wynik akcji poznajemy po jej podjęciu. Przeskoki do odległych punktów w przestrzeni nie są możliwe metody typu najpierw najlepszy czy A* nie są odpowiednie. Właściwe są metody szukające w sposób zlokalizowany szukanie w głąb, metoda wspinaczki itp. 79 / 208
80 Szukanie w głąb w wersji online Potrzebujemy dodatkowo: rejestracji skutków naszych akcji (przy założeniu deterministyczności), umiejętności rozróżniania odwiedzonych i nie odwiedzonych miejsc, rejestracji możliwości powrotów. Rekurencja może pomóc w realizacji tych zadań. Wersje nierekurencyjne są zwykle trudniejsze. 80 / 208
81 Szukanie online Random walk wybieramy losowo dostępne akcje, preferencje dla akcji wcześniej nie próbowanych, dość powolny proces, niebezpieczeństwo pułapek odwodzących od celu. Metoda wspinaczki. Jak uciekać z minimów lokalnych? Przeskoki losowe nie są możliwe. Losowe kierunki w minimach lokalnych. Wspinaczka z pamięcią LRTA*. LRTA* learning real-time A* używamy heurystyki i doświadczenia jak w A*, koszt jest sumą, tego co wiemy na pewno i oceny heurystyką, wybieramy akcję o najlepszym przewidywanym skutku, optymistycznie oceniamy nie próbowane akcje, aktualizujemy na bieżąco wiedzę o stanie, który opuszczamy. 81 / 208
82 LRTA* - przykład (a) (b) (c) (d) (e) / 208
83 Problemy z ograniczeniami Problemy z ograniczeniami, więzami (ang. Constraint satisfaction problems) Wiedza o wewnętrznej strukturze problemu może pomóc w jego rozwiązywaniu. Problem z ograniczeniami definiuje stany oraz cele przy użyciu zbioru zmiennych X 1, X 2,..., X n oraz zbioru ograniczeń C 1, C 2,..., C m : stan przypisanie wartości podzbiorowi zmiennych, np. {X i = v i, X j = v j,...}, stan zgodny stan nie naruszający żadnego ograniczenia, stan pełny określający wartości wszystkich zmiennych, cel stan pełny i zgodny, dodatkowo, możliwa maksymalizacja funkcji celu. 83 / 208
84 Problem kolorowania mapy Mapa i graf ograniczeń: NT Q Western Australia Northern Territory South Australia Queensland New South Wales WA SA V NSW Victoria Tasmania T Stany, ograniczenia, cel, koszt ścieżki... Naturalne podejście inkrementacyjne. 84 / 208
85 Problemy z ograniczeniami Dziedziny skończone i nieskończone, dyskretne i ciągłe. Języki dla ograniczeń. Ograniczenia liniowe, programowanie liniowe. Ograniczenia nieliniowe znacznie trudniejsze. Liczba zmiennych objętych ograniczeniem: 1, 2, więcej (wszystkie różne, N spośród M, kryptarytmy, sudoku). Kryptarytmy (ten pierwszy z 1924 r.): S E N D U S A + M O R E + U S S R M O N E Y P E A C E S E R C E + S E R C E M I Ł O Ś Ć Zadania typu: pięć osób pochodzących z pięciu różnych krajów interesuje się pięcioma różnymi dyscyplinami sportu i uwielbia pięć różnych potraw itd. Ograniczenia preferencje, np. przy układaniu planów zajęć. 85 / 208
86 Szukanie z nawrotami (ang. backtracking search) Problemy z ograniczeniami są przemienne kolejność wiązania zmiennych jest bez znaczenia. Podejście inkrementacyjne. Idea: w danym węźle drzewa (albo i na danej głębokości) wiążemy jedną zmienną. Szukanie z nawrotami to szukanie w głąb w takim drzewie, z kontrolą ograniczeń. Szukanie na ślepo mało efektywne. Możliwość usprawnień heurystycznych: kolejność zmiennych i ich wartości, konsekwencje przypisań dla innych zmiennych, unikanie takich samych niepowodzeń. 86 / 208
87 Kolejność zmiennych i wartości Przykład Australii po przypisaniu WA=red oraz NT=green lepiej zająć się SA niż Q. Heurystyka MRV (ang. minimum remaining values) wybieraj zmienną z minimalną liczbą dozwolonych wartości. Stopień zmiennej liczba ograniczeń, w których zmienna występuje (z innymi, nie przypisanymi jeszcze zmiennymi) najpierw zmienne o maksymalnym stopniu. Heurystyka najmniej ograniczającej wartości (ang. least-constraining value) najpierw wartości, które eliminują najmniej możliwości innym zmiennym. Problem Nawroty N.+MRV FC FC+MRV MC USA (>1M) (>1M) 2K n-hetmanów (>40M) 13,5M (>40M) 817K 4K Zebra 3859K 1K 35K 0,5K 2K 87 / 208
88 Analiza ograniczeń Testowanie możliwości eliminacji z wyprzedzeniem (ang. forward checking). WA NT Q NSW V SA T Initial domains After WA=red After Q=green After V=blue R G B R R R R G B G B B B R G B R G B G G R G B R G B R B R R G B R G B R G B B R G B G B B R G B R G B R G B R G B Niektóre gałęzie można wcześnie odciąć Zależności wyższych rzędów WA=R, Q=G pozostawia NT=SA=B, parami różne. Niesprzeczność połączeń (ang. arc consistency) trzeba uważać na złożoność! Kontrola niesprzeczności na początku procesu i w trakcie. 88 / 208
89 Lokalne szukanie z ograniczeniami Pełna reprezentacja i zmiany by spełniać ograniczenia zmiana wartości pojedynczych zmiennych, zamiana wartości dwóch zmiennych, itp. Naturalna heurystyka: wybór wartości o jak najmniejszej liczbie konfliktów (ang. min-conflicts). Prototype: MinConflicts(CSP, H, N) Input: Problem CSP, miara min-conflicts H, liczba N iteracji. Output: Stan lokalnego minimum. 1 stan (losowy pełny) stan początkowy 2 for t = 1 to N do 1 if stan jest rozwiązaniem then return stan 2 X wylosowana zmienna z konfliktem 3 Z zmiana X minimalizująca miarę H 4 stan stan po zmianie Z 3 return porażka 89 / 208
90 Lokalne szukanie z ograniczeniami Dla hetmanów niemal niezależność od rozmiaru nawet milion hetmanów w 50 krokach. Planowanie tygodnia obserwacji teleskopu Hubble a redukcja czasu obliczeń z 3 tygodni do 10 minut Odpowiednie w planowaniu, gdy dochodzą drobne zmiany. 90 / 208
91 Gry - szukanie z oponentem Środowiska wieloagentowe ze współzawodnictwem. Szukanie z przeciwnikiem/oponentem/adwersarzem (ang. adversarial search). Deterministyczne, w pełni obserwowalne środowisko, w którym agenty/agenci działają naprzemiennie. Gry z zerowym bilansem - ktoś wygrywa, ktoś przegrywa. Definicja problemu gry z przeciwnikiem: stan początkowy, funkcja następnika, test zakończenia gry, funkcja użyteczności. Optymalna strategia wartość minimax (MM): użyteczność(n) jeśli n jest końcowy MM(n) = max s Następniki(n) MM(s) jeśli n jest typu MAX min s Następniki(n) MM(s) jeśli n jest typu MIN 91 / 208
92 Minimax Drzewo gry: MAX 3 A a 1 a 2 a 3 MIN 3 B 2 C 2 D b 1 b 2 b 3 c 1 c 2 c 3 d 1 d 2 d Złożoność O(b m ), gdzie m to maksymalna głębokość rozwijanych węzłów. 92 / 208
93 Minimax Drzewo gry dla 3 graczy: to move A (1, 2, 6) B (1, 2, 6) (1, 5, 2) C (1, 2, 6) X (6, 1, 2) (1, 5, 2) (5, 4, 5) A (1, 2, 6) (4, 2, 3) (6, 1, 2) (7, 4,1) (5,1,1) (1, 5, 2) (7, 7,1) (5, 4, 5) Możliwość współpracy dwóch graczy przeciwko trzeciemu. Możliwość współpracy w grach dla dwóch graczy, gdy niezerowy bilans. 93 / 208
94 Obcinanie alfa-beta (a) [, + ] A (b) [, + ] A [, 3] B [, 3] B (c) [3, + ] A (d) [3, + ] A [3, 3] B [3, 3] B [, 2] C (e) [3, 14] A (f) [3, 3] A [3, 3] [, 2] [, 14] B C D [3, 3] [, 2] [2, 2] B C D / 208
95 Obcinanie alfa-beta Parametry: α maksymalna wartość zaobserwowana na ścieżce dla MAX, β minimalna wartość zaobserwowana na ścieżce dla MIN. Parametry są aktualizowane w trakcie szukania. Kolejność analizy następników wpływa na efektywność metody. Przy optymalnej kolejności rozwijanych jest O(b m 2 ) węzłów czynnik rozgałęzień b zamiast b. Przy losowej kolejności ok. O(b 3m 4 ) węzłów. Dla szachów, proste heurystyki porządkujące (najpierw bicia, potem zagrożenia, ruchy naprzód, ruchy wstecz) osiągają wynik 2 razy optymalne O(b m 2 ), dodatkowe techniki jeszcze bardziej zbliżają wynik do optymalnego. 95 / 208
96 Przybliżone oceny stanu gry Nawet z obcinaniem α β, koszty szukania są zwykle zbyt duże, by szukać głęboko. Obcinanie poddrzew test obcięcia zamiast testu stanu końcowego. Miary oceny stanu gry generowanie cech i ich kombinacje liniowe i nieliniowe przykład szachów: punkty dla figur (pion 1, koń i goniec po 3, wieża 5, hetman 9), nie zawsze prawdziwe relacje, np. pion za chwilę zostanie zmieniony w hetmana, brydż: punkty w kartach ściśle determinują reguły licytacji. Ocena nie powinna być kończona w pozycji o dużej aktywności/zmienności. Efekt horyzontu gracz może odsunąć w czasie przykre konsekwencje (poza horyzont szukania), prowadząc do niewłaściwej oceny przykład szachów: można bronić się przed stratą wielokrotnym szachowaniem. 96 / 208
97 Gry z elementami losowymi 0 Losowość niezależna od graczy (np. rzut kostką). Tryktrak (ang. backgammon) najpierw rzut dwiema kostkami, potem ruch zależny od wyniku losowania. Drzewa szukania wzbogacone o poziomy losowe. Wartość oczekiwana kryterium minimax (expectiminimax) MAX CHANCE MIN B /36 1,1... 1/18 1, /18 1/36 6,5 6,6... CHANCE C MAX 1/36 1,1... 1/18 1,2... 1/18 1/36 6,5 6, TERMINAL Modyfikacje obcinania α β. 97 / 208
98 Język Scheme początek Paradygmat języków funkcyjnych podejście deklaratywne, nie imperatywne! myślenie matematyczne, kategoriami funkcji, funkcja odwzorowuje argumenty na wynik, interakcja użytkownik podaje wyrażenia, interpreter je wylicza i przedstawia wartości, skażenia podejściem imperatywnym, łączenie języków imperatywnych i deklaratywnych. 98 / 208
99 Racket System Racket (wcześniej PLT Scheme) i środowisko DrRacket edytor tekstów źródłowych, obsługa interpretatora, debugger, różne języki. 99 / 208
100 Podstawy języka scheme (1) Scheme to dialekt LISPu LISt Processing, programy w schemie to wyrażenia do wyliczenia, w szczególności wywołania funkcji, pierwszy prosty program: "Hello world!", podstawowe złożone struktury danych to listy, lista zapisywana jako ciąg jej elementów oddzielonych znakami odstępami i ujętych w nawiasy: (element1 element2... elementn) wywołania funkcji jako listy: funkcja i jej kolejne argumenty, (funkcja arg1 arg2... argk) przykład wywołania funkcji: (silnia 5). zagnieżdżone (często głęboko) wywołania, 100 / 208
101 Podstawy języka scheme (2) Proste wywołania zawsze prefiksowo: 1 (+ 2 ( 3 4)) 2 (dene x 17) 3 ( x x) 4 ( ( b b) ( 4 a c)) 5 (< 7 5) Pierwszy element to funkcja do wywołania: 1 (list a b c) 2 (szukaj w glab pocz kon) 3 ((if dodawanie + ) 2 3) 101 / 208
102 Specyfika języka Scheme (1) identyfikatory ciągi liter, cyfr i znaków dodatkowych, rozpoczynający się literą. znaki dodatkowe:! % $ & * + -. / : < = ^ _ ~ Konwencja:! używany jest na końcu nazw funkcji z efektami ubocznymi, np. set!,? używany jest na końcu nazw predykatów (funkcji o wartościach logicznych), np. number?, -> używany jest w nazwach funkcji realizujących konwersje, np. string->number, Literały: funkcją: (quote a) apostrofem: 'a stałe numeryczne, łańcuchowe, znakowe i logiczne pozostają sobą: '78 = / 208
103 Specyfika języka Scheme (2) Zmienne, wartości typy związane z wartościami, nie zmiennymi (typowanie dynamiczne), dla danego obiektu, tylko jeden z predykatów może być spełniony: boolean? pair? symbol? number? char? string? vector? port? procedure?, stałe logiczne #f #t, nie zwalnia się obiektów, pamięć może być użyta powtórnie gdy jest pewność, że nikt się o obiekt nie upomni, przykład definiowania zmiennych: (dene s10 (silnia 10)) Argumenty są przekazywane zawsze przez wartość. Wyrażenia definiujące argumenty są zawsze wyliczane przed wywołaniem funkcji. 103 / 208
104 Specyfika języka Scheme (3) Rekurencja ogonowa (ang. tail recursion) redukcje wywołań z udziałem stosu. Programowanie z kontynuacjami. 1 ;;; klasyczna rekurencyjna silnia 2 (dene (silnia n) 3 (if (< n 2) 1 ( n (silnia ( n 1))))) 4 ;;; silnia w stylu kontynuacyjnym (CPS continuation passing style) 5 (dene (silniak n k) 6 (if (= n 1) 7 (k 1) 8 (silniak ( n 1) (lambda (x) (k ( n x)))))) 104 / 208
105 Elementarne funkcje języka Scheme (1) Definicje funkcji: 1 (lambda (x) ( x x)) 2 (dene kwadrat (lambda (x) ( x x))) 3 (dene (kwadrat x) ( x x)) 4 5 (lambda (x y) (+ x y)) 6 7 (dene bezdwoch (lambda (x y. z) z)) zmiana wartości zmiennej 1 (set! x (sqrt delta)) 105 / 208
106 Elementarne funkcje języka Scheme (2) Podstawowa konstrukcja warunkowa: 1 (if warunek warto± -dla-true warto± -dla-false ) 2 (if warunek warto± ) Warunek jest fałszywy jeśli przyjmuje wartość #f, w przec. przyp. jest prawdziwy. Uwaga! W innych dialektach Lispu, często lista pusta '() jest również uznawana za fałsz. Przykłady: 1 (dene (minimum x y) (if (< x y) x y)) 2 (if (argumentwdziedzinie x) (funkcja x)) W postaci z jedną wartością, w przypadku niespełnionego warunku wynikiem jest #undened. 106 / 208
107 Elementarne funkcje języka Scheme (3) Konstrukcja wielowarunkowa: (cond klauzula 1 klauzula 2...) gdzie każda klauzula i ma jedną z postaci ( test wyra»enie 1...) ( test => wyra»enie...) lub w przypadku ostatniego wyrażenia (else wyra»enie 1 wyra»enie 2...) Przykład: 1 (cond ((< delta 0) 'zero) 2 ((eq? delta 0) 'jeden) 3 (else 'dwa) 4 ) 107 / 208
108 Elementarne funkcje języka Scheme (4) Wyliczanie przypadków: (case klucz klauzula 1 klauzula 2...) gdzie klucz to dowolne wyrażenie, a każda klauzula i ma postać (( warto± 1... ) wyra»enie 1 wyra»enie 2...) lub w przypadku ostatniego wyrażenia (else wyra»enie 1 wyra»enie 2...) Przykład: 1 (dene dniwmies (lambda (n) 2 (case n 3 ((2) 28) 4 (( ) 30) 5 (else 31)))) 108 / 208
109 Elementarne funkcje języka Scheme (5) Funkcje logiczne 1 (and test 1 test 2...) 2 (or test 1 test 2...) 3 (not obiekt ) Testy są sprawdzane od lewej do prawej. Zwracana jest wartość pierwszego testu przesądzającego o wyniku. Przykłady: 1 (and (< x y) (< y z)) 2 (and (= x y) (= y z) (= z v)) 3 (and 1 2 'c) = c 4 (or (< x 0) (> x n)) 5 (not "napis") 6 (not #f) 109 / 208
110 Elementarne funkcje języka Scheme (6) Wiązanie zmiennych pomocniczych (let wi zania wyra»enie-wynik ) gdzie wi zania mają postać (( zmienna 1 wyra»enie 1 )...) Wyrażenia-wartości zmiennych są wyznaczane w nieokreślonej kolejności. Przykład: 1 (let ((x 7) (y 8)) (sqrt (+ ( x x) ( y y)))) Wiązania z ustaloną kolejnością let 1 (let ((x 7) (x2 ( x x)) (x3 ( x2 x))) (+ x x2 x3)) Wiązania z rekurencją letrec 110 / 208
111 Predykaty porównujące (1) Operator = działa tylko dla liczb. Predykaty porównujące eq?, eqv?, equal? relacje równoważności. 1 (eq? obiekt 1 obiekt 2 ) 2 (eqv? obiekt 1 obiekt 2 ) 3 (equal? obiekt 1 obiekt 2 ) Stopniowanie rozróżniania: (eq? x y) (eqv? x y) (equal? x y) Standard języka nie określa w pełni tych relacji. 111 / 208
112 Predykaty porównujące (2) Działanie eqv? zgodne z intuicjami dla liczb, typu logicznego, symboli, znaków, pustych list, dla par, wektorów i napisów, prawda gdy ta sama lokalizacja w pamięci, dla funkcji również równość referencji, nie wszystko określone w standardzie różnice w implementacjach. eq? bardziej restrykcyjny niż eqv? może być implementowany jako porównanie wskaźników. equal? najmniej restrykcyjny, porównuje rekurencyjnie pary, wektory i łańcuchy, reguła kciuka obiekty uznawane za równe, gdy drukują się tak samo. 112 / 208
113 Przykłady definicji funkcji 1 (dene (fkw a b c) 2 (let ((delta ( ( b b) ( 4 ( a c))))) 3 (cond ((< delta 0) '()) 4 ((eq? delta 0) (list (/ ( b) ( 2 a)))) 5 (else (list (/ ( ( b) (sqrt delta)) ( 2 a)) 6 (/ (+ ( b) (sqrt delta)) ( 2 a)))) 7 ))) 8 9 (dene potega (lambda (a n) 10 (if (< n 1) 1 11 (let ((n2 (quotient n 2)) (p (potega a n2))) 12 (if (even? n) 13 ( p p) 14 ( a ( p p)) 15 ))))) 113 / 208
114 Świat liczb (1) Dość nieuporządkowany w implementacjach Lispu. Typy liczbowe: (integer? x) (rational? x) (real? x) (complex? x) (number? x) Liczby dokładne (ang. exact) i niedokładne (ang. inexact) Operacje zwracające liczby dokładne: + quotient remainder modulo max min abs numerator denominator gcd lcm oor ceiling truncate round rationalize expt Liczby niedokładne reprezentowane zwykle zmiennopozycyjnie (IEEE 32-bity lub 64 bity). 114 / 208
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
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.
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
Heurystyki. Strategie poszukiwań
Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja
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
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
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
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
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ę
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
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.
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
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
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
Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
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
Inteligentne Agenty. Na podstawie: AIMA ch2 i slajdów S. Russel a. Wojciech Jaśkowski. 14 marca
Na podstawie: AIMA ch2 i slajdów S. Russel a i Na podstawie: AIMA ch2 i slajdów S. Russel a Instytut Informatyki, Politechnika Poznańska 14 marca 2014 Instytut Informatyki, Politechnika Poznańska 14 marca
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
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
Inteligentne Agenty. Na podstawie: AIMA ch2 i slajdów S. Russel a. Wojciech Jaśkowski. 18 marca Inteligentne Agenty
Na podstawie: AIMA ch2 i slajdów S. Russel a Wojciech Jaśkowski Instytut Informatyki, Politechnika Poznańska 18 marca 2016 Na podstawie: AIMA ch2 i slajdów S. Russel a Wojciech Jaśkowski Instytut Informatyki,
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
Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki
Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First
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
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
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
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
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
a) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI
POLITECHNIKA WARSZAWSKA WYDZIAŁ MECHANICZNY ENERGETYKI I LOTNICTWA MEL WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI NS 586 Dr inż. Franciszek Dul 5. ROZWIĄZYWANIE PROBLEMÓW Z OGRANICZENIAMI Problemy z ograniczeniami
Algorytm genetyczny (genetic algorithm)-
Optymalizacja W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji: sformułowanie
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
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą
Wstęp do programowania
Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na
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
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,
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
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
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
Rozwiązywanie problemów przez przeszukiwanie. w oparciu o: S. Russel, P. Norvig. Artificial Intelligence. A Modern Approach
(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 (4g) agenci rozwiązujący problemy przykłady
Elementy języka Scheme
Elementy języka Scheme Historia języka Lisp Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje
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
Optymalizacja. Wybrane algorytmy
dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem
Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:
Temat: Powtórzenie wiadomości z PODSTAW INFORMATYKI I: Pojęcia: złożoność czasowa algorytmu, rząd funkcji kosztu. Algorytmy. Metody programistyczne. Struktury danych. Literatura. A. V. Aho, J.E. Hopcroft,
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
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
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Definicje wyższego poziomu
Definicje wyższego poziomu Interpreter Scheme-a nie będzie narzekad w przypadku wystąpienia niezdefionowanej zmiennej w ciele wyrażenia lambda dopóki nie będzie zastosowana Przykład braku informacji o
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;
Elementy języka Scheme
Elementy języka Scheme Historia języka Lisp Wyrażenia i ewaluacja wyrażeń Identyfikatory i wyrażenie let Wyrażenia lambda Definicje globalne Wyrażenia warunkowe Przypisanie Kontynuacje Historia języka
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
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
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
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,
Złożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott Metody konstrukcji algorytmów: Siłowa (ang. brute force), Dziel i zwyciężaj (ang. divide-and-conquer), Zachłanna (ang.
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
3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.
1. Podaj definicję informatyki. 2. W jaki sposób można definiować informatykę? 3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki. 4. Co to jest algorytm? 5. Podaj neumanowską architekturę
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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 -
Podstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Wykład 10 Grafy, algorytmy grafowe
. Typy złożoności obliczeniowej Wykład Grafy, algorytmy grafowe Typ złożoności oznaczenie n Jedna operacja trwa µs 5 logarytmiczna lgn. s. s.7 s liniowa n. s.5 s. s Logarytmicznoliniowa nlgn. s.8 s.4 s
Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.
Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Strategie ewolucyjne. Gnypowicz Damian Staniszczak Łukasz Woźniak Marek
Strategie ewolucyjne Gnypowicz Damian Staniszczak Łukasz Woźniak Marek Strategie ewolucyjne, a algorytmy genetyczne Podobieństwa: Oba działają na populacjach rozwiązań Korzystają z zasad selecji i przetwarzania
Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa
Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A
Ćwiczenie 1 Planowanie trasy robota mobilnego w siatce kwadratów pól - Algorytm A Zadanie do wykonania 1) Utwórz na pulpicie katalog w formacie Imię nazwisko, w którym umieść wszystkie pliki związane z
Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach
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
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
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
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
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
Programowanie dynamiczne
Programowanie dynamiczne Programowanie rekurencyjne: ZALETY: - prostota - naturalność sformułowania WADY: - trudność w oszacowaniu zasobów (czasu i pamięci) potrzebnych do realizacji Czy jest możliwe wykorzystanie
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
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Podstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Analiza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Programowanie dynamiczne i algorytmy zachłanne
Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii
Sztuczna Inteligencja i Systemy Doradcze
Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów problemy z więzami Przeszukiwanie przestrzeni stanów problemy z więzami 1 Problemy z wiezami (CSP) Ogólnie: stan jest czarną skrzynką,
Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Algorytmy i struktury danych
POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i struktury danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 5: Algorytmy
Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne
Algorytmy mrówkowe H. Bednarz Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne 13 kwietnia 2015 1 2 3 4 Przestrzeń poszukiwań Ograniczenia
Algorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
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ą
Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova
Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu
Paradygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykató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
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
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ą.
Wstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
Rekurencja - zdolność podprogramu (procedury) do wywoływania samego (samej) siebie Wieże Hanoi dane wejściowe - trzy kołki i N krążków o różniących się średnicach wynik - sekwencja ruchów przenosząca krążki
Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2
Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.
Algorytmy zrandomizowane
Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Algorytm 1. Termin algorytm jest używany w informatyce
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
Schemat programowania dynamicznego (ang. dynamic programming)
Schemat programowania dynamicznego (ang. dynamic programming) Jest jedną z metod rozwiązywania problemów optymalizacyjnych. Jej twórcą (1957) był amerykański matematyk Richard Ernest Bellman. Schemat ten
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