Złożoność obliczeniowa: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 20: | Linia 20: | ||
=== Zawartość === | === Zawartość === | ||
*Złożoność obliczeniowa w modelu | *Złożoność obliczeniowa w modelu maszyny Turinga | ||
**zasoby obliczeniowe | |||
**warianty modelu: off-line, wielotaśmowa, niedeterministyczna | |||
*Inne modele dla złożoności | *Inne modele dla złożoności | ||
**maszyna RAM | **maszyna RAM, kryterium jednostajne i logarytmiczne | ||
**obwody logiczne | **obwody logiczne | ||
**zależności między funkcjami złożoności w | **zależności między funkcjami złożoności w różnych modelach | ||
*Klasy złożoności obliczeniowej | *Klasy złożoności obliczeniowej | ||
**klasy złożoności czasowej i pamięciowej | **klasy złożoności czasowej i pamięciowej | ||
**twierdzenia o liniowym przyspieszaniu i kompresji pamięci | **twierdzenia o liniowym przyspieszaniu i kompresji pamięci | ||
**relacje między klasami, twierdzenie Savitcha i dopełnienia klas | **relacje między klasami, twierdzenie Savitcha i dopełnienia klas | ||
**twierdzenia o hierarchii czasowej i pamięciowej | **twierdzenia o hierarchii czasowej i pamięciowej | ||
*Redukcje i zupełność | *Redukcje i zupełność | ||
**rodzaje: wielomianowa, logarytmiczna, Turinga | **rodzaje redukcji: wielomianowa, logarytmiczna, Turinga | ||
**pojęcie zupełności | **pojęcie zupełności | ||
**klasa NP, NP-zupełność, twierdzenie Cooka-Levina | **klasa NP, NP-zupełność, twierdzenie Cooka-Levina | ||
**charakteryzacja klasy NP w języku logiki | |||
*Dowody NP-zupełności | *Dowody NP-zupełności i analiza złożoności problemu | ||
**techniki konstrukcji | **przykłady redukcji i techniki ich konstrukcji | ||
**analiza złożoności podproblemów | **analiza złożoności podproblemów | ||
**problemy liczbowe i silna NP-zupełność | **problemy liczbowe i silna NP-zupełność | ||
*Algorytmy aproksymacyjne | *Algorytmy aproksymacyjne | ||
**wersje optymalizacyjne problemów decyzyjnych | |||
**przykłady algorytmów aproksymacyjnych | |||
**schematy aproksymacyjne | |||
*Dolne ograniczenia na aproksymowalność | *Dolne ograniczenia na aproksymowalność | ||
Linia 50: | Linia 55: | ||
**klasa MAXSNP, problemy MAXSNP-zupełne | **klasa MAXSNP, problemy MAXSNP-zupełne | ||
**charakteryzacja klasy NP przez weryfikatory | **charakteryzacja klasy NP przez weryfikatory | ||
**twierdzenie PCP i przykłady zastosowania | **twierdzenie PCP i przykłady jego zastosowania | ||
*Algorytmy probabilistyczne | *Algorytmy probabilistyczne | ||
**probabilistyczne klasy złożoności | **probabilistyczne klasy złożoności | ||
**rozpoznawanie liczb pierwszych | **rozpoznawanie liczb pierwszych | ||
**generowanie bitów losowych | |||
* | *Obliczenia równoległe | ||
**modele obliczeń równoległych | |||
**klasy złożoności równoległej | |||
**P-zupełność | |||
**równoległość i randomizacja | |||
*Problemy funkcyjne i złożoność zliczania | *Problemy funkcyjne i złożoność zliczania | ||
** klasy FP | ** klasy FP, FNP, TFNP | ||
** klasa #P i twierdzenie Valianta | |||
** klasa #P i twierdzenie Valianta | ** klasa <math>\oplus\textsc{P}</math> | ||
** klasa <math>\oplus\textsc{P}</math> | |||
*Pamięć logarytmiczna i hierarchia wielomianowa | *Pamięć logarytmiczna i hierarchia wielomianowa | ||
** klasy L, NL i coNL | ** klasy L, NL i coNL | ||
** | ** twierdzenie Immermana-Szelepcsényi'ego | ||
** klasy coNP i DP | ** klasy coNP i DP | ||
** maszyny alternujące | ** maszyny alternujące | ||
** hierarchia wielomianowa | ** hierarchia wielomianowa | ||
*Pamięć wielomianowa | *Pamięć wielomianowa | ||
**klasa PSPACE, | **klasa PSPACE, problemy zupełne | ||
**gry | |||
**gry | **problemy zwięzłe i złożoność wykładnicza | ||
* | |||
*Kryptografia a złożoność | *Kryptografia a złożoność | ||
**funkcje jednokierunkowe | **funkcje jednokierunkowe | ||
**protokoły interaktywne | **protokoły interaktywne | ||
**IP=PSPACE | **IP=PSPACE | ||
===Literatura=== | ===Literatura=== |
Wersja z 11:44, 15 wrz 2006
Forma zajęć
Wykład (30 godzin) + ćwiczenia (30 godzin)
Opis
Złożoność obliczeniowa to dziedzina informatyki teoretycznej zajmująca się klasyfikacją języków formalnych ze względu na ilość zasobu - czasu i pamięci - potrzebnego do rozpoznawania języka. Ponieważ język formalny jest abstrakcyjnym odpowiednikiem problemu algorytmicznego, teoria ta dostarcza narzędzi do szacowania trudności obliczeniowej takich problemów. Niniejszy kurs zapoznaje uczestników z najważniejszymi rezultatami dotyczącymi klas złożoności, ich własności i wzajemnych zależności a także omawia wynikające z tych faktów wnioski dotyczące praktycznych problemów algorytmicznych.
Sylabus
Autorzy
- Maciej Ślusarek - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Katedra Algorytmiki,
- Przemysław Broniek - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Katedra Algorytmiki,
- Grzegorz Gutowski - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Katedra Algorytmiki,
- Jan Jeżabek - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Katedra Algorytmiki,
Wymagania wstępne
Matematyka dyskretna, Algorytmy i struktury danych, Języki, automaty i obliczenia.
Zawartość
- Złożoność obliczeniowa w modelu maszyny Turinga
- zasoby obliczeniowe
- warianty modelu: off-line, wielotaśmowa, niedeterministyczna
- Inne modele dla złożoności
- maszyna RAM, kryterium jednostajne i logarytmiczne
- obwody logiczne
- zależności między funkcjami złożoności w różnych modelach
- Klasy złożoności obliczeniowej
- klasy złożoności czasowej i pamięciowej
- twierdzenia o liniowym przyspieszaniu i kompresji pamięci
- relacje między klasami, twierdzenie Savitcha i dopełnienia klas
- twierdzenia o hierarchii czasowej i pamięciowej
- Redukcje i zupełność
- rodzaje redukcji: wielomianowa, logarytmiczna, Turinga
- pojęcie zupełności
- klasa NP, NP-zupełność, twierdzenie Cooka-Levina
- charakteryzacja klasy NP w języku logiki
- Dowody NP-zupełności i analiza złożoności problemu
- przykłady redukcji i techniki ich konstrukcji
- analiza złożoności podproblemów
- problemy liczbowe i silna NP-zupełność
- Algorytmy aproksymacyjne
- wersje optymalizacyjne problemów decyzyjnych
- przykłady algorytmów aproksymacyjnych
- schematy aproksymacyjne
- Dolne ograniczenia na aproksymowalność
- L-redukcje
- klasa MAXSNP, problemy MAXSNP-zupełne
- charakteryzacja klasy NP przez weryfikatory
- twierdzenie PCP i przykłady jego zastosowania
- Algorytmy probabilistyczne
- probabilistyczne klasy złożoności
- rozpoznawanie liczb pierwszych
- generowanie bitów losowych
- Obliczenia równoległe
- modele obliczeń równoległych
- klasy złożoności równoległej
- P-zupełność
- równoległość i randomizacja
- Problemy funkcyjne i złożoność zliczania
- klasy FP, FNP, TFNP
- klasa #P i twierdzenie Valianta
- klasa Parser nie mógł rozpoznać (nieznana funkcja „\textsc”): {\displaystyle \oplus\textsc{P}}
- Pamięć logarytmiczna i hierarchia wielomianowa
- klasy L, NL i coNL
- twierdzenie Immermana-Szelepcsényi'ego
- klasy coNP i DP
- maszyny alternujące
- hierarchia wielomianowa
- Pamięć wielomianowa
- klasa PSPACE, problemy zupełne
- gry
- problemy zwięzłe i złożoność wykładnicza
- Kryptografia a złożoność
- funkcje jednokierunkowe
- protokoły interaktywne
- IP=PSPACE
Literatura
- Złożoność obliczeniowa, Christos H. Papadimitriou, Wydawnictwa Naukowo-Techniczne, 2002.
- Wprowadzenie do teorii automatów, języków i obliczeń, John E. Hopcroft, Jeffrey D. Ullman, Wydawnictwo naukowe PWN, 1994.
- Computers and Intractability A Guide to the Theory of NP-completeness, Michael R. Garey, David S. Johnson, Freeman, 1979.
- Introduction to the Theory of Computation, Michael Sipser, PWS Publishing Company, 1997.
Moduły
- Obliczenia w modelu maszyny Turinga
- Inne modele dla złożności
- Klasy złożoności obliczeniowej
- Redukcje i zupełność
- Problemy NP-zupełne
- NP-zupełność jako narzędzie analizy problemu
- Algorytmy aproksymacyjne
- Schematy aproksymacji i klasa MAXSNP
- Twierdzenie PCP i nieaproksymowalność
- Algorytmy probabilistyczne
- Obliczenia równoległe
- Problemy funkcyjne i złożoność zliczania
- Pamięć logarytmiczna i hierarchia wielomianowa
- Pamięć wielomianowa i złożoność wykładnicza
- Kryptografia a złożoność