Dr inŝ. Jerzy Mieścicki Instytut Informatyki PW Zadania obliczeniowe, algorytmy i złoŝoność obliczeniowa Wstęp do Informatyki, część 2
Od zadań obliczeniowych do systemów Zadania obliczeniowe Algorytmy Programy Systemy Zadanie 1 Zadanie 1 Zadanie 2 Zadanie 2 Zadanie 3 Zadanie 3...... Zadanie n Zadanie n Algorytm 2a Algorytm 2a Algorytm 2b Algorytm 2b Algorytm 2c Algorytm 2c Program A Program A Program B Program B Program C Program C Wykonanie programu B w systemie X Wykonanie programu B w systemie Y Wykonanie programu B w systemie Z Wstęp do Informatyki, część 2 2
Przeszukiwanie listy nieuporządkowanej Zapisy (records), umieszczone w przypadkowej kolejności zadany klucz Zadanie: Czy wśród N rekordów jest taki R(i), w którym zawartość wskazanego pola jest zgodna z zadanym kluczem, Jeśli tak odczytaj ten R(i), Jeśli nie napisz nie ma 1 2 3...... N Wstęp do Informatyki, część 2 3 i...... pole klucza..................
Przeszukiwanie listy nieuporządkowanej 1 2 3... i... N 31 15 2... 7... 25 Dowolne liczby całkowite, umieszczone w przypadkowej kolejności, w kolejno ponumerowanych komórkach 7 zadana liczba Zadanie: Czy jest wśród nich zadana liczba (np. 7 ), Jeśli tak wypisz numer komórki, Jeśli nie napisz nie ma Wstęp do Informatyki, część 2 4
Przeszukiwanie listy nieuporządkowanej start Dane: L[1:N] wektor liczb całkowitych, L(i) liczba na i-tej pozycji, N, K, i - liczby całkowite, K klucz, i indeks przeszukiwania. nie i := 0 i := i+1 i > N nie L(i)== K tak tak Pisz nie ma stop Pisz i stop Wstęp do Informatyki, część 2 5
Przeszukiwanie listy nieuporządkowanej start i := 0 i := i+1 Czynności jednorazowe (inicjalizacja, edycja wyników itp.) Czynności wykonywane wielokrotnie, (w najgorszym przypadku N razy) i > N nie tak Pisz nie ma stop nie L(i)== K tak Pisz i stop Wstęp do Informatyki, część 2 6
Przeszukiwanie listy nieuporządkowanej Czas wykonania 0 1 2 3... N ZaleŜność czasu wykonania od rozmiaru danych (N) jest liniowa, Mówi się, Ŝe złoŝoność obliczeniowa (czasowa) jest O(N). Wstęp do Informatyki, część 2 7
Przeszukiwanie listy nieuporządkowanej - ulepszenie start start i := 0 Dopisz K jako L(N+1) i := i+1 i := 0 nie i > N nie L(i)== K tak tak Pisz nie ma stop Pisz i nie Pisz nie ma i := i+1 L(i)== K tak tak i > N nie stop stop stop Pisz i Wstęp do Informatyki, część 2 8
Przeszukiwanie listy nieuporządkowanej Czas wykonania Alg. 1 Alg. 1a 0 1 2 3... N W obu przypadkach zaleŝność czasu wykonania od rozmiaru danych (N) jest liniowa, Oba algorytmy mają taką samą złoŝoność obliczeniową: O(N). Wstęp do Informatyki, część 2 9
Przeszukiwanie listy uporządkowanej N=8 1 3 Liczby całkowite, 2 3 4 5 6 7 4 22 35 157 209 1489 2500 umieszczone w kolejno ponumerowanych komórkach uporządkowane narastająco. Zadanie to samo: Czy jest wśród nich zadana liczba (np. 7 ), Jeśli tak wypisz numer komórki, Jeśli nie napisz nie ma Wstęp do Informatyki, część 2 10
Przeszukiwanie listy uporządkowanej 1 2 3 4 5 6 7 N=8 3 4 22 35 157 209 1489 2500 Oba algorytmy przeszukiwania listy nieuporządkowanej działałyby równieŝ w tym przypadku, Ale tu moŝna zastosować lepszy pomysł: dzielenia na połowy. Wstęp do Informatyki, część 2 11
Przeszukiwanie listy uporządkowanej 1 2 3 4 5 6 7 N=8 3 4 22 35 157 209 1489 2500 Niech np. zadana liczba K = 7 przygraniczna L(5) = 157 > K, więc nie ma czego szukać w dolnej połowie, Powtórzmy całe rozumowanie dla górnej połowy. Wstęp do Informatyki, część 2 12
Przeszukiwanie listy uporządkowanej Czas Dwukrotne zwiększenie N (np. z 8 do 16, z 16 do 32 itd.) dodaje jeden krok do algorytmu dzielenia na połowy, Algorytm ten ma więc złoŝoność O(log N). O(N) A O(log N) 0 1 N N* B O(log N) < O(N), poniewaŝ istnieje takie N*, Ŝe dla kaŝdego N > N* czas wykonania T A < T B,... choć dla pewnego zakresu N moŝe być odwrotnie Wstęp do Informatyki, część 2 13
Porównywanie grafów G 1 G 2 1 2 1 2 3 3 4 5 6 4 5 6 Czy G 1 jest izomorficzny z G 2? Wstęp do Informatyki, część 2 14
Porównywanie grafów G 1 G 2 1 2 1 3 3 4 2 6 5 6 4 5 Czy G 1 jest izomorficzny z G 2? Wstęp do Informatyki, część 2 15
Porównywanie grafów G 1 1 2 3 od 4 5 1 2 do 3 4 5 6 Potrzebne jest porównanie dwóch takich tabel, Gdy N jest liczbą węzłów, liczba porównań jest proporcjonalna do N 2, Zatem złoŝoność O(N 2 ) 6 Wstęp do Informatyki, część 2 16
Problem komiwojaŝera (traveling salesman p.) P 383 343 303 524 G W 279 647 R Problem: znaleźć najkrótszą trasę od W z powrotem do W, odwiedzającą (jednokrotnie) wszystkie N=3 miasta. Inaczej: znaleźć najkrótszy cykl w zadanym grafie. Wstęp do Informatyki, część 2 17
Problem komiwojaŝera G W 383 343 G P R P 303 524 W 279 647 R P R R P G R R G G P P G W W W W W W 6 tras do porównania Wstęp do Informatyki, część 2 18
Problem komiwojaŝera 383 343 G Najkrótsza: WGPRW (lub WRPGW) ma 1529 km, NajdłuŜsza: WGRPW (lub WPRGW) ma 1817 km. P 303 524 W 279 647 R Wstęp do Informatyki, część 2 19
Problem komiwojaŝera Dla N = 4: W G P R P R G R G P W W W W W W 4*3*2*1 = N! = 24 trasy do porównania Wstęp do Informatyki, część 2 20
Problem komiwojaŝera ZłoŜoność obliczeniowa O(N!), Ogromna liczba stosunkowo prostych obliczeń, ZałóŜmy dla wsparcia wyobraźni, Ŝe pewien komputer wylicza i porównuje 10 6 tras na sekundę. 1 doba = 86 400 s, 1 rok = 31 536 000 s, Przy tym załoŝeniu: Wstęp do Informatyki, część 2 21
Problem komiwojaŝera N 4 9 10 12 14 15 17 18 20 Czas 0.000024 s 0.36 s 3.6 s 8 min > 1 doba > 2 tygodnie ~ 11 lat ~ 200 lat 78 000 lat Eksplozja wykładnicza Wstęp do Informatyki, część 2 22
Program, ale czy algorytm? X liczba całkowita większa od zera; begin; while ~ (X = = 1); if X parzyste then X := X/2 eiseif X nieparzyste then X:= 3*X+1; endif; endwhile; begin Wprowadź X tak X==1 nie X parzyste tak nie X:=X/2 X:=3X+1 end end; Wstęp do Informatyki, część 2 23
Superprogram oceniający własność stopu? start Dowolny program P Wczytaj P MoŜna udowodnić, Ŝe zadanie zbudowania programu określającego własność stopu dowolnego programu jest nierealizowalne. Stop 1 Tak, P ma własność stopu? Stop2 Nie, P nie ma własności stopu Wstęp do Informatyki, część 2 24
Klasy złoŝoności obliczeniowej (czasowej) Przeszukiwanie listy nieuporządkowanej O(N), Przeszukiwanie listy uporządkowanej O(log N), Sortowanie O(N log N), Porównywanie grafów O(N 2 ) WieŜe Hanoi O(2 N ), Problem komiwojaŝera O(N!), Problem budowy uniwersalnego programu badającego własność stopu w ogóle nierozstrzygalny trudne obliczeniowo łatwe Nieobliczalne (nierozstrzygalne) ZłoŜoność wykładnicza O(k N ) O(N k ), złoŝoność wielomianowa lub lepsza Wstęp do Informatyki, część 2 25
Luka algorytmiczna łatwe trudne... O(k NN )... O(N!) O(2 N ) ---------- O(N 10 )... O(N 2 ) O(N) O(logN)... Dla pewnego problemu obliczeniowego: Znany algorytm Górne ograniczenie Luka algorytmiczna Dolne ograniczenie Formalny dowód (Ŝe nie moŝe być lepiej) Odkrywanie nowych algorytmów Nowe dowody matematyczne Wstęp do Informatyki, część 2 26
Problemy algorytmicznie zamknięte Jeśli luka algorytmiczna nie istnieje problem jest algorytmicznie zamknięty. Algorytmicznie zamknięte są na przykład: Przeszukiwanie listy nieuporządkowanej: udowodniono, Ŝe złoŝoność nie moŝe być lepsza, niŝ O(N), znany jest algorytm o złoŝoności O(N). Sortowanie, O(N logn)... Wstęp do Informatyki, część 2 27
Klasa problemów NP-zupełnych (NPC) trudne łatwe... O(k NN )... O(N!) O(2 N ) ---------- O(N 10 )... O(N 2 ) O(N) O(logN)... Górne ograniczenie Ogromna luka algorytmiczna NPC? Dolne ograniczenie nie znane Wstęp do Informatyki, część 2 28
Klasa problemów NPC NPC od Nondeterministically Polynomial Complete, KaŜdy problem jest (jako całość) obliczeniowo trudny, Rozwiązanie polega z zasady na wykonaniu ogromnej liczby łatwych obliczeń, kaŝde o wielomianowej (polynomial) złoŝoności O(N k ), Kolejność ich wykonywania nie jest określona (t.zn. jest niedeterministyczna); W zaleŝności od przypadku (lub szczęścia) rezultat moŝna otrzymać równie dobrze juŝ w pierwszym, jak dopiero w ostatnim kroku obliczeń, Wstęp do Informatyki, część 2 29
Klasa problemów NPC Klasa NPC jest zupełna (complete) w tym sensie, Ŝe naleŝące do niej problemy są wzajemnie powiązane za pomocą redukcji, znalezienie rozwiązania wielomianowego dla choćby jednego z problemów oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów łatwych (wielomianowych, P), i odwrotnie, udowodnienie dla choćby jednego problemu istnienia dolnej granicy powyŝej złoŝoności wielomianowej oznaczałoby wciągnięcie wszystkich problemów NP do klasy problemów trudnych, Czy NP = P? Wstęp do Informatyki, część 2 30
Przykłady problemów NP: problem plecakowy Plecak N rzeczy do zapakowania Zadanie: tak poukładać rzeczy w plecaku, Ŝeby zostało w nim jak najwięcej wolnego (niewykorzystanego) miejsca. Problem jest NP. Wstęp do Informatyki, część 2 31
Układanie rozkładu zajęć Plan tygodnia Wykłady, laboratoria, ćwiczenia do poukładania... plus kryterium (kryteria) celu... plus więzy (ograniczenia) Wstęp do Informatyki, część 2 32
Pojęcie redukcji Układanie rozkładu zajęć sprowadza się (redukuje się) do problemu plecakowego, Istnieje redukcja przekształcająca problem układania rozkładu zajęć w problem plecakowy. Redukcja A do B: Problem A Problem A Algorytm o złoŝoności O(N k ) przeliczający dane A na dane B cel A na cel B Problem B Problem B Wstęp do Informatyki, część 2 33
Przykłady problemów NP: kolorowanie mapy Dana jest mapa N państw oraz K kolorów, N > 1, K < N, Zadanie polega na stwierdzeniu (tak nie), czy daną mapę moŝna pokolorować K kolorami w taki sposób, by sąsiadujące państwa się zawsze róŝniły kolorem. Dla K = 1 rozwiązanie natychmiastowe (nie), Dla K = 2: Tak jedynie gdy w kaŝdym węźle zbiega się parzysta liczba krawędzi, Zatem złoŝoność O(N 2 ), Dla K = 4 rozwiązanie natychmiastowe (zawsze tak ), Dla K = 3 problem jest NP. Wstęp do Informatyki, część 2 34
Przykłady problemów NP: kolorowanie grafu 1? 2 4 3 7 5 6 Dany jest graf o N wierzchołkach oraz K kolorów (K < N), Zadanie: rozstrzygnąć (tak-nie), czy da się pokolorować wierzchołki danego grafu tak, by Ŝadne dwa wierzchołki połączone krawędzią nie były tego samego koloru, Dla K>2 problem jest NP. Wstęp do Informatyki, część 2 35
Metody algorytmiczne Algorytmy zachłanne (greedy) Podział na pod-zadania ( divide and conquer ) Rozwiązywanie metodą top-down i bottom-up Algorytmy rekurencyjne Algorytmy iteracyjne Programowanie dynamiczne... Algorytmy heurystyczne Algorytmy probabilistyczne Algorytmy ewolucyjne i genetyczne Sieci neuronowe... Wstęp do Informatyki, część 2 36
Algorytmy zachłanne (greedy) P 383 343 303 524 G W 279 647 Zachłanne rozwiązanie problemu komiwojaŝera: Dla początku w W, rozwiązanie zachłanne jest takie samo, jak optymalne (1529 km) Dla początku w P, otrzymana ( zachłanna ) trasa ma 1642 km R (a najdłuŝsza trasa ma 1817 km) Wstęp do Informatyki, część 2 37
Dekompozycja na pod-zadania (divide and conquer) Zadanie A Zadanie A Top-down Pod-zadanie A1 Pod-zadanie A2 Pod-zadanie A1.1 Pod-zadanie A1.2 Bottom-up Wstęp do Informatyki, część 2 38
Rekurencja: sortowanie ze scalaniem (merge sort) Sortowanie: porządkowanie listy nieuporządkowanej, Najpierw: operacja scalania (merging) dwóch list uporządkowanych: G 3 5 22 40 i M=merge(G, D) M=merge(G, D) D j 1 2 5 10 33 45 M 1 2 3 5 5 10 22 33 40 45 k Wstęp do Informatyki, część 2 39
Rekurencja: sortowanie ze scalaniem (merge sort) Function m = sort (lista); 1 Oblicz d = długość lista; Oblicz d = długość lista; nie d == 1 d == 1 tak Podziel lista na listad, listag; 2 3 D = sort (listad); G = sort (listag); 5 Zwróć m = lista; Zwróć m = lista; 4 Zwróć m = merge(d, G); Wstęp do Informatyki, część 2 40
Rekurencyjne wykonanie sortowania ze scalaniem 3, 1, 7, 5 1, 3, 5, 7... sort(3,1) sort(7,5) merge 3, 1 1, 3 7, 5 5, 7... sort(3) sort(1) merge... sort(5) sort(7) merge 3 5 3 1 5 7 1 7 d=1 d=1 d=1 d=1 Wstęp do Informatyki, część 2 41
Rekurencyjne wykonanie sortowania ze scalaniem 1 2 3 4 1 2 3 4 1 2 3 4 1 5 1 5 1 5 1 5 Wstęp do Informatyki, część 2 42
Zasada rekurencyjnego wykonania procedury (funkcji) Wstęp do Informatyki, część 2 43
Rozwiązywanie problemu komiwojaŝera metodą top-down śoliborz Grochów Centrum Ochota Gocławek Mokotów Wstęp do Informatyki, część 2 44
MoŜliwe heurystyczne rozwiązanie problemu komiwojaŝera G P 383 343 303 524 W 279 647 R B Znane rozwiązanie dla 4 miast, Dochodzi piąte (B) Podejście konserwatywne : jak najmniej zmian Wstęp do Informatyki, część 2 45
Przykładowe zadanie numeryczne g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. g(x) a b x b H = g(x)dx a H(x) = g(x)dx Rozwiązanie klasyczne (analityczne): Wyznaczyć całkę nieoznaczoną Obliczyć H = H(b) H(a) Całkowanie przez części... przez podstawienie, Tablice całek nieoznaczonych Wstęp do Informatyki, część 2 itd 46
Przykładowe rozwiązanie zadania g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. g(x) a b x b H = g(x)dx a Zdroworozsądkowe rozwiązanie numeryczne: Sumowanie prostokątów (lub trapezów) g(x i ) Wstęp do Informatyki, część 2 47 x i
Rozwiązanie probabilistyczne przykładowego zadania g(x) g(x) Zadana złoŝona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. b H = g(x)dx a a b x L = Licznik punktów pod Rozwiązanie probabilistyczne (Monte Carlo): for i =1 : N; //(np. N = 100000); Wygeneruj losowo punkt (x i, y i ) z zaznaczonego prostokąta, if g(x i )>y i ; L:=L+1 ;endif; endfor; Równomiernie! H = L/N; (x i, y i ) Wstęp do Informatyki, część 2 48 y i x i g(x i )
Prosty system obsługi Klienci System obsługi Klienci Strumień zgłoszeń Strumień obsługi Kolejka Mechanizm obsługi Serwer Wiele moŝliwości zdefiniowania: Rozkładu czasu między zgłoszeniami Rozkładu czasu obsługi, Liczby elementarnych mechanizmów obsługi w serwerze, Liczby kolejek (plus ew. zasady priorytetu), Kolejek nieograniczonych/ograniczonych Strategii wyboru następnego z kolejki (FIFO, LIFO, RAND, priorytetowa, Teoria masowej obsługi (Queueing Theory) Wstęp do Informatyki, część 2 49
Sieć systemów obsługi Internista 40% Gabinet zabiegowy 20% 50% T1 80% T2 2xT3 50% 20% Kardiolog 40% 50% Apteka T4 100% T6 25% 75% 50% T5 5% 95% Wstęp do Informatyki, część 2 50
Rozkład wykładniczy 1 λ F(x)= 1-e -λt f(x) = λe -λt Np. często przyjmuje się, Ŝe czas pomiędzy chwilami przybycia (do systemu obsługi) kolejnych klientów jest zmienną o rozkładzie wykładniczym z intensywnością λ, Dla rozkładu wykładniczego wartość średnia = 1/ λ. Wstęp do Informatyki, część 2 51
Wstęp do Informatyki, część 2 52 Generowanie liczb (pseudo)losowych Początkowa dowolna liczba czterocyfrowa np. 5432 (seed) 2 3 4 5 0 2 = = 6 5 3 4 6 6 5 2 0 3 4 6 6 0 9 4 4 9 2 1 4 4 0 2 = = 3 4 6 6 0 4 9 2 1 0 Ciąg liczb pseudolosowych 4 9 2 1 0
Generowanie liczb (pseudo)losowych Zazwyczaj jest funkcja rand lub rand(seed), zwracająca po kaŝdym wywołaniu nową, kolejną liczbę losową z przedziału [0.1]; Np.... x = rand; y = rand;... Dałoby (x, y) = (0.6643, 0,1294), Liczby rand mają rozkład jednostajny w przedziale [0, 1], Ale powtórzenie obliczenia z tym samym seed daje dokładnie ten sam ciąg liczb pseudolosowych f(x) 0 1 Wstęp do Informatyki, część 2 53
Generowanie ciągu realizacji zmiennej o znanym rozkładzie rand 1 x F(t)= 1-e -0.4 t 0 t = [ln(1-x)]/(-0.4) t [godz] Wygenerować liczbę losową (x=rand) z przedziału [0, 1], Przeliczyć na wartość t wykorzystując funkcję odwrotną dystrybuanty. Wstęp do Informatyki, część 2 54
Zasada algorytmu ewolucyjnego (przykład) y 4 y t 1 t 2 t 3 t 4... t 10 Zadanie: Z pomiarów otrzymano zbiór np. 10 punktów (t i, y i ) sugerujących zaleŝność między zmiennymi t i y. Chcemy wyrazić tę zaleŝność w postaci funkcji y = f(t), Postulujemy, by ta funkcja była np. sumą trzech sinusoid i t stałej, Wstęp do Informatyki, część 2 55
Sinusoidy Amplituda y(t) = a*sin(w*t + p) Czas [s], zmienna niezaleŝna Pulsacja w = 2π*f [rd]; Częstotliwość f [1/s], [Hz]; Okres T=1/f [s]; Przesunięcie fazy p [rd] f v (t) = a 1 sin(w 1 t+ p 1 ) + a 2 sin(w 2 t+ p 2 ) + a 3 sin(w 3 t+ p 3 ) + c Chodzi więc o znalezienie takich numerycznych wartości dziesięciu współczynników: a 1, w 1, p 1, a 2, w 2, p 2..., c by przebieg funkcji y=f(t) jak najlepiej pasował do punktów pomiarowych Wstęp do Informatyki, część 2 56
Funkcja dostosowania v a 1 1.2 w 1 3.7 p 1 0.22 a 2 4.3 w 2 0.03 p 2 4.5 a 3 0.45 w 3 1.1 p 3 3.3 c 2.4 Jakieś przypadkowe wartości y f v (t) = 1.2sin(3.7t+ 0.22) + 4.3sin(0.03t+ 4.5) + 0.45sin(1.1t+ 3.3) + 2.4 Miara dostosowania dla wektora v: y 4 f v (x) φ(v)= (y i f v (t i ) ) 2 i t t 1 t 2 t 3 t 4... t 10 Wstęp do Informatyki, część 2 57
Zasada działania algorytmu ewolucyjnego Begin Utwórz populację początkową Utworzymy populację: całą grupę osobników, Populacja ta będzie podlegała cyklicznemu procesowi ewolucji, Jeden obieg pętli = jedno pokolenie Koniec? tak nie Edycja wyników Utwórz nową populację End Wstęp do Informatyki, część 2 58
Populacja początkowa Begin Utwórz populację początkową 1 Populacja P 0.. 2.. Np. 200 osobników, KaŜdy ma 10 genów : a 1, w 1, p 1,..., c,... o początkowo losowych wartościach (z dowolnie ustalonego przedziału). 3 199 200......... Wstęp do Informatyki, część 2 59
Wyliczanie funkcji dostosowania Begin Utwórz populację początkową Populacja P 0 Oblicz φ(v) 1 2.... φ 1 φ 2 3.. φ 3... Dla kaŝdego indywiduum v oblicza się jego wartość funkcji dostosowania φ(v) 199.. 200.. φ 200 Wstęp do Informatyki, część 2 60
Porządkowanie według wartości funkcji dostosowania Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Najlepiej dostosowane 1 2 3 Populacja P 0... Najmniejsze φ Porządkowanie np. rosnąco wg wartości funkcji dostosowania Najgorzej dostosowane 199 200 Nowe uporządkowanie Największe φ Wstęp do Informatyki, część 2 61
Wyliczanie danych o populacji Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji 1 2 3 Populacja P 0... Według uznania, np. Najlepszy osobnik w populacji, Średni poziom dostosowania w populacji, Rozrzut dostosowania, Poprawa średniego dostosowania w stosunku do poprzedniego pokolenia, itd. Wstęp do Informatyki, część 2 62 199 200
Badanie warunku zakończenia Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji tak Koniec? nie Wiele moŝliwych warunków zakończenia, np. Zadana maksymalna liczba pokoleń, Ograniczenie czasowe, Osiągnięcie zadowalającego najlepszego dostosowania, itd. Edycja wiadomo. Edycja wyników End Wstęp do Informatyki, część 2 63
Likwidacja gorzej dostosowanych Begin Utwórz populację początkową Populacja P 0 (uporządkowana wg φ) 1.. Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji 2 3 Próg przeŝycia (np. w połowie).... Koniec? tak 199.. nie Uśmierć gorszą część 200.. Nie przeŝyły, niestety Wstęp do Informatyki, część 2 64
RozmnaŜanie lepiej dostosowanych Begin Utwórz populację początkową 1 Uratowana część populacji P 0.. Oblicz φ(v) 2.. Sortuj wg φ(v) Zbierz dane o populacji 100.. tak Koniec? nie Uśmierć gorszą część Utwórz nową populację... zabiera się do produkowania potomstwa Dwa mechanizmy; KrzyŜowanie, Mutacja. Wstęp do Informatyki, część 2 65
KrzyŜowanie Losowo wybrana para rodziców... losowo wybraną połowę genów... przekazuje na krzyŝ dzieciom Dzieci dołączają do rodziców w nowej populacji. Wstęp do Informatyki, część 2 66
Mutacja Nowa populacja W nowej populacji...u stosunkowo niewielkiej liczby (np. 5%) losowo wybranych osobników... losowo wybrany gen... zostaje losowo zmieniony. 1 2 3... 199 200 Wstęp do Informatyki, część 2 67
Zasada działania algorytmu ewolucyjnego Begin Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji tak Koniec? nie Uśmierć gorszą część Edycja wyników Populacja istotnie ewoluuje w kierunku coraz lepszego dostosowania, Jeden obieg pętli = jedno pokolenie, Mnóstwo moŝliwych modyfikacji na kaŝdym etapie algorytmu, Bardzo intrygujące implikacje światopoglądowe, Patrz np. portal www.alife.pl Utwórz nową populację End Wstęp do Informatyki, część 2 68
Dwie sprawy wymagające wyjaśnienia: Czy obliczenie musi koniecznie przebiegać w jakichś krokach? JeŜeli juŝ istotnie przebiega krokowo, to jakie elementarne kroki są dopuszczalne? Analogowa i cyfrowa reprezentacja informacji, Obliczenia analogowe i cyfrowe. Model obliczeń sekwencyjnych, Maszyna Turinga, Hipoteza Churcha-Turinga, Wstęp do Informatyki, część 2 69
Dwie sprawy wymagające wyjaśnienia: Czy obliczenie musi koniecznie przebiegać w jakichś krokach? JeŜeli juŝ istotnie przebiega krokowo, to jakie elementarne kroki są dopuszczalne? Analogowa i cyfrowa reprezentacja informacji, Obliczenia analogowe i cyfrowe. Model obliczeń sekwencyjnych, Maszyna Turinga, Hipoteza Churcha-Turinga, Wstęp do Informatyki, część 2 70