Algorytmy
This presentation is the property of its rightful owner.
Sponsored Links
1 / 42

Algorytmy PowerPoint PPT Presentation


  • 171 Views
  • Uploaded on
  • Presentation posted in: General

Algorytmy. Wioletta Karpińska Wydział Matematyki i Informatyki Uniwersytet Łódzki Wykład na ZUM I w 2010. Informacje wstępne. Literatura:. Banachowski L., Kreczmar A.: Elementy analizy algorytmów. Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych.

Download Presentation

Algorytmy

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Algorytmy

Algorytmy

Wioletta Karpińska

Wydział Matematyki i Informatyki Uniwersytet Łódzki

Wykład na ZUM I w 2010


Informacje wst pne

Informacje wstępne


Literatura

Literatura:

  • Banachowski L., Kreczmar A.: Elementy analizy algorytmów.

  • Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych.

  • Cormen T.H., LeisersonCh.E., Rivest R.L.: Wprowadzenie do algorytmów . http://math.uni.lodz.pl/~karpinw/zadania/Talgorytmiczne/Cormen.pdf

  • Ross K.A., Wright Ch.R.B.: Matematyka dyskretna.

  • Sedgewick R.: Algorytmy w C++.

  • Sedgewick R., Flajolet P.: An Introduction to theAnalysis of Algorithms.


Plan zaj

Plan zajęć


Co to jest algorytm

Co to jest algorytm?

Algorytm – w matematyce oraz informatyce skończony, uporządkowany ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań.

Słowo "algorytm" pochodzi od starego angielskiego słowa algorism, oznaczającego wykonywanie działań przy pomocy liczb arabskich (w odróżnieniu od abacism - przy pomocy abakusa), które z kolei wzięło się od nazwiska Muhammed ibn Musa Alchwarizmi (أبو عبد الله محمد بن موسى الخوارزمي) matematyka perskiego z IX wieku[1].

Źródło: Wikipedia


Co to jest algorytm1

Co to jest algorytm?

Algorytm -opis czynności składających się na proces przetwarzania zadanych obiektów początkowych (wejściowych) w celu otrzymania obiektów wynikowych (wyjściowych).

Algorytm możemy również traktować jako sposób rozwiązywania konkretnego problemu. Postawienie problemu polega na sprecyzowaniu wymagań dotyczących relacji między danymi wejściowymi i wyjściowymi, a algorytm opisuje właściwą procedurę, która zapewnia, że ta relacja zostanie osiągnięta.


Co to jest algorytm2

Co to jest algorytm?


Co to jest algorytm3

Co to jest algorytm?


Przyk ad 1 przepis kulinarny j zyk opisu naturalny

Przykład 1. Przepis kulinarny. Język opisu naturalny


Przyk ad 2 przepis kulinarny j zyk opisu naturalny

Przykład 2. Przepis kulinarny. Język opisu naturalny


Przyk ad 1 i 2 przepis kulinarny

Przykład 1 i 2. Przepis kulinarny

Podstawowe koncepcje algorytmiczne:

  • sekwencje czynności

  • warunkowe wykonanie

  • powtarzanie, aż zajdzie warunek

  • zestawy czynności zdefiniowane wcześniej – poziom szczegółowości

    CZAS!


Przyk ad 3 nwd algorytm szkolny j zyk opisu lista krok w z poj ciami abstrakcyjnymi

Przykład 3. NWD (algorytm szkolny). Język opisu: lista kroków z pojęciami abstrakcyjnymi.


Przyk ad 3 nwd algorytm szkolny j zyk opisu lista krok w z poj ciami abstrakcyjnymi1

Przykład 3. NWD (algorytm szkolny). Język opisu: lista kroków z pojęciami abstrakcyjnymi.

Widać, jak algorytm działa dla małych liczb. Dla dużych:

  • Jak znajdować dzielniki?

  • Jak obliczać część wspólną list?

    Rozwiązanie problemu: Algorytm Euklidesa – ćw.


Przyk ad 4 sumowanie listy p ac j zyk opisu lista krok w w j zyku naturalnym

Przykład 4. Sumowanie listy płac. Język opisu: lista kroków w języku naturalnym


Przyk ad 4 sumowanie listy p ac j zyk opisu lista krok w w j zyku naturalnym1

Przykład 4. Sumowanie listy płac. Język opisu: lista kroków w języku naturalnym

Ważna cecha przykładu:

  • Wielkość programu taka sama dla dowolnie długich list


Halting problem bez rozwi zania algorytmicznego

Halting problem – bez rozwiązania algorytmicznego

Problem zatrzymania – algorytm ma orzekać, czy dany program komputerowy kiedykolwiek wykona wszystkie procedury i zatrzyma się


Kr tka historia algorytmiki

Krótka historia algorytmiki

  • IV w. p.n.e. Euklides: znajdowanie największego wspólnego dzielnika

  • VIII/IX w. n.e.: Muhammed Alchwarizmi: dodawanie, odejmowanie, mnożenie, dzielenie liczb dziesiętnych (Algorismus –nazwisko po łacinie)

  • 1822 Charles Babbage: projekt “maszyny różnicowej”, mechaniczny kalkulator (budowa niedokończona)


Kr tka historia algorytmiki1

Krótka historia algorytmiki

  • 1849 Babbage: maszyna analityczna - projekt mechanicznego komputera, sterowanego kartami Jacquarda (zrealizowany ostatecznie w 1991 w Science Museum, Londyn), czyli maszyny wykonującej dowolne programy

  • 1850 Ada Augusta hrabina Lovelace: programy dla maszyny analitycznej Babbage’a

  • 1930-te – Alan Turing, Kurt Goedel, Emil Post, Alonzo Church, Stephen Kleene, Andriej Markow : teoria algorytmów, możliwości i ograniczenia algorytmiki


Kr tka historia algorytmiki2

Krótka historia algorytmiki

  • 1937 – maszyna MARK 1 – pierwsza działająca maszyna ze sterowaniem sekwencyjnym (przekaźniki elektromagnetyczne), sterowana za pomocą taśmy papierowej, 200 op./sek.

  • 1946 – Maszyna Einiac –pierwsza maszyna elektroniczna (lampy elektronowe) – 6 tys. op./sek.

  • 1958 – maszyny tranzystorowe, 20 tys. op./sek.


Kr tka historia algorytmiki3

Krótka historia algorytmiki

  • 1964 – maszyny mikroukładowe (układy scalone), 100 tys. op/sek

  • 1970 – maszyny na zintegrowanych elementach scalonych, 10 mln. op/sek

  • 1970-te do dzisiaj: rozkwit algorytmiki


Realizacja algorytmu

Realizacja algorytmu

  • Uniwersalne urządzenie do wykonywania algorytmów związanych z przetwarzaniem informacji

    Komputer = sprzęt + oprogramowanie

  • Obiekty przetwarzane przez program: Dane

    Dane +algorytm = wyniki

  • Zapis algorytmu zrozumiały dla komputera w

    Języku programowania – U nas C++

  • Algorytmy zrozumiałe dla komputera:

    Programy


Pseudoj zyk

Pseudojęzyk


Pseudoj zyk1

Pseudojęzyk


Pseudoj zyk2

Pseudojęzyk


Analiza algorytm w

Analiza algorytmów

Dział informatyki teoretycznej zajmujący się poszukiwaniem najlepszych i najbardziej efektywnych algorytmów do zadań komputerowych.

Efektywny algorytm:

  • Najszybszy?

  • Wymagający najmniejszych zasobów pamięci?

  • Prostota algorytmu?

    To zależy m.in. od przeznaczenia i oczekiwań użytkowników.


Analiza algorytm w1

Analiza algorytmów


Analiza algorytm w2

Analiza algorytmów


Analiza algorytm w3

Analiza algorytmów


Analiza algorytm w4

Analiza algorytmów

Poprawny jest, gdy:

Dla każdego zestawu danych wejściowych zatrzymuje się i daje dobry wynik.

Poprawność dokładniej zostanie omówiona na oddzielnym wykładzie.

Intuicja


Ocena przydatno ci algorytmu

Ocena przydatności algorytmu

Złożoność obliczeniowa – podstawowa wielkość stanowiąca miarę przydatności algorytmu.

Obejmuje problemy związane z implementacją i efektywnością algorytmu.


Ocena przydatno ci algorytmu1

Ocena przydatności algorytmu

Złożoność obliczeniowa – funkcja zależna od danych wejściowych, a dokładnie od rozmiaru danych wejściowych.

Rozmiar danych wejściowych – liczba pojedynczych danych wchodzących w skład całego zestawu danych wejściowych.

Przykład:


Ocena przydatno ci algorytmu2

Ocena przydatności algorytmu

Zależność odwrotnie proporcjonalna


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Miara szybkości algorytmu powinna być:

  • Niezależna od oprogramowania

  • Niezależna od sprzętu

  • Niezależna od umiejętności programisty

    Powinna to być cecha samego algorytmu!


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa1

Ocena przydatności algorytmu – czas działania (złożoność czasowa)


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa2

Ocena przydatności algorytmu – czas działania (złożoność czasowa)


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa3

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

  • Liczbę operacji dominujących zwykle szacujemy z dokładnością do stałego czynnika.

  • Dla małych rozmiarów danych wejściowych najlepsze są najprostsze rozwiązania – nie ma problemu.

  • Jak zachowuje się algorytm, gdy rozmiar danych wejściowych dąży do nieskończoności?

  • Podajemy najprostszą funkcję charakteryzującą rząd wielkości T(n). Np.:

    T(n)=n2 dla 2n2+50,

    T(n)=n dla 100n

    W pierwszym przypadku algorytm jest wolniejszy, bo dla „dużego” n funkcja kwadratowa rośnie szybciej niż liniowa.


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa4

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Asymptotyczny czas działania – czas działania algorytmu dla danych wejściowych, których rozmiar dąży do nieskończoności.


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa5

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Większość algorytmów ma złożoność czasową (asymptotyczny czas działania) proporcjonalną do jednej z podanych poniżej funkcji:


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa6

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Przykład. Tabelka przedstawiająca czas potrzebny do realizacji algorytmu, który wykonuje 2n operacji dominujących (dla danych wejściowych rozmiaru n) przez dwa komputery, przy założeniu, że jedna operacja na każdym z nich zajmuje odpowiednio 10-6 i 10-9 sekund.


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa7

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Mając algorytm, pytamy, czy możemy szybciej osiągnąć cel, czy też złożoność czasowa już osiągnęła wartość najmniejszą z możliwych.

Zakres (przedział) czasów działania – przedział między teoretycznym dolnym oszacowaniem a najlepszym znanym algorytmem


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa8

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Algorytmy sortowania oparte na porównywaniu elementów mają teoretyczne dolne oszacowanie liczby operacji dominujących rzędu nlgn, a trywialne dolne oszacowanie rzędu n.

Problem mnożenia dwóch macierzy wymiaru n x n ma trywialne dolne oszacowanie rzedu kwadratowego.


Ocena przydatno ci algorytmu czas dzia ania z o ono czasowa9

Ocena przydatności algorytmu – czas działania (złożoność czasowa)

Dla niektórych ważnych problemów teoretyczne dolne oszacowanie nie zostałam jeszcze wyznaczone.

W takim przypadku bierzemy pod uwagę najszybszy istniejący algorytm rozwiązujący dany problem.


  • Login