Metody przeszukiwania lokalnego

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

Download "Metody przeszukiwania lokalnego"

Transkrypt

1 Metody przeszukiwania lokalnego Literatura [1] F. Glover, T. Laguna, Tabu search, Kluwer Academic Publishers, [2] R. Ahuja, O. Ergun, J. Orlin, A. Punnen, A survey of very large-scale neighborhood search techniques, Discrete Applied Mathematics 123 (2002) [3] S. Kirkpatrick, C.D. Gelatt Jr., M.P. Vecchi, Optimization by Simulated Annealing, Science 220 (1983) [4] R. Wieczorkowski, Algorytmy stochastyczne w optymalizacji dyskretnej przy zaburzonych wartościach funkcji, Matematyka Stosowana 38 (1995) Znaczna część wykładu została przygotowana na podstawie ksiażki [1]. Metody optymalizacji Paweł Zieliński p. 1/55

2 Metody przeszukiwania lokalnego Algorytm zachłanny Algorytm symulowanego wyżarzania Algorytm Tabu Search Będzie rozpatrywany następujacy problem optymalizacyjny: min x X f(x), Problem polega na znalezieniu takiego dopuszczalnego rozwiazania x X, dla którego wartość funkcji celu f(x) jest najmniejsza. Metody optymalizacji Paweł Zieliński p. 2/55

3 Metody przeszukiwania lokalnego Problem (mink Tree) Dana jest liczba naturalna k > 2 i graf nieskierowany G = (V,E) taki, że V > k. Każdej krawędzi e grafu G przypisana jest dodatnia waga w e. Należy znaleźć w G drzewo składajace się z k łuków dla którego suma wag na łukach jest najmniejsza. W problemie tym: X = {T = (W,Z) Z = k,w V,Z E,T jest drzewem}, f(t) = e Zw e. Metody optymalizacji Paweł Zieliński p. 3/55

4 Metody przeszukiwania lokalnego Podstawowym pojęciem w konstrukcji metod przeszukiwania lokalnego jest pojęcie ruchu. Ruchem nazywamy procedurę przejścia z rozwiazania dopuszczalnego x X do innego rozwiazania dopuszczalnego y X. Problem (mink Tree) Operacja ruchu polega na usunięciu wybranej krawędzi z bieżacego drzewa T i dodaniu innej krawędzi należacej do G tak, że otrzymany graf jest również drzewem. Metody optymalizacji Paweł Zieliński p. 4/55

5 Metody przeszukiwania lokalnego Na poniższym przykładzie wykonujemy ruch usuwajac z drzewa krawędź (5,4) i dodajac krawędź (2,3) Metody optymalizacji Paweł Zieliński p. 5/55

6 Metody przeszukiwania lokalnego Atrybutami ruchu nazywamy parametry, które pozwalaja jednoznacznie określić nowe rozwiazanie otrzymane z rozwiazania x w wyniku wykonania ruchu. Problem (mink Tree) Atrybutami każdego ruchu jest para (add(i, j), drop(k, l)) określajaca odpowiednio dodana i usunięta krawędź. W poprzednim przykładzie atrybutem ruchu jest para ((5, 4),(2, 3)). Sasiedztwem danego rozwiazania dopuszczalnego x X nazywamy zbiór N(x) wszystkich rozwiazań dopuszczalnych y X, które można otrzymać z x poprzez wykonanie ruchu. Metody optymalizacji Paweł Zieliński p. 6/55

7 Algorytm zachłanny Korzystajac z określenia sasiedztwa zdefiniujemy algorytm zachłanny, który jest najprostszym algorytmem przeszukiwania lokalnego: x 3 x 1 x 2 x 0 Idea algorytmu zachłannego polega na pełnym przegladzie sasiedztwa bieżacego rozwiazania x 0. Metody optymalizacji Paweł Zieliński p. 7/55

8 Algorytm zachłanny Algorytm zachłanny kończy pracę jeżeli w sasiedztwie bieżacego rozwiazania nie istnieja rozwiazania o mniejszej wartości funkcji celu, czyli: x N(x0 )f(x) f(x 0 ). Algorytm 1 (Algorytm zachłanny). 1: Wygeneruj losowo lub heurystycznie punkt startowyx 0 X 2: locallyoptimal f alse 3: repeat 4: Znajdźx N(x 0 ) dla któregof(x) jest najmniejsze 5: if f(x) < f(x 0 ) then 6: x 0 x 7: else 8: locallyoptimal true 9: end if 10: until locallyoptimal = true Metody optymalizacji Paweł Zieliński p. 8/55

9 Wady algorytm zachłannego Algorytm daje rozwiazanie, które może być lokalnym minimum znacznie gorszym niż rzeczywiste rozwiazanie optymalne. Ponadto nie ma żadnej możliwości opuszczenia lokalnego minimum. y x 1 x 0 Algorytm startuje z punktu x 0 i znajduje x 1 N(x 0 ) takie, że f(x 1 ) < f(x 0 ). Jeżeli dla każdego x N(x 1 ) f(x) f(x 1 ), wówczas x 1 jest więc minimum lokalnym. Algorytm kończy pracę w punkcie x 1 mimo, że w pobliżu może istnieć lepsze rozwiazanie y. Metody optymalizacji Paweł Zieliński p. 9/55

10 Wady algorytm zachłannego Algorytm przeglada wszystkie rozwiazania należace do sasiedztwa bieżacego rozwiazania, co może to być kosztowne. Sasiedztwo każdego rozwiazania jest z góry ustalone i nie jest modyfikowane podczas działania algorytmu. Algorytm zazwyczaj przeszukuje bardzo niewielka część przestrzeni rozwiazań. Algorytm nie korzysta z informacji zebranej w poprzednich iteracjach (np. może okazać się, że ruchy o pewnych atrybutach daja średnio lepsze rozwiazania od pozostałych). Metody optymalizacji Paweł Zieliński p. 10/55

11 Algorytm Symulowanego Wyżarzania Algorytm Symulowanego wyżarzania jest modyfikacja algorytmu zachłannego polegajac a na wprowadzeniu pewnych elementów losowych. Posiada on następujace cechy: Rezygnuje się z pełnego przegladania sasiedztwa bieżacego rozwiazania x 0. Zamiast tego kolejne rozwiazanie x jest wybierane z N(x 0 ) w sposób losowy. Metody optymalizacji Paweł Zieliński p. 11/55

12 Algorytm Symulowanego Wyżarzania Ruch z x 0 do x jest wykonywany z prawdopodobieństwem określonym za pomoca następujacej formuły: P(x 0,x) = min{1,exp( f(x) f(x 0 ) T i )}, gdzie T i określa temperaturę w i-tej iteracji algorytmu. Im wyższa jest temperatura tym większe jest prawdopodobieństwo przejścia z x 0 do x. Zadana jest pewna poczatkowa temperatura T max, która jest następnie obniżana w trakcie kolejnych iteracji. Algorytm kończy pracę jeżeli temperatura spadnie poniżej zadanej wielkości T min lub przekroczy zadana liczbę iteracji. Metody optymalizacji Paweł Zieliński p. 12/55

13 Porównanie Algorytm 2 (Algorytm symulowanego wyżarzania). Wygeneruj punkt startowyx 0 X T T max x opt x 0 repeat Wybierz w sposób losowyx N(x 0 ) if random[0,1) < P(x 0,x) then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if T g(t) {Obniż temperaturę} until warunek końca=true Algorytm 3 (Algorytm zachłanny). Wygeneruj punkt startowyx 0 X x opt x 0 locallyoptimal f alse repeat Znajdź x N(x 0 ) dla którego f(x) jest najmniejsze if f(x) < f(x 0 ) then else x 0 x x opt x 0 locallyoptimal true end if until locallyoptimal = true 1. Inny sposób wyboru nowego rozwiazania. 2. Inna reguła akceptacji nowego rozwiazania. 3. Inny warunek zakończenia. Metody optymalizacji Paweł Zieliński p. 13/55

14 Symulowane wyżarzanie szczegóły 1. Ustalenie temperatury poczatkowej T max, np.: (a) T max = C, gdzie C jest stała, (b) T max = 10max i i, gdzie i = f(x i ) f(x i+1 ), i = 1,...,parametr. 2. Obniżanie temperatury g(t), np.: (a) g(t) = αt, gdzie α < 1 (α = 0.95), (b) g(t) = T 1+βT, gdzie β = T max T min maxitt max T min, T min = 10 4 T max i maxit maksymalna liczba iteracji (maxit = 10 5 ), (c) inne funkcje obniżania temperatury g(t) można znaleźć w (Wieczorkowski 1995). 3. Warunek końca np.: (a) T < T min, (b) przekroczenie maksymalnej liczby iteracji maxit. Metody optymalizacji Paweł Zieliński p. 14/55

15 Algorytm Tabu Search Ideę metaheurystyki Tabu Search oddaje następujacy cytat z ksiażki jej twórcy: Metaheurystyka Tabu Search może być określona jako metoda dynamicznej zmiany sasiedztwa danego rozwiazania. Oznacza to, że zbiór N(x) nie jest z góry ustalony dla każdego x lecz może zmieniać się w zależności od informacji zebranych w poprzednich etapach przeszukiwania. Metody optymalizacji Paweł Zieliński p. 15/55

16 Algorytm Tabu Search Metoda Tabu Search posiada następujace charakterystyczne elementy: Funkcję oceny wartości ruchu, Listę ruchów zakazanych (Tabu List), Kryterium aspiracji, Strategię wyboru rozwiazań, Strategię dywersyfikacji. Tabu Search jest metoda bardzo ogólna a szczegóły jej implementacji różnia się znacznie w zależności od problemu, do którego została zastosowana. Metody optymalizacji Paweł Zieliński p. 16/55

17 Funkcja oceny wartości ruchu Dla każdych rozwiazań dopuszczalnych x i y N(x) definiujemy rzeczywista funkcję MVal(x,y) określajac a wartość ruchu z rozwiazania x do rozwiazania y. Ruch jest tym lepszy im większa jest dla niego wartość tej funkcji. Algorytm 4 (Algorytm TS1). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 repeat Znajdźx N(x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if until warunek końca=true Najprostsza i najczęściej stosowana funkcja oceny wartości ruchu jest funkcja: MVal(x,y) = f(x) f(y). Metody optymalizacji Paweł Zieliński p. 17/55

18 Funkcja oceny wartości ruchu Problem (mink Tree) Załóżmy, że TS1 wykonał K iteracji i uzyskano K bieżacych rozwiazań x 0. Dla każdej krawędzi (i,j) E w grafie G obliczamy: 1. R(i,j) ile razy krawędź (i,j) należała do bieżacego rozwiazania x 0, 2. SR(i, j) suma wartości funkcji celu wszystkich rozwiazań zawierajacych krawędź (i, j), 3. MR(i,j) = SR(i,j)/R(i,j) średnia wartość funkcji dla rozwiazań zawierajacych krawędź (i,j) (MR(i,j) = 0 jeżeli R(i,j) = 0). Załóżmy, że oceniamy ruch z x do y posiadajacy atrybuty add(i, j), drop(k, l). Funkcja oceny wartości ruchu w K-tej iteracji może mieć postać: MVal(x,y) = α 1 (f(x) f(y))+α 2 R(i,j)/K+α 3 R(k,l)/K+α 4 MR(i,j)+α 5 MR(k,l), gdzie α i sa zadanymi współczynnikami (również ujemnymi). Metody optymalizacji Paweł Zieliński p. 18/55

19 Wady i zalety algorytmu TS1 Zalety Możliwość opuszczenia minimum lokalnego. Wykorzystanie informacji zgromadzonej w poprzednich iteracjach do sterowania przeszukiwaniem. Wady Trudność w konstrukcji funkcji oceny ruchu (brak ogólnych zaleceń) i oszacowaniu jej parametrów. Metody optymalizacji Paweł Zieliński p. 19/55

20 Wady i zalety algorytmu TS1 Możliwość wpadnięcia w cykl (algorytm wpada w cykl jeżeli jakieś rozwiazanie zostanie po raz drugi przyjęte jako rozwiazanie bieżace. x 3 x 4 x 2 x 0 x 1 Algorytm TS1 może wpaść w cykl. Ma to miejsce, gdy pewne rozwiazanie stanie się po raz drugi bieżacym rozwia- zaniem. W takim przypadku algorytm może w nieskończoność przegladać te same rozwiazania. Prawdopodobieństwo wpadnięcia w cykl można zminimalizować konstruujac w odpowiedni sposób funkcję MVal oraz stosujac listę ruchów zakazanych. Metody optymalizacji Paweł Zieliński p. 20/55

21 Lista ruchów zakazanych (Tabu List) TABU = {(atrybut 1,kadencja 1 ), (atrybut 2,kadencja 2 ),...,(atrybut l,kadencja l )) Ruch z rozwiazania x do rozwiazania y N(x) jest zakazany jeżeli pewien jego atrybut znajduje się na liście TABU. Parametr kadencja i określa liczbę iteracji przez która element (atrybut i,kadencja i ) znajduje się na liście TABU. Zdefiniujmy dla każdego x X zmodyfikowane sasiedztwo N (x): N (x) = {y y N(x) i ruch z x do y nie jest zakazany}. Metody optymalizacji Paweł Zieliński p. 21/55

22 Lista ruchów zakazanych (Tabu List) Algorytm 5 (Algorytm TS2). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 TABU repeat Znajdźx N (x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listytabu for all(atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 ifkadencja i = 0 then usuń element(atrybut i,kadencja i ) ztabu end if end for until warunek zakończenia = true Metody optymalizacji Paweł Zieliński p. 22/55

23 Lista ruchów zakazanych (Tabu List) Problem (mink Tree) Podamy sposób konstruowania listy T ABU (krok (10) algorytmu TS2) dla problemu min k Tree. Załóżmy, że w kroku (6) algorytmu został wykonany ruch z rozwiazania x 0 do rozwiazania x o atrybutach (add(i,j),drop(k,l)). Krok (10) może wygladać następujaco: TABU TABU {(drop(i,j),4),(add(k,l),2)} Do listy TABU dodajemy dwa elementy (drop(i,j),4) i (add(k,l),2). Oznacza to, że przez cztery kolejne iteracje zakazujemy ruchów w których usuwana jest krawędź (i,j), a przez dwie kolejne iteracje zakazujemy ruchów, w których dodawana jest krawędź (k, l). Metody optymalizacji Paweł Zieliński p. 23/55

24 Wady i zalety algorytmu TS2 Zalety Zmniejsza ryzyko wpadnięcia w cykl (tym mniejsze im dłuższe kadencje). Umożliwia systematyczne badanie przestrzeni rozwiazań odległej od punktu poczatkowego. Wady Istnieje możliwość, że bardzo dobre ruchy zostana zakazane. Trudność w wyznaczeniu odpowiednich kadencji. Metody optymalizacji Paweł Zieliński p. 24/55

25 Problem wyznaczania kadencji Można podać dwa ogólne zalecenia dotyczace długości kadencji, które zostały w pewnym stopniu potwierdzone empirycznie: 1. im większy rozmiar problemu tym kadencje powinny być dłuższe, 2. im bardziej restrykcyjna jest lista TABU (tzn. im mniejszy jest średnio współczynnik N (x) / N(x) ) tym kadencje powinny być krótsze. Metody optymalizacji Paweł Zieliński p. 25/55

26 Długość kadencji, a zachowanie algorytmu krótka KADENCJA długa Większa dokładność przeszukiwania (Intensyfikacja). Duże ryzyko wpadnięcia w cykl w pobliżu lokalnego minimum. Większy zakres przeszukiwania (Dywersyfikacja). Pogorszenie jakości uzyskanych rozwiazań spowodowanych brakiem dokładniejszego przeszukiwania sasiedz- twa dobrych rozwiazań. Metody optymalizacji Paweł Zieliński p. 26/55

27 Wybrane sposoby ustalania kadencji 1. Kadencja stała dla każdego elementu listy TABU. 2. Kadencja stała dla każdego typu elementu listy T ABU (na przykład w problemie min k Tree dla elementów postaci (add(i, j), kadencja) kadencja może być inna niż dla elementów postaci (drop(k, l), kadencja)). 3. Kadencja jest ustalana dla każdego elementu listy TABU w sposób losowy z pewnego zakresu [t min,t max ]. 4. Wartości kadencji wybierane sa w sposób cykliczny z zadanego ciagu wartości, (na przykład dla zadanego ciagu (10,8,5,6,4,1) pierwsza kadencję ustalamy na 10, następna na 8 itd. Po ustaleniu kadencji na 1 kolejna kadencja ponownie jest ustalana na 10). Metoda wyboru kadencji oraz konkretne wartości przyjmowane przez kadencje powinny być ustalane dla każdego problemu w sposób eksperymentalny. Metody optymalizacji Paweł Zieliński p. 27/55

28 Kryterium aspiracji W wyniku zastosowania listy TABU moga zostać zakazane bardzo dobre ruchy. Kryterium aspiracji jest pewnym warunkiem narzuconym na każde rozwiazanie y N(x), które pozwala na wykonanie ruchu z x do y nawet jeżeli ruch ten jest zakazany. Kryterium aspiracji anuluje więc zakaz ruchu wynikajacy z listy TABU. Dla każdych rozwiazań x,y N(x) definiuje się funkcję Aspiration(x, y) przyjmujac a wartości TRUE lub FALSE, przy czym jeżeli Aspiration(x,y) = TRUE, to możliwe jest wykonanie ruchu z rozwiazania x do rozwiazania y N(x) nawet jeżeli ruch ten jest zakazany. Metody optymalizacji Paweł Zieliński p. 28/55

29 Kryterium aspiracji Stosuje się następujace kryteria aspiracji: 1. Aspiration(x,y) = TRUE jeżeli f(y) < f(x opt ) ruch prowadzi do rozwiazania y lepszego niż najlepsze do tej pory znalezione, 2. Aspiration(x,y) = TRUE jeżeli MVal(x,y) α wartość ruchu do rozwiazania y jest większa od pewnego parametru α, 3. inne, wynikajace ze struktury problemu i dotychczasowego przebiegu algorytmu. Zdefiniujmy dla każdego x X zmodyfikowane sasiedztwo N (x): N (x) = {y y N(x) i (ruch z x do y nie jest zakazany lub Aspiration(x,y) = TRUE)}. Metody optymalizacji Paweł Zieliński p. 29/55

30 Kryterium aspiracji Algorytm 6 (Algorytm TS3 (z kryterium aspiracji)). Wygeneruj losowo lub heurystycznie punkt startowyx 0 X x opt x 0 TABU repeat Znajdźx N (x 0 ), dla którego wartośćmval(x 0,x) jest największa x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listytabu for all(atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 ifkadencja i = 0 then usuń element(atrybut i,kadencja i ) ztabu end if end for until warunek zakończenia = true Metody optymalizacji Paweł Zieliński p. 30/55

31 Wady algorytmu TS3 W kroku (5) badane sa wszystkie rozwiazania należace do N (x 0 ), co może być bardzo czasochłonne. Zbyt mała dywersyfikacja. Metody optymalizacji Paweł Zieliński p. 31/55

32 Strategia wyboru rozwiazań Strategia wyboru rozwiazania jest pewna procedura, która pozwala ograniczyć liczbę przegladanych rozwiazań należacych do zbioru N (x). Jedna z najprostszych i najbardziej popularnych jest strategia aspiracji plus. Strategia aspiracji plus (Aspiration plus) 1. Przegladamy zawsze nie mniej niż minm i nie więcej niż maxm rozwiazań należacych do N (x). 2. Jeżeli znajdziemy y N (x) taki, że MVal(x,y) Aspiration, to przegladamy jeszcze tylko następne Plus rozwiazań pamiętajac o założeniu w punkcie 1 (czyli nie mniej niż minm i nie więcej niż maxm). 3. Przechodzimy do tego spośród przegladniętych rozwiazań y N (x) dla którego wartość MVal(x,y) jest największa. Metody optymalizacji Paweł Zieliński p. 32/55

33 Strategia aspiracji plus Mval y 0 Plus Aspiration First minm maxm Liczba przegladanych ruchów Po przegladnięciu F irst maxm ruchów zostało znalezione rozwiazanie dla którego MVal(x,y) Aspiration. Przegladamy więc jeszcze min{max{first+plus,minm},maxm} rozwiazań. Najlepszym znalezionym rozwiazaniem jest y 0. Metody optymalizacji Paweł Zieliński p. 33/55

34 Strategia dywersyfikacji Tabu Search jest metoda przeszukiwania lokalnego, w której przegladane sa kolejne rozwiazania należace do sasiedztwa bieżacego rozwiazania. Może się więc zdarzyć, że pewne obszary przestrzeni rozwiazań X nigdy nie zostana sprawdzone Strategia dywersyfikacji jest procedura, która pozwala na przegladanie różnych obszarów przestrzeni rozwiazań. X X x n x n x 0 x 0 Brak dywersyfikacji Przeszukiwanie z dywersyfikacja Metody optymalizacji Paweł Zieliński p. 34/55

35 Strategia dywersyfikacji Metoda zdarzeń krytycznych (Critical Events Memory), składajaca się z dwóch elementów: 1. Funkcji CriticalEvent() przyjmujacej wartości TRUE lub FALSE. Funkcja przyjmuje wartość TRUE jeżeli zaszły określone warunki wymagajace wygenerowania nowego rozwiazania startowego. Na przykład: przez K kolejnych iteracji nie zostało znalezione lepsze rozwiazanie, algorytm wykonał K iteracji od wygenerowania nowego rozwiazania startowego, przez K kolejnych iteracji były przegladane rozwiazania bliskie rozwiazaniu startowemu (pojęcie bliskie zależy od konkretnego problemu). Metody optymalizacji Paweł Zieliński p. 35/55

36 Metoda zdarzeń krytycznych 2. Funkcji Restart(), która generuje nowe rozwiazanie poczatkowe. Algorytm ponownie rozpoczyna działanie od wygenerowanego rozwiazania. Funkcja Restart() może wykorzystywać informacje zgromadzone podczas dotychczasowego przebiegu algorytmu. Metody optymalizacji Paweł Zieliński p. 36/55

37 Strategia dywersyfikacji Problem (mink Tree) Przykład konstrukcji funkcji Restart() w problemie min k Tree dla k = 4. Dany jest następujacy graf G = (V,E): Rozwizaniex i Ocena rozwiazania f(x i ) x 0 { (1,2), (1,4), (4,7), (6,7) } 40 x 1 { (1,2), (1,4), (4,6), (6,7) } 47 x 2 { (1,2), (1,4), (4,6), (6,8) } 57 x 3 { (1,4), (4,6), (6,8), (8,9) } 63 x 4 { (4,7), (4,6), (6,8), (8,9) } 46 x 5 { (4,7), (6,7), (6,8), (8,9) } 37 x 6 { (4,7), (6,7), (6,9), (8,9) } 37 x 7 { (6,7), (6,9), (8,9), (8,10)} 38 Funkcja Restart() uruchamiana jest po 7 iteracjach przedstawionych w tabeli. Metody optymalizacji Paweł Zieliński p. 37/55

38 Strategia dywersyfikacji 1. Wybieramy lokalne minima z poprzednich iteracji, czyli rozwiazania: x 0,x 5,x 6. Rozwiazania te składaja się z następujacych łuków: L = {(1,2),(1,4),(4,7),(6,7),(6,8),(8,9)}. 2. Przyjmujemy y Dokładamy do y 0 kolejne krawędzie należace do E\L o najmniejszej wadze tak aby w kolejnych krokach otrzymać drzewo składajace się z odpowiednio 1, 2, 3 i 4 krawędzi: y 0 {(3,5)} y 0 {(3,5),(5,9)} y 0 {(3,5),(5,9),(9,12)} y 0 {(3,5),(5,9),(9,12),(11,12)} 4. Przyjmujemy y 0 jako nowe rozwiazanie ( odległe od rozwiazań poprzednio badanych). Uwaga: jeżeli nie można wybrać odpowiedniej krawędzi z E \L, to należy wybrać losowo krawędź z L. Metody optymalizacji Paweł Zieliński p. 38/55

39 Pełny schemat algorytmu Tabu Search Wygeneruj losowo lub heurystycznie punkt startowy x 0 X x opt x 0 TABU repeat x 0 AspirationPlus(x 0 ) {Lub inna strategia wyboru rozwiazania} if f(x 0 ) < f(x opt ) then x opt x 0 end if Dodaj nowe elementy do listy T ABU for all (atrybut i,kadencja i ) TABU do kadencja i kadencja i 1 if kadencja i = 0 then usuń element (atrybut i,kadencja i ) z TABU end if end for if CriticalEvent() = true then x 0 Restart() {Dywersyfikacja} if f(x 0 ) < f(x opt ) then x opt x 0 end if end if until warunek zakończenia = true Metody optymalizacji Paweł Zieliński p. 39/55

40 Uwagi końcowe Warunkiem zakończenia w metodzie Tabu Search jest najczęściej przekroczenie zadanej liczby iteracji. Zamiast AspirationP lus można wykorzystać inna strategię wyboru rozwiazań. Należy jednak pamiętać, że musi ona brać pod uwagę listę TABU i kryterium aspiracji. Jeżeli rozmiar zmodyfikowanego sasiedztwa N (x) nie jest duży, to należy dokonać jego pełnego przegladu. Powyższy schemat przedstawia jedynie bardzo ogólna ideę metody Tabu Search. Komputerowe implementacje tej metody różnia się znacznie w zależności od rodzaju problemu. Metody optymalizacji Paweł Zieliński p. 40/55

41 Uwagi końcowe Metoda Tabu Search zaimplementowana w postaci algorytmu dla pewnego problemu wymaga podania wielu parametrów. Optymalne wartości tych parametrów w większości przypadków musza być ustalone w sposób eksperymentalny. Konstruujac algorytm oparty na idei Tabu Search dla konkretnego problemu należy wykazać się własna inwencja i pomysłowościa. Nie trzeba koniecznie ograniczać się do powyższego schematu. Należy dokładnie przeanalizować strukturę problemu i odpowiednio wykorzystać wszystkie wykryte własności. Szczególnie ważne jest odpowiednie zdefiniowanie ruchu i funkcji oceny wartości ruchu. Można łaczyć metodę Tabu Search z innymi heurystykami. Metody optymalizacji Paweł Zieliński p. 41/55

42 Problem (min k Tree) G = (V,E) jest grafem pełnym (tzn. między każda para wierzchołków istnieje krawędź), V = 200 wagi krawędzi w ij, (i,j) E, sa liczbami losowymi z przedziału [1,10 4 ] i k = 14. Oscylacje Przebieg algorytmu Tabu Search dla min k Tree. Na osi X przedstawione sa kolejne iteracje. Na osi Y przedstawione sa wartości funkcji celu bieżacego rozwiazania x 0 i najlepszego rozwiazania w danej iteracji x opt. Najlepsze znalezione rozwiazanie Metody optymalizacji Paweł Zieliński p. 42/55

43 Problem szeregowania1 w i T i Dany jest zbiór prac J = {1,...,n}, które maja być wykonywane na jednej maszynie. Zakłada się, że przestoje maszyny sa nie dozwolone. Dla każdej pracy i J sa zadane: czas trwania p i, pożadany termin zakończenia d i oraz waga w i charakteryzujaca ważność pracy i. Każdy harmonogram jest pewna permutacja π = (π(1),...,π(n)) prac należacych do zbioru J. Przez C i (π), i J, oznacza się czas zakończenia pracy i w permutacji π, czyli jeżeli i = π(k) to C i = k j=1 p π(j). Celem jest wyznaczenie permutacji π dla której: w i max{0,c i (π) d i } min. i J w i T i (π) = i J Metody optymalizacji Paweł Zieliński p. 43/55

44 Problem szeregowania1 w i T i Możliwa realizacja Rozwiazania moga być kodowane jako (π(1),...,π(n)) prac należacych do zbioru J. Jako ruch można przyjać np. zamianę miejscami dwóch prac w bieżacym rozwiazaniu π(1) π(2) π(3) π(4) π(5) π(6) Atrybutem powyższego ruchu jest swap(i, j), gdzie i, j sa zamienianymi pracami. TABU = {(swap(i 1,j 1 ),kadencja 1 ),(swap(i 2,j 1 ),kadencja 2 ),...}. Metody optymalizacji Paweł Zieliński p. 44/55

45 Problem szeregowaniafm C max Dany jest zbiór prac J = {1,...,n}, które maja być wykonywane na m maszynach M 1,...,M m. Zakłada się: 1. każda maszyna może wykonywać w danym momencie tylko jedna pracę, 2. każda praca musi być wykonywana najpierw na maszynie M 1 następnie na maszynie M 2 i na końcu na maszynie M m, 3. kolejność wykonywania prac na wszystkich trzech maszynach jest taka sama. Dla każdej pracy i J sa zadane czasy trwania p j i, na maszynie M j, j = 1,...,m. Każdy harmonogram jest jednoznacznie określony przez pewna permutację π = (π(1),...,π(n)) prac należacych do zbioru J. Przez C i (π) oznacza się czas zakończenie pracy i J na maszynie M m dla permutacji π. Celem jest wyznaczenie permutacji π takiej, że: C max = C π(n) min. Metody optymalizacji Paweł Zieliński p. 45/55

46 Problem szeregowaniafm C max Możliwa realizacja Rozwiazania moga być kodowane jako (π(1),...,π(n)) prac należacych do zbioru J. Jako ruch można przyjać zamianę miejscami dwóch prac w bieżacym rozwiazaniu. swap(i,j), gdzie i,j sa zamienianymi pracami. Niech π(k) i π(l) oznaczaja pozycję odpowiednio pozycję prac i i j w permutacji π. Wówczas swap(i,j) jest równoważna operacjom insert(i, π(l)) i insert(j, π(k)), gdzie oznaczajacym wstaw pracę i na pozycję π(l) i wstaw pracę j na pozycję π(k). Atrybutami ruchu sa więc insert(i, π(l)) i insert(j, π(k)). Ruch jest zakazany jeżeli jeden z jego atrybutów jest na liście T ABU. Metody optymalizacji Paweł Zieliński p. 46/55

47 Problem szeregowaniafm C max Inna propozycja Jako ruch można przyjać wstawienie pracy i w inne miejsce. Powyższy ruch można wyrazić jako ciag operacji swap(i,j). Np. dla danej permutacji (3,2,4,5,1,6) prace 1 wstawiamy przed praca 2 otrzymujemy więc (3,1,2,4,5,6), co jest równoważne swap(5, 1) swap(4, 1) swap(2, 1). Atrybutami ruchu sa więc swap(i,j). Ruch jest zakazany jeżeli jeden z jego atrybutów jest na liście T ABU. Metody optymalizacji Paweł Zieliński p. 47/55

48 Możliwa realizacja Problem komiwojażera Rozwiazania moga być kodowane jako permutację miast (π(1),...,π(n)). Każda taka permutacja jednoznacznie wyznacza następujac a trasę komiwojażera: π(1) π(2) π(1) o koszcie: c(π(n),π(1))+ n 1 i=1 c(π(i),π(i+1)). Metody optymalizacji Paweł Zieliński p. 48/55

49 Problem komiwojażera Jako ruch można przyjać zamianie miejscami dwóch sasiednich miast w bieżacym rozwiazaniu W wyniku ruchu z trasy (1, 2, 3, 4, 5) otrzymujemy trasę (1,3,2,4,5). Atrybutem ruchu jest change(i,j), gdzie i,j sa zamienianymi miastami TABU = {(change(i 1,j 1 ),kadencja 1 ),(change(i 2,j 2 ),kadencja 2 ),...,}. Metody optymalizacji Paweł Zieliński p. 49/55

50 Problem programowania binarnego Dla danych c j, a ij i b i, i = 1,...,m, j = 1,...,n wyznaczyć wektor (x 1,...,x n ), dla którego n j=1 c jx j min n j=1 a ijx j b i i = 1,...,n x j {0,1} j = 1,...,n Możliwa realizacja Każde rozwiazanie może być kodowane jako wektor binarny (x 1,...,x n ) będacy wektorem rozwiazań problemu. Ruch może polegać na zanegowaniu wartości wybranej zmiennej w bieżacym rozwiazaniu. Metody optymalizacji Paweł Zieliński p. 50/55

51 Problem programowania binarnego Atrybutem jest więc neg(i), gdzie i jest indeksem zanegowanej zmiennej. TABU = {(neg(i 1 ),kadencja 1 ),(neg(i 2 ),kadencja 2 ),...,}. Nie każdy wektor binarny spełnia zadane ograniczenia. Należy uwzględnić ten fakt wprowadzajac odpowiednia funkcję oceny wartości ruchu. Np. ruch z rozwiazania x = (x 1,...,x n ) do rozwiazania y = (y 1,...,y n ) można ocenić w następujacy sposób: n n m n MVal(x,y) = c j x j c j y j α max{0,b i c j x j }. j=1 j=1 i=1 Człon α m i=1 max{0,b i n j=1 c jx j } jest kara za naruszenie ograniczeń przez y. j=1 Metody optymalizacji Paweł Zieliński p. 51/55

52 Algorytm TA threshold accepting Algorytm TA jest uproszczona wersja algorytmu symulowanego wyżarzania. Kolejne rozwiazanie x jest wybierane z sasiedztwa N(x 0 ) w sposób losowy. Rezygnuje się z akceptacji ruchu opartej na prawdopodobieństwie akceptacji. Zamiast tego ruch z x 0 do x jest wykonywany jeżeli spełniony jest następujacy progowy warunek akceptacji f(x) f(x 0 ) < T i, gdzie T i określa wartość progu w i-tej iteracji algorytmu. Im wyższy próg T i tym gorsze rozwiazania od rozwiazania bieżacego sa akceptowane (przeszukiwany jest większy zakres przestrzeni rozwiazań). Metody optymalizacji Paweł Zieliński p. 52/55

53 Algorytm TA threshold accepting Progi T i sa nierosnacym ciagiem nieujemnych liczb rzeczywistych. Najczęściej, w realizacjach algorytmu, sa one zadawane w tablicy. Algorytm TA kończy pracę jeżeli przekroczy zadana liczbę iteracji. Metody optymalizacji Paweł Zieliński p. 53/55

54 Porównanie Algorytm 7 (Algorytm symulowanego wyżarzania). Wygeneruj punkt startowyx 0 X T T max {poczatkowa temperatura} x opt x 0 repeat fork = 1 tok do {K jest zadana liczba powtórzeń} Wybierz w sposób losowyx N(x 0 ) if random[0,1) < P(x 0,x) then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if end for T g(t) {Obniż temperaturę} until warunek końca=true Algorytm 8 (Algorytm TA). Wygeneruj punkt startowyx 0 X T T max {poczatkowy próg akceptacji} x opt x 0 repeat fork = 1 tok do {K jest zadana liczba powtórzeń} Wybierz w sposób losowyx N(x 0 ) if f(x) f(x 0 ) < T then x 0 x iff(x 0 ) < f(x opt ) then x opt x 0 end if end if end for Weź z tablicy kolejny próg akceptacji T until warunek końca=true Metody optymalizacji Paweł Zieliński p. 54/55

55 Problem komiwojażera Realizacja algorytmu TA Progi akceptacji sa zadane w tablicy. Np. T = {0.13,0.12,...,0.10,0.095,...,0.075,0.07,...,0.07, 0.065,...,0.02,0} Maksymalna liczba iteracji, np Wybór losowy x N(x 0 ) jest realizowany za pomoca metody 2-opt, tj. wybiera się losowo dwa miasta i i j z trasy, następnie usuwamy połaczenia między miastami i i i+1 oraz j i j +1 na koniec łaczymy miasta i i j oraz i+1 i j +1. i+1 i j j +1 Metody optymalizacji Paweł Zieliński p. 55/55

Tabu Search (Poszukiwanie z zakazami)

Tabu Search (Poszukiwanie z zakazami) Tabu Search (Poszukiwanie z zakazami) Heurystyka - technika znajdująca dobre rozwiązanie problemu (np. optymalizacji kombinatorycznej) przy rozsądnych (akceptowalnych z punktu widzenia celu) nakładach

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie lokalne

Optymalizacja. Przeszukiwanie lokalne dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Idea sąsiedztwa Definicja sąsiedztwa x S zbiór N(x) S rozwiązań, które leżą blisko rozwiązania x

Bardziej szczegółowo

Przykłady problemów optymalizacyjnych

Przykłady problemów optymalizacyjnych Przykłady problemów optymalizacyjnych NAJKRÓTSZA ŚCIEŻKA W zadanym grafie G = (V, A) wyznacz najkrótsza ścieżkę od wierzchołka s do wierzchołka t. 2 7 5 5 3 9 5 s 8 3 1 t 2 2 5 5 1 5 4 Przykłady problemów

Bardziej szczegółowo

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Podstawowe algorytmy i ich implementacje w C. Wykład 9 Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny

Bardziej szczegółowo

Optymalizacja. Wybrane algorytmy

Optymalizacja. Wybrane algorytmy dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie tabu

Optymalizacja. Przeszukiwanie tabu dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Naturalny sposób powstania algorytmu Algorytm optymalizacji lokalnej Niezdolność wyjścia z lokalnych

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Dokładne algorytmy optymalizacji Maciej Hapke maciej.hapke at put.poznan.pl Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem minimalizacji

Bardziej szczegółowo

Przeszukiwanie lokalne

Przeszukiwanie lokalne Przeszukiwanie lokalne 1. Klasyfikacja algorytmów 2. Przeszukiwanie lokalne 1. Klasyfikacja algorytmów Algorytmy dokładne znajdują rozwiązanie optymalne, 1. Klasyfikacja algorytmów Algorytmy dokładne znajdują

Bardziej szczegółowo

Metody Optymalizacji: Przeszukiwanie z listą tabu

Metody Optymalizacji: Przeszukiwanie z listą tabu Metody Optymalizacji: Przeszukiwanie z listą tabu Wojciech Kotłowski Instytut Informatyki Politechniki Poznańskiej email: imię.nazwisko@cs.put.poznan.pl pok. 2 (CW) tel. (61)665-2936 konsultacje: wtorek

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

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład):

Metoda graficzna może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): może być stosowana w przypadku gdy model zawiera dwie zmienne decyzyjne. Metoda składa się z dwóch kroków (zobacz pierwszy wykład): 1 Narysuj na płaszczyźnie zbiór dopuszczalnych rozwiazań. 2 Narysuj funkcję

Bardziej szczegółowo

Optymalizacja. Przeszukiwanie tabu

Optymalizacja. Przeszukiwanie tabu dr inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Naturalny sposób powstania algorytmu Algorytm największego spadku niezdolność wyjścia z lokalnych optimów!

Bardziej szczegółowo

Metody Programowania

Metody Programowania POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI i TECHNIK INFORMACYJNYCH Metody Programowania www.pk.edu.pl/~zk/mp_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl Wykład 8: Wyszukiwanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Symulowane wyżarzanie Maciej Hapke maciej.hapke at put.poznan.pl Wyżarzanie wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje powolne zmniejszanie

Bardziej szczegółowo

Algorytmy metaheurystyczne podsumowanie

Algorytmy metaheurystyczne podsumowanie dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Andrzej Jaszkiewicz Problem optymalizacji kombinatorycznej Problem optymalizacji kombinatorycznej jest problemem

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

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZŁOŻONOŚĆ OBLICZENIOWA ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ dr hab. Krzysztof SZKATUŁA, prof. PAN Instytut Badań Systemowych PAN Uniwersytet

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

Zaawansowane programowanie

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

Bardziej szczegółowo

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 Wykład 7. Prof. dr hab. inż. Jan Magott

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

Metody Rozmyte i Algorytmy Ewolucyjne

Metody Rozmyte i Algorytmy Ewolucyjne mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb

Bardziej szczegółowo

Teoria obliczeń i złożoność obliczeniowa

Teoria obliczeń i złożoność obliczeniowa Teoria obliczeń i złożoność obliczeniowa Kontakt: dr hab. inż. Adam Kasperski, prof. PWr. pokój 509 B4 adam.kasperski@pwr.wroc.pl materiały + informacje na stronie www. Zaliczenie: Egzamin Literatura Problemy

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW 13. wykład z algebry liniowej Warszawa, styczeń 2018 Mirosław Sobolewski (UW) Warszawa, 2018 1 /

Bardziej szczegółowo

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne A. Permutacja losowa Matematyka dyskretna - wykład - część 2 9. Podstawowe algorytmy kombinatoryczne Załóżmy, że mamy tablice p złożoną z n liczb (ponumerowanych od 0 do n 1). Aby wygenerować losową permutację

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

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

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ

ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ ALGORYTMY EWOLUCYJNE W OPTYMALIZACJI JEDNOKRYTERIALNEJ Zalety: nie wprowadzają żadnych ograniczeń na sformułowanie problemu optymalizacyjnego. Funkcja celu może być wielowartościowa i nieciągła, obszar

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2009 Mirosław Sobolewski (UW) Warszawa, 2009 1 / 13

Bardziej szczegółowo

Algorytmy zrandomizowane

Algorytmy zrandomizowane Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik

Bardziej szczegółowo

Programowanie liniowe całkowitoliczbowe

Programowanie liniowe całkowitoliczbowe Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie nazywamy zadaniem programowania liniowego

Bardziej szczegółowo

Algorytmy metaheurystyczne Wykład 6. Piotr Syga

Algorytmy metaheurystyczne Wykład 6. Piotr Syga Algorytmy metaheurystyczne Wykład 6 Piotr Syga 10.04.2017 Wprowadzenie Inspiracje Wprowadzenie ACS idea 1 Zaczynamy z pustym rozwiązaniem początkowym 2 Dzielimy problem na komponenty (przedmiot do zabrania,

Bardziej szczegółowo

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) 16.01.2003 Algorytmy i Struktury Danych PIŁA ALGORYTMY ZACHŁANNE czas [ms] Porównanie Algorytmów Rozwiązyjących problem TSP 100 000 000 000,000 10 000 000

Bardziej szczegółowo

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym

Bardziej szczegółowo

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation) Jest to technika probabilistyczna rozwiązywania problemów obliczeniowych, które mogą zostać sprowadzone do problemu znalezienie

Bardziej szczegółowo

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego

Bardziej szczegółowo

zadaniem programowania liniowego całkowitoliczbowego. nazywamy zadaniem programowania liniowego 0-1. Zatem, w

zadaniem programowania liniowego całkowitoliczbowego. nazywamy zadaniem programowania liniowego 0-1. Zatem, w Sformułowanie problemu Zastosowania Programowanie liniowe całkowitoliczbowe Jeżeli w zadaniu programowania liniowego pewne (lub wszystkie) zmienne musza przyjmować wartości całkowite, to takie zadanie

Bardziej szczegółowo

Programowanie liniowe metoda sympleks

Programowanie liniowe metoda sympleks Programowanie liniowe metoda sympleks Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2012 Mirosław Sobolewski (UW) Warszawa, 2012 1 / 12

Bardziej szczegółowo

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu

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

Optymalizacja. Symulowane wyżarzanie

Optymalizacja. Symulowane wyżarzanie dr hab. inż. Instytut Informatyki Politechnika Poznańska www.cs.put.poznan.pl/mkomosinski, Maciej Hapke Wyżarzanie wzrost temperatury gorącej kąpieli do takiej wartości, w której ciało stałe topnieje powolne

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

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

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

Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne Temat: Algorytmy zachłanne Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje się w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymalną możliwość w nadziei,

Bardziej szczegółowo

Metody Rozmyte i Algorytmy Ewolucyjne

Metody Rozmyte i Algorytmy Ewolucyjne mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawy optymalizacji Plan prezentacji 1 Podstawy matematyczne 2 3 Eliminacja ograniczeń Metody

Bardziej szczegółowo

Programowanie Proceduralne

Programowanie Proceduralne Programowanie Proceduralne Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Programowanie Proceduralne Wykład 1 1 / 59 Cel wykładów z programowania

Bardziej szczegółowo

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne i algorytmy zachłanne Programowanie dynamiczne i algorytmy zachłanne Tomasz Głowacki tglowacki@cs.put.poznan.pl Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia na Politechnice Poznańskiej w zakresie technologii

Bardziej szczegółowo

Programowanie sieciowe. Tadeusz Trzaskalik

Programowanie sieciowe. Tadeusz Trzaskalik Programowanie Tadeusz Trzaskalik 8.1. Wprowadzenie Słowa kluczowe Drzewo rozpinające Minimalne drzewo rozpinające Najkrótsza droga w sieci Wierzchołek początkowy Maksymalny przepływ w sieci Źródło Ujście

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

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej Maja Czoków, Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-09

Bardziej szczegółowo

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym.

Problem komiwojażera ACO. Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym. Problem komiwojażera ACO Zagadnienie optymalizacyjne, polegające na znalezieniu minimalnego cyklu Hamiltona w pełnym grafie ważonym. -Wikipedia Problem do rozwiązania zazwyczaj jest przedstawiany jako

Bardziej szczegółowo

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Analiza Algorytmów 2018/2019 (zadania na laboratorium)

Analiza Algorytmów 2018/2019 (zadania na laboratorium) Analiza Algorytmów 2018/2019 (zadania na laboratorium) Wybór lidera (do 9 III) Zadanie 1 W dowolnym języku programowania zaimplementuj symulator umożliwiający przetestowanie algorytmu wyboru lidera ELECT

Bardziej szczegółowo

5. Najkrótsze ścieżki

5. Najkrótsze ścieżki p. Definicja 5. Najkrótsze ścieżki 5.1 Odległości w grafach: definicje i własności (Długość ścieżki). Długościa ścieżki nazywamy liczbę krawędzi występujacych w tej ścieżce. Bardziej formalnie, jeżeli

Bardziej szczegółowo

Zadania laboratoryjne i projektowe - wersja β

Zadania laboratoryjne i projektowe - wersja β Zadania laboratoryjne i projektowe - wersja β 1 Laboratorium Dwa problemy do wyboru (jeden do realizacji). 1. Water Jug Problem, 2. Wieże Hanoi. Water Jug Problem Ograniczenia dla każdej z wersji: pojemniki

Bardziej szczegółowo

Sieć (graf skierowany)

Sieć (graf skierowany) Sieci Sieć (graf skierowany) Siecia (grafem skierowanym) G = (V, A) nazywamy zbiór wierzchołków V oraz zbiór łuków A V V. V = {A, B, C, D, E, F}, A = {(A, B), (A, D), (A, C), (B, C),..., } Ścieżki i cykle

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

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

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

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

Algorytmy stochastyczne laboratorium 03

Algorytmy stochastyczne laboratorium 03 Algorytmy stochastyczne laboratorium 03 Jarosław Piersa 10 marca 2014 1 Projekty 1.1 Problem plecakowy (1p) Oznaczenia: dany zbiór przedmiotów x 1,.., x N, każdy przedmiot ma określoną wagę w(x i ) i wartość

Bardziej szczegółowo

Rozdział 1 PROGRAMOWANIE LINIOWE

Rozdział 1 PROGRAMOWANIE LINIOWE Wprowadzenie do badań operacyjnych z komputerem Opisy programów, ćwiczenia komputerowe i zadania. T. Trzaskalik (red.) Rozdział 1 PROGRAMOWANIE LINIOWE 1.2 Ćwiczenia komputerowe Ćwiczenie 1.1 Wykorzystując

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo

Techniki optymalizacji

Techniki optymalizacji Techniki optymalizacji Wprowadzenie Maciej Hapke maciej.hapke at put.poznan.pl Literatura D.E. Goldberg Algorytmy genetyczne i zastosowania, WNT, 1995 Z. Michalewicz Algorytmy genetyczne + struktury danych

Bardziej szczegółowo

Obliczenia iteracyjne

Obliczenia iteracyjne Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej

Bardziej szczegółowo

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2015 Mirosław Sobolewski (UW) Warszawa, 2015 1 / 16 Homo oeconomicus=

Bardziej szczegółowo

Algorytm simplex i dualność

Algorytm simplex i dualność Algorytm simplex i dualność Łukasz Kowalik Instytut Informatyki, Uniwersytet Warszawski April 15, 2016 Łukasz Kowalik (UW) LP April 15, 2016 1 / 35 Przypomnienie 1 Wierzchołkiem wielościanu P nazywamy

Bardziej szczegółowo

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA? /9/ Zagadnienie transportowe Optymalizacja w procesach biznesowych Wykład --9 Plan wykładu Przykład zagadnienia transportowego Sformułowanie problemu Własności zagadnienia transportowego Metoda potencjałów

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

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1

A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe1 A. Kasperski, M. Kulej, Badania operacyjne, Wykład 4, Zagadnienie transportowe ZAGADNIENIE TRANSPORTOWE(ZT) Danychjest pdostawców,którychpodażwynosi a,a 2,...,a p i qodbiorców, którychpopytwynosi b,b 2,...,b

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA

Bardziej szczegółowo

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

ZAGADNIENIE TRANSPORTOWE(ZT)

ZAGADNIENIE TRANSPORTOWE(ZT) A. Kasperski, M. Kulej BO Zagadnienie transportowe 1 ZAGADNIENIE TRANSPORTOWE(ZT) Danychjest pdostawców,którychpodażwynosi a 1, a 2,...,a p i q odbiorców,którychpopytwynosi b 1, b 2,...,b q.zakładamy,że

Bardziej szczegółowo

wiedzy Sieci neuronowe

wiedzy Sieci neuronowe Metody detekcji uszkodzeń oparte na wiedzy Sieci neuronowe Instytut Sterowania i Systemów Informatycznych Universytet Zielonogórski Wykład 7 Wprowadzenie Okres kształtowania się teorii sztucznych sieci

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 5 Prof. dr hab. inż. Jan Magott DMT rozwiązuje problem decyzyjny π przy kodowaniu e w co najwyżej wielomianowym czasie, jeśli dla wszystkich łańcuchów wejściowych

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Bardziej szczegółowo

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania

Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Politechnika Poznańska Modele i narzędzia optymalizacji w systemach informatycznych zarządzania Joanna Józefowska POZNAŃ 2010/11 Spis treści Rozdział 1. Metoda programowania dynamicznego........... 5

Bardziej szczegółowo

ALHE. prof. Jarosław Arabas semestr 15Z

ALHE. prof. Jarosław Arabas semestr 15Z ALHE prof. Jarosław Arabas semestr 15Z Wykład 5 Błądzenie przypadkowe, Algorytm wspinaczkowy, Przeszukiwanie ze zmiennym sąsiedztwem, Tabu, Symulowane wyżarzanie 1. Błądzenie przypadkowe: Pierwszym krokiem

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik Programowanie liniowe całkowitoliczbowe Tadeusz Trzaskalik .. Wprowadzenie Słowa kluczowe Rozwiązanie całkowitoliczbowe Założenie podzielności Warunki całkowitoliczbowości Czyste zadanie programowania

Bardziej szczegółowo

Programowanie liniowe

Programowanie liniowe Programowanie liniowe Mirosław Sobolewski Wydział Matematyki, Informatyki i Mechaniki UW wykład z algebry liniowej Warszawa, styczeń 2010 Mirosław Sobolewski (UW) Warszawa, 2009 1 / 15 Homo oeconomicus=

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

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Algorytmy i struktury danych.

Algorytmy i struktury danych. Algorytmy i struktury danych. Wykład 4 Krzysztof M. Ocetkiewicz Krzysztof.Ocetkiewicz@eti.pg.gda.pl Katedra Algorytmów i Modelowania Systemów, WETI, PG Problem plecakowy mamy plecak o określonej pojemności

Bardziej szczegółowo

Nierówność Krafta-McMillana, Kodowanie Huffmana

Nierówność Krafta-McMillana, Kodowanie Huffmana Nierówność Krafta-McMillana, Kodowanie Huffmana Kodowanie i kompresja informacji - Wykład 2 1 marca 2010 Test na jednoznaczna dekodowalność Kod a jest prefiksem kodu b jeśli b jest postaci ax. x nazywamy

Bardziej szczegółowo

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja bezstratna. Entropia. Kod Huffmana Kompresja bezstratna. Entropia. Kod Huffmana Kodowanie i bezpieczeństwo informacji - Wykład 10 29 kwietnia 2013 Teoria informacji Jeśli P(A) jest prawdopodobieństwem wystapienia informacji A to niech i(a)

Bardziej szczegółowo

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ).

Działanie algorytmu oparte jest na minimalizacji funkcji celu jako suma funkcji kosztu ( ) oraz funkcji heurystycznej ( ). Algorytm A* Opracowanie: Joanna Raczyńska 1.Wstęp Algorytm A* jest heurystycznym algorytmem służącym do znajdowania najkrótszej ścieżki w grafie. Jest to algorytm zupełny i optymalny, co oznacza, że zawsze

Bardziej szczegółowo

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE D: PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE I. Strategia zachłanna II. Problem przetasowań w genomie III. Sortowanie przez odwrócenia IV. Algorytmy przybliżone V. Algorytm zachłanny

Bardziej szczegółowo

Modelowanie zależności. Matematyczne podstawy teorii ryzyka i ich zastosowanie R. Łochowski

Modelowanie zależności. Matematyczne podstawy teorii ryzyka i ich zastosowanie R. Łochowski Modelowanie zależności pomiędzy zmiennymi losowymi Matematyczne podstawy teorii ryzyka i ich zastosowanie R. Łochowski P Zmienne losowe niezależne - przypomnienie Dwie rzeczywiste zmienne losowe X i Y

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na

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

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

Heurystyki w podejmowaniu decyzji

Heurystyki w podejmowaniu decyzji Wydział Zarządzania AGH Katedra Informatyki Stosowanej Heurystyki w podejmowaniu decyzji Metaheurystyki, heurystyki Wprowadzenie, podstawowe pojęcia Proste techniki przeszukiwania Symulowane wyżarzanie

Bardziej szczegółowo

Zagadnienie najkrótszej drogi w sieci

Zagadnienie najkrótszej drogi w sieci L L Zagadnienie najkrótszej drogi w sieci 1 Rozważmy sieć, gdzie graf jest grafem skierowanym (digrafem) a jest funkcją określoną na zbiorze łuków. Wartość tej funkcji na łuku!"$#%'&, którą oznaczać będziemy

Bardziej szczegółowo