Matematični uvod
V prvem delu se bomo posvetili matematičnim osnovam, ki so ključne za razumevanje kompleksnosti. Obravnavali bomo:
• Dokazovanje: Pregled osnovnih dokazovalnih tehnik, s poudarkom na tem, kaj študenti poznajo iz Diskretnih struktur.
• Predstavitev podatkov, problemov in jezikov: Kako matematično formalizirati računske probleme.
• Bijekcije: Pomen bijektivnih preslikav v kontekstu primerjave velikosti množic.
• Diagonalizacija: Močno orodje za dokazovanje obstoja neizračunljivih in kompleksnejših problemov.
Uvod v računske modele (avtomati)
Spoznali bomo prve abstraktne modele računanja, ki so temelj za razumevanje kompleksnejših modelov. Vsebina zajema:
• Avtomati in njihove ekvivalence: Deterministični in nedeterministični končni avtomati.
• Regulirane izraze (RI): Povezava med avtomati in formalnimi jeziki.
• Lema o napihovanju: Metoda za dokazovanje, da nekateri jeziki niso regularni.
• Myhill-Nerodejev izrek: Ključni izrek za minimizacijo avtomatov.
Splošni model računanja in neizračunljivost
Ta del bo predstavil univerzalni model računanja in meje, ki jih ima računalništvo. Obravnavali bomo:
• Turingov stroj (TS) in njegove variacije: Univerzalni model računanja in njegova robustnost.
• Univerzalni Turingov stroj: Koncept, ki omogoča simulacijo poljubnega Turingovega stroja.
• Neizračunljivost: Obstoj problemov, za katere ni mogoče najti algoritma.
• Prevedbe: Osnovni mehanizem za dokazovanje, da so problemi med seboj povezani.
• Riceov izrek: Pomemben izrek o neizračunljivosti lastnosti netrivialnih jezikov Turingovih strojev.
Zahtevnost
V zadnjem delu se bomo posvetili klasifikaciji problemov glede na njihovo računsko zahtevnost. Vsebina je:
• Deterministični in nedeterministični razredi: Razred P kot zbirka "lažjih" problemov in razred NP kot zbirka "težjih" problemov.
• P in NP (ter PSPACE): Poglobljena analiza teh razredov, vključno s Savitchovim izrekom, ki povezuje deterministični in nedeterministični prostor.
• Karpove prevedbe: Tehnike za dokazovanje, da je problem NP-poln.
• Cook-Levinov izrek: Temeljni izrek, ki dokazuje, da je problem zadovoljivosti (SAT) NP-poln.
• Primeri NP-polnih problemov: Obravnavali bomo klasične primere, kot so problem zadovoljivosti (SAT), klike, barvanje grafov, problem vsote podniza (subset-sum), Hamiltonov cikel (HC) in drugi.