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

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

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Rekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:

Algorytmy sortujące i wyszukujące

Podstawy Informatyki. Sprawność algorytmów

Metody Rozmyte i Algorytmy Ewolucyjne

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Zaawansowane algorytmy i struktury danych

Strategie ewolucyjne (ang. evolu4on strategies)

Algorytmy i Struktury Danych, 2. ćwiczenia

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

Efektywna metoda sortowania sortowanie przez scalanie

PROBLEMY NIEROZSTRZYGALNE

Informatyka 1. Złożoność obliczeniowa

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Matematyczne Podstawy Informatyki

Złożoność algorytmów. Wstęp do Informatyki

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

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

Wstęp do programowania

Algorytmy i struktury danych Matematyka III sem.

Katedra Informatyki Stosowanej. Algorytmy ewolucyjne. Inteligencja obliczeniowa

Prawdopodobieństwo i statystyka

TEORETYCZNE PODSTAWY INFORMATYKI

Podstawy Programowania. Złożoność obliczeniowa

ALGORYTMY Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Kolorowanie wierzchołków grafu

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

a) 7 b) 19 c) 21 d) 34

Podstawy symulacji komputerowej

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Podstawy Programowania

Metody numeryczne w przykładach

Podstawy Programowania. Złożoność obliczeniowa

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Technologie informacyjne Wykład VII-IX

Co to jest algorytm? przepis prowadzący do rozwiązania zadania, problemu,

Złożoność obliczeniowa zadania, zestaw 2

Algorytm Genetyczny. zastosowanie do procesów rozmieszczenia stacji raportujących w sieciach komórkowych

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

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

Rozwiązywanie problemów metodą przeszukiwania

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Metody przeszukiwania

Wstęp do programowania

Programowanie dynamiczne cz. 2

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

Złożoność problemów. 1 ruch na sekundę czas wykonania ok lat 1 mln ruchów na sekundę czas wykonania ok.

funkcje rekurencyjne Wykład 12. Podstawy programowania (język C) Funkcje rekurencyjne (1) Funkcje rekurencyjne (2)

EGZAMIN MAGISTERSKI, czerwiec 2014 Matematyka w ekonomii i ubezpieczeniach

Sortowanie. Tomasz Żak zak. styczeń Instytut Matematyki i Informatyki, Politechnika Wrocławska

Metody numeryczne. Wykład nr 12. Dr Piotr Fronczak

Aproksymacja funkcji a regresja symboliczna

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Algorytmy i struktury danych

Wykład z Technologii Informacyjnych. Piotr Mika

Algorytmy zrandomizowane

Rekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.

Wybrane podstawowe rodzaje algorytmów

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

Algorytmy w teorii liczb

Optymalizacja. Wybrane algorytmy

Wyszukiwanie. Wyszukiwanie binarne

Sortowanie topologiczne skierowanych grafów acyklicznych

Laboratorium nr 1. i 2.

Generowanie i optymalizacja harmonogramu za pomoca

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Złożoność obliczeniowa klasycznych problemów grafowych

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

Analiza algorytmów zadania podstawowe

Sortowanie przez scalanie

Wstęp do programowania

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Modelowanie komputerowe

Problem straŝaka w drzewach. Agnieszka Skorupka Matematyka Stosowana FTiMS

TEORETYCZNE PODSTAWY INFORMATYKI

Iteracje. Algorytm z iteracją to taki, w którym trzeba wielokrotnie powtarzać instrukcję, aby warunek został spełniony.

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Algorytm. Krótka historia algorytmów

Podstawy Programowania

Temat: Algorytmy zachłanne

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

Obliczenia iteracyjne

Alan M. TURING. Matematyk u progu współczesnej informatyki

Algorytmy stochastyczne laboratorium 03

1. Informatyka - dyscyplina naukowa i techniczna zajmująca się przetwarzaniem informacji.

Układy stochastyczne

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

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.

Struktury danych (I): kolejka, stos itp.

Instrukcja warunkowa i złoŝona.

Algorytmy i Struktury Danych.

Sortowanie Shella Shell Sort

Transkrypt:

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