Grzegorz Mazur. Zak lad Metod Obliczeniowych Chemii UJ. 14 marca 2007

Podobne dokumenty
Efektywność algorytmów

Statystyka w analizie i planowaniu eksperymentu

Złożoność Obliczeniowa Algorytmów

Matematyczne Podstawy Informatyki

Technologie Informacyjne

Architektura systemów komputerowych

Ekonomia matematyczna i dynamiczna optymalizacja

1. Analiza algorytmów przypomnienie

Statystyka w analizie i planowaniu eksperymentu

Rachunek zdań - semantyka. Wartościowanie. ezyków formalnych. Semantyka j. Logika obliczeniowa. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Statystyka w analizie i planowaniu eksperymentu

Wyk lad 12. (ii) najstarszy wspó lczynnik wielomianu f jest elementem odwracalnym w P. Dowód. Niech st(f) = n i niech a bedzie

Statystyka w analizie i planowaniu eksperymentu

Zasady analizy algorytmów

Za pierwszy niebanalny algorytm uważa się algorytm Euklidesa wyszukiwanie NWD dwóch liczb (400 a 300 rok przed narodzeniem Chrystusa).

Algorytm. Algorytmy Marek Pudełko

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

Wyk lad 7 Baza i wymiar przestrzeni liniowej

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 3 Tablice trwania życia 2

Wyk lad 5 Grupa ilorazowa, iloczyn prosty, homomorfizm

Algorytmy i Struktury Danych.

Wprowadzenie do złożoności obliczeniowej

Wyk lad 2 Podgrupa grupy

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Podstawy Informatyki. Sprawność algorytmów

Drzewa AVL definicje

Projektowanie i Analiza Algorytmów

TEORETYCZNE PODSTAWY INFORMATYKI

Podstawy Programowania Algorytmy i programowanie

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 5 Kalkulacja sk ladki netto I

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Podstawy programowania. Podstawy C# Przykłady algorytmów

TEORETYCZNE PODSTAWY INFORMATYKI

Algorytmy i złożoność obliczeniowa. Wojciech Horzelski

Programowanie generyczne w C++

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Wyk lad 8 macierzy i twierdzenie Kroneckera-Capellego

Wyk lad 1 Podstawowe struktury algebraiczne

Zaawansowane algorytmy i struktury danych

ALGORYTMY I STRUKTURY DANYCH

Matematyka dyskretna Oznaczenia

Wyk lad 7 Metoda eliminacji Gaussa. Wzory Cramera

Jak matematyka pomaga w wyszukiwanie wzorca

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 2 Tablice trwania życia

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Obliczenia rozproszone z wykorzystaniem MPI

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

INFORMATYKA SORTOWANIE DANYCH.

Wyk lad 3 Wielomiany i u lamki proste

Algorytmika. Algorytmy. prof. dr hab. inż. Joanna Józefowska. Poznań, rok akademicki 2008/2009. Plan wyk ladu Poj

Wyk lad 9 Podpierścienie, elementy odwracalne, dzielniki zera

Normy wektorów i macierzy

Krzysztof Rykaczewski. Szeregi

Algorytm i złożoność obliczeniowa algorytmu

c n (z z 0 ) n (2) Powiemy, że szereg Laurenta (2) jest zbieżny, jeśli każdy z szeregów zdefiniowanych w (1) jest f(z). Sume

Uzgadnianie wyrażeń rachunku predykatów. Adam i orzeszki. Joanna Józefowska. Poznań, rok akademicki 2009/2010

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Wyk lad 14 Formy kwadratowe I

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

STATYSTYKA MATEMATYCZNA dla ZPM I dr inż Krzysztof Bryś wyk lad 1,2 KLASYCZNY RACHUNEK PRAWDOPODOBIEŃSTWA

Rachunek lambda CBN i CBV

FUNKCJE LICZBOWE. x 1

Paradygmaty programowania. Paradygmaty programowania

Dzia lanie grupy na zbiorze. Twierdzenie Sylowa

g liczb rzeczywistych (a n ) spe lnia warunek

STYSTYSTYKA dla ZOM II dr inż Krzysztof Bryś Wykad 1

Paradygmaty programowania. Paradygmaty programowania

Algorytmy i Struktury Danych

FUNKCJE. (odwzorowania) Funkcje 1

Wyk lad 4 Warstwy, dzielniki normalne

Wyk lad 5. Analiza dla informatyków 1 DANI LI1 Pawe l Domański szkicowe notatki do wyk ladu. 1. Granice niew laściwe

Wyk lad 14 Cia la i ich w lasności

Organizacja zaj. Organizacja zaj. et i oprogramowanie. szeregowanie zadań, Interfejsy i komunikacja. Systemy wieloprocesorowe. sztuczna inteligencja,

WYK LAD 2: PODSTAWOWE STRUKTURY ALGEBRAICZNE, PIERWIASTKI WIELOMIANÓW, ROZK LAD FUNKCJI WYMIERNEJ NA U LAMKI PROSTE

Drzewa podstawowe poj

Wyk lad 6 Podprzestrzenie przestrzeni liniowych

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Estymacja gęstości prawdopodobieństwa metodą selekcji modelu

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Algorytm. a programowanie -

Rozdzia l 11. Przestrzenie Euklidesowe Definicja, iloczyn skalarny i norma. iloczynem skalarnym.

Uproszczony dowod twierdzenia Fredricksona-Maiorany

Ghost in the machine

Algorytm selekcji Hoare a. Łukasz Miemus

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Wyk lad 4 Macierz odwrotna i twierdzenie Cramera

WNIOSKOWANIE W MODELU REGRESJI LINIOWEJ

Wyk lad 9 Baza i wymiar przestrzeni liniowej

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

Zdarzenia losowe i prawdopodobieństwo

Algorytmy i struktury danych Matematyka III sem.

Dynamiczne struktury danych

Algorytmy i Struktury Danych.

Procesy Stochastyczne - Zestaw 1

Statystyka w analizie i planowaniu eksperymentu

Statystyka w analizie i planowaniu eksperymentu

Liczby pierwsze - wstęp

PODSTAWOWE W LASNOŚCI W ZBIORZE LICZB RZECZYWISTYCH

ep do matematyki aktuarialnej Micha l Jasiczak Wyk lad 6 Kalkulacja sk ladki netto II. Funkcje komutacyjne.

Transkrypt:

Zak lad Metod Obliczeniowych Chemii UJ 14 marca 2007

Rzad 1 Zamiast wst epu 2 Rzad Notacja dużego O Notacja Ω Notacja Θ 3

S lowniczek Rzad Algorytm W matematyce oraz informatyce to skończony, uporzadkowany zbiór jasno zdefiniowanych czynności, koniecznych do wykonania pewnego zadania. S lowo algorytm pochodzi od nazwiska Muhammed ibn Musa Alchwarizmi, matematyka perskiego z IX wieku. (Wikipedia) Struktura danych Sposób reprezentacji informacji w komputerze. Na strukturach danych operuja algorytmy. (Wikipedia)

Co to jest? Rzad Notacja dużego O Notacja Ω Notacja Θ Poj ecie rz edu określa asymptotyczne tempo wzrostu wartości wraz ze wzrostem jej argumentu.

Co to jest? Rzad Notacja dużego O Notacja Ω Notacja Θ Poj ecie rz edu określa asymptotyczne tempo wzrostu wartości wraz ze wzrostem jej argumentu. Istnieja różne sposoby określania rzedu. Najpopularniejsza z nich jest notacja dużego O. Niezbyt czesto można spotkać sie z notacja Ω i notacja Θ. Pozosta le praktycznie nie sa spotykane.

Definicja Rzad Notacja dużego O Notacja Ω Notacja Θ Mówimy, że f jest co najwyżej rz edu g (czyli f (x) O(g(x))) wtedy i tylko wtedy gdy x 0, M > 0 x > x 0 : f (x) M g(x) (1) Równoważnie (przy za lożeniu że x 0 x > x 0 : g(x) 0) f (x) O(g(x)) lim sup f (x) x g(x) < (2)

Rzad Podstawowe w laściwości Notacja dużego O Notacja Ω Notacja Θ Idempotencja Iloczyn Suma O(f (x)) O(f (x)) (3) O(f (x))o(g(x)) O(f (x)g(x)) (4) O(f (x)) + O(g(x)) O(max(f (x), g(x))) (5) Mnożenie przez sta l a O(cf (x)) O(f (x)) (6)

Rzad Notacja dużego O Notacja Ω Notacja Θ n O(n 2 ) (7) 3n 2 + log(n) + 2 O(n 2 ) (8) log(n 3 ) O(log(n)) (9)

Definicja Rzad Notacja dużego O Notacja Ω Notacja Θ Mówimy, że f jest co najmniej rz edu g (czyli f (x) Ω(g(x))) wtedy i tylko wtedy gdy x 0, M > 0 x > x 0 : f (x) M g(x) (10) Równoważnie (przy za lożeniu że x 0 x > x 0 : g(x) 0) f (x) O(g(x)) lim inf f (x) x g(x) > 0 (11)

Definicja Rzad Notacja dużego O Notacja Ω Notacja Θ Mówimy, że f jest dok ladnie rz edu g (czyli f (x) Θ(g(x))) wtedy i tylko wtedy gdy f (x) O(g(x)) f (x) Ω(g(x)) (12) Równoważnie (przy za lożeniu że x 0 x > x 0 : g(x) 0) f (x) O(g(x)) 0 < lim inf f (x) x g(x) lim sup f (x) x g(x) < (13)

Co to jest? I Rzad Definicja algorytmu mówi jaka ilość zasobów potrzebna jest do jego wykonania w zależności od rozmiaru danych wejściowych. Zasoby Najcześciej rozważa sie zużyty czas procesora (z lożoność czasowa) i zajmowana pamieć (z lożoność pamieciowa).

Co to jest? II Rzad Rodzaje z lożoności Poza tym mówimy też o z lożoności zamortyzowanej (to troche inna klasyfikacja)

Definicja Rzad Niech D n bedzie zbiorem wszystkich możliwych danych wejściowych o rozmiarze n, a t : D n N funkcja określajac a rozmiar użytych zasobów dla zestawu danych. Wtedy pesymistyczna z lożoność obliczeniowa definiujemy jako W (n) = sup{t(d) : d D n }. (14)

Definicja Rzad Niech D n bedzie zbiorem wszystkich możliwych danych wejściowych o rozmiarze n. Niech p n (k) oznacza prawdopodobieństwo, że dla danych o rozmiarze n algorytm użyje zasobów o rozmiarze k N. Wtedy oczekiwana z lożoność obliczeniowa definiujemy jako V (n) = k kp n (k) (15)

Rzad Szukanie elementu ciagu Problem Niech p bedzie permutacja ciagu n-elementowego. Zdefiniujmy funkcje f : {1, 2,..., n} {1, 2,..., n} która dla danego k zwraca pozycje elementu o wartości k w ciagu p.

Rzad Szukanie elementu ciagu Problem Niech p bedzie permutacja ciagu n-elementowego. Zdefiniujmy funkcje f : {1, 2,..., n} {1, 2,..., n} która dla danego k zwraca pozycje elementu o wartości k w ciagu p. Szkic algorytmu i n t f ( i n t * p, i n t k ) { f o r ( i n t * q = p ; *q!= k ; ++q ) ; return q p ; }

Rzad Szukanie elementu ciagu - z lożoność pesymistyczna Liczba operacji równa jest indeksowi poszukiwanego elementu w ciagu. Oczywiście liczba operacji bedzie najwieksza, jeżeli poszukiwany element jest ostatnim elementem ciagu. Czyli W (n) = n. (16)

Rzad Szukanie elementu ciagu - z lożoność oczekiwana Za lóżmy, że prawdopodobieństwo wystapienia szukanego elementu na określonej pozycji w ciagu nie zależy od pozycji. Wtedy p n (k) = 1. n Czyli V (n) = n k kp n (k) = n = n + 1 (17) 2 k k=1

Co to jest? Rzad Zdarza si e że dany algorytm wykonywany jest wielokrotnie. Zwykle interesujac a informacja jest wtedy ca lkowity koszt sekwencji wykonań tego algorytmu przeliczony na pojedyncze wywo lanie. S luży do tego z lożoność zamortyzowana. Na przyk lad jeżeli algorytm operuje na pewnej strukturze danych, jego z lożoność w ogólności zależeć może od stanu przechowywanego w tej strukturze. jest definiowana jedynie dla czasu wykonania.

Definicja Rzad Zdefinujmy ca lkowity czas wykonania algorytmu jako t = n t i (18) i gdzie t i jest maksymalnym czasem jednokrotnego wykonania algorytmu w danej sekwencji. Wtedy przez z lożoność zamortyzowana określać bedziemy U = max(t) n (19)

Stos Rzad s t r u c t Stack { s i z e t c a p a c i t y ; s i z e t s i z e ; i n t * data ; } ; void push ( s t r u c t Stack *, i n t ) ; i n t pop ( s t r u c t Stack * ) ;

Stos: pop Rzad i n t pop ( s t r u c t Stack * s ) { return s >data [ s >s i z e ]; }

Rzad Stos: push - naiwna implementacja void push ( s t r u c t Stack * s, i n t d ) { i f ( s >s i z e == s >c a p a c i t y ) { s >c a p a c i t y += 1 ; s >data = r e a l l o c ( s >data, s >c a p a c i t y ) ; } } s >data [ s >s i z e ++] = d ;

Rzad Stos: push - poprawiona implementacja void push ( s t r u c t Stack * s, i n t d ) { i f ( s >s i z e == s >c a p a c i t y ) { s >c a p a c i t y *= 2 ; s >data = r e a l l o c ( s >data, s >c a p a c i t y ) ; } } s >data [ s >s i z e ++] = d ;