Sztuczna Inteligencja i Systemy Doradcze

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

Download "Sztuczna Inteligencja i Systemy Doradcze"

Transkrypt

1 Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów algorytmy ślepe Przeszukiwanie przestrzeni stanów algorytmy ślepe 1

2 Strategie slepe Strategie ślepe korzystają z informacji dostępnej jedynie w definicji problemu: Przeszukiwanie wszerz Strategia jednolitego kosztu Przeszukiwanie wgłąb Przeszukiwanie ograniczone wgłąb Przeszukiwanie iteracyjnie pogłębiane Przeszukiwanie dwukierunkowe Przeszukiwanie przestrzeni stanów algorytmy ślepe 2

3 Przeszukiwanie wszerz Wykonuje ekspansję najpłytszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką FIFO, tzn. nowe następniki dodawane są na koniec kolejki function Tree-Search(problem,fringe) returns a solution, or failure fringe Insert(Make-Node(Initial-State[problem]), fringe) loop do if fringe is empty then return failure node Remove-Front(fringe) if Goal-Test[problem] applied to State(node) succeeds return node fringe Insertll(Expand(node, problem), fringe) Przeszukiwanie przestrzeni stanów algorytmy ślepe 3

4 Przeszukiwanie wszerz Wykonuje ekspansję najpłytszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką FIFO, tzn. nowe następniki dodawane są na koniec kolejki Przeszukiwanie przestrzeni stanów algorytmy ślepe 4

5 Przeszukiwanie wszerz Wykonuje ekspansję najpłytszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką FIFO, tzn. nowe następniki dodawane są na koniec kolejki Przeszukiwanie przestrzeni stanów algorytmy ślepe 5

6 Przeszukiwanie wszerz Wykonuje ekspansję najpłytszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką FIFO, tzn. nowe następniki dodawane są na koniec kolejki Przeszukiwanie przestrzeni stanów algorytmy ślepe 6

7 Przeszukiwanie wszerz Wykonuje ekspansję najpłytszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką FIFO, tzn. nowe następniki dodawane są na koniec kolejki Przeszukiwanie przestrzeni stanów algorytmy ślepe 7

8 Zupełność?? Przeszukiwania wszerz: wlasnosci Przeszukiwanie przestrzeni stanów algorytmy ślepe 8

9 Przeszukiwania wszerz: wlasnosci Zupełność?? Tak (jeśli b jest skończone) Złożoność czasowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 9

10 Przeszukiwania wszerz: wlasnosci Zupełność?? Tak (jeśli b jest skończone) Złożoność czasowa?? 1 + b + b 2 + b b d + b(b d 1) = O(b d+1 ) tzn. wykładnicza względem d Złożoność pamięciowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 10

11 Przeszukiwania wszerz: wlasnosci Zupełność?? Tak (jeśli b jest skończone) Złożoność czasowa?? 1 + b + b 2 + b b d + b(b d 1) = O(b d+1 ) tzn. wykładnicza względem d Złożoność pamięciowa?? O(b d+1 ) (przechowuje każdy węzeł w pamięci) Optymalność?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 11

12 Przeszukiwania wszerz: wlasnosci Zupełność?? Tak (jeśli b jest skończone) Złożoność czasowa?? 1 + b + b 2 + b b d + b(b d 1) = O(b d+1 ) tzn. wykładnicza względem d Złożoność pamięciowa?? O(b d+1 ) (przechowuje każdy węzeł w pamięci) Optymalność?? Tak (jeśli koszt każdego kroku = 1); w ogólności nieoptymalny Przeszukiwanie przestrzeni stanów algorytmy ślepe 12

13 Przeszukiwania wszerz: wlasnosci Zupełność?? Tak (jeśli b jest skończone) Złożoność czasowa?? 1 + b + b 2 + b b d + b(b d 1) = O(b d+1 ) tzn. wykładnicza względem d Złożoność pamięciowa?? O(b d+1 ) (przechowuje każdy węzeł w pamięci) Optymalność?? Tak (jeśli koszt każdego kroku = 1); w ogólności nieoptymalny Złożoność pamięciowa jest dużym problemem; można łatwo generować węzły z szybkością 10M/sek czyli 24godz = 860G. Przeszukiwanie przestrzeni stanów algorytmy ślepe 13

14 Strategia jednolitego kosztu Wykonuje ekspansję węzła o najmniejszym koszcie spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe = kolejka priorytetowa porządkująca węzły według kosztu ścieżki od korzenia function Tree-Search(problem,fringe) returns a solution, or failure fringe Insert(Make-Node(Initial-State[problem]), fringe) loop do if fringe is empty then return failure node Remove-Front(fringe) if Goal-Test[problem] applied to State(node) succeeds return node fringe Insertll(Expand(node, problem), fringe) Odpowiada przeszukiwaniu wszerz jeśli koszt wszystkich pojedynczych akcji jest ten sam Przeszukiwanie przestrzeni stanów algorytmy ślepe 14

15 Strategia jednolitego kosztu Wykonuje ekspansję węzła o najmniejszym koszcie spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe = kolejka priorytetowa porządkująca węzły według kosztu ścieżki od korzenia rad Przeszukiwanie przestrzeni stanów algorytmy ślepe 15

16 Strategia jednolitego kosztu Wykonuje ekspansję węzła o najmniejszym koszcie spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe = kolejka priorytetowa porządkująca węzły według kosztu ścieżki od korzenia rad Zerind Sibiu Timisoara Przeszukiwanie przestrzeni stanów algorytmy ślepe 16

17 Strategia jednolitego kosztu Wykonuje ekspansję węzła o najmniejszym koszcie spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe = kolejka priorytetowa porządkująca węzły według kosztu ścieżki od korzenia rad Zerind Sibiu Timisoara rad Oradea Przeszukiwanie przestrzeni stanów algorytmy ślepe 17

18 Strategia jednolitego kosztu Wykonuje ekspansję węzła o najmniejszym koszcie spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe = kolejka priorytetowa porządkująca węzły według kosztu ścieżki od korzenia rad Zerind Sibiu Timisoara rad Oradea rad Lugoj Przeszukiwanie przestrzeni stanów algorytmy ślepe 18

19 Strategia jednolitego kosztu: wlasnosci Zupełność?? Tak, jeśli koszt wszystkich akcji ɛ, dla pewnego ɛ > 0 Złożoność czasowa?? Liczba węzłów, dla których g koszt optymalnego rozwiązania O(b /ɛ ), gdzie jest kosztem optymalnego rozwiązania Złożoność pamięciowa?? Liczba węzłów, dla których g koszt optymalnego rozwiązania O(b /ɛ ) Optymalność?? Tak węzły są uporządkowane rosnąco względem g(n) Przeszukiwanie przestrzeni stanów algorytmy ślepe 19

20 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki function Tree-Search(problem,fringe) returns a solution, or failure fringe Insert(Make-Node(Initial-State[problem]), fringe) loop do if fringe is empty then return failure node Remove-Front(fringe) if Goal-Test[problem] applied to State(node) succeeds return node fringe Insertll(Expand(node, problem), fringe) Przeszukiwanie przestrzeni stanów algorytmy ślepe 20

21 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 21

22 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 22

23 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 23

24 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 24

25 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 25

26 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 26

27 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 27

28 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 28

29 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 29

30 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 30

31 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 31

32 Przeszukiwanie wglab Wykonuje ekspansję najgłebszego węzła spośród tych, ktore nie były jeszcze rozszerzone Implementacja: fringe jest kolejką LIFO, tzn. nowe następniki dodawane są na początek kolejki H I J K L M N O Przeszukiwanie przestrzeni stanów algorytmy ślepe 32

33 Zupełność?? Przeszukiwanie wglab: wlasnosci Przeszukiwanie przestrzeni stanów algorytmy ślepe 33

34 Przeszukiwanie wglab: wlasnosci Zupełność?? rak, zawodzi w przestrzeniach o nieskończonej głębokości oraz w przestrzeniach z pętlami Po dodaniu eliminacji stanów powtarzających się wzdłuż ścieżki zupełność w przestrzeniach skończonych Złożoność czasowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 34

35 Przeszukiwanie wglab: wlasnosci Zupełność?? rak, zawodzi w przestrzeniach o nieskończonej głębokości oraz w przestrzeniach z pętlami Po dodaniu eliminacji stanów powtarzających się wzdłuż ścieżki zupełność w przestrzeniach skończonych Złożoność czasowa?? O(b m ): okropne jeśli m jest dużo większe niż d jeśli rozwiązania są gęste, może być szybsze niż przeszukiwanie wszerz Złożoność pamięciowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 35

36 Przeszukiwanie wglab: wlasnosci Zupełność?? rak, zawodzi w przestrzeniach o nieskończonej głębokości oraz w przestrzeniach z pętlami Po dodaniu eliminacji stanów powtarzających się wzdłuż ścieżki zupełność w przestrzeniach skończonych Złożoność czasowa?? O(b m ): okropne jeśli m jest dużo większe niż d jeśli rozwiązania są gęste, może być szybsze niż przeszukiwanie wszerz Złożoność pamięciowa?? O(bm), tzn. pamięć liniowa! Optymalność?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 36

37 Przeszukiwanie wglab: wlasnosci Zupełność?? rak, zawodzi w przestrzeniach o nieskończonej głębokości oraz w przestrzeniach z pętlami Po dodaniu eliminacji stanów powtarzających się wzdłuż ścieżki zupełność w przestrzeniach skończonych Złożoność czasowa?? O(b m ): okropne jeśli m jest dużo większe niż d jeśli rozwiązania są gęste, może być szybsze niż przeszukiwanie wszerz Złożoność pamięciowa?? O(bm), tzn. pamięć liniowa! Optymalność?? rak Przeszukiwanie przestrzeni stanów algorytmy ślepe 37

38 Przeszukiwanie ograniczone wglab Przeszukiwanie wgłąb z ograniczeniem na głębokość l, tzn. węzły na głębokości l nie mają następników Implementacja rekurencyjna: function Depth-Limited-Search( problem, limit) returns soln/fail/cutoff Recursive-DLS(Make-Node(Initial-State[problem]), problem, limit) function Recursive-DLS(node, problem, limit) returns soln/fail/cutoff cutoff-occurred? false if Goal-Test[problem](State[node]) then return node else if Depth[node] = limit then return cutoff else for each successor in Expand(node, problem) do result Recursive-DLS(successor, problem, limit) if result = cutoff then cutoff-occurred? true else if result failure then return result if cutoff-occurred? then return cutoff else return failure Przeszukiwanie przestrzeni stanów algorytmy ślepe 38

39 Przeszukiwanie iteracyjnie poglebiane Powtarza przeszukiwanie ograniczone wgłąb z rosnącym ograniczeniem na głębokość przeszukiwania function Iterative-Deepening-Search( problem) returns a solution inputs: problem, a problem for depth 0 to do result Depth-Limited-Search( problem, depth) if result cutoff then return result end Przeszukiwanie przestrzeni stanów algorytmy ślepe 39

40 Przeszukiwanie iteracyjnie poglebiane l = 0 Powtarza przeszukiwanie ograniczone wgłąb z rosnącym ograniczeniem na głębokość przeszukiwania Limit = 0 Przeszukiwanie przestrzeni stanów algorytmy ślepe 40

41 Przeszukiwanie iteracyjnie poglebiane l = 1 Powtarza przeszukiwanie ograniczone wgłąb z rosnącym ograniczeniem na głębokość przeszukiwania Limit = 1 Przeszukiwanie przestrzeni stanów algorytmy ślepe 41

42 Przeszukiwanie iteracyjnie poglebiane l = 2 Powtarza przeszukiwanie ograniczone wgłąb z rosnącym ograniczeniem na głębokość przeszukiwania Limit = 2 Przeszukiwanie przestrzeni stanów algorytmy ślepe 42

43 Przeszukiwanie iteracyjnie poglebiane l = 3 Powtarza przeszukiwanie ograniczone wgłąb z rosnącym ograniczeniem na głębokość przeszukiwania Limit = 3 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 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 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 Przeszukiwanie przestrzeni stanów algorytmy ślepe 43

44 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 44

45 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Tak Złożoność czasowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 45

46 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Tak Złożoność czasowa?? (d + 1)b 0 + db 1 + (d 1)b b d = O(b d ) Złożoność pamięciowa?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 46

47 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Tak Złożoność czasowa?? (d + 1)b 0 + db 1 + (d 1)b b d = O(b d ) Złożoność pamięciowa?? O(bd) Optymalność?? Przeszukiwanie przestrzeni stanów algorytmy ślepe 47

48 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Tak Złożoność czasowa?? (d + 1)b 0 + db 1 + (d 1)b b d = O(b d ) Złożoność pamięciowa?? O(bd) Optymalność?? Tak, jeśli koszt wszystkich akcji jest taki sam Można zmodyfikować tak, żeby przeszukiwać drzewo jednolitego kosztu Przeszukiwanie przestrzeni stanów algorytmy ślepe 48

49 Przeszukiwanie iteracyjnie poglebiane: wlasnosci Zupełność?? Tak Złożoność czasowa?? (d + 1)b 0 + db 1 + (d 1)b b d = O(b d ) Złożoność pamięciowa?? O(bd) Optymalność?? Tak, jeśli koszt wszystkich akcji jest taki sam Można zmodyfikować tak, żeby przeszukiwać drzewo jednolitego kosztu Numeryczne porównanie czasu wykonania dla współcz. rozgałęzienia b = 10 przy założeniu, że rozwiązanie w drzewie przeszukiwań ma głębokość d = 5 i znajduje się w skrajnie prawym węźle drzewa przeszukiwań: N(IDS) = , , , 000 = 123, 450 N(FS) = , , , , 990 = 1, 111, 100 Przeszukiwanie przestrzeni stanów algorytmy ślepe 49

50 Przeszukiwanie dwukierunkowe Wykonuje równolegle dwa przeszukiwania: 1) przeszukiwanie wprzód od stanu początkowego 2) przeszukiwanie w tył od stanu końcowego Start Goal Przeszukiwanie przestrzeni stanów algorytmy ślepe 50

51 Przeszukiwanie dwukierunkowe: wlasnosci Zupełność?? Tak, jeśli oba przeszukiwania wykonywane są wszerz Złożoność czasowa?? O(b d/2 ) To główna motywacja Złożoność pamięciowa?? O(b d/2 ) ena płacona za oszczędność czasu Optymalność?? Tak, jeśli oba przeszukiwania wykonywane są wszerz ( w grafie z takim samym kosztem wszystkich akcji) lub jeśli oba przeszukiwania używają strategii jednolitego kosztu (w grafie z różnym kosztem akcji) Przeszukiwanie przestrzeni stanów algorytmy ślepe 51

52 Podsumowanie algorytmow b maksymalne rozgałęzienie d głębokość optymalnego rozwiązania m maksymalna głębokość drzewa przeszukiwań (może być ) Kryterium Wszerz Jednolity Wgłąb Ograniczone Iter. Dwukie- Koszt Wgłąb Pogłęb. runkowe Zupełne? Tak a Tak a,b Nie Tak, dla l d Tak a Tak a,d zas b d+1 b /ɛ b m b l b d b d/2 Pamięć b d+1 b /ɛ bm bl bd b d/2 Optymalne? Tak c Tak Nie Nie Tak c Tak d a) zupełne, jeśli b jest skończone b) zupełne, jeśli koszt akcji ɛ, dla pewnego ɛ > 0 c) optymalne, jeśli koszt wszystkich akcji jest taki sam d) zupełne i optymalne, jeśli oba przeszukiwania wszerz lub wg jednol. kosztu Przeszukiwanie przestrzeni stanów algorytmy ślepe 52

53 Podsumowanie algorytmow b maksymalne rozgałęzienie d głębokość optymalnego rozwiązania m maksymalna głębokość drzewa przeszukiwań (może być ) Kryterium Wszerz Jednolity Wgłąb Ograniczone Iter. Dwukie- Koszt Wgłąb Pogłęb. runkowe Zupełne? Tak a Tak a,b Nie Tak, dla l d Tak a Tak a,d zas b d+1 b /ɛ b m b l b d b d/2 Pamięć b d+1 b /ɛ bm bl bd b d/2 Optymalne? Tak c Tak Nie Nie Tak c Tak d a) zupełne, jeśli b jest skończone b) zupełne, jeśli koszt akcji ɛ, dla pewnego ɛ > 0 c) optymalne, jeśli koszt wszystkich akcji jest taki sam d) zupełne i optymalne, jeśli oba przeszukiwania wszerz lub wg jednol. kosztu Podsumowanie: Iteracyjne pogłębianie używa tylko liniowej pamięci i czasu porównywalnego z innymi algorytmami Przeszukiwanie przestrzeni stanów algorytmy ślepe 53

54 Wykrywanie stanow odwiedzonych Niepełna eliminacja powtarzających się stanów może zamienić problem liniowy w wykładniczy! D Funkcja sprawdzania, czy stan był już odwiedzony, może działać szybko, jeśli zbiór stanów odwiedzonych jest pamiętany i zaimplementowany przy pomocy efektywnej struktury danych, np. kolejki priorytetowej lub tablicy haszującej. Przeszukiwanie przestrzeni stanów algorytmy ślepe 54

55 Przeszukiwanie grafu Jesli algorytm przeszukiwania przestrzeni stanów wykrywa i eliminuje z przeszukiwania stany wcześniej odwiedzone, to taki algorytm jest dobry również do przeszukiwania grafu Zmienna closed pamięta wszystkie wcześniej odwiedzone stany function Graph-Search(problem,fringe) returns a solution, or failure closed an empty set fringe Insert(Make-Node(Initial-State[problem]), fringe) loop do if fringe is empty then return failure node Remove-Front(fringe) if Goal-Test[problem](State[node]) then return node if State[node] is not in closed then add State[node] to closed fringe Insertll(Expand(node, problem), fringe) end Przeszukiwanie przestrzeni stanów algorytmy ślepe 55

56 Przeszukiwanie grafu: wlasnosci Zupełność?? Tak, jeśli graf skończony Złożoność czasowa?? liczba wierzchołków grafu koszt wyszukania stanu Złożoność pamięciowa?? liczba wierzchołków grafu Optymalność?? optymalne przy przeszukiwaniu drzewa Przeszukiwanie przestrzeni stanów algorytmy ślepe 56

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze ztuczna Inteligencja i ystemy Doradcze Przeszukiwanie przestrzeni stanów Przeszukiwanie przestrzeni stanów 1 Postawienie problemu eprezentacja problemu: stany: reprezentują opisy różnych stanów świata

Bardziej szczegółowo

Heurystyki. Strategie poszukiwań

Heurystyki. Strategie poszukiwań Sztuczna inteligencja Heurystyki. Strategie poszukiwań Jacek Bartman Zakład Elektrotechniki i Informatyki Instytut Techniki Uniwersytet Rzeszowski DLACZEGO METODY PRZESZUKIWANIA? Sztuczna Inteligencja

Bardziej szczegółowo

SID Wykład 1 Wprowadzenie

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

Bardziej szczegółowo

WPROWADZENIE DO SZTUCZNEJ INTELIGENCJI

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

Bardziej szczegółowo

Podstawy sztucznej inteligencji

Podstawy sztucznej inteligencji wykład 2 Strategie przeszukiwania - ślepe i heurystyczne 27 październik 2011 Plan wykładu 1 Strategie czyli jak znaleźć rozwiązanie problemu Jak wykonać przeszukiwanie Przeszukiwanie przestrzeni stanów

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

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

Bardziej szczegółowo

SID Wykład 2 Przeszukiwanie

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

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

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

Bardziej szczegółowo

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH

Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Marcel Stankowski Wrocław, 23 czerwca 2009 INFORMATYKA SYSTEMÓW AUTONOMICZNYCH Przeszukiwanie przestrzeni rozwiązań, szukanie na ślepo, wszerz, w głąb. Spis treści: 1. Wprowadzenie 3. str. 1.1 Krótki Wstęp

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

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

Bardziej szczegółowo

Metody przeszukiwania

Metody przeszukiwania Metody przeszukiwania Co to jest przeszukiwanie Przeszukiwanie polega na odnajdywaniu rozwiązania w dyskretnej przestrzeni rozwiązao. Zwykle przeszukiwanie polega na znalezieniu określonego rozwiązania

Bardziej szczegółowo

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

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

Bardziej szczegółowo

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych ELEMENTY SZTUCZNEJ INTELIGENCJI Laboratorium nr 9 PRZESZUKIWANIE GRAFÓW Z

Bardziej szczegółowo

Podstawy sztucznej inteligencji

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

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Elementy kognitywistyki II:

Elementy kognitywistyki II: Elementy kognitywistyki II: Sztuczna inteligencja WYKŁAD IV: Agent szuka rozwiązania (na ślepo) Poprzednio: etapy rozwiązywania problemu sformułowanie celu sformułowanie problemu stan początkowy (initial

Bardziej szczegółowo

Wstęp do Sztucznej Inteligencji

Wstęp do Sztucznej Inteligencji Wstęp do Sztucznej Inteligencji Rozwiązywanie problemów-i Joanna Kołodziej Politechnika Krakowska Wydział Fizyki, Matematyki i Informatyki Rozwiązywanie problemów Podstawowe fazy: Sformułowanie celu -

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Heurystyczne metody przeszukiwania

Heurystyczne metody przeszukiwania Heurystyczne metody przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Pojęcie heurystyki Metody heurystyczne są jednym z ważniejszych narzędzi sztucznej inteligencji.

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

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

Bardziej szczegółowo

SZTUCZNA INTELIGENCJA

SZTUCZNA INTELIGENCJA SZTUCZNA INTELIGENCJA WYKŁAD 12. PRZESZUKIWANIE Częstochowa 2014 Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska ROZWIĄZYWANIE PROBLEMÓW JAKO PRZESZUKIWANIE Istotną rolę podczas

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Rozwiązywanie problemów metodą przeszukiwania

Rozwiązywanie problemów metodą przeszukiwania Rozwiązywanie problemów metodą przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Reprezentacja problemu w przestrzeni stanów Jedną z ważniejszych metod sztucznej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Porządek symetryczny: right(x)

Porządek symetryczny: right(x) Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)

Bardziej szczegółowo

Struktury danych: stos, kolejka, lista, drzewo

Struktury danych: stos, kolejka, lista, drzewo Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja

Bardziej szczegółowo

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy i Struktury Danych

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

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

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

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy Sztucznej Inteligencji (PSZT) Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Przeszukiwanie Przeszukiwanie przestrzeni stanów Motywacja Rozwiązywanie problemów: poszukiwanie sekwencji operacji prowadzącej do celu poszukiwanie

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 BFS DFS Algorytm Dijkstry Algorytm Floyda-Warshalla Podstawowe pojęcia Definition Graf = wierzchołki + krawędzie. Krawędzie muszą

Bardziej szczegółowo

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %). Powrót Twój wynik: 4 punktów na 6 możliwych do uzyskania (6667 %). Nr Opcja Punkty Poprawna Odpowiedź Rozważmy algorytm AVLSequence postaci: 1 Niech drzewo będzie rezultatem działania algorytmu AVLSequence

Bardziej szczegółowo

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW

SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW SID Wykład 4 Gry Wydział Matematyki, Informatyki i Mechaniki UW slezak@mimuw.edu.pl Gry a problemy przeszukiwania Nieprzewidywalny przeciwnik rozwiazanie jest strategia specyfikujac a posunięcie dla każdej

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Strategie przeszukiwania ślepe i heurystyczne

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

Bardziej szczegółowo

Planowanie drogi robota, algorytm A*

Planowanie drogi robota, algorytm A* Planowanie drogi robota, algorytm A* Karol Sydor 13 maja 2008 Założenia Uproszczenie przestrzeni Założenia Problem planowania trasy jest bardzo złożony i trudny. W celu uproszczenia problemu przyjmujemy

Bardziej szczegółowo

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

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,

Bardziej szczegółowo

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo)

Elementy kognitywistyki II: Sztuczna inteligencja. WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo) Elementy kognitywistyki II: Sztuczna inteligencja WYKŁAD V: Agent wciąż szuka rozwiązania (choć już nie na ślepo) Poprzednio: węzeł reprezentowany jest jako piątka: stan odpowiadający węzłowi rodzic węzła

Bardziej szczegółowo

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. 1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie

Bardziej szczegółowo

Metody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

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

Bardziej szczegółowo

Struktury danych (I): kolejka, stos itp.

Struktury danych (I): kolejka, stos itp. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

dr inż. Paweł Myszkowski Wykład nr 11 ( )

dr inż. Paweł Myszkowski Wykład nr 11 ( ) dr inż. Paweł Myszkowski Politechnika Białostocka Wydział Elektryczny Elektronika i Telekomunikacja, semestr II, studia stacjonarne I stopnia Rok akademicki 2015/2016 Wykład nr 11 (11.05.2016) Plan prezentacji:

Bardziej szczegółowo

Stos LIFO Last In First Out

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

Bardziej szczegółowo

Drzewa poszukiwań binarnych

Drzewa poszukiwań binarnych 1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Postawienie problemu. Implementacja: stany vs. wezly. Implementacja: przeszukiwanie drzewa stanow. Przeszukiwanie drzewa stanow

Postawienie problemu. Implementacja: stany vs. wezly. Implementacja: przeszukiwanie drzewa stanow. Przeszukiwanie drzewa stanow Implementacja: stany vs. wezly Stan jest fizyczną konfiguracją (jej reprezentacją) Węzeł jest strukturą danych stanowiącą część drzewa przeszukiwań zawiera poprzednik (parent), następniki, głebokość (depth)

Bardziej szczegółowo

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE LABORATORIUM 2: Przeszukiwanie grafów cz. 2 strategie heurystyczne

Bardziej szczegółowo

Teoretyczne podstawy informatyki

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

Bardziej szczegółowo

Wstęp do programowania

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

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

Drzewa podstawowe poj

Drzewa podstawowe poj Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Drzewa poszukiwań binarnych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 12 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW RELACJE MIEDZY KLASAMI ZŁOŻONOŚCI Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 KLASY ZŁOŻONOŚCI KLASE ZŁOŻONOŚCI OPISUJE SIE PODAJAC: Model

Bardziej szczegółowo

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Wykład 10 Grafy, algorytmy grafowe

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

Bardziej szczegółowo

Grafy i ich reprezentacja

Grafy i ich reprezentacja Grafy i ich reprezentacja Podstawy Podstawowe pojęcia: Graf G(V,E) struktura danych składająca się z dwóch zbiorów V i E V = [v 1 v n ] wierzchołki (vertex) E =[e 1 e m ] krawędzie (edges) E = {(u,v):

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy i Struktury Danych.

Algorytmy i Struktury Danych. Algorytmy i Struktury Danych. Drzewa poszukiwań binarnych. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 10 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.

Bardziej szczegółowo

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

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola: Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy dla gier dwuosobowych

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

Bardziej szczegółowo

Listy, kolejki, stosy

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

Bardziej szczegółowo

Dynamiczne struktury danych

Dynamiczne struktury danych Listy Zbiór dynamiczny Zbiór dynamiczny to zbiór wartości pochodzących z pewnego określonego uniwersum, którego zawartość zmienia się w trakcie działania programu. Elementy zbioru dynamicznego musimy co

Bardziej szczegółowo

Struktury Danych i Złożoność Obliczeniowa

Struktury Danych i Złożoność Obliczeniowa Struktury Danych i Złożoność Obliczeniowa Zajęcia 3 Struktury drzewiaste drzewo binarne szczególny przypadek drzewa, które jest szczególnym przypadkiem grafu skierowanego, stopień każdego wierzchołka jest

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Sztuczna inteligencja w programowaniu gier

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

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

Abstrakcyjne struktury danych - stos, lista, drzewo

Abstrakcyjne struktury danych - stos, lista, drzewo Sprawozdanie Podstawy Informatyki Laboratoria Abstrakcyjne struktury danych - stos, lista, drzewo Maciej Tarkowski maciek@akom.pl grupa VII 1/8 1. Stos Stos (ang. Stack) jest podstawową liniową strukturą

Bardziej szczegółowo

Zadanie 1: Piętnastka

Zadanie 1: Piętnastka Informatyka, studia dzienne, inż. I st. semestr VI Sztuczna Inteligencja i Systemy Ekspertowe 2010/2011 Prowadzący: mgr Michał Pryczek piątek, 12:00 Data oddania: Ocena: Grzegorz Graczyk 150875 Marek Rogalski

Bardziej szczegółowo

INFORMATYKA DANE.

INFORMATYKA DANE. INFORMATYKA DANE http://www.infoceram.agh.edu.pl DANE Dane to zbiory liczb, znaków, sygnałów, wykresów, tekstów, itp., które mogą być przetwarzane. Pojęcie danych jest relatywne i istnieje tylko razem

Bardziej szczegółowo

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

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

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat 4: Realizacje dynamicznych struktur danych. Wykładowca: dr inż. Zbigniew TARAPATA e-mail: Zbigniew.Tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/

Bardziej szczegółowo

Teoretyczne podstawy informatyki

Teoretyczne podstawy informatyki Teoretyczne podstawy informatyki Wykład 6b: Model danych oparty na drzewach http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 Prof. dr hab. Elżbieta Richter-Wąs 1 Model danych oparty na drzewach

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Drzewa poszukiwań binarnych dr hab. Bożena Woźna-Szcześniak Jan Długosz University, Poland Wykład 8 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 8 1 /

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Programowanie obiektowe

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

Bardziej szczegółowo