1 / 23

Wykład jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

Algorytm Krótka nota M. Muraszkiewicz Instytut Informatyki, Politechnika Warszawska mietek@-n-s.pl http://www.icie.com.pl/lect_pw.htm Warszawa, maj, 2011 r. Wykład jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego. Prolog Definicja Złożoność

jazlynn
Download Presentation

Wykład jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algorytm Krótka nota M. MuraszkiewiczInstytut Informatyki, Politechnika Warszawska mietek@-n-s.pl http://www.icie.com.pl/lect_pw.htm Warszawa, maj, 2011 r. Wykład jest współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego

  2. Prolog Definicja Złożoność Problemy Epilog M. Muraszkiewicz

  3. Prolog M. Muraszkiewicz

  4. Etymologia Abu Abdullah Muhammed ibn Musa Al-chwarizmi (أبو عبد الله محمد بن موسى الخوارزمي) Dzięki jego pracom na Bliskim Wschodzie zaczęto stosować pochodzące z Indii dziesiętny system liczenia i pozycyjny system zapisu liczb. Cyfry arabskie wyparły cyfry rzymskie w Europie. Jego prace pozwoliły też wprowadzić i wyjaśnić pojęcia zera, ułamków oraz funkcje trygonometryczne sinus i tangens. Jako pierwszy ułożył tablice funkcji sinus i tangens, wprowadził elementy algebry. Termin algebra pochodzi od tytułu jego dzieła Kitāb al-jabr wa'l-muqābala ("Zasady redukcji i przenoszenia"), zaś algorytm od łacińskiej wersji jego nazwiska. źródło: http://pl.wikipedia.org/wiki/Muhammad_ibn_Musa_al-Chuwarizmi ibn Musa Al-chwarizmi(780 – 850)

  5. Prekursorzy Lady Augusta Ada Lovelace (1815–1852) Charles Babagge(1791- 1871) maszyna różnicowa

  6. Definicja M. Muraszkiewicz

  7. 1-sza iteracja Algorytm to opis metody prowadzącej do rozwiązania zadania lub do osiągnięcia zamierzonego celu przy założeniu o tym co lub kto będzie wykonawcą algorytmu. M. Muraszkiewicz

  8. 2-ga iteracja Algorytm to jednoznaczny opis metody w przyjętym języku prowadzącej do rozwiązania zadania lub do osiągnięcia zamierzonego celu przez wykonanie skończonej liczby poleceń prostych, przy założeniu o tym co lub kto będzie wykonawcą algorytmu, i że wykonawca jest w stanie interpretować i zrealizować każde wymienione polecenie proste. M. Muraszkiewicz

  9. 3-ia iteracja Algorytmto jednoznaczny opis metody, która w skończonym czasie przekształca dane wejściowe w dane wyjściowe. M. Muraszkiewicz

  10. Poprawność algorytmu Algorytm jest poprawny, gdy dla każdego wystąpienia zadania przedłożonego do rozwiązania: Podaje poprawny wynik. Zatrzymuje się. Uwaga na błędy zaokrągleń liczb rzeczywistych M. Muraszkiewicz

  11. Przykład Do najstarszych znanych algorytmów należy, Euklidesa algorytm do znajdowania największego wspólnego dzielnika (NWD) dwóch liczb. Oblicz c jako resztę z dzielenia a przez b. zastąp pozycję a liczbą b, a pozycję b liczbą c. jeżeli pozycja b = 0, to szukane NWD = a, w przeciwnym wypadku przejdź do kroku 1. M. Muraszkiewicz

  12. Języki • język naturalny, np. język polski • grafy skierowane • języki programowania komputerów, np. C#, Java • pseudokody • … • Czy sieć neuronowa jest językiem zapisu algorytmów ? M. Muraszkiewicz

  13. Główne struktury języków • początek, koniec • stałe, zmienne, łańcuchy, tablice • nadawanie wartości • operatory arytmetyczne i logiczne, operatory działające na łańcuchach • funkcje • wyrażenia warunkowe • pętle M. Muraszkiewicz

  14. Złożoność M. Muraszkiewicz

  15. Złożoność Złożoność algorytmu to ilość zasobów niezbędnych do jego wykonania. Złożoność czasowa Liczba operacji wymaganych do wykonania algorytmu w zależności od rozmiaru danych wejściowych. Złożoność pamięciowa Wielkość pamięci, której wymaga wykonanie algorytmu z uwzględnieniem rozmiaru danych wejściowych. M. Muraszkiewicz

  16. Złożoności czasowe n – liniowa log n – logarytmiczna n log n – liniowo-logarytmiczna nl – wielomianowa, l = 2, 3, …, np. n2 stopnia 2, n3 – sześcienna 2n – wykładnicza 2n n! – wykładnicza n! . M. Muraszkiewicz

  17. Klasy złożoności • Klasa złożoności to klasa zagadnień obliczeniowych o podobnej złożoności obliczeniowej. • Klasa P (deterministyczna wielomianowa) - problem (decyzyjny), dla którego rozwiązanie można znaleźć w czasie wielomianowym. • Klasa NP (niedeterministryczna wielomianowa) - problem dla którego rozwiązanie można zweryfikować w czasie wielomianowym. • Wszystkie problemy klasy P są NP, ponieważ można je sprawdzić w czasie wielomianowym P NP. • Nie wiadomo natomiast, czy P różni się od NP, tzn. P ≠ NP lub inaczej czy P  NP M. Muraszkiewicz

  18. Problemy M. Muraszkiewicz

  19. Zagadnienia • Analiza algorytmów to działanie w celu określenia zasobów, które są niezbędne do wykonania algorytmu: czasu wykonania, pojemność pamięci, liczby procesorów, szerokości pasma itd. Ponadto: • Jak sprawdzić/dowieść poprawność algorytmu ? • Jak wyznaczyć złożoność algorytmu ? • Jak wybrać język zapisu algorytmu ? • Jak przygotować dane, jak je ustrukturalizować ? • Czy istnieją algorytmy alternatywne ? • … M. Muraszkiewicz

  20. Epilog M. Muraszkiewicz

  21. An algorithm must be seen to be believed. M. Muraszkiewicz

  22. Warto przeczytać: Aho A. V., Hopcroft J. E., Ullman J. D.: Algorytmy i struktury danych, Helion, Gliwice 2003 Banachowski L., Diks K., Rytter W.: Algorytmy i struktury danych, WNT, Warszawa 2003 Heineman G.T., Pollice G., Selkow S.: Algorithms in a Nutshell, O'Reilly Media, 2008 Cormen T.H., Leiserson Ch.E., Rivest R.L.: Wprowadzenie do algorytmów, WNT, Warszawa 2000 Sedgewick R.: Algorithms, Addison-Wesley Professional, 2011 Sysło M.M.: Algorytmy, WSiP, Warszawa 2002 Wirth N.: Algorytmy + struktury danych = programy, WNT, Warszawa 2002 http://pl.wikipedia.org/wiki/Algorytm M. Muraszkiewicz

  23. Dziękuję za uwagę

More Related