Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
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) : dDn}koszt pesymistyczny Tsr(A,n)= {pr(d)* t(A,d) : d Dn}koszt średni Wyklad MAP 01/PJWSTK
11
Notacja asymptotyczna
Niech f: NR, 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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.