Technologie Informacyjne

Podobne dokumenty
Projektowanie i Analiza Algorytmów

Efektywność algorytmów

Wprowadzenie do złożoności obliczeniowej

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).

INFORMATYKA SORTOWANIE DANYCH.

Algorytmy i Struktury Danych

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

Informatyka 1. Złożoność obliczeniowa

PROBLEMY NIEROZSTRZYGALNE

Podstawy Informatyki. Sprawność algorytmów

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

Matematyczne Podstawy Informatyki

Wstęp do programowania

Algorytmy i Struktury Danych

Podstawy Programowania. Złożoność obliczeniowa

Przykładowe sprawozdanie. Jan Pustelnik

Projektowanie i analiza algorytmów

Podstawy Programowania. Złożoność obliczeniowa

Technologie Informacyjne

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

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

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

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

Podstawy Programowania

Algorytm. Algorytmy Marek Pudełko

O ALGORYTMACH I MASZYNACH TURINGA

Algorytmy, reprezentacja algorytmów.

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

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

Algorytm. Krótka historia algorytmów

Podstawy Programowania

Sztuczna inteligencja

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

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

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

Programowanie liniowe całkowitoliczbowe. Tadeusz Trzaskalik

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

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

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

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

Zaawansowane algorytmy i struktury danych

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

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

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

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

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

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

TEORETYCZNE PODSTAWY INFORMATYKI

komputery? Andrzej Skowron, Hung Son Nguyen Instytut Matematyki, Wydział MIM, UW

O ISTOTNYCH OGRANICZENIACH METODY

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

Sortowanie przez wstawianie

Modelowanie procesów współbieżnych

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

Metody Programowania

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

O LICZBACH NIEOBLICZALNYCH I ICH ZWIĄZKACH Z INFORMATYKĄ

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

Alan M. TURING. Matematyk u progu współczesnej informatyki

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

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

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 1

Sztuczna inteligencja

Wykład na Politechnice Krakowskiej w dniu 18 stycznia 2012 r. ZADAŃ I ALGORYTMÓW W OPTYMALIZACJI DYSKRETNEJ

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Algorytmy i struktury danych Matematyka III sem.

Programowanie proceduralne INP001210WL rok akademicki 2017/18 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

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

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

Algorytmy i schematy blokowe

Wykład IV Algorytmy metody prezentacji i zapisu Rzut oka na język PASCAL

Sortowanie - wybrane algorytmy

Harmonogramowanie przedsięwzięć

Obliczenia Wysokiej Wydajności

Algorytmy i Struktury Danych

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

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

PRZEWODNIK PO PRZEDMIOCIE

Algorytm. Krótka historia algorytmów

Schemat programowania dynamicznego (ang. dynamic programming)

Języki, automaty i obliczenia

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

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Podstawy Programowania Algorytmy i programowanie

Algorytmy i Struktury Danych. (c) Marcin Sydow. Sortowanie Selection Sort Insertion Sort Merge Sort. Sortowanie 1. Listy dowiązaniowe.

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

Algorytmy i Struktury Danych

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

Algorytmika w bioinformatyce

Rozdział 2 PROGRAMOWANIE LINIOWE CAŁKOWITOLICZBOWE

Katedra Elektrotechniki Teoretycznej i Informatyki. sem. II - Elementy algorytmów. Dr hab. inż. M. Czyżak

Algorytmika w bioinformatyce

Algorytmy i Struktury Danych.

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

Metody Programowania

Programowanie strukturalne

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Transkrypt:

POLITECHNIKA KRAKOWSKA - WIEiK - KATEDRA AUTOMATYKI Technologie Informacyjne www.pk.edu.pl/~zk/ti_hp.html Wykładowca: dr inż. Zbigniew Kokosiński zk@pk.edu.pl

Wykład 3: 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)

Klasyfikacja problemów Problemy niealgorytmiczne - 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