Projektowanie i Analiza Algorytmów

Podobne dokumenty
Technologie Informacyjne

Projektowanie i analiza algorytmów

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych

Matematyczne Podstawy Informatyki

Efektywność algorytmów

PRZEWODNIK PO PRZEDMIOCIE

Wprowadzenie do złożoności obliczeniowej

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Projektowanie i analiza algorytmów

Teoria obliczeń i złożoność obliczeniowa

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Zasady analizy algorytmów

Metody Programowania

Wykłady specjalistyczne. (Matematyka w finansach i ekonomii; Matematyczne metody informatyki)

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Algorytmy i struktury danych

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

Kierunek i poziom studiów: Matematyka, studia I stopnia (licencjackie), rok I

Przykładowe sprawozdanie. Jan Pustelnik

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

KARTA MODUŁU KSZTAŁCENIA

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA Pod auspicjami Polskiej Akademii Nauk Warszawa, ul. Newelska 6, tel.

Zaliczenie. Egzamin. lub. Wykład. Zaliczenie. Ćwiczenie. 3 zadania. Projekty. Ocena. Na ocenę

Sylabus modułu: Matematyczne podstawy informatyki (kod modułu:03-mo2n-12-mpln)

koordynator modułu dr hab. Michał Baczyński rok akademicki 2012/2013

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

PRZEWODNIK PO PRZEDMIOCIE

Algorytmy i Struktury Danych

1. Analiza algorytmów przypomnienie

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Wykład 1 Wprowadzenie do algorytmów. Zawartość wykładu 1. Wstęp do algorytmów i struktur danych 2. Algorytmy z rozgałęzieniami.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Realizacja w roku akademickim 2016/17

INFORMATYKA SORTOWANIE DANYCH.

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

Algorytmy i struktury danych.

Informatyka 1. Złożoność obliczeniowa

Podstawy Informatyki. Sprawność algorytmów

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Wstęp do programowania

PROBLEMY NIEROZSTRZYGALNE

Algorytmy i struktury danych

Wykłady specjalistyczne. (Matematyka w finansach i ekonomii; Matematyczne metody informatyki)

Załącznik Nr 5 do Zarz. Nr 33/11/ Kod przedmiotu:aisd2

Sortowanie - wybrane algorytmy

Podstawy Programowania. Złożoność obliczeniowa

Sortowanie przez wstawianie

Podstawy Programowania. Złożoność obliczeniowa

Technologie Informacyjne

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Opis efektów kształcenia dla modułu zajęć

Algorytmy i Struktury Danych.

Podstawy Programowania

ID2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki stacjonarne

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2015/2016. Forma studiów: Stacjonarne Kod kierunku: 11.

Sztuczna inteligencja

Struktury danych i złożoność obliczeniowa. Prof. dr hab. inż. Jan Magott

K.Pieńkosz Badania Operacyjne Wprowadzenie 1. Badania Operacyjne. dr inż. Krzysztof Pieńkosz

Kierunek: Informatyka. Przedmiot:

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Algorytmy, reprezentacja algorytmów.

Podstawy Programowania

O ALGORYTMACH I MASZYNACH TURINGA

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

KARTA KURSU. Kod Punktacja ECTS* 2

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

przedmiot kierunkowy (podstawowy / kierunkowy / inny HES) obowiązkowy (obowiązkowy / nieobowiązkowy) polski semestr I

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Algorytm. Algorytmy Marek Pudełko

Algorytmy i Struktury Danych

IZ2ZSD2 Złożone struktury danych Advanced data structures. Informatyka II stopień ogólnoakademicki niestacjonarne

KARTA KURSU. Algorytmy, struktury danych i techniki programowania. Algorithms, Data Structures and Programming Techniques

Algorytmy i struktury danych Matematyka III sem.

PRZEWODNIK PO PRZEDMIOCIE

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

KARTA KURSU. Kod Punktacja ECTS* 2

Algorytm. Krótka historia algorytmów

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

Zaawansowane algorytmy. Wojciech Horzelski

Algorytmy i struktury danych

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

Zaawansowane algorytmy i struktury danych

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

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010.

Metodyki i techniki programowania

ALGORYTMY I STRUKTURY DANYCH

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

Część I. Uwaga: Akceptowane są wszystkie odpowiedzi merytorycznie poprawne i spełniające warunki zadania. Zadanie 1.1. (0 3)

Dydaktyka matematyki III-IV etap edukacyjny (wykłady) Wykład nr 6: Nauczanie algorytmów w szkole Semestr zimowy 2018/2019

Złożoność algorytmów. Wstęp do Informatyki

Struktura danych. Sposób uporządkowania informacji w komputerze.

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Struktury danych i algorytmy. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Metodyki i techniki programowania

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

Modelowanie procesów współbieżnych

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

TEORETYCZNE PODSTAWY INFORMATYKI

Transkrypt:

POLITECHNIKA KRAKOWSKA - WIEiK KATEDRA AUTOMATYKI I TECHNIK INFORMACYJNYCH Projektowanie i Analiza Algorytmów www.pk.edu.pl/~zk/piaa_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl

Wykład 1: Wprowadzenie do algorytmów i ich złożoności obliczeniowej Co to jest algorytm? Pochodzenie terminu Pierwsze znane algorytmy Klasyfikacja problemów Przykład algorytmu: WYBÓR MAKSIMUM Notacje asymptotyczne Złożoność czasowa i pamięciowa Klasyfikacja algorytmów Hierarchia złożoności Inne kryteria klasyfikacji algorytmów Obszary zastosowań algorytmiki

Co to jest algorytm? Pochodzenie terminu Algorytm jest to: - procedura obliczeniowa, która z danych wejściowych wytwarza dane wyjściowe (wynik algorytmu) - sposób rozwiązania konkretnego problemu obliczeniowego Algorytm (z łac. Algorismus) - nazwa pochodzi od nazwiska matematyka z IX w. n.e. (Abu Jafar Mohammed ibn Musa al-chowarizmi) - pierwsze znane algorytmy stworzyła cywilizacja babilońska (gliniane tabliczki z pismem klinowym)

Problemy niealgorytmiczne Klasyfikacja problemów - problem stopu (czy program komputerowy po wczytaniu danych zatrzyma się w skończonym czasie?) - problem pokrycia płaszczyzny identycznymi płytkami wielokątnymi w skończonym czasie - równania diofantyczne (znalezienie rozwiązania całkowitoliczbowego równania z całkowitymi współczynnikami, np. x^n+y^n=z^n)

Klasyfikacja problemów Problemy prawdopodobnie niealgorytmiczne problem Collatza (czy dla danej liczby całkowitej k poniższa procedura zatrzymuje się?)

Klasyfikacja problemów c.d. Problemy algorytmiczne - decyzyjne - optymalizacyjne Problem P jest problemem decyzyjnym, jeżeli jego rozwiązaniem dla danych wejściowych jest odpowiedź TAK lub NIE. Problem P jest problemem optymalizacyjnym, jeżeli jego rozwiązaniem dla danych wejściowych jest takie rozwiązanie dopuszczalne, które maksymalizuje (lub minimalizuje) pewną funkcję miary (np. kosztu).

Przykład 1: algorytm wyboru maksimum

Przykład 2: SelectionSort - algorytm sortowania przez wybór

Przykład 3: InsertionSort - algorytm sortowania przez wstawianie

Notacje asymptotyczne

Notacje asymptotyczne

Notacje asymptotyczne

Złożoność czasowa i pamięciowa programów komputerowych Złożoność czasowa : - czas obliczeń, liczba operacji - zależy od rozmiaru danych wejściowych n, implementacji i struktur danych - złożoność najgorszego i średniego przypadku Złożoność pamięciowa : - pamięć programu, pamięć danych - zależy od rozmiaru danych wejściowych n, budowy algorytmu, implementacji i struktur danych Kompromis pomiędzy pamięcią i czasem!

Złożoność czasowa algorytmów Funkcje podliniowe, wielomianowe, niewielomianowe

Złożoność czasowa algorytmów Porównanie czasów obliczeń algorytmu O(n^3) na superkomputerze Cray-1 i algorytmu O(n) na komputerze osobistym IBM PC/AT

Złożoność czasowa algorytmów

Złożoność czasowa algorytmów Porównanie algorytmów badania planarności grafu, czas obliczeń dla danych n i c, max rozmiar grafu w ustalonym czasie przetwarzania (1 min, 1 godz.)

Złożoność czasowa algorytmów Max rozmiar problemu n w funkcji 10-krotnego wzrostu szybkości procesora

Złożoność czasowa algorytmów Max rozmiar problemu s w funkcji t-krotnego wzrostu szybkości procesora

Klasyfikacja algorytmów inne kryteria - metoda konstrukcji algorytmu - struktura danych - obszar zastosowań - dokładność wyniku - liczba procesorów - determinizm

Klasyfikacja algorytmów - metoda konstrukcji

Klasyfikacja algorytmów : struktura danych

Klasyfikacja algorytmów : obszar zastosowań

Klasyfikacja algorytmów : dokładność

Klasyfikacja algorytmów : ilość procesorów

Klasyfikacja algorytmów : determinizm

Obszary zastosowań algorytmów

Obszary zastosowań algorytmów

Obszary zastosowań algorytmów

Źródła rysunków i tablic: 1. Aho A., Hopcroft J.E., Ullman J.D. : Projektowanie i analiza algorytmów komputerowych, PWN 1983 2. Cormen T.H., Leiserson C.E., Rievest R.L. : Wprowadzenie do algorytmów, WNT 1999 3. Kubale M. : Introduction to computational complexity and algorithmic graph coloring, GTN 1998 4. Kubale M. : Łagodne wprowadzenie do analizy algorytmów, WPG 2002 5. Sedgewick R. : Algorithms in C, Addison-Wesley 1990