Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Dr inż. Jerzy Mieścicki Instytut Informatyki PW Wstęp do Informatyki, część 2 Zadania obliczeniowe, algorytmy i złożoność obliczeniowa.

Podobne prezentacje


Prezentacja na temat: "Dr inż. Jerzy Mieścicki Instytut Informatyki PW Wstęp do Informatyki, część 2 Zadania obliczeniowe, algorytmy i złożoność obliczeniowa."— Zapis prezentacji:

1 Dr inż. Jerzy Mieścicki Instytut Informatyki PW Wstęp do Informatyki, część 2 Zadania obliczeniowe, algorytmy i złożoność obliczeniowa

2 Wstęp do Informatyki, część 2 2 Od zadań obliczeniowych do systemów Zadanie 1 Zadania obliczeniowe Zadanie 2 Zadanie 3 Zadanie n... Algorytm 2a Algorytm 2b Algorytm 2c Algorytmy Programy Program A Program B Program C Systemy Wykonanie programu B w systemie X Wykonanie programu B w systemie X Wykonanie programu B w systemie Y Wykonanie programu B w systemie Y Wykonanie programu B w systemie Z Wykonanie programu B w systemie Z

3 Wstęp do Informatyki, część 2 3 Przeszukiwanie listy nieuporządkowanej i N Zapisy (records), umieszczone w przypadkowej kolejności pole klucza 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

4 Wstęp do Informatyki, część 2 4 Przeszukiwanie listy nieuporządkowanej i 7 N 25 Dowolne liczby całkowite, umieszczone w przypadkowej kolejności, w kolejno ponumerowanych komórkach Zadanie: Czy jest wśród nich zadana liczba (np.7), Jeśli tak – wypisz numer komórki, Jeśli nie – napisz nie ma zadana liczba 7

5 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.

6 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)

7 Wstęp do Informatyki, część 2 7 Przeszukiwanie listy nieuporządkowanej N | | | Czas wykonania Zależność czasu wykonania od rozmiaru danych (N) jest liniowa, Mówi się, że złożoność obliczeniowa (czasowa) jest O(N).

8 Wstęp do Informatyki, część 2 8 Przeszukiwanie listy nieuporządkowanej - ulepszenie start i := 0 i := i+1 i > N L(i)== K Pisz i stop tak nie Pisz nie ma stop start i := 0 Dopisz K jako L(N+1) L(i)== K i := i+1 i > N Pisz nie ma stop Pisz i stop tak nie

9 Wstęp do Informatyki, część 2 9 Przeszukiwanie listy nieuporządkowanej N | | | 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).

10 Wstęp do Informatyki, część 2 10 Przeszukiwanie listy uporządkowanej N= Liczby całkowite, 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

11 Wstęp do Informatyki, część 2 11 Przeszukiwanie listy uporządkowanej N= 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.

12 Wstęp do Informatyki, część 2 12 Przeszukiwanie listy uporządkowanej N= 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.

13 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). 0 1 N Czas O(N)O(N) O(log N) N* O(log N) N* czas wykonania T A < T B,... choć dla pewnego zakresu N może być odwrotnie A B

14 Wstęp do Informatyki, część 2 14 Porównywanie grafów G1G G2G2 Czy G 1 jest izomorficzny z G 2 ?

15 Wstęp do Informatyki, część 2 15 Porównywanie grafów G1G G2G2 Czy G 1 jest izomorficzny z G 2 ?

16 Wstęp do Informatyki, część 2 16 Porównywanie grafów G1G1 do 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 )

17 Wstęp do Informatyki, część 2 17 Problem komiwojażera (traveling salesman p.) G P W 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.

18 Wstęp do Informatyki, część 2 18 Problem komiwojażera G P W R WWWWWW W G GG P PP R R R 6 tras do porównania RR PP GG

19 Wstęp do Informatyki, część 2 19 Problem komiwojażera G P W R Najkrótsza: WGPRW (lub WRPGW) ma 1529 km, Najdłuższa: WGRPW (lub WPRGW) ma 1817 km.

20 Wstęp do Informatyki, część 2 20 Problem komiwojażera W G GG P PP R R R Dla N = 4: WWWWWW 4*3*2*1 = N ! = 24 trasy do porównania

21 Wstęp do Informatyki, część 2 21 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 = s, 1 rok = s, Przy tym założeniu:

22 Wstęp do Informatyki, część 2 22 Problem komiwojażera NCzas s s s 128 min 14> 1 doba 15> 2 tygodnie 17~ 11 lat 18~ 200 lat lat Eksplozja wykładnicza

23 Wstęp do Informatyki, część 2 23 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; end; begin Wprowadź X X==1 X parzyste X:=X/2X:=3X+1 end tak nie

24 Wstęp do Informatyki, część 2 24 Superprogram oceniający własność stopu ? Dowolny program P Dowolny program P start Stop 1Stop2 ? ? Wczytaj P Tak, P ma własność stopu Nie, P nie ma własności stopu Można udowodnić, że zadanie zbudowania programu określającego własność stopu dowolnego programu jest nierealizowalne.

25 Wstęp do Informatyki, część 2 25 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 obliczeniowo łatwe trudne Nieobliczalne (nierozstrzygalne) O(N k ), złożoność wielomianowa lub lepsza Złożoność wykładnicza O(k N )

26 Wstęp do Informatyki, część 2 26 Luka algorytmiczna.... O(k N N )... O(N!) O(2 N ) O(N 10 ).... O(N 2 ) O(N) O(logN).... łatwe trudne Górne ograniczenie Dla pewnego problemu obliczeniowego: Formalny dowód (że nie może być lepiej) Znany algorytm Dolne ograniczenie Luka algorytmiczna Odkrywanie nowych algorytmów Nowe dowody matematyczne

27 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)....

28 Wstęp do Informatyki, część 2 28 Klasa problemów NP-zupełnych (NPC) trudne łatwe.... O(k N N )... O(N!) O(2 N ) O(N 10 ).... O(N 2 ) O(N) O(logN).... NPC Górne ograniczenie Dolne ograniczenie – nie znane ? Ogromna luka algorytmiczna

29 Wstęp do Informatyki, część 2 29 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ń,

30 Wstęp do Informatyki, część 2 30 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 ?

31 Wstęp do Informatyki, część 2 31 Przykłady problemów NP: problem plecakowy Zadanie: tak poukładać rzeczy w plecaku, żeby zostało w nim jak najwięcej wolnego (niewykorzystanego) miejsca. Problem jest NP. Plecak N rzeczy do zapakowania

32 Wstęp do Informatyki, część 2 32 Układanie rozkładu zajęć Plan tygodnia Wykłady, laboratoria, ćwiczenia do poukładania... plus kryterium (kryteria) celu... plus więzy (ograniczenia)

33 Wstęp do Informatyki, część 2 33 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:

34 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(N 2 ), Dla K = 4 rozwiązanie natychmiastowe (zawsze tak), Dla K = 3 problem jest NP.

35 Wstęp do Informatyki, część 2 35 Przykłady problemów NP: kolorowanie grafu 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 ?

36 Wstęp do Informatyki, część 2 36 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...

37 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

38 Wstęp do Informatyki, część 2 38 Dekompozycja na pod-zadania (divide and conquer) Zadanie A Pod-zadanie A1 Pod-zadanie A1 Pod-zadanie A2 Pod-zadanie A2 Pod-zadanie A1.1 Pod-zadanie A1.1 Pod-zadanie A1.2 Pod-zadanie A1.2 Top-down Bottom-up

39 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: M G D M=merge(G, D) i j k

40 Wstęp do Informatyki, część 2 40 Rekurencja: sortowanie ze scalaniem (merge sort) Function m = sort (lista); Oblicz d = długość lista; d == 1 Podziel lista na listaD, listaG; Podziel lista na listaD, listaG; D = sort (listaD); G = sort (listaG); D = sort (listaD); G = sort (listaG); Zwróć m = merge(D, G); Zwróć m = merge(D, G); Zwróć m = lista; tak nie

41 Wstęp do Informatyki, część 2 41 Rekurencyjne wykonanie sortowania ze scalaniem 3, 1, 7, 5... sort(3,1) sort(7,5) merge... sort(3,1) sort(7,5) merge... sort(3) sort(1) merge... sort(3) sort(1) merge d= sort(5) sort(7) merge... sort(5) sort(7) merge d= , 5 3, 1 1, 3, 5, 7 5, 7 1, 3

42 Wstęp do Informatyki, część 2 42 Rekurencyjne wykonanie sortowania ze scalaniem

43 Wstęp do Informatyki, część 2 43 Zasada rekurencyjnego wykonania procedury (funkcji)

44 Wstęp do Informatyki, część 2 44 Rozwiązywanie problemu komiwojażera metodą top-down Żoliborz Centrum Ochota Mokotów Grochów Gocławek

45 Wstęp do Informatyki, część 2 45 Możliwe heurystyczne rozwiązanie problemu komiwojażera G P W R B Znane rozwiązanie dla 4 miast, Dochodzi piąte (B) Podejście konserwatywne: jak najmniej zmian

46 Wstęp do Informatyki, część 2 46 Przykładowe zadanie numeryczne Zadana złożona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. ab g(x) x a b H = g(x)dx Całkowanie przez części... przez podstawienie, Tablice całek nieoznaczonych itd g(x) H(x) = g(x)dx Rozwiązanie klasyczne (analityczne): Wyznaczyć całkę nieoznaczoną Obliczyć H = H(b) – H(a)

47 Wstęp do Informatyki, część 2 47 Przykładowe rozwiązanie zadania Zadana złożona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. ab g(x) x a b H = g(x)dx Zdroworozsądkowe rozwiązanie numeryczne: Sumowanie prostokątów (lub trapezów) xixi g(x i ) g(x)

48 Wstęp do Informatyki, część 2 48 Rozwiązanie probabilistyczne przykładowego zadania Zadana złożona funkcja g(x), Trzeba obliczyć jej całkę (oznaczoną) w granicach [a, b]. ab g(x) x Rozwiązanie probabilistyczne (Monte Carlo): for i =1 : N; //(np. N = ); Wygeneruj losowo punkt (x i, y i ) z zaznaczonego prostokąta, if g(x i )>y i ; L:=L+1 ;endif; endfor; H = L/N; xixi g(x i ) L = Licznik punktów pod (x i, y i ) yiyi a b H = g(x)dx Równomiernie!

49 Wstęp do Informatyki, część 2 49 Prosty system obsługi Strumień zgłoszeń Strumień obsługi System obsługi Kolejka Serwer Mechanizm obsługi Klienci 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)

50 Wstęp do Informatyki, część 2 50 Sieć systemów obsługi Internista Kardiolog Gabinet zabiegowy Apteka 80% 20% 40% 20% 40% 50% 75% 25% 95% 5% T1 T2 2xT3 T5 T4 T6 100%

51 Wstęp do Informatyki, część 2 51 Rozkład wykładniczy 1 f(x) = e - t F(x)= 1-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/.

52 Wstęp do Informatyki, część 2 52 Generowanie liczb (pseudo)losowych Początkowa dowolna liczba czterocyfrowa np (seed) = = = = Ciąg liczb pseudo- losowych 01294

53 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 0

54 Wstęp do Informatyki, część 2 54 Generowanie ciągu realizacji zmiennej o znanym rozkładzie Wygenerować liczbę losową (x=rand) z przedziału [0, 1], Przeliczyć na wartość t wykorzystując funkcję odwrotną dystrybuanty. 1 F(t)= 1-e -0.4 t t [godz] 0 rand t = [ln(1-x)]/(-0.4) x

55 Wstęp do Informatyki, część 2 55 Zasada algorytmu ewolucyjnego (przykład) 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 stałej, t 1 t 2 t 3 t 4... t 10 y t y4y4

56 Wstęp do Informatyki, część 2 56 Sinusoidy y(t) = a*sin(w*t + p) Czas [s], zmienna niezależna Amplituda Przesunięcie fazy p [rd] Pulsacja w = 2 *f [rd]; Częstotliwość f [1/s], [Hz]; Okres T=1/f [s]; 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

57 Wstęp do Informatyki, część 2 57 Funkcja dostosowania a1a1 w1w1 p1p1 a2a2 w2w2 p2p2 a3a3 w3w3 p3p3 c f v (t) = 1.2sin(3.7t+ 0.22) + 4.3sin(0.03t+ 4.5) sin(1.1t+ 3.3) Jakieś przypadkowe wartości v y t y4y4 f v (x) Miara dostosowania dla wektora v: φ(v)= (y i – f v (t i ) ) 2 i t 1 t 2 t 3 t 4... t 10

58 Wstęp do Informatyki, część 2 58 Zasada działania algorytmu ewolucyjnego Utworzymy populację: całą grupę osobników, Populacja ta będzie podlegała cyklicznemu procesowi ewolucji, Jeden obieg pętli = jedno pokolenie Utwórz populację początkową Edycja wyników Koniec? Utwórz nową populację Begin End tak nie

59 Wstęp do Informatyki, część 2 59 Populacja początkowa 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). Utwórz populację początkową Begin Populacja P

60 Wstęp do Informatyki, część 2 60 Wyliczanie funkcji dostosowania Dla każdego indywiduum v oblicza się jego wartość funkcji dostosowania φ(v) Utwórz populację początkową Oblicz φ(v) Begin φ1φ1 φ2φ2 φ3φ3 φ Populacja P

61 Wstęp do Informatyki, część 2 61 Porządkowanie według wartości funkcji dostosowania Porządkowanie np. rosnąco wg wartości funkcji dostosowania Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Begin..... Populacja P Największe φ Najmniejsze φ Najlepiej dostosowane Najgorzej dostosowane Nowe uporządkowanie

62 Wstęp do Informatyki, część 2 62 Wyliczanie danych 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. Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Zbierz dane o populacji Begin..... Populacja P

63 Wstęp do Informatyki, część 2 63 Badanie warunku zakończenia 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 Edycja wyników Koniec? Begin tak nie End

64 Wstęp do Informatyki, część 2 64 Likwidacja gorzej dostosowanych Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Uśmierć gorszą część Zbierz dane o populacji Koniec? Begin tak nie.. Populacja P 0 (uporządkowana wg φ) Próg przeżycia (np. w połowie) Nie przeżyły, niestety

65 Wstęp do Informatyki, część 2 65 Rozmnażanie lepiej dostosowanych Utwórz populację początkową Oblicz φ(v) Sortuj wg φ(v) Uśmierć gorszą część Zbierz dane o populacji Koniec? Utwórz nową populację Begin tak nie.. Uratowana część populacji P zabiera się do produkowania potomstwa Dwa mechanizmy; Krzyżowanie, Mutacja.

66 Wstęp do Informatyki, część 2 66 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.

67 Wstęp do Informatyki, część 2 67 Mutacja W nowej populacji...u stosunkowo niewielkiej liczby (np. 5%) losowo wybranych osobników... losowo wybrany gen... zostaje losowo zmieniony Nowa populacja

68 Wstęp do Informatyki, część 2 68 Zasada działania algorytmu ewolucyjnego 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) Uśmierć gorszą część Zbierz dane o populacji Edycja wyników Koniec? Utwórz nową populację Begin End tak nie

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

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


Pobierz ppt "Dr inż. Jerzy Mieścicki Instytut Informatyki PW Wstęp do Informatyki, część 2 Zadania obliczeniowe, algorytmy i złożoność obliczeniowa."

Podobne prezentacje


Reklamy Google