Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Slides:



Advertisements
Podobne prezentacje
Wykład 5: Dyskretna Transformata Fouriera, FFT i Algorytm Goertzela
Advertisements

Programowanie w PMC.
Sortowanie przez scalanie
Rekurencja 1 Podprogram lub strukturę danych nazywamy rekurencyjną, (recursive subprogram, recursive data structure) jeżeli częściowo składa się z samej.
Równanie różniczkowe zupełne i równania do niego sprowadzalne
Ile rozwiązań może mieć układ równań?
Metoda simpleks Simpleks jest uniwersalną metodą rozwiązywania zadań programowania liniowego. Jest to metoda iteracyjnego poprawiania wstępnego rozwiązania.
Programowanie sieciowe
Wprowadzenie do optymalizacji wielokryterialnej.
Anna Bączkowska Praca po kierunkiem dr M. Berndt - Schreiber
Techniki konstrukcji algorytmów
Badania operacyjne. Wykład 1
Złożoność obliczeniowa
START WYPROWADŹ WYNIK 8 STOP
ALGORYTMY I STRUKTURY DANYCH
CECHY CHARAKTERYSTYCZNE SZEREGU CZASOWEGO SZEREG CZASOWY jest zbiorem obserwacji zmiennej, uporządkowanych względem czasu (dni,
Programowanie liniowe całkowitoliczbowe
Instrumenty o charakterze własnościowym Akcje. Literatura Jajuga K., Jajuga T. Inwestycje Jajuga K., Jajuga T. Inwestycje Luenberger D.G. Teoria inwestycji.
Liczby Pierwsze - algorytmy
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY GEOMETRYCZNE.
Binaryzacja okresów zadań cyklicznych SCR2000, Kraków Jerzy Nawrocki, Adam Czajka Instytut Informatyki Politechnika Poznańska.
Wykład 3 Sparametryzowane rodziny funkcji
Numeryczne obliczanie całki oznaczonej
Analiza szeregów czasowych
Metoda simpleks opracowanie na podstawie „Metody wspomagające podejmowanie decyzji w zarządzaniu” D. Witkowska, Menadżer Łódź Simpleks jest uniwersalną.
Odkrywanie wzorców sekwencji
Algorytmy i struktury danych
Algorytmika w drugim arkuszu maturalnym. Standardy wymagań I. WIADOMOŚCI I ROZUMIENIE I. WIADOMOŚCI I ROZUMIENIE II.KORZYSTANIE Z INFORMACJI II.KORZYSTANIE.
Wstęp do interpretacji algorytmów
Zapis informacji Dr Anna Kwiatkowska.
Teoria wyboru konsumenta
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 4: Generowanie zdarzeń  Dr inż. Halina Tarasiuk p. 337, tnt.tele.pw.edu.pl.
Metody Symulacyjne w Telekomunikacji (MEST) Wykład 6/7: Analiza statystyczna wyników symulacyjnych  Dr inż. Halina Tarasiuk
M. Muraszkiewicz Instytut Informatyki, Politechnika Warszawska
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Dzisiaj powtarzamy umiejętności związane z tematem-
Elementy Rachunku Prawdopodobieństwa i Statystyki
Ciąg liczbowy Ciąg arytmetyczny Ciąg geometryczny
Zbiór do posortowania mieści się w pamięci
Algorytmy i Struktury Danych Sortowanie
Elementy Rachunku Prawdopodobieństwa i Statystyki
Elementy Rachunku Prawdopodobieństwa i Statystyki
Algorytmika.
Metody odszumiania sygnałów
Grafika i komunikacja człowieka z komputerem
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
Grafika Komputerowa i wizualizacja
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Metody Matematyczne w Inżynierii Chemicznej Podstawy obliczeń statystycznych.
Metody matematyczne w inżynierii chemicznej
Złożoność obliczeniowa algorytmów
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Przygotowała: mgr Maria Orlińska
MODELOWANIE ZMIENNOŚCI CEN AKCJI
Warstwowe sieci jednokierunkowe – perceptrony wielowarstwowe
Wstęp do interpretacji algorytmów
Wstęp do programowania Wykład 4
INFORMATYKA SORTOWANIE DANYCH
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Liczby 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …(i tak dalej) nazywamy liczbami naturalnymi. Tak jak z liter tworzy się słowa, tak z cyfr tworzymy liczby. Dowolną.
STATYSTYKA – kurs podstawowy wykład 8 dr Dorota Węziak-Białowolska Instytut Statystyki i Demografii.
Zdarzenia losowe. Opracowanie: Beata Szabat. Zdarzenia losowe. Często w życiu codziennym używamy określeń: - to jest bardzo prawdopodobne, - to jest mało.
Algorytmy, sposoby ich zapisu.1 Algorytm to uporządkowany opis postępowania przy rozwiązywaniu problemu z uwzględnieniem opisu danych oraz opisu kolejnych.
Efektywność algorytmów
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Własności asymptotyczne ciągów zmiennych losowych
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Ocena przydatności algorytmu – czas działania (złożoność czasowa) Oznaczenia:

Ocena przydatności algorytmu – czas działania (złożoność czasowa) – analiza przypadku pesymistycznego 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, to interesuje nas złożoność obliczeniowa w najgorszym przypadku. Gwarancja, że algorytm nigdy nie będzie działał dłużej

Ocena przydatności algorytmu – czas działania (złożoność czasowa) – analiza przypadku pesymistycznego Warto pamiętać! Może się zdarzyć, że algorytm o pesymistycznej złożoności czasowej rzędu nlgn będzie dla większości danych wejściowych działał wolniej niż algorytm o pesymistycznym czasie działania rzędu n2. Istnieją algorytmy o pesymistycznej złożoności czasowej rzędu wykładniczego, które często działają szybciej niż algorytm o złożoności wielomianowej, a nawet liniowej (np. tzw. metoda simplex programowania liniowego).

Ocena przydatności algorytmu – czas działania (złożoność czasowa) – analiza przypadku pesymistycznego Miara wrażliwości pesymistycznej algorytmu bada, na ile wielkość Tmax(n) odzwierciedla rzeczywisty czas działania algorytmu.

Ocena przydatności algorytmu – czas działania (złożoność czasowa) – analiza przypadku średniego Zachowanie algorytmu dla losowych danych wejściowych określa średnia (lub oczekiwana) złożoność. Przypomnienie!

Ocena przydatności algorytmu – czas działania (złożoność czasowa) Podsumowanie: Miara wrażliwości pesymistycznej i miara wrażliwości oczekiwanej informują, jak bardzo zachowanie algorytmu dla rzeczywistych danych wejściowych może odbiegać od zachowania opisanego za pomocą pesymistycznej i oczekiwanej złożoności czasowej. Im większe są te wartości, tym algorytm jest bardziej wrażliwy na dane wejściowe.

Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Przykład: Rozważmy zbiór danych ZDWn jako n-wyrazowych ciągów uporządkowanych liczb naturalnych. Rozważmy dalej typowy algorytm w rodzaju „dziel i zwyciężaj” sprawdzenia, czy liczba naturalna x jest elementem ciągu zdwZDWn. Rozwiązanie: Przyjmijmy, że ilość n elementów ciągu {a1,a2,…an} jest potęgą dwójki, czyli n=2k, gdzie k jest pewną liczba naturalną. Sprawdzamy, czy x==an/2. Jeśli tak, to algorytm kończy działanie, jeśli nie, to po sprawdzeniu, że x<an/2 przechodzimy do przeszukania lewej połowy ciągu o ilości elementów równej n/2; jeśli spełniona jest nierówność przeciwna, to przeszukujemy prawą połowę ciągu. Maksymalną pesymistyczną liczbę porównań otrzymamy, gdy kolejne zagłębienia rekurencyjne doprowadzą do zbioru dwuelementowego, dla którego dwa porównania dadzą ostateczną odpowiedź dla zadania rozwiązywanego tym algorytmem.

Tmax(n)=Tmax(n/2)+2=Tmax(2k-1)+2=Tmax(2k-2)+2+2=…= Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Zatem dla Otrzymujemy: Tmax(n)=Tmax(n/2)+2, gdzie 2 stanowią dwa dodatkowe porównania na każdym etapie. Dostajemy po rozwinięciu postać funkcji pesymistycznej złożoności czasowej: Tmax(n)=Tmax(n/2)+2=Tmax(2k-1)+2=Tmax(2k-2)+2+2=…= =Tmax(2k-(k-1))+(k-1)*2=Tmax(2)+(k-1)*2=2+(k-1)*2=2*k. Ponieważ k=log2n, zatem Tmax(n)=2*(log2n)

Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Policzmy teraz pesymistyczną wrażliwość tego algorytmu. Przypomnijmy, że Jest to zatem kres górny zbioru liczb, które powstają jako różnice ilości operacji dominujących. Zatem od liczby największej z możliwych należy odjąć najmniejszą z możliwych, żeby otrzymać taki kres górny. Ponieważ najmniejszą ilością porównań dla dowolnego n jest jedno porównanie, a największa ilość wyrażą się obliczoną właśnie Tmax(n)=2*(log2n), to = =2*(log2n)-1 Pesymistyczna wrażliwość złożoności czasowej jest zatem duża i możemy się spodziewać dużej zmienności złożoności obliczeniowej.

n={zdwZDWn} – zbiór zdarzeń elementarnych, Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Policzmy teraz typową wartość złożoności obliczeniowej, czyli dla losowo wybranych n liczb. Przypomnijmy: Określmy kolejno elementy tej definicji: n={zdwZDWn} – zbiór zdarzeń elementarnych, Xn – zmienna losowa, której wartością jest l(zdw)- liczba operacji dominujących na n, pnk –rozkład zmiennej losowej Xn, czyli prawdopodobieństwo, że dla danych wejściowych rozmiaru n algorytm wykona k operacji dominujących, tzn. pnk=p{zdw  n: l(zdw)=k}, przy k całkowitym, k [1, 2*(log2n) ].

Zauważmy, że Tśr(n) jest o ½ większe od połowy Tmax(n). Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Ponieważ nasze prawdopodobieństwo pnk nie zależy od k, więc pnk=1/(2*log2n) dla każdego całkowitego k [1, 2*(log2n)]. Stąd Zauważmy, że Tśr(n) jest o ½ większe od połowy Tmax(n).

Obliczmy na koniec miarę wrażliwości oczekiwanej algorytmu. Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Obliczmy na koniec miarę wrażliwości oczekiwanej algorytmu. W naszym przypadku sumujemy po całkowitych k [1, 2*(log2n)]. Stąd otrzymujemy wyniki:

Szczegółowe rachunki na tablicy Ocena przydatności algorytmu – czas działania (złożoność czasowa) - przykład Szczegółowe rachunki na tablicy Otrzymane wyniki są może mało czytelne, ale można je przybliżać, wykorzystując oszacowania asymptotyczne. Takie oszacowania zostaną podane później