Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

METODY ANALIZY PROGRAMÓW

Podobne prezentacje


Prezentacja na temat: "METODY ANALIZY PROGRAMÓW"— Zapis prezentacji:

1 METODY ANALIZY PROGRAMÓW
Grażyna Mirkowska tel.w pokój 306 Wyklad MAP 01/PJWSTK Wyklad 01/PJWSTK

2 Cel Przedstawienie problemów i metod specyfikacji i weryfikacji programów, zapoznanie z technikami wspomagającymi poprawne konstruowanie algorytmów, zapoznanie z podstawowymi kryteriami oceny algorytmów, wyrobienie umiejętności nieformalnej analizy poprawności i szacowania złożoności. Wyklad MAP 01/PJWSTK

3 Literatura Banachowski L., Kreczmar A.: Elementy analizy algorytmów, WNT, 1999 Cormen T., Leiserson CH., Rivest R.: Wprowadzenie do algorytmów, DUNOD, 1994 Harel D.: Rzecz o istocie Informatyki, algorytmika, WNT 1992 Mirkowska G., Salwicki A.: Logika dla programistów, WNT, 1992 Aho A.J., Hopcroft J.E., Ullman J.D.: Struktury danych i algorytmy, PWN Ben-Ari M.: Podstawy programowania współbieżnego i rozproszonego, WNT 1996 Dijkstra C.A.R.: Umiejętność programowania, WNT Mirkowska G., Salwicki A.: Algorithmic Logic, PWN, 1989 Wyklad MAP 01/PJWSTK

4 problem  metoda rozwiązania  rozwiązanie
specyfikacja   program poprawność poprawność specyfikacji programu opis implementacja Algorytm + Struktura danych Wyklad MAP 01/PJWSTK

5 Jak sformułować problem?
Specyfikacja problemu - dokument, który informuje co należy zrobić i który jest podstawą do zweryfikowania rozwiązania problemu. Rozwiązanie - program musi być zgodny z zadaną specyfikacją. Problemy: jednoznaczność, niesprzeczność. Wyklad MAP 01/PJWSTK

6 Kryteria oceny algorytmów
Prostota, czytelność Poprawność Koszt realizacji Idealny algorytm to taki, który jest prosty, łatwy do zrozumienia, krótki, który liczy szybko, zajmuje mało miejsca w pamięci i zawsze daje poprawne wyniki. Wyklad MAP 01/PJWSTK

7 Jak zapisywać algorytmy?
Język x := t if g then P1 else P2 fi begin P1; P2 end while g do P1 od procedury p(in- , out- prametry ) funkcje f(parametry) Grafy przepływu flowdiagramy Wyklad MAP 01/PJWSTK

8 Poprawność algorytmu algorytm
<warunek początkowy, warunek końcowy> Dane Wyniki Algorytm A jest poprawny ze względu na specyfikację <wp,wk> wttw gdy z tego, że warunek początkowy wp jest spełniony przez dane wynika, że algorytm zatrzymuje się i otrzymane wyniki spełniają warunek końcowy wk. Wyklad MAP 01/PJWSTK

9 Powiemy, że algorytm jest częściowo poprawny ze względu na specyfikację
<wp,wk> wttw dla każdych danych, dla których algorytm zatrzymuje się i dla których dane spełniają warunek początkowy wp, wyniki spełniają warunek końcowy wk. Przykład Następujący algorytm jest całkowicie poprawny ze względu na specyfikację wp={x>0 , eps>0}, wk={y- x  2eps} begin z := 0; if x<1 then y := 1 else y := x fi; while y - z > eps do z := y; y := (z+x/z)/2 end Wyklad MAP 01/PJWSTK

10 Koszt algorytmu Miary kosztu: pamięć, czas.
Operacja dominująca, rozmiar danych t(A, d)- liczba operacji dominujących, którą wykona algorytm A dla danych d T(A,n) = koszt algorytmu A jako funkcja rozmiaru danych n Tmax(A,n)=max{t(A,d) : dDn}koszt pesymistyczny Tsr(A,n)= {pr(d)* t(A,d) : d Dn}koszt średni Wyklad MAP 01/PJWSTK

11 Notacja asymptotyczna
Niech f: NR, g: N R . g=O(f) wttw (c>0) (no)( n>no) g(n)  c f(n) g=(f) wttw (c>0) (no)( n>no) c f(n)  g(n) g=(f) wttw g=O(f) i g= (f) Wyklad MAP 01/PJWSTK

12 Przykłady 1/5 n3+ 100n2 + 1600 = (n3) lg n + n = O(n) 2n + n5 = O(2n)
2n = O(3n) 3n =  (2n) 2n  (3n) n lg n = O(n2) n lgn =  (n) n! = O(nn) g(n)= O(f) & f(n)=O(h)  g(n)=O(h) Wyklad MAP 01/PJWSTK

13 Czy zawsze istnieje rozwiązanie?
Przykład Dany jest zbiór T kart (1x1) podzielonych przekątnymi na 4 części, z których każda jest pomalowana pewnym kolorem. Karty mają ustaloną orientację i nie można ich obracać. Czy dowolną skończoną powierzchnię o dowolnym rozmiarze można pokryć za pomocą tych kart tak, by kolory przylegających krawędzi były identyczne? Wyklad MAP 01/PJWSTK Wyklad 01/PJWSTK


Pobierz ppt "METODY ANALIZY PROGRAMÓW"

Podobne prezentacje


Reklamy Google