Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałDonat Rudzki Został zmieniony 10 lat temu
1
Zadania obliczeniowe, algorytmy i złożoność obliczeniowa
Wstęp do Informatyki, część 2
2
Od zadań obliczeniowych do systemów
Zadania obliczeniowe Algorytmy Programy Systemy Wykonanie programu B w systemie X Zadanie 1 Algorytm 2a Program A Zadanie 2 Algorytm 2b Program B Wykonanie programu B w systemie Y Zadanie 3 Algorytm 2c Program C ... Wykonanie programu B w systemie Z Zadanie n ... Wstęp do Informatyki, część 2
3
Przeszukiwanie listy nieuporządkowanej
pole klucza Zapisy (records), umieszczone w przypadkowej kolejności 1 2 3 ... i N 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’ Wstęp do Informatyki, część 2
4
Przeszukiwanie listy nieuporządkowanej
Dowolne liczby całkowite, umieszczone w przypadkowej kolejności, w kolejno ponumerowanych komórkach 1 31 2 15 3 ... i 7 N 25 zadana liczba 7 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
5
Przeszukiwanie listy nieuporządkowanej
start i := 0 i := i+1 i > N L(i)== K Pisz ‘nie ma’ Pisz i stop tak nie 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. Wstęp do Informatyki, część 2
6
Przeszukiwanie listy nieuporządkowanej
start i := 0 i := i+1 i > N L(i)== K Pisz ‘nie ma’ Pisz i stop tak nie Czynności ‘jednorazowe’ (inicjalizacja, edycja wyników itp.) Czynności wykonywane wielokrotnie, (w najgorszym przypadku N razy) Wstęp do Informatyki, część 2
7
Przeszukiwanie listy nieuporządkowanej
Czas wykonania Zależność czasu wykonania od rozmiaru danych (N) jest liniowa, Mówi się, że złożoność obliczeniowa (czasowa) jest O(N). | | | N Wstęp do Informatyki, część 2
8
Przeszukiwanie listy nieuporządkowanej - ulepszenie
start start Dopisz K jako L(N+1) i := 0 i := 0 i := i+1 i := i+1 Pisz ‘nie ma’ i > N tak nie L(i)== K tak nie i > N stop tak Pisz ‘nie ma’ nie L(i)== K tak nie Pisz i Pisz i stop stop stop Wstęp do Informatyki, część 2
9
Przeszukiwanie listy nieuporządkowanej
| | | Czas wykonania Alg. 1 Alg. 1a 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
10
Przeszukiwanie listy uporządkowanej
Liczby całkowite, umieszczone w kolejno ponumerowanych komórkach uporządkowane ‘narastająco’. 1 3 2 4 22 35 5 157 6 209 7 1489 N=8 2500 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
11
Przeszukiwanie listy uporządkowanej
1 3 2 4 22 35 5 157 6 209 7 1489 N=8 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
12
Przeszukiwanie listy uporządkowanej
1 3 2 4 22 35 5 157 6 209 7 1489 N=8 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
13
Przeszukiwanie listy uporządkowanej
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). Czas B O(N) O(log N) < O(N), ponieważ istnieje takie N*, że dla każdego N > N* czas wykonania TA < TB , ... choć dla pewnego zakresu N może być odwrotnie A O(log N) N* N Wstęp do Informatyki, część 2
14
Czy G1 jest izomorficzny z G2 ?
Porównywanie grafów 1 3 5 6 2 4 G1 G2 1 2 3 4 6 5 Czy G1 jest izomorficzny z G2 ? Wstęp do Informatyki, część 2
15
Czy G1 jest izomorficzny z G2 ?
Porównywanie grafów 1 3 5 6 2 4 G1 G2 1 4 3 2 6 5 Czy G1 jest izomorficzny z G2 ? Wstęp do Informatyki, część 2
16
Wstęp do Informatyki, część 2
Porównywanie grafów G1 do 1 2 3 4 5 6 od 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 ) Wstęp do Informatyki, część 2
17
Problem komiwojażera (traveling salesman p.)
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. 383 343 W 647 P 303 279 524 R Wstęp do Informatyki, część 2
18
Wstęp do Informatyki, część 2
Problem komiwojażera W G P W R 343 303 383 647 279 524 G P R P R G R G P R P R G P G W 6 tras do porównania Wstęp do Informatyki, część 2
19
Wstęp do Informatyki, część 2
Problem komiwojażera Najkrótsza: WGPRW (lub WRPGW) ma 1529 km, Najdłuższa: WGRPW (lub WPRGW) ma 1817 km. G P W R 343 303 383 647 279 524 Wstęp do Informatyki, część 2
20
Dla N = 4: Problem komiwojażera W G P R P R G R G P W W W W W W
Wstęp do Informatyki, część 2 4*3*2*1 = N ! = 24 trasy do porównania
21
Wstęp do Informatyki, część 2
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 106 tras na sekundę. 1 doba = s, 1 rok = s, Przy tym założeniu: Wstęp do Informatyki, część 2
22
Wstęp do Informatyki, część 2
Problem komiwojażera N Czas 4 s 9 0.36 s 10 3.6 s 12 8 min 14 > 1 doba 15 > 2 tygodnie 17 ~ 11 lat 18 ~ 200 lat 20 lat Eksplozja wykładnicza Wstęp do Informatyki, część 2
23
Program, ale czy algorytm ?
begin 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; end; Wprowadź X tak X==1 end nie X parzyste nie tak X:=X/2 X:=3X+1 Wstęp do Informatyki, część 2
24
‘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 Stop2 Tak, P ma własność stopu Nie, P nie ma własności stopu Wstęp do Informatyki, część 2
25
Klasy złożoności obliczeniowej (czasowej)
Nieobliczalne (nierozstrzygalne) Przeszukiwanie listy nieuporządkowanej O(N), Przeszukiwanie listy uporządkowanej O(log N), Sortowanie O(N log N), Porównywanie grafów O(N2) Wieże Hanoi O(2N), Problem komiwojażera O(N!), Problem budowy uniwersalnego programu badającego własność stopu – w ogóle nierozstrzygalny Złożoność wykładnicza O(kN) ‘trudne’ O(N k), złożoność wielomianowa lub lepsza obliczeniowo ‘łatwe’ Wstęp do Informatyki, część 2
26
Dla pewnego problemu obliczeniowego: .... O(kNN ) ... O(N!) O(2N)
Luka algorytmiczna Dla pewnego problemu obliczeniowego: .... O(kNN ) ... O(N!) O(2N) O(N10) O(N2) O(N) O(logN) ‘trudne’ Znany algorytm ‘Odkrywanie’ nowych algorytmów Górne ograniczenie Luka algorytmiczna ‘łatwe’ Dolne ograniczenie Nowe dowody matematyczne Formalny dowód (że nie może być lepiej) Wstęp do Informatyki, część 2
27
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
28
Klasa problemów NP-zupełnych (NPC)
.... O(kNN ) ... O(N!) O(2N) O(N10) O(N2) O(N) O(logN) ‘trudne’ NPC Górne ograniczenie ‘łatwe’ Ogromna luka algorytmiczna ? Dolne ograniczenie – nie znane Wstęp do Informatyki, część 2
29
Wstęp do Informatyki, część 2
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
30
Wstęp do Informatyki, część 2
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
31
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
32
Układanie rozkładu zajęć
Wykłady, laboratoria, ćwiczenia do ‘poukładania’ Plan tygodnia ... plus kryterium (kryteria) celu ... plus więzy (ograniczenia) Wstęp do Informatyki, część 2
33
Wstęp do Informatyki, część 2
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. Algorytm o złożoności O(N k) przeliczający dane A na dane B cel A na cel B Problem B Problem A Redukcja A do B: Wstęp do Informatyki, część 2
34
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(N2), Dla K = 4 rozwiązanie natychmiastowe (zawsze ‘tak’), Dla K = 3 problem jest NP. Wstęp do Informatyki, część 2
35
Przykłady problemów NP: kolorowanie grafu
1 3 5 6 2 4 7 ? 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
36
Wstęp do Informatyki, część 2
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
37
Algorytmy zachłanne (greedy)
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 (a najdłuższa trasa ma 1817 km) G P W R 343 303 383 647 279 524 Wstęp do Informatyki, część 2
38
Dekompozycja na pod-zadania (divide and conquer)
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
39
Rekurencja: sortowanie ze scalaniem (merge sort)
Sortowanie: porządkowanie listy nieuporządkowanej, Najpierw: operacja scalania (merging) dwóch list uporządkowanych: G i M=merge(G, D) M j D k Wstęp do Informatyki, część 2
40
Rekurencja: sortowanie ze scalaniem (merge sort)
Function m = sort (lista); 1 Oblicz d = długość lista; nie tak d == 1 Podziel lista na listaD, listaG; 2 D = sort (listaD); G = sort (listaG); Zwróć m = lista; 5 3 Zwróć m = merge(D, G); 4 Wstęp do Informatyki, część 2
41
Rekurencyjne wykonanie sortowania ze scalaniem
3, 1, 7, 5 3 d=1 ... sort(3) sort(1) merge 3, 1 3 1 d=1 ... sort(3,1) sort(7,5) merge 1 1, 3 7, 5 5 d=1 ... sort(5) sort(7) merge 5, 7 5 7 1, 3, 5, 7 d=1 7 Wstęp do Informatyki, część 2
42
Rekurencyjne wykonanie sortowania ze scalaniem
1 4 2 3 1 4 1 4 2 3 2 3 1 5 1 5 1 5 1 5 Wstęp do Informatyki, część 2
43
Zasada rekurencyjnego wykonania procedury (funkcji)
Wstęp do Informatyki, część 2
44
Rozwiązywanie problemu komiwojażera metodą ‘top-down’
Żoliborz Grochów Centrum Gocławek Ochota Mokotów Wstęp do Informatyki, część 2
45
Możliwe heurystyczne rozwiązanie problemu komiwojażera
G Znane rozwiązanie dla 4 miast, Dochodzi piąte (B) Podejście ‘konserwatywne’: ‘jak najmniej zmian’ B 383 343 W 647 303 P 279 524 R Wstęp do Informatyki, część 2
46
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 H = g(x)dx a b x 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 itd Wstęp do Informatyki, część 2
47
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 H = g(x)dx a b x g(xi) Zdroworozsądkowe rozwiązanie numeryczne: Sumowanie prostokątów (lub trapezów) xi Wstęp do Informatyki, część 2
48
Rozwiązanie probabilistyczne przykładowego zadania
g(x) Zadana złożona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. a b H = g(x)dx g(x) L = Licznik punktów ‘pod’ a b x Rozwiązanie probabilistyczne (Monte Carlo): for i =1 : N; //(np. N = ); Wygeneruj losowo punkt (xi, yi) z zaznaczonego prostokąta, if g(xi)>yi; L:=L+1 ;endif; endfor; H = L/N; (xi, yi) g(xi) yi xi Równomiernie! Wstęp do Informatyki, część 2
49
Prosty system obsługi System obsługi Strumień zgłoszeń
Klienci Klienci Strumień zgłoszeń Strumień obsługi Serwer Kolejka Mechanizm obsługi 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
50
Wstęp do Informatyki, część 2
Sieć systemów obsługi Gabinet zabiegowy Internista 40% 20% 50% T2 2xT3 80% 50% T1 40% Apteka 20% T4 100% Kardiolog 50% 50% 75% 95% T5 T6 25% 5% Wstęp do Informatyki, część 2
51
Wstęp do Informatyki, część 2
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
52
Generowanie liczb (pseudo)losowych
Początkowa dowolna liczba czterocyfrowa np (seed) Ciąg liczb pseudo-losowych 2 5 4 3 2 = = 2 5 6 4 3 6 4 3 2 = 6 4 3 = 4 1 2 9 1 2 9 4 1 2 9 4 Wstęp do Informatyki, część 2
53
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) 1 Wstęp do Informatyki, część 2
54
Generowanie ciągu realizacji zmiennej o znanym rozkładzie
1 F(t)= 1-e-0.4 t rand x t [godz] t = [ln(1-x)]/(-0.4) 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
55
Zasada algorytmu ewolucyjnego (przykład)
Zadanie: Z pomiarów otrzymano zbiór np. 10 punktów (ti, yi) 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 stałej, y y4 t t1 t2 t t t10 Wstęp do Informatyki, część 2
56
Sinusoidy Czas [s], zmienna niezależna Amplituda y(t) = a*sin(w*t + p) Pulsacja w = 2*f [rd]; Częstotliwość f [1/s], [Hz]; Okres T=1/f [s]; Przesunięcie fazy p [rd] fv(t) = a1sin(w1t+ p1) + a2sin(w2t+ p2) + a3sin(w3t+ p3) + c Chodzi więc o znalezienie takich numerycznych wartości dziesięciu współczynników: a1, w1, p1 , a2, w2, p2 ..., c – by przebieg funkcji y=f(t) jak najlepiej pasował do punktów pomiarowych Wstęp do Informatyki, część 2
57
v φ(v)= (yi – fv(ti) )2 Funkcja dostosowania a1 w1 p1 a2 w2 p2 a3 w3
1.2 3.7 0.22 4.3 0.03 4.5 0.45 1.1 3.3 2.4 v Jakieś przypadkowe wartości fv(t) = 1.2sin(3.7t+ 0.22) + 4.3sin(0.03t+ 4.5) sin(1.1t+ 3.3) + 2.4 y Miara ‘dostosowania’ dla wektora v: φ(v)= (yi – fv(ti) )2 fv(x) y4 i t t1 t2 t t t10 Wstęp do Informatyki, część 2
58
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
59
..... Populacja początkowa Populacja P0 Np. 200 ‘osobników’,
Begin Populacja P0 Utwórz populację początkową 1 .. 2 .. 3 .. ..... Np. 200 ‘osobników’, Każdy ma 10 ‘genów’: a1, w1, p1, ...., c, ... o początkowo losowych wartościach (z dowolnie ustalonego przedziału). 199 .. 200 .. Wstęp do Informatyki, część 2
60
Wyliczanie funkcji dostosowania
Begin Populacja P0 Utwórz populację początkową 1 .. φ1 Oblicz φ(v) 2 .. φ2 3 .. φ3 ..... Dla każdego indywiduum v oblicza się jego wartość funkcji dostosowania φ(v) 199 .. 200 .. φ200 Wstęp do Informatyki, część 2
61
Porządkowanie według wartości funkcji dostosowania
Najmniejsze φ Begin Populacja P0 Utwórz populację początkową 1 Oblicz φ(v) Najlepiej dostosowane 2 Sortuj wg φ(v) 3 ..... Porządkowanie np. ‘rosnąco’ wg wartości funkcji dostosowania 199 Najgorzej dostosowane 200 Nowe uporządkowanie Największe φ Wstęp do Informatyki, część 2
62
Wyliczanie danych o populacji
Begin Populacja P0 Utwórz populację początkową 1 Oblicz φ(v) 2 Sortuj wg φ(v) 3 ..... Zbierz dane o populacji Według uznania, np. Najlepszy osobnik w populacji, Średni poziom dostosowania w populacji, Rozrzut dostosowania, Poprawa średniego dostosowania w stosunku do poprzedniego pokolenia, itd. 199 200 Wstęp do Informatyki, część 2
63
Badanie warunku zakończenia
Begin Wiele możliwych warunków zakończenia, np. Zadana maksymalna liczba pokoleń, Ograniczenie czasowe, Osiągnięcie zadowalającego najlepszego dostosowania, itd. Edycja – wiadomo. Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji Koniec? tak nie Edycja wyników End Wstęp do Informatyki, część 2
64
Likwidacja gorzej dostosowanych
Populacja P0 (uporządkowana wg φ) Begin Utwórz populację początkową 1 .. Oblicz φ(v) 2 .. 3 .. Sortuj wg φ(v) Próg przeżycia (np. w połowie) Zbierz dane o populacji Nie przeżyły, niestety Koniec? tak 199 .. nie 200 .. Uśmierć gorszą część Wstęp do Informatyki, część 2
65
Rozmnażanie lepiej dostosowanych
‘Uratowana’ część populacji P0 Begin Utwórz populację początkową 1 .. Oblicz φ(v) 2 .. Sortuj wg φ(v) 100 .. Zbierz dane o populacji ... zabiera się do produkowania potomstwa Koniec? tak nie Uśmierć gorszą część Dwa mechanizmy; Krzyżowanie, Mutacja. Utwórz nową populację Wstęp do Informatyki, część 2
66
Wstęp do Informatyki, część 2
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
67
Wstęp do Informatyki, część 2
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
68
Zasada działania algorytmu ewolucyjnego
Begin 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 Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji Koniec? tak nie Uśmierć gorszą część Edycja wyników Utwórz nową populację End 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
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.