Uvod u teoriju računarstva
Prikazani su podaci za akademsku godinu: 2023./2024.
Predavanja
Laboratorijske vježbe
Davor Vukadin
mag. ing.
Opis predmeta
Predmet uvodi formalne modele automata i gramatika za potrebe opisa, definiranja, programskog i sklopovskog ostvarivanja te provjere ispravnosti rada računalnih i komunikacijskih procesa, protokola i sustava. Objašnjavaju se osnovna svojstva računalnih procesa i sustava, kao što su determinizam, odlučivost, izračunljivost, složenost i učinkovitost. Daje se osnova teorije automata, formalnih gramatika i jezika. Proučava se Chomskyeva hijerarhija jezika: regularni, kontekstno-neovisni, kontekstno-ovisni, rekurzivni i rekurzivno-prebrojivi jezici. Definiraju se razredi složenosti i hijerarhija razreda složenosti: potpuni i teški problemi, razredi P i NP te postupak svođenja.
Studijski programi
Ishodi učenja
- opisati ponašanje računalnog sustava i komunikacijskog protokola formalnim jezikom
- opisati ponašanje računalnog sustava, komunikacijskog protokola ili nekog drugog tehničkog sustava formalnim jezikom
- dizajnirati računalni proces primjenom formalnog modela
- primijeniti formalne modele za provjeru valjanosti računalnog sustava
- klasificirati problem s obzirom na Chomskyevu hijerarhiju formalnih jezika
- odabrati formalni model optimalne složenosti za potrebe opisa, oblikovanja i izgradnje računalnog sustava
- ocijeniti vremensku i prostornu složenost računalnog procesa
- ocijeniti učinkovitost računalnog sustava i komunikacijskog protokola
- ocijeniti razred složenosti problema
Oblici nastave
Predavanja
Predavanja popraćena PowerPoint projekcijom s prikazom teorijskih načela, popratnim primjerima i rješavanjem zadataka
LaboratorijProgramsko ostvarenje konačnog automata, algoritama za minimizaciju konačnog automata, potisnog automata i tehnike parsiranja rekurzivnim spustom. Studenti samostalno programski ostvaruju laboratorijski zadatak i putem web-aplikacije predaju rješenja na automatizirano ocjenjivanje.
Način ocjenjivanja
Kontinuirana nastava | Ispitni rok | |||||
---|---|---|---|---|---|---|
Vrsta provjere | Prag | Udio u ocjeni | Prag | Udio u ocjeni | ||
Laboratorijske vježbe | 50 % | 30 % | 50 % | 0 % | ||
Sudjelovanje u nastavi | 0 % | 10 % | 0 % | 0 % | ||
Međuispit: Pismeni | 50 % | 30 % | 0 % | |||
Završni ispit: Pismeni | 50 % | 30 % | ||||
Ispit: Pismeni | 50 % | 100 % | ||||
Ispit: Usmeni | 100 % |
Tjedni plan nastave
- Generiranje i parsiranje niza, Deterministički konačni automat
- Minimizacija determinističkog konačnog automata, Nedeterministički konačni automat. Nedeterministički konačni automat s epsilon prijelazima
- Istovjetnost determinističkog. nedeterminističkog i nedeterminističkog konačnog automata s epsilon prijelazima
- Regularni jezici, Regularni izrazi, Operacije nad automatima, Svojstva regularnih. kontekstno-neovisnih. rekurzivnih i rekurzivno-prebrojivih jezika. svojstvo napuhavanja
- Kontekstno-neovisni jezici, Svojstva regularnih. kontekstno-neovisnih. rekurzivnih i rekurzivno-prebrojivih jezika. svojstvo napuhavanja
- Kontekstno-ovisni jezici
- Potisni automat
- Međuispit
- Rekurzivno-prebrojivi jezici, Turingov stroj, Gramatika neograničenih produkcija, Svojstva regularnih. kontekstno-neovisnih. rekurzivnih i rekurzivno-prebrojivih jezika. svojstvo napuhavanja, Svojstvo napuhavanja (dokazivanje neregularnosti jezika. dokazivanje nepripadnosti jezika klasi kontekstno-neovisnih jezika)
- Chomskyjeva hijerarhija formalnih jezika. gramatika i automata, Kontekstno-ovisni jezici. kontekstno-ovisna gramatika i linearno-ograničeni automat
- Definicija vremenske i prostorne složenosti prihvaćanja jezika, Problem zaustavljanja, Deterministički i nedeterministički način računanja, Traktabilnost / Prikladnost, Izračunljivost s primjerima neizračunljivih funkcija, Odlučivost s primjerima neodlučivih funkcija
- Uvod u P i NP klase složenosti. NP-potpuni i NP-teški problemi, Uvod u klasu NP-potpunih problema s primjerima (npr. problem zadovoljivosti logičke funkcije. problem naprtnjače)
- Pregled klasa složenosti P i NP. uvod u klase složenosti PSPACE i EXP, Hijerarhija problema polinomne složenosti, NP-potpunost (Cook-Levinov teorem), Klasični NP-potpuni problemi
- Tehnike svođenja, Klase složenosti, Klase problema polinomne složenosti (klase P i NP), Definicija potpunih i teških problema, Razlika između P-potpunih (teških) i NP-potpunih (teških) problema
- Završni ispit
Literatura
Siniša Srbljić (2010.), Uvod u teoriju računarstva, Element
Juraj Hromkovič (2003.), Theoretical Computer Science, Springer Science & Business Media
John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (2007.), Introduction to Automata Theory, Languages, and Computation, Addison-Wesley
Peter Linz (2001.), An Introduction to Formal Languages and Automata, Jones & Bartlett Learning
Dexter C. Kozen (2007.), Automata and Computability, Springer Science & Business Media
Michael Sipser (2012.), Introduction to the Theory of Computation, Cengage Learning
Za studente
Izvedba
ID 183412
Ljetni semestar
5 ECTS
R3 Engleski jezik
R2 E-učenje
60 Predavanja
0 Seminar
0 Auditorne vježbe
10 Laboratorijske vježbe
0 Konstrukcijske vježbe
0 Vježbe tjelesnog odgoja
Ocjenjivanje
88 izvrstan
75 vrlo dobar
63 dobar
50 dovoljan