złożoność obliczeniowa
Transkrypt
złożoność obliczeniowa
Program przedmiotu: ZŁOŻONOŚĆ OBLICZENIOWA 30 godz. wykładów + 30 godz. ćwiczeń Wymagane wiadomości. Podstawowe wiadomości z zakresu teorii obliczalności. Podstawowe pojęcia i twierdzenia z teorii grafów. Przydatna znajomość języka angielskiego na poziomie średniozaawansowanym. 1. Maszyna z dostępem swobodnym i maszyna Turinga oraz pojęcie funkcji obliczalnych. Teza Churcha. 2. Modyfikacje maszyn Turinga - taśmy wielościeżkowe, maszyny wielotaśmowe. Twierdzenie o równoważności obliczeniowej różnych modeli maszyn. Definicja niedeterministycznej maszyny Turinga. Usystematyzowanie i poszerzenie podstawowych pojęć teorii złożoności obliczeniowej takich jak złożoność czasowa i pamięciowa dla deterministycznego oraz niedeterministycznego modelu maszyny Turinga. 3. Formalizm funkcji rekurencyjnych – klasa funkcji prymitywnie rekurencyjnych i rekurencyjnych, tw. Goedla-Kleeniego o eliminacji rekursji (bd.), tw. Kleeniego o formie normalnej rekursji (bd.). 4. Elementy lambda-rachunku. Tw. o równoważności formalizmów funkcji rekurencyjnych, lambda rachunku i maszyn Turinga (bd.). 5. Przykłady języków rekurencyjnych, rekurencyjnie przeliczalnych i takich, które nie są rekurencyjnie przeliczalne. Dwa twierdzenia Rice’a (bd.). 6. Elementy logiki predykatów. Twierdzenie Goedla (bd.). 6. Klasy złożoności. Twierdzenie o przyspieszeniu liniowym. Twierdzenie o liniowej kompresji pamięci. Twierdzenie Bluma o przyspieszaniu (bd.). Hierarchie złożoności. Twierdzenie o hierarchii pamięciowej. Twierdzenie Savitcha. Inkluzje klas złożoności. 7. Klasy problemów P i NP. Twierdzenie o inkluzjach pomiędzy klasami. Definicja problemu decyzyjnego. Związek pomiędzy problemem decyzyjnym, a językiem akceptowanym przez maszynę Turinga. Definicja relacji transformalności wielomianowej i jej własności. Pojęcie równoważności problemów. Definicja problemu zupełnego w swojej klasie złożoności. 8. Problem spełnialności. Twierdzenie Cooka. 9. Twierdzenie o NP-zupełności problemu 3-spełnialności. Sześć najsławniejszych problemów NPzupełnych. Techniki dowodzenia NP-zupełności: twierdzenia o NP-zupełności problemu pokrycia wierzchołkowego, cyklu Hamiltona, ścieżki Hamiltona itp. 10. Szczegółowe omówienie dowodzenia NP-zupełności przez zacieśnienie, lokalne zastąpienie oraz techniką składowych na podstawie poznanych twierdzeń. Definicja podproblemu. Analiza złożoności problemów i podproblemów za pomocą NP-zupełności. Analiza podproblemów na przykładzie twierdzeń o NP-zupełności problemu 3-kolorowalności grafów. Twierdzenie Brooksa (bd.). 11. Pojęcie problemu liczbowego. Definicja silnej NP-zupełności. Definicja problemu pseudowielomianowego. Algorytm dynamiczny dla problemu podziału jako przykład algorytmu pseudowielomianowego. Pojęcie transformacji pseudowielomianowej. 12. Pojęcie problemu nieliczbowego. Twierdzenie o złożoności problemów nieliczbowych. Pojęcie problemów silnie NP-zupełnych. Twierdzenie o silnej NP-zupełności problemów nieliczbowych. Dowodzenie silnej NP-zupełności za pomocą transformacji wielomianowej: problem 3-podziału, problem zanurzania grafów, problem podziału zadań, problem komiwojażera. 13. Definicja problemu optymalizacyjnego. Optymalizacyjne wersje pewnych problemów NPzupełnych. Pojęcie transformacji w sensie Turinga. Pojęcie problemu NP-trudnego oraz NPłatwego. Porównywanie trudności obliczeniowych problemów optymalizacyjnych na przykładzie optymalizacyjnego problemu pokrycia wierzchołkowego. Definicja rozwiązania optymalnego minimalizacji i maksymalizacji. Pojęcie algorytmu aproksymacyjnego. Stała aproksymacji. 14. Algorytmy bez stałej aproksymacji oraz ze stałą aproksymacji dla optymalizacyjnego problemu pokrycia wierzchołkowego i optymalizacyjnego problemu maksymalnego skojarzenia w grafie. Typy schematów aproksymacyjnych. Definicja wielomianowego schematu aproksymacyjnego. Pojęcie w pełni wielomianowego schematu aproksymacyjnego. Omówienie na przykładzie problemu plecakowego. Schematy aproksymacyjne dla problemu komiwojażera. Literatura: 1. A. Aho, J. Hopcroft, J. Ullman, Projektowanie i analiza algorytmów, Helion, 2003. 2. A. Aho, J. Hopcroft, J. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, PWN, 2003. 3. G. Boolos, R. Jeffrey, Computability and Logic, Cambridge Univ. Press, 1980. 4. M. Garey, D. Johnson, Computers and intractability, W. H. Freeman and Company, 2003. 5. V. Vazirani, Algorytmy aproksymacyjne, Wydawnictwo Naukowo-Techniczne, 2005. 30 listopada 2009