Zadania obliczeniowe, algorytmy i złożoność obliczeniowa

Slides:



Advertisements
Podobne prezentacje
Przykład liczbowy Rozpatrzmy dwuwymiarową zmienną losową (X,Y), gdzie X jest liczbą osób w rodzinie, a Y liczbą izb w mieszkaniu. Niech f.r.p. tej zmiennej.
Advertisements

Zadania obliczeniowe, algorytmy i złożoność obliczeniowa
Joanna Sawicka Wydział Nauk Ekonomicznych, Uniwersytet Warszawski
Sortowanie przez scalanie
Algorytmy sortowania i przeszukiwania
Instrukcje - wprowadzenie
Wprowadzenie do informatyki Wykład 6
Schemat blokowy M START KONIEC
POWIAT MYŚLENICKI Tytuł Projektu: Poprawa płynności ruchu w centrum Myślenic poprzez przebudowę skrzyżowań dróg powiatowych K 1935 i K 1967na rondo.
Wykład 06 Metody Analizy Programów System Hoare
Wykład 6 Najkrótsza ścieżka w grafie z jednym źródłem
Algorytmy – różne przykłady
Liczby pierwsze.
Domy Na Wodzie - metoda na wlasne M
Teoretyczne podstawy informatyki
ALGORYTMY I STRUKTURY DANYCH
ZLICZANIE cz. II.
ZŁOŻONOŚĆ OBLICZENIOWA
PREPARATYWNA CHROMATOGRAFIA CIECZOWA.
Algorytmy grafowe Reprezentacja w pamięci
Wzory ułatwiające obliczenia
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń  Dr inż. Halina Tarasiuk p. 337, tnt.tele.pw.edu.pl.
Średnie i miary zmienności
Ogólnopolski Konkurs Wiedzy Biblijnej Analiza wyników IV i V edycji Michał M. Stępień
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy i struktury danych
Metody matematyczne w inżynierii chemicznej
Wyrażenia algebraiczne
Rozkłady wywodzące się z rozkładu normalnego standardowego
Algorytmy i struktury danych
Algorytmy i struktury danych
Badania operacyjne Wykład 5.
Obserwatory zredukowane
Algorytmy i struktury danych
KOLEKTOR ZASOBNIK 2 ZASOBNIK 1 POMPA P2 POMPA P1 30°C Zasada działanie instalacji solarnej.
EGZAMIN GIMNAZJALNY W SUWAŁKACH 2009 Liczba uczniów przystępująca do egzaminu gimnazjalnego w 2009r. Lp.GimnazjumLiczba uczniów 1Gimnazjum Nr 1 w Zespole.
w ramach projektu Szkoła z Klasą 2.0
1. Pomyśl sobie liczbę dwucyfrową (Na przykład: 62)
1. ŁATWOŚĆ ZADANIA (umiejętności) 2. ŁATWOŚĆ ZESTAWU ZADAŃ (ARKUSZA)
Analiza matury 2013 Opracowała Bernardeta Wójtowicz.
Podstawy statystyki, cz. II
Badanie kwartalne BO 2.3 SPO RZL Wybrane wyniki porównawcze edycji I- VII Badanie kwartalne Beneficjentów Ostatecznych Działania 2.3 SPO RZL – schemat.
EGZAMINU GIMNAZJALNEGO 2013
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
EcoCondens Kompakt BBK 7-22 E.
EcoCondens BBS 2,9-28 E.
Rachunek różniczkowy funkcji jednej i wielu zmiennych
Projekt Badawczo- Rozwojowy realizowany na rzecz bezpieczeństwa i obronności Państwa współfinansowany ze środków Narodowego Centrum Badań i Rozwoju „MODEL.
User experience studio Użyteczna biblioteka Teraźniejszość i przyszłość informacji naukowej.
WYNIKI EGZAMINU MATURALNEGO W ZESPOLE SZKÓŁ TECHNICZNYCH
Obliczalność czyli co da się policzyć i jak Model obliczeń sieci liczące dr Kamila Barylska.
Testogranie TESTOGRANIE Bogdana Berezy.
Jak Jaś parował skarpetki Andrzej Majkowski 1 informatyka +
Dr hab. Renata Babińska- Górecka
Metody matematyczne w Inżynierii Chemicznej
Systemy dynamiczne 2014/2015Obserwowalno ść i odtwarzalno ść  Kazimierz Duzinkiewicz, dr hab. in ż. Katedra In ż ynierii Systemów Sterowania 1 Obserwowalność.
Metody matematyczne w inżynierii chemicznej Wykład 3. Całkowanie numeryczne.
1 Używanie alkoholu i narkotyków przez młodzież szkolną w województwie opolskim w 2007 r. Na podstawie badań przeprowadzonych przez PBS DGA (w pełni porównywalnych.
Współrzędnościowe maszyny pomiarowe
Wspomaganie Decyzji IV
Elementy geometryczne i relacje
Strategia pomiaru.
LO ŁobżenicaWojewództwoPowiat pilski 2011r.75,81%75,29%65,1% 2012r.92,98%80,19%72,26% 2013r.89,29%80,49%74,37% 2014r.76,47%69,89%63,58% ZDAWALNOŚĆ.
Metody matematyczne w inżynierii chemicznej
Algorytmy Genetyczne Anna Tomkowska Politechnika Koszalińska
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
ALGORYTMY I STRUKTURY DANYCH
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

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

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

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

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

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

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). | | | 0 1 2 3 ..... N Wstęp do Informatyki, część 2

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

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

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

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

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

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* 0 1 N Wstęp do Informatyki, część 2

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

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

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

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

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

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

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

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

Wstęp do Informatyki, część 2 Problem komiwojażera N Czas 4 0.000024 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 78 000 lat Eksplozja wykładnicza Wstęp do Informatyki, część 2

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

‘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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 j 1 2 3 5 5 10 22 33 40 45 D 1 2 5 10 33 45 k Wstęp do Informatyki, część 2

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

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

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

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

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

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

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

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

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 = 100000); 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

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

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

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

Generowanie liczb (pseudo)losowych Początkowa dowolna liczba czterocyfrowa np. 5432 (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

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

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

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

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

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) + 0.45sin(1.1t+ 3.3) + 2.4 y Miara ‘dostosowania’ dla wektora v: φ(v)=  (yi – fv(ti) )2 fv(x) y4 i t t1 t2 t3 t4 ... t10 Wstęp do Informatyki, część 2

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

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

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

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

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

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

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

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

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

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

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 www.alife.pl 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

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

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