Heurystyczne przeszukiwanie grafów gier dwuosobowych

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

Download "Heurystyczne przeszukiwanie grafów gier dwuosobowych"

Transkrypt

1 Heurystyczne przeszukiwanie grafów gier dwuosobowych Wykład Informatyka Studia InŜynierskie Teoria gier w dziedzinie SI Liczba graczy jednoosobowe, dwuosobowe oraz wieloosobowe Suma wypłat gry o sumie zerowej (zyski i straty uczestników bilansują się) gry o sumie niezerowej (wygrane i przegrane nie muszą się bilansować) Dostępna wiedza gry z pełną informacją (precyzyjna wiedza o sytuacji i celach przeciwnika) gry z niepełną informacją (brak wiedzy na temat przeciwnika, czynnik losowy źródłem niepewności) 1

2 Gry dwuosobowe - przeszukiwanie heurystyczne Dwóch przeciwników posiadających pełną informację stanie gry i wszystkich moŝliwych ruchach Jeden gracz nosi nazwę Max, bo: maksymalizuje rezultat końcowy kaŝdy wzrost wartości oznacza poprawę dla tego gracza i równowaŝną stratę dla przeciwnika Drugi gracz nosi nazwę Min, bo: imalizuje rezultat końcowy kaŝdy spadek wartości oznacza poprawę dla tego gracza i równowaŝną stratę dla przeciwnika o Zasada

3 Min- wynik! wywołanie: Algorytm - result = MinMax(s, MAXDEPTH, MAX) int MinMax(state s, int depth, int type) { if( is_teral_node(s) depth==0 ) return(eval(s)); if( type == MAX ){ best = - ; for(child=1; child<=numofsucc(s); child++) { val = MinMax(Succ(s,child), depth-1, MIN); if( val > best ) best = val; } //endfor } else { // type == MIN best = ; for(child=1; child<=numofsucc(s); child++) { val = MinMax(Succ(s,child), depth-1, MAX); if( val < best ) best = val; } //endfor } return best; } 3

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

5 Zasada nega (y) 5 7 y = = (x) x = - (z) z Algorytm neg- wywołanie: result = NegMax(s, MAXDEPTH) int NegMax(state s, int depth) { if( is_teral_node(s) depth==0 ) return(eval(s,depth)); best = - ; for(child=1; child<=numofsucc(s); child++) { val = -NegMax(Succ(s,child), depth-1); if( val > best ) best = val; } //endfor return best; } Funkcja heurystycznej oceny stanu musi uwzględniać, kto wykonywałby ruch w ocenianym stanie. JeŜeli gracz MAX to ocena jest w postaci prostej, jeśli gracz MIN - w postaci zanegowanej. 5

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

7 Kółko i krzyŝyk - heurystyka Funkcja oceny heurystycznej stanu gry - róŝnica liczby moŝliwych wygranych gracza X i gracza O Gracz X ma 6 moŝliwych wygranych Gracz O ma 5 moŝliwych wygranych E(n) = 6-5 = 1 Gracz X ma 4 moŝliwych wygranych Gracz O ma 6 moŝliwych wygranych E(n) = 4-6 = -2 Gracz X ma 5 moŝliwych wygranych Gracz O ma 4 moŝliwych wygranych E(n) = 5-4 = 1 Kółko i krzyŝyk - przykład gry(1) 1 Ruch MAXa =1 5-5=0 6-5=1 5-5=0 4-5=-1 5-4=1 6-4=2. głębokość=2 5-6=-1 5-5=0 5-6=-1 6-6=0 4-6=-2 7

8 . głębokość=2 Kółko i krzyŝyk - przykład gry(2) =2 3-2=1 5-2=3 3-2=1 4-2=2 3-2=1 0 Ruch MAXa 4-3=1 3-3=0 5-3=2 3-3=0 4-3=1 4-3= =2 4-2=2 5-2=3 3-2=1 4-2=2 4-2=2 4-3=1 4-3=1 3-3=0 Kółko i krzyŝyk - przykład gry(3) Ruch MAXa 2-1=1 3-1=2 2-1=1 3-1=2-2-1=1 2-1=1 2-1= =1 2-2=0 3-2=1-2-1=1 3-1=2 3-1=2. głębokość=2-2-2=0 2-2=0 3-2=1

9 Algorytm - (lub nega) Przyjmując określony branching factor (b) oraz stałą głębokość przeszukiwania (d) ZłoŜoność pamięciowa O(bd) ZłoŜoność czasowa O(b d ) Czy moŝna ten wynik poprawić? Tak! Branch&bound Ograniczenie dolne - odcięcieα odcięcie α Analiza lewego poddrzewa pokazała, Ŝe MAX ma ruch o wartości 5. Po sprawdzeniu lewego liścia środkowego poddrzewa widać, Ŝe wartość drugiego ruchu będzie mniejsza lub równa 3 (w stanie tym decyduje MIN!). Analiza pozostałych ruchów MINa nie ma zatem sensu, gdyŝ decyzja MAXa w korzeniu grafu nie moŝe juŝ ulec zmianie niezaleŝnie od ich wartości. 9

10 Ograniczenie górne - odcięcieβ odcięcie β Analiza lewego poddrzewa pokazała, Ŝe MIN ma ruch o wartości 6. Po sprawdzeniu lewego liścia środkowego poddrzewa widać, Ŝe wartość drugiego ruchu MINa będzie większa lub równa 9 (w stanie tym decyduje MAX!). Analiza pozostałych ruchów MAXa nie ma zatem sensu, gdyŝ decyzja MINa w korzeniu grafu nie moŝe juŝ ulec zmianie niezaleŝnie od ich wartości. Odcięcia α-β: przykład

11 Odcięcia α-β Odcięcia α-β

12 Odcięcia α-β Odcięcia α-β

13 Odcięcia α-β 9 9 β Odcięcia α-β 9 9 β

14 Odcięcia α-β 9 9 β Odcięcia α-β β

15 Odcięcia α-β β Odcięcia α-β β

16 Odcięcia α-β β 5 α Odcięcia α-β β 5 5 α

17 Odcięcia α-β β 5 5 α Odcięcia α-β β 5 5 α

18 Odcięcia α-β 5 5 α β Odcięcia α-β 5 5 α β

19 Odcięcia α-β 5 5 α β α Odcięcia α-β 5 5 α β α

20 Odcięcia α-β 5 5 α β α Odcięcia α-β 5 5 α β α

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

22 Odcięcia α-β C 3 3 = 3 2 = = 3 0 A 3 D 0 E 0 α 2 5 = 0 = 2 B β 2 2 α A ma próg β = 3 (A nie będzie większe niŝ 3) B odcięcie dla β, bo 5 > 3 C ma próg α = 3 (C nie będzie mniejsze niŝ 3) D odcięcie dla α, bo 0 < 3 E odcięcie dla α, bo 2 < 3 C ma wartość 3 Sformułowanie neg- dla AlfaBeta Sformułowanie - wymaga przemiennych wywołań rekurencyjnych dwóch graczy (raz dla gracza MAX, dwa dla gracza MIN, itd.) Sformułowanie neg- opiera się tylko na graczu MAX (jedna funkcja rekurencyjna) Przy wyjściu z rekurencji negujemy zwracaną wartość Czy to wystarczy? Nie! Przy zagnieŝdŝeniu rekurencyjnym w wersji neg- negujemy ograniczenia i zamieniamy miejscami 22

23 Algorytm AlfaBeta (zapis neg-) wywołanie: result = AlphaBeta(s, MAXDEPTH, -, ) int AlphaBeta(state s, int depth, int alpha, int beta) { if( is_teral_node(s) depth==0 ) return(eval(s,depth)); for(child=1; child<=numofsucc(s); child++) { val = -AlphaBeta(Succ(s,child),depth-1,-beta,-alpha); if( val > alpha ) alpha = val; // alpha=(val,alpha); if( alpha >= beta ) return beta; // cutoff } //endfor return alpha; } Cechy algorytmu AlfaBeta ŚcieŜka krytyczna (ang. principal variation) ścieŝka w grafie przeszukiwania od korzenia do najlepszego liścia Wartości zwracane: w wersji : ze względu na gracza w korzeniu w wersji neg-: ze względu na tego czyj jest ruch w liściu Bardzo zawikłany kod ewentualny błędy pozostają długo ukryte (problemy moŝna zauwaŝyć tylko wtedy, gdy niepoprawne wartości zostaną przepropagowane do korzenia grafu) Efektywność algorytmu zaleŝy w ogromnym stopniu od kolejności następników i występowania odcięć 23

24 Analiza algorytmu AlfaBeta Sytuacja idealna jeśli odcięcie ma się pojawić, to powinno wystąpić jak najszybciej, czyli najlepiej zaraz po sprawdzeniu pierwszego następnika odcięcie α ? zmieniona kolejność Odcięcia α-β (mniej odcięć!) = = = 9 3 = 9 9 = 5 5 3? 5 = 9 = 5 = 9 5 α? zmieniona kolejność 24

25 ZłoŜoność algorytmu AlfaBeta Dla danej głębokości (d) i stałego braching factor (b) Najlepszy przypadek: O(b d/2 ) Najgorszy przypadek: brak odcięć (czyli jak MinMax) Średni przypadek: O((b/log b) d ) Słabości algorytmu AlfaBeta Efekt horyzontu (ang. horizont effect) Niewidoczny spadek wartości stanu tuŝ za wyznaczoną głębokością przeszukiwania Występuje we wszystkich odmianach algorytmu Wykrywanie stanów naraŝonych na wystąpienie efektu horyzontu i prowadzenia przeszukiwania za tym stanami - problem otwarty 25

26 Rozszerzenia algorytmu AlfaBeta Doskonalenie funkcji oceny stanu (funkcji heurystycznej) Modyfikacje sposobu przeszukiwania grafu zastosowanie pamięci (np. tablica przejść) porządkowanie następników manipulowanie zakresem α-β zmienna głębokość przeszukiwania przeszukiwanie eksploracyjne Rozwiązania sprzętowe (np. obliczenia równoległe) Wariant fail-soft algorytmu AlfaBeta Klasyczna postać algorytmu wartości zwracane zawsze z przedziału [α, β] Wariant fail-soft algorytmu AlfaBeta [Fishburn 1] zwraca dowolne wartości niezaleŝnie od początkowego zakresu [α, β] Wariant fail-soft algorytmu AlfaBeta stanowi podstawę do wszelkich jego modyfikacji, wykorzystujących manipulacje zakresem [α, β] 26

27 Algorytm AlfaBeta fail-soft (zapis neg-) wywołanie: result = AlphaBetaFS(s, MAXDEPTH, -, ) int AlphaBetaFS(state s, int depth, int alpha, int beta) { if( is_teral_node(s) depth==0 ) return(eval(s)); best = - ; for(child=1; child<=numofsucc(s); child++) { val = -AlphaBetaFS(Succ(s,child),depth-1,-beta,-alpha); if( val > best ) best = val; if( best >= beta ) break; // cutoff if( best > alpha) alpha = best; } //endfor return best; } Znaczenie zakresu α-β ZałóŜmy, Ŝe dla wierzchołka n o faktycznej wartości f procedura AlfaBetaFS(n, α, β) zwraca wartość g. MoŜemy wyróŝnić trzy następujące sytuacje: α < g < β (sukces) g jest równe faktycznej wartości f g α (failing low) g jest górnym ograniczeniem dla f (oznaczane jako f + ), tzn. f g g β (failing high) - g jest dolnym ograniczeniem dla f (oznaczane jako f ), tzn. f g 27

28 Zakresy α-β: sytuacja failing low (g α) f + =41 α = -1, β = f + =41 f + =36 f + =41 f + =36 f + =41 f + =12 f + =34 f + = Zakresy α-β: failing low Wywołanie procedury alfa-beta dla wierzchołka n z parametrami AlfaBetaFS(n, -1, ) (wszystkie liście mają wartości mniejsze) spowoduje: we wszystkich wierzchołkach MIN wystąpienie odcięćα, bo wartości wszystkich następników są g α= -1 we wszystkich wierzchołkach MAX brak jakichkolwiek cięćβ, bo wartości wszystkich następników są g < β = Otrzymane drzewo przeszukiwania będzie zawierać po jednym potomku dla kaŝdego wierzchołka MIN i wszystkie potomne dla kaŝdego wierzchołka MAX. 2

29 Failing low dlaczego górne ograniczenie? all... one all one Zakresy α-β: sytuacja failing high (g β ) f - =5 α = -, β = - +1 f - =5 f - =5 f - =0 f - =5 f - =

30 Zakresy α-β: failing high Wywołanie procedury alfa-beta dla wierzchołka n z parametrami AlfaBetaFS(n, -, - +1) (wszystkie liście mają wartości większe) spowoduje: we wszystkich wierzchołkach MAX wystąpienie odcięć β, bo wartości wszystkich następników są g β = - +1 we wszystkich wierzchołkach MIN brak jakichkolwiek cięćα, bo wartości wszystkich następników są g > α = - Otrzymane drzewo przeszukiwania będzie zawierać po jednym potomku dla kaŝdego wierzchołka MAX i wszystkie potomne dla kaŝdego wierzchołka MIN. Failing high dlaczego dolne ograniczenie? one all... one all

31 AlfaBeta jako przeszukiwanie w głąb Jak określić właściwą głębokość przeszukiwania? Czym moŝna przeszukiwać do wierzchołków teralnych? Najczęściej nie! (Zbyt duŝa przestrzeń) Przeszukiwanie do ustalonej głębokości: Niewłaściwa kolejność następników (ruchów) moŝe doprowadzić do ogromnego grafu przeszukiwania Co w sytuacji, gdy głębokość jest za mała? Co w sytuacji, gdy głębokość jest za duŝa? Iteracyjne pogłębianie int iterative_deepening(state s) { depth = 0; { depth++; } value = AlfaBeta(s, depth, -, ); if( rescources_up() ) break; // stop } while( depth < MAXDEPTH ) return(value); 31

32 Iteracyjne pogłębianie Zalety Osiąganie maksymalnej moŝliwej głębokości przeszukiwania przy aktualnie dostępnych zasobach (obliczenia w systemach czasu rzeczywistego!) Gwarancja znalezienia najlepszego rozwiązania do określonej głębokości przeszukiwania Wady Wielokrotne przeszukiwanie tych samych obszarów przestrzeni stanów Iteracyjne pogłębianie Potencjalne korzyści z poprzednich iteracji Przed przejściem do przeszukiwania na głębokości d+1 moŝna uporządkować ruchy na podstawie wyników uzyskanych dla głębokości d W większości gier słuszne jest załoŝenie, iŝ najlepszy pierwszy ruch w przeszukiwaniu na głębokość d stanowi dobre przybliŝenie najlepszego ruchu w przeszukiwaniu na głębokość d+1 Wzrasta prawdopodobieństwo wybrania właściwego pierwszego ruchu im bliŝej ostatniej (najkosztowniejszej) iteracji 32

33 Iteracyjne pogłębianie: zmiana kolejności A B C B A C głębokość d głębokość d+1 Badania eksperymentalne wykazały, iŝ koszty wielokrotnego przeszukiwania przestrzeni stanów są niewspółmiernie niskie w stosunku do zysków wynikających z porządkowania ruchów w wierzchołkach grafu. Sterowanie zakresem α-β Metody manipulowania zakresem odcięć Aspiration Search [Slate&Atkin 77] Metody z imalnym zakresem * NegaScout (PVS) [Reinefeld 3] * Rodzina algorytmów MTD [Plaat 96] 33

34 Zakresy α-β: Aspiration Search Tradycyjny zakres przeszukiwania (, ) Co w sytuacji, gdy jesteśmy w pewnym stopniu przewidzieć rezultat przeszukiwania? Przeszukiwanie z zakresem (v, v + ), gdzie: v spodziewany rezultat zakładane odchylenie od tej wartości ( >0) Mniejszy zakres alfa-beta oznacza więcej odcięć i mniejszy graf przeszukiwania Kiedy przewidywania się nie sprawdziły (failing-low lub failing-high), konieczność powtórzenia przeszukiwania z większym zakresem Zakresy α-β: Algorytm Aspiration Search int IDAspirationSearch(state s, deviation ) { guess = 0; for(depth=1;!resources_up(); depth++) { alpha = guess- ; beta = guess+ ; score = AlphaBetaFS(s, depth, alpha, beta); if( score >= beta ) { // failing high alpha = score; beta = ; score = AlphaBetaFS(s, depth, alpha, beta); } else } if( score <= alpha ) { // failing low alpha = - ; beta = score; score = AlphaBetaFS(s, depth, alpha, beta); } guess = score; } //endfor return(guess); 34

35 Zakresy α-β: Własności Aspiration Search Nietrywialny problem wyboru początkowej wartości zakresu alfa-beta (wartości guess oraz ) Iteracyjne pogłębianie automatyzuje proces manipulowania zakresem α-β wartość korzenia wyznaczona w poprzedniej iteracji jest najlepszym przybliŝeniem środka przedziału w następnej iteracji Podwójna kontrola przebiegu przeszukiwania: sterowanie głębokością oraz manipulowanie przedziałem alfa-beta Jeśli nie Aspiration Search, to co? AspirationSearch nie moŝe korzystać ze zbyt małego zakresu α-β, bo koszty powtórzeń przeszukiwania byłyby zbyt duŝe! AspirationSearch ogranicza się tylko do manipulacji zakresem w korzeniu grafu, dlaczego nie robić tego w kaŝdym wierzchołku grafu? Bardziej efektywne metody operują na imalnym zakresie α-β, tj. β = α+1 ( algorytmy NegaScout oraz MTD(f) ), ale wymagają dodatkowej pamięci do porządkowania ruchów 35

Heurystyczne przeszukiwanie grafów w gier dwuosobowych

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

Bardziej szczegółowo

Mechanizm wyboru następnego wierzchołka w grafie

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

Bardziej szczegółowo

Heurystyczne przeszukiwanie przestrzeni stanów

Heurystyczne przeszukiwanie przestrzeni stanów Heurystyczne przeszukiwanie przestrzeni stanów Wykład Informatyka Studia InŜynierskie Podstawowe pojęcia teorii grafów przeszukiwania Korzeń grafu Stan, od którego zaczynamy przeszukiwanie grafu (drzewa)

Bardziej szczegółowo

Heurystyczne przeszukiwanie przestrzeni stanów

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Wprowadzenie do Sztucznej Inteligencji

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

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

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

Bardziej szczegółowo

Wyznaczanie strategii w grach

Wyznaczanie strategii w grach Wyznaczanie strategii w grach Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Definicja gry Teoria gier i konstruowane na jej podstawie programy stanowią jeden z głównych

Bardziej szczegółowo

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier ALP520 - Wykład z Algorytmów Probabilistycznych p.2 Metody teorii gier Cel: Wyprowadzenie oszacowania dolnego na oczekiwany czas działania dowolnego algorytmu losowego dla danego problemu.

Bardziej szczegółowo

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy

Teoria gier. Wykład7,31III2010,str.1. Gry dzielimy Wykład7,31III2010,str.1 Gry dzielimy Wykład7,31III2010,str.1 Gry dzielimy ze względu na: liczbę graczy: 1-osobowe, bez przeciwników(np. pasjanse, 15-tka, gra w życie, itp.), Wykład7,31III2010,str.1 Gry

Bardziej szczegółowo

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie!

Teoria gier. Teoria gier. Odróżniać losowość od wiedzy graczy o stanie! Gry dzielimy ze względu na: liczbę graczy: 1-osobowe, bez przeciwników(np. pasjanse, 15-tka, gra w życie, itp.), 2-osobowe(np. szachy, warcaby, go, itp.), wieloosobowe(np. brydż, giełda, itp.); wygraną/przegraną:

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

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2) Podstawy programowania (język C) funkcje rekurencyjne Wykład 12. Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Funkcje rekurencyjne (1) W języku C funkcja moŝe wywoływać samą siebie.

Bardziej szczegółowo

Praktyczne aspekty programowania gier logicznych. Piotr Beling

Praktyczne aspekty programowania gier logicznych. Piotr Beling Praca magisterska Praktyczne aspekty programowania gier logicznych Piotr Beling nr. albumu: 110341 Promotor: dr inż. Tadeusz Łyszkowski Łódź, 2006 Spis treści Spis treści i 1 Wstęp 1 1.1 Dlaczegowartopisaćgrylogiczne?...

Bardziej szczegółowo

Sztuczna Inteligencja i Systemy Doradcze

Sztuczna Inteligencja i Systemy Doradcze Sztuczna Inteligencja i Systemy Doradcze Przeszukiwanie przestrzeni stanów algorytmy ślepe Przeszukiwanie przestrzeni stanów algorytmy ślepe 1 Strategie slepe Strategie ślepe korzystają z informacji dostępnej

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Algorytmy i struktury danych www.pk.edu.pl/~zk/aisd_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 5: Algorytmy

Bardziej szczegółowo

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

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

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

Efektywna metoda sortowania sortowanie przez scalanie

Efektywna metoda sortowania sortowanie przez scalanie Efektywna metoda sortowania sortowanie przez scalanie Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Metoda dziel i zwycięŝaj Dzielimy

Bardziej szczegółowo

Algorytmy i struktury danych

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

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH ALGORYTMY I STRUKTURY DANYCH Temat : Drzewa zrównoważone, sortowanie drzewiaste 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

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik

Wykład X. Programowanie. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2016 Janusz Słupik Wykład X Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2016 c Copyright 2016 Janusz Słupik Drzewa binarne Drzewa binarne Drzewo binarne - to drzewo (graf spójny bez cykli) z korzeniem (wyróżnionym

Bardziej szczegółowo

Programowanie w VB Proste algorytmy sortowania

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

Bardziej szczegółowo

Tworzenie gier na urządzenia mobilne

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

Bardziej szczegółowo

Programowanie gier logicznych

Programowanie gier logicznych Programowanie gier logicznych Piotr Beling Instytut Informatyki Politechnika Łódzka 25 marca 2007 Rozważane gry logiczne dwuosobowe- konflikt interesów występuje pomiędzy dwoma uczestnikami deterministyczne-

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

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne Algorytmy mrówkowe H. Bednarz Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne 13 kwietnia 2015 1 2 3 4 Przestrzeń poszukiwań Ograniczenia

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Poprawność semantyczna

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

Bardziej szczegółowo

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles). Wykład 1 1-1 Informatyka nauka zajmująca się zbieraniem, przechowywaniem i przetwarzaniem informacji. Informacja obiekt abstrakcyjny, który w postaci zakodowanej moŝe być przechowywany, przesyłany, przetwarzany

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

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

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

MODELOWANIE RZECZYWISTOŚCI

MODELOWANIE RZECZYWISTOŚCI MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN d.wojcik@nencki.gov.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/ Podręcznik Iwo Białynicki-Birula Iwona

Bardziej szczegółowo

A B. Modelowanie reakcji chemicznych: numeryczne rozwiązywanie równań na szybkość reakcji chemicznych B: 1. da dt. A v. v t

A B. Modelowanie reakcji chemicznych: numeryczne rozwiązywanie równań na szybkość reakcji chemicznych B: 1. da dt. A v. v t B: 1 Modelowanie reakcji chemicznych: numeryczne rozwiązywanie równań na szybkość reakcji chemicznych 1. ZałóŜmy, Ŝe zmienna A oznacza stęŝenie substratu, a zmienna B stęŝenie produktu reakcji chemicznej

Bardziej szczegółowo

Ćwiczenia: Ukryte procesy Markowa lista 1 kierunek: matematyka, specjalność: analiza danych i modelowanie, studia II

Ćwiczenia: Ukryte procesy Markowa lista 1 kierunek: matematyka, specjalność: analiza danych i modelowanie, studia II Ćwiczenia: Ukryte procesy Markowa lista kierunek: matematyka, specjalność: analiza danych i modelowanie, studia II dr Jarosław Kotowicz Zadanie. Dany jest łańcuch Markowa, który może przyjmować wartości,,...,

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

Algorytmy i struktury danych

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

Bardziej szczegółowo

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

Krzysztof Jakubczyk. Zadanie 2

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

Bardziej szczegółowo

Alfa-beta Ulepszenie minimax Liczba wierzchołk ow w drzewie gry. maksymalnie wd. minimalnie wbd/2c + wdd/2e Algorytmy przeszukiwania drzewa gry 5

Alfa-beta Ulepszenie minimax Liczba wierzchołk ow w drzewie gry. maksymalnie wd. minimalnie wbd/2c + wdd/2e Algorytmy przeszukiwania drzewa gry 5 Zastosowanie metody Samuela doboru współczynników funkcji oceniajacej w programie grajacym w anty-warcaby Daniel Osman promotor: dr hab. inż. Jacek Mańdziuk 1 Spis treści Algorytmy przeszukiwania drzewa

Bardziej szczegółowo

Modelowanie sytuacji konfliktowych, w których występują dwie antagonistyczne strony.

Modelowanie sytuacji konfliktowych, w których występują dwie antagonistyczne strony. GRY (część 1) Zastosowanie: Modelowanie sytuacji konfliktowych, w których występują dwie antagonistyczne strony. Najbardziej znane modele: - wybór strategii marketingowych przez konkurujące ze sobą firmy

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

MODELOWANIE RZECZYWISTOŚCI

MODELOWANIE RZECZYWISTOŚCI MODELOWANIE RZECZYWISTOŚCI Daniel Wójcik Instytut Biologii Doświadczalnej PAN Szkoła Wyższa Psychologii Społecznej d.wojcik@nencki.gov.pl dwojcik@swps.edu.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/

Bardziej szczegółowo

Partition Search i gry z niezupełną informacją

Partition Search i gry z niezupełną informacją MIMUW 21 stycznia 2010 1 Co to jest gra? Proste algorytmy 2 Pomysł Algorytm Przykład użycia 3 Monte Carlo Inne spojrzenie Definicja Co to jest gra? Proste algorytmy Grą o wartościach w przedziale [0, 1]

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

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

Bardziej szczegółowo

Dane są następujące reguły gry losowej: losujemy jedną kartę z pełnej talii (bez jokerów) i sprawdzamy wynik:

Dane są następujące reguły gry losowej: losujemy jedną kartę z pełnej talii (bez jokerów) i sprawdzamy wynik: Elementy teorii gier Dane są następujące reguły gry losowej: losujemy jedną kartę z pełnej talii (bez jokerów) i sprawdzamy wynik: wylosowanie karty w kolorze czerwonym (kier lub karo) oznacza wygraną

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

Statystyka hydrologiczna i prawdopodobieństwo zjawisk hydrologicznych.

Statystyka hydrologiczna i prawdopodobieństwo zjawisk hydrologicznych. Statystyka hydrologiczna i prawdopodobieństwo zjawisk hydrologicznych. Statystyka zajmuje się prawidłowościami zaistniałych zdarzeń. Teoria prawdopodobieństwa dotyczy przewidywania, jak często mogą zajść

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

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński

WYKŁAD 9. Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c. Tomasz Zieliński WYKŁAD 9 Algorytmy sortowania elementów zbioru (tablic) Programy: c4_1.c... c4_3.c Tomasz Zieliński /* Przyklad 4.1 - SORTOWANIE TABLIC - metoda najprostsza */ #include #define ROZMIAR 11 void

Bardziej szczegółowo

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

TEORIA GIER DEFINICJA (VON NEUMANN, MORGENSTERN) GRA. jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w

TEORIA GIER DEFINICJA (VON NEUMANN, MORGENSTERN) GRA. jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w TEORIA GIER GRA DEFINICJA (VON NEUMANN, MORGENSTERN) Gra składa się z zestawu reguł określających możliwości wyboru postępowania jednostek (graczy) znajdujących się w sytuacji konfliktowej (konflikt interesów),w

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

Rekurencja (rekursja)

Rekurencja (rekursja) Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)

Bardziej szczegółowo

Zaawansowane algorytmy i struktury danych

Zaawansowane algorytmy i struktury danych Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)

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

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

a) 7 b) 19 c) 21 d) 34

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

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

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

Algorytm selekcji Hoare a. Łukasz Miemus

Algorytm selekcji Hoare a. Łukasz Miemus Algorytm selekcji Hoare a Łukasz Miemus 1 lutego 2006 Rozdział 1 O algorytmie 1.1 Problem Mamy tablicę A[N] różnych elementów i zmienną int K, takie że 1 K N. Oczekiwane rozwiązanie to określenie K-tego

Bardziej szczegółowo

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS Problem straŝaka w drzewach Agnieszka Skorupka Matematyka Stosowana FTiMS Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem StraŜaka: Co to jest? Problem

Bardziej szczegółowo

Strategie: sposób na opcje

Strategie: sposób na opcje X-Trade Brokers Dom Maklerski S.A. Strategie: sposób na opcje z wykorzystaniem systemu Option Trader Tomasz Uściński X-Trade Brokers Dom Maklerski S.A. www.xtb.pl 1 Definicja opcji Opcja: Kontrakt finansowy,

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

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

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

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

Znajdowanie wyjścia z labiryntu

Znajdowanie wyjścia z labiryntu Znajdowanie wyjścia z labiryntu Zadanie to wraz z problemem pakowania najcenniejszego plecaka należy do problemów optymalizacji, które dotyczą znajdowania najlepszego rozwiązania wśród wielu możliwych

Bardziej szczegółowo

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

Zastosowania algorytmów heurystycznych do sterowania systemami autonomicznymi

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

Bardziej szczegółowo

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

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa

Wieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich

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

Wybrane podstawowe rodzaje algorytmów

Wybrane podstawowe rodzaje algorytmów Wybrane podstawowe rodzaje algorytmów Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii informatycznych

Bardziej szczegółowo

Wnioskowanie jako przeszukiwanie przestrzeni stanów

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

Bardziej szczegółowo

STATYSTYKA MATEMATYCZNA. rachunek prawdopodobieństwa

STATYSTYKA MATEMATYCZNA. rachunek prawdopodobieństwa STATYSTYKA MATEMATYCZNA rachunek prawdopodobieństwa treść Zdarzenia losowe pojęcie prawdopodobieństwa prawo wielkich liczb zmienne losowe rozkłady teoretyczne zmiennych losowych Zanim zajmiemy się wnioskowaniem

Bardziej szczegółowo

TEORIA GIER W EKONOMII WYKŁAD 2: GRY DWUOSOBOWE O SUMIE ZEROWEJ. dr Robert Kowalczyk Katedra Analizy Nieliniowej Wydział Matematyki i Informatyki UŁ

TEORIA GIER W EKONOMII WYKŁAD 2: GRY DWUOSOBOWE O SUMIE ZEROWEJ. dr Robert Kowalczyk Katedra Analizy Nieliniowej Wydział Matematyki i Informatyki UŁ TEORIA GIER W EKONOMII WYKŁAD 2: GRY DWUOSOBOWE O SUMIE ZEROWEJ dr Robert Kowalczyk Katedra Analizy Nieliniowej Wydział Matematyki i Informatyki UŁ Definicja gry o sumie zerowej Powiemy, że jest grą o

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

Analiza algorytmów zadania podstawowe

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

Bardziej szczegółowo

Sortowanie - wybrane algorytmy

Sortowanie - wybrane algorytmy Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe

Bardziej szczegółowo

Modelowanie motywów łańcuchami Markowa wyższego rzędu

Modelowanie motywów łańcuchami Markowa wyższego rzędu Modelowanie motywów łańcuchami Markowa wyższego rzędu Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki 23 października 2008 roku Plan prezentacji 1 Źródła 2 Motywy i ich znaczenie Łańcuchy

Bardziej szczegółowo

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki Informatyka I Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli Dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Operacje relacji (porównania) A

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

Iteracyjne rozwiązywanie równań

Iteracyjne rozwiązywanie równań Elementy metod numerycznych Plan wykładu 1 Wprowadzenie Plan wykładu 1 Wprowadzenie 2 Plan wykładu 1 Wprowadzenie 2 3 Wprowadzenie Metoda bisekcji Metoda siecznych Metoda stycznych Plan wykładu 1 Wprowadzenie

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala

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

Algorytmiczne Aspekty Teorii Gier Rozwiązania zadań

Algorytmiczne Aspekty Teorii Gier Rozwiązania zadań Algorytmiczne Aspekty Teorii Gier Rozwiązania zadań Bartosz Gęza 19/06/2009 Zadanie 2. (gra symetryczna o sumie zerowej) Profil prawdopodobieństwa jednorodnego nie musi być punktem równowagi Nasha. Przykładem

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

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

Risk-Aware Project Scheduling. SimpleUCT

Risk-Aware Project Scheduling. SimpleUCT Risk-Aware Project Scheduling SimpleUCT DEFINICJA ZAGADNIENIA Resource-Constrained Project Scheduling (RCPS) Risk-Aware Project Scheduling (RAPS) 1 tryb wykonywania działań Czas trwania zadań jako zmienna

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

Drzewa Decyzyjne, cz.2

Drzewa Decyzyjne, cz.2 Drzewa Decyzyjne, cz.2 Inteligentne Systemy Decyzyjne Katedra Systemów Multimedialnych WETI, PG Opracowanie: dr inŝ. Piotr Szczuko Podsumowanie poprzedniego wykładu Cel: przewidywanie wyniku (określania

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

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

Bardziej szczegółowo