Teoria obliczeń 2401-K-S2-1-TO
Przedstawiane zostaną teoretyczne podstawy zagadnienia modelowania obliczeń. Uczestnicy zapoznają się z zagadnieniami formalnego modelowania pojęcia efektywnej procedury za pomocą maszyny Turinga, kluczowym pojęciem funkcji obliczalnej, kwestią szacowania ilości kroków obliczenia oraz problemami nierozstrzygalnymi takimi jak problem stopu, obliczalności języka uniwersalnego i równości gramatyk bezkontekstowych. Omówione zostanie pojęcie złożoności obliczeniowej stanowiące podstawę dla oceny algorytmu pod względem pamięci lub czasu koniecznych do jego wykonania. Ogólnie można mówić o wielkości zasobów komputera potrzebnych do wykonania danego algorytmu uniezależniając klasyfikację algorytmu od konkretnej maszyny, na której się go implementuje.
W szczególności kurs stanowi wprowadzenie do teorii automatów, języków formalnych i logiki lingwistycznej. Zaprezentowane zostanie pojęcie języka akceptowanego przez automat na przykładzie języków regularnych i automatów skończonych. Dla skończonych automatów wskazany zostanie również niedeterministyczny model obliczeń. Udowodniona więc będzie równoważność automatów deterministycznych i niedeterministycznych. Studenci poznają lemat o pompowaniu dla języków regularnych i bezkontekstowych. Przedstawione zostaną też negatywne wyniki dotyczące akceptowania przez automaty języków. Omówiona zostanie hierarchia gramatyk pochodząca od Chomsky’ego oraz poruszana będzie kwestia lokalizacji języków naturalnych w tejże hierarchii.
W ramach zajęć omawiane są następujące tematy:
Wykład:
1. Automaty w kontekście zagadnienia obliczalności.
2. Złożoność obliczeniowa
3. Języki regularne i automaty skończone
4. Niedeterministyczne automaty skończone
5. Języki nieregularne i lemat o pompowaniu dla tych języków.
6. Gramatyki bezkontekstowe – definicja i przykłady
7. Automaty ze stosem
8. Lemat o pompowaniu dla języków bezkontekstowych
9. Maszyna Turinga – definicja, przykłady i rodzaju
10. Złożoność obliczeniowa i czasowa
11. Podstawowe klasy złożoności
Ćwiczenia:
1. Projektowanie automatów skończonych.
2. Suma, konkatenacja i funkcja `*’ jako operacje regularne
3. Przykłady języków regularnych i automaty skończone
4. Równoważność deterministycznych i niedeterministycznych automatów skończonych
5. Zastosowanie lematu o pompowaniu dla języków regularnych
6. Projektowanie gramatyk bezkontekstowych i normalna postać Chomsky’ego
7. Równoważność automatów ze stosem z gramatykami bezkontekstowymi
8. Zastosowanie lemat o pompowaniu dla języków bezkontekstowych
9. Projektowanie maszyn Turinga
10. Przykłady problemów z klas P, NP i problemów NP-zupełnych
Całkowity nakład pracy studenta
Efekty uczenia się - wiedza
Efekty uczenia się - umiejętności
Efekty uczenia się - kompetencje społeczne
Metody dydaktyczne
Metody dydaktyczne podające
- wykład konwersatoryjny
- wykład problemowy
Metody dydaktyczne poszukujące
Rodzaj przedmiotu
Wymagania wstępne
Koordynatorzy przedmiotu
Kryteria oceniania
Metody oceniania:
egzamin pisemny - W02, W05, U06, U09
Kolokwium – U03, U06, U09
Aktywność – K01, K02
Kryteria oceniania (obowiązują zarówno w przypadku zaliczenia ćwiczeń na podstawie kolokwium, jak i wykładu na podstawie egzaminu):
ocena bdb. - od 90% (włącznie) - do 100%
ocena db.+ - od 80% (włącznie) - do 90% (wyłącznie),
ocena db. - od 70% (włącznie) - do 80% (wyłącznie),
ocena dst.+ - od 60% (włącznie) - do 70% (wyłącznie),
ocena dst. - od 45% (włącznie) - do 60% (wyłącznie).
Praktyki zawodowe
Brak
Literatura
1. J. E. Hopcroft i J. D. Ullman, Wprowadzenie do teorii automatów, języków i obliczeń, PWN Warszawa, 2003.
2. Sipser Michael, Wprowadzenie do teorii obliczeń, WNT, War-szawa, 2009
3. Christos H. Papadimitriou, Złożoność obliczenia, Wydawnictwo Naukowo-Techniczne, Warszawa 2002
4. T. Krasiński "Automaty i języki formalne", Wydawnictwo Uniwersytetu Łódzkiego, Łódź 2007
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: