Złożoność obliczeniowa algorytmów

Slides:



Advertisements
Podobne prezentacje
STRUKTURY DANYCH.
Advertisements

Algorytmy sortowania i porządkowania
Algorytmy sortowania i przeszukiwania
Algorytmy – c.d. struktury danych złożoność algorytmów
Zaawansowane techniki algorytmiczne
METODY ANALIZY PROGRAMÓW
Programowanie I Rekurencja.
Metody numeryczne Wykład no 1.
Teoretyczne podstawy informatyki
Złożoność obliczeniowa
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
Materiały pochodzą z Platformy Edukacyjnej Portalu
ZLICZANIE cz. II.
ZŁOŻONOŚĆ OBLICZENIOWA
ALGORYTMY I STRUKTURY DANYCH
Wykład nr 7: Synchronizacja procesów
Metody numeryczne w chemii
Rzędy wielkości funkcji
Analiza kosztu zamortyzowanego
Algorytmy i struktury danych
Matura z informatyki Arkusz I.
PODSTAWY PROGRAMOWANIA
M. Muraszkiewicz Instytut Informatyki, Politechnika Warszawska
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Algorytmy i struktury danych
Zbiór do posortowania mieści się w pamięci
Algorytmy i Struktury Danych Sortowanie
Pierwsze programy.
Algorytmy i Struktury Danych Typy algorytmów
Algorytmy Wydział Matematyki i Informatyki Uniwersytet Łódzki
Algorytmy i struktury danych
Ocena przydatności algorytmu – czas działania (złożoność czasowa)
Algorytmy i struktury danych
Algorytmy i struktury danych
Równania rekurencyjne
Reprezentacja grafów i operacje na grafach na przykładzie algorytmu Dijkstry i algorytmu na odnajdywanie Silnych Spójnych Składowych Temat Opracowali:
Rodzaje, przechodzenie grafu
Programowanie strukturalne i obiektowe
ALGORYTMY I STRUKTURY DANYCH
PROBLEM PAKOWANIA (BIN-PACKING PROBLEM)
Algorytmy.
Algorytmy i Struktury Danych
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Algorytmy- Wprowadzenie do programowania
opracowała: Anna Mikuć
Tematyka zajęć LITERATURA
Rekurencje Rekurencja jest równaniem lub nierównością, opisującą funkcję w zależności od jej wartości dla danych wejściowych o mniejszych rozmiarach. Na.
Sortowanie: kopce Parent(i)
Literatura podstawowa
NP-zupełność Problemy: rozwiązywalne w czasie wielomianowym - O(nk)
Wstęp do programowania Wykład 4
INFORMATYKA SORTOWANIE DANYCH
Wstęp do programowania wykład 3 Typy wyliczeniowe, tablice.
Wstęp do programowania Wykład 1
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Efektywność w algorytmice i zarządzaniu mgr inż. Marek Malinowski Zespół Matematyki i Fizyki Wydz. BMiP PW Płock - wybrane aspekty teorii złożoności obliczeniowej.
Algorytmy i Struktury Danych Algorithms and Data Structures dr inż. Lech Jamroż Wydział Fizyki, Matematyki I Informatyki.
Efektywność algorytmów
Algorytmy i Struktury Danych Wprowadzenie
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

Złożoność obliczeniowa algorytmów Literatura podstawowa Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest. Wprowadzenie do algorytmów. WNT, Warszawa, 1998. Edward M. Reingold, Jurg Nievergelt, Narsing Deo. Algorytmy kombinatoryczne. PWN, Warszawa, 1985. Lech Banachowski, Antomi Kreczmar. Elementy analizy algorytmów. WNT, Warszawa, 1982. Lech Banachowski, Antomi Kreczmar, Wojciech Rytter. Analiza algorytmów i struktur danych. WNT, Warszawa, 1989.

Algorytmy Algorytm - ściśle określona procedura obliczeniowa, która dla właściwych danych wejściowych produkuje żądane dane wyjściowe (wynik działania algorytmu). Rozmiar danych wejściowych - liczba elementów w ciągu wejściowym czy całkowita liczba bitów potrzebnych do reprezentowania tych danych. Czas działania algorytmu - liczba wykonanych prostych operacji.

Problemy rozwiązywalne w czasie wielomianowym - O(nk) rozwiązywalne, ale nie w czasie wielomianowym (np., w czasie wykładniczym - O(kn)) nierozwiązywalne NP-zupełne (status nieznany; rozwiązywalne, ale nie wiadomo, czy w czasie wielomianowym)

Problemy Nierozwiązywalne: na przykład, problem stopu - Dla danego algorytmu A odpowiedzieć, czy kończy pracę dla dowolnych danych wejściowych. Łatwo rozwiązywalne: rozwiązywalne w czasie wielomianowym. Trudno rozwiązywalne: nie jest znany (czy nie istnieje) algorytm rozwiązujący problem w czasie wielomianowym

Czas działania algorytmów t3(n) t2(n) (czas działania) t1(n) (rozmiar danych wejściowych) n0 n

Przykład algorytmu Algorytm sortowania Insertion-Sort(A) 1. for j:=2 to length[A] 2. do key:=A[j] /* Wstaw A[i] w posortowany ciąg A[1..j-1].*/ 3. i:= j-1 4. while i>0 i A[i] > key 5. do A[i+1] := A[i] 6. i:= i-1 7. A[i+1] := key Przykład działania algorytmu 5 2 4 6 1 3 2 5 4 6 1 3 2 4 5 6 1 3 1 2 4 5 6 3 1 2 3 4 5 6

Przykład analizy algorytmu Insertion-Sort(A) koszt liczba wykonań 1. for j:=2 to length[A] c1 n 2. do key:=A[i] c2 n-1 3. i:= j-1 c3 n-1 4. while i>0 i A[i] > key c4 5. do A[i+1] := A[i] c5 6. i:= i-1 c6 7. A[i+1] := key c7 n-1

Przykład analizy algorytmu

Czas działania algorytmów Notacja : (g(n)) = {f(n): istnieją stałe c1, c2 i n0 takie, że 0  c1g(n)  f(n)  c2g(n) dla wszystkich n  n0}. Asymptotyczne ogranicza funkcję od góry oraz od dołu. Notacja O: O(g(n)) = {f(n): istnieją stałe c i n0 takie, że 0  f(n)  cg(n) dla wszystkich n  n0}. Asymptotyczne ogranicza funkcję od góry. cg(n) c2g(n) f(n) f(n) c1g(n) f(n)=O(g(n)) f(n)=(g(n)) n n n0 n0