METODY ANALIZY PROGRAMÓW

Slides:



Advertisements
Podobne prezentacje
ALGORYTMY I STRUKTURY DANYCH
Advertisements

PRAM.
Sortowanie przez scalanie
Instrukcje - wprowadzenie
II Relacje i relacje równoważności
Podstawowe pojęcia programowania współbieżnego
Wstęp do Informatyki, WSZ, część 1
Zaawansowane techniki algorytmiczne
Grażyna Mirkowska PJWSTK, 10 stycznia 2001
Grażyna Mirkowska PJWSTK 15 listopad 2000
Metody Analizy Programów Wykład 02
Wykład 10 Metody Analizy Programów Specyfikacja Struktur Danych
Wykład 06 Metody Analizy Programów System Hoare
PROGRAMOWANIE STRUKTURALNE
Teoretyczne podstawy informatyki
Złożoność obliczeniowa
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
Elementy Rachunku Prawdopodobieństwa
ALGORYTMY I STRUKTURY DANYCH
Sztuczna Inteligencja 2.1 Metody szukania na ślepo
Przyczynek do problemu Collatza
ZŁOŻONOŚĆ OBLICZENIOWA
Opracowała: Elżbieta Fedko
Turbo pascal – instrukcje warunkowe, iteracyjne,…
ALGORYTMY I STRUKTURY DANYCH
Materiały pomocnicze do wykładu
Matematyka Dyskretna, Moce zbiorów G.Mirkowska, PJWSTK
Elementy Rachunku Prawdopodobieństwa c.d.
Matematyka Dyskretna, Struktury algebraiczne G.Mirkowska, PJWSTK
12 grudnia 2001Matematyka Dyskretna, Elementy Kombinatoryki G.Mirkowska, PJWSTK 1 Wykład 11 Elementy Kombinatoryki.
Elementy Rachunku Prawdopodobieństwa c.d.
Elementy Kombinatoryki (c.d.)
Metody numeryczne w chemii
Rzędy wielkości funkcji
Analiza kosztu zamortyzowanego
Semantyki programów współbieżnych " Determinizm programów sekwencyjnych, " Nie-determinizm programów współbieżnych, " prawdziwa równoległość vs.przeploty.
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
ALGORYTMY I STRUKTURY DANYCH
M. Muraszkiewicz Instytut Informatyki, Politechnika Warszawska
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
Prowadzący: Dr inż. Jerzy Szczygieł
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:
A. Jędryczkowski – 2007 r.. Algorytmem nazwiemy ścisły przepis postępowania, którego wykonanie gwarantuje otrzymanie danych wynikowych z dostarczonych.
ALGORYTMY I STRUKTURY DANYCH
Algorytmika.
Obliczalność czyli co da się policzyć i jak Model obliczeń maszyna licznikowa dr Kamila Barylska.
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 03 cd. Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004.
WYKŁAD 06 Programowanie dynamiczne Grażyna Mirkowska.
ALGORYTMY I STRUKTURY DANYCH WYKŁAD 04 k-ty co do wielkości. Stosy Grażyna Mirkowska PJWSTK, ITN semestr letni 2002.
ANALIZA SKŁADNIOWA.
Złożoność obliczeniowa algorytmów
Literatura podstawowa
Wstęp do interpretacji algorytmów
Wstęp do programowania Wykład 4
Wstęp do programowania Wykład 1
Modelowanie matematyczne – złożoność obliczeniowa, teoria a praktyka
Efektywność algorytmów
Algorytmy i Struktury Danych Wprowadzenie
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
ALGORYTMY I STRUKTURY DANYCH
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
ALGORYTMY I STRUKTURY DANYCH
Zapis prezentacji:

METODY ANALIZY PROGRAMÓW Grażyna Mirkowska mirkowska@pjwstk.waw.pl tel.w. 153 pokój 306 Wyklad MAP 01/PJWSTK Wyklad 01/PJWSTK

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

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

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

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

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

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

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

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

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

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

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

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