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