dr hab. inż. Władysław Homenda Algorytmy, złożoność
Transkrypt
dr hab. inż. Władysław Homenda Algorytmy, złożoność
dr hab. inż. Władysław Homenda Algorytmy, złożoność obliczeniowa, granice obliczalności, realizacja przedmiotu, 2008 Realizacja, wiosna 2008 1. 2008-02-27 Pojęcia podstawowe: problem, algorytm, złożoność obliczeniowa czasowa i pamięciowa, pesymistyczna i średnia, asymptotyczna, kryteria jednorodne i logarytmiczne. 2. 2008-02-28 Podstawowe struktury danych: typy skalarne, tablice, listy, stosy, kolejki, kolejki priorytetowe, drzewa. Krótka charakterystyka struktur, podstawowe implementacje. Kopce i ich zastosowanie do implementacji kolejek priorytetowych. 3. 2008-03-05 Problem sortowania, algorytmy sortowania i ich złożoność. Algorytmy podstawowe (bąbelkowy, przez wybór, przez wstawianie), sortowanie szybkie, sortowanie Shella, sortowanie kubełkowe, sortowanie przez zliczanie. Ograniczenie dolne złożoności algorytmów sortowania przez porównania elementów. Sortowanie Shella. 4. 2008-03-06 Sortowanie szybkie – uzupełnienie, rekurencja. Problem wyszukiwania. Algorytmy wyszukiwania i ich złożoność. Wyszukiwanie liniowe, binarne, aproksymacyjne. Binarne drzewa wyszukiwania, drzewa zrównoważone, drzewa AVL, lokalna rotacja. 5. 2008-03-12 Algorytmy problemu wyszukiwania: 2-3-4 drzewa, drzewa czerwono-czarne, równoważność modeli drzew 2-3-4 i czerwono czarnych, b-drzewa, drzewa wyszukiwania bitowego (radix search trees i tries). 6. 2008-03-13 Mieszanie (hashowanie): metody usuwania konfliktów – łańcuchowa, liniowa, z obszarem nadmiarowym, adresowanie liniowe, adresowanie kwadratowe, podwójnie mieszanie; funkcje mieszające - modulo, wybór środkowej części klucza, uniwersalna klasa funkcji. 7. 2008-04-16 Nierozstrzygalność. Charakteryzacja przestrzeni funkcji decyzyjnych: klasy funkcji: obliczanych, częściowo obliczalnych, komplementarnych do częściowo obliczalnych, nie obliczalnych. 8. 2008-04-17 Niedeterminizm. Charakteryzacja przestrzeni problemów decyzyjnych rozstrzygalnych ze względu na złożoność czasową algorytmów. Transformacja wielomianowa. Klasy problemów: NP, coNP, NP-zupełnych, NPI. Pytania: NP=coNP?, P=NP? Twierdzenie Cooka – sformułowanie. Charakteryzacja przestrzeni problemów decyzyjnych rozstrzygalnych ze względu na złożoność pamięciowa algorytmów. Twierdzenie Savitcha – sformułowanie. 9. 2008-04-23 Niedeterminizm. Charakteryzacja przestrzeni problemów decyzyjnych rozstrzygalnych ze względu na złożoność czasową algorytmów. Transformacja wielomianowa. Klasy problemów: NP, coNP, NP-zupełnych, NPI. Pytania: NP=coNP?, P=NP? Twierdzenie Cooka – sformułowanie. Charakteryzacja przestrzeni problemów decyzyjnych rozstrzygalnych ze względu na złożoność pamięciowa algorytmów. Twierdzenie Savitcha – sformułowanie. 10. 2008-04-24 Informacja o obliczeniach kwantowych 11. 2008-05-14 Wyszukiwanie wzorca w tekście. Algorytmy: naiwny, Knutha-Morrisa-Pratta, Boyera-Moore’a, Rabina-Karpa. 12. 2008-05-28 Grafy, reprezentacja komputerowa. Algorytmy przeszukiwania grafów. 13. 2008-05-29 Algorytmy znajdowania najkrótszych dróg w grafach. Wyznaczanie największych przepływów w sieciach. 14, 15. 2008-06-04,11 Zaliczenia. Realizacja, wiosna 2007 1. 2007-02-28 Pojęcia podstawowe: problem, algorytm, złożoność obliczeniowa czasowa i pamięciowa, pesymistyczna i średnia, asymptotyczna, kryteria jednorodne i logarytmiczne. 2. 2007-03-01 Problem sortowania, algorytmy sortowania i ich złożoność. Algorytmy podstawowe (bąbelkowy, przez wybór, przez wstawianie), sortowanie szybkie, sortowanie Shella, sortowanie kubełkowe. 3. 2007-03-14 Podstawowe struktury danych: tablice, listy, stosy, kolejki, kolejki priorytetowe, drzewa. Krótka charakterystyka struktur, podstawowe implementacje. Kopce i ich zastosowanie do implementacji kolejek priorytetowych i w algorytmie sortowania przez kopcowanie. Dolne oszacowanie złożoności algorytmów sortowania przez porównania. Problem wyszukiwania. Podstawowe algorytmy i ich złożoność: wyszukiwanie liniowe, binarne, interpolacyjne. 4. 2007-03-15 Algorytmy wyszukiwania i ich złożoność: binarne drzewa wyszukiwania, równoważenie drzew wyszukiwania, drzewa AVL, drzewa wyszukiwania bitowego (radix search), drzewa typu Patricia, 2-3-4 drzewa, drzewa czerwone-czarne, uwagi na temat B-drzew. 5. 2007-03-28 Drzewa czerwone-czarne, uwagi na temat B-drzew. Mieszanie (hashing), metody rozwiązywania konfliktów, funkcje mieszające. 6. 2007-03-29 Funkcje mieszające (kontynuacja). Wyszukiwanie wzorca w tekście, algorytmy: brute force, Knuta-Morrisa-Prata. 7. 2007-04-11 Wyszukiwanie wzorca w tekście (kontynuacja), algorytmy: brute force, Knuta-Morrisa-Prata, Boyera-Moore’a, Rabina-Karpa. Wyrażenia i języki regularne. Automaty skończone. 8. 2007-04-12 Wyszukiwanie wzorca w tekście (kontynuacja): Wyrażenia regularne, automaty skończone. 9. 2007-04-18 Algorytmy grafowe: reprezentacja grafów, przeszukiwanie grafów wszerz i wzdłuż, przeszukiwanie drzew binarnych prefiksowe, postfiksowe, infiksowe, składow spójne grafów. Problem najkrótszych dróg, algorytmy Forda-Bellmana i Dijkstry. 10. 2007-04-19 Algorytmy grafowe cd.: Przepływy w sieciach, algorytm Forda-Fulkersona. Problem, zadnia problemu, algorytmy – rewizyta. Problem podziału zbioru: algorytm deterministyczny o złożoności wykładniczej, algorytm niedeterministyczny o złożoności liniowej. Modele obliczeń: maszyny RAM, maszyny Turinga. 11. 2007-05-16 Problemy rozstrzygalne i nierozstrzygalne. Charakteryzacja klasy problemów rozstrzygalnych ze względu na złożoność czasową. Klasy problemów P, NP, coNP, NP-zupełnych. Przykłady problemów NP, co-NP, NP-zupełnych. P=NP? 12. 2007-05-17 Związki między złożonością czasową i pamięciową. Charakteryzacje klasy problemów rozstrzygalnych ze względu na złożoność pamięciową. Twierdzenie Savitcha. P-space=NP-NPspace 13. 2007-05-30 Obliczenia kwantowe 14. 2007-05-31 Zaliczenia 15. 2007-06-13 Zaliczenia