Teoretick informatika
Download
1 / 19

- PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

Teoretická informatika. Garant předmětu: Josef Hynek Hodinová dotace: 2/2 Cíl předmětu:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '' - keefe


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Teoretick informatika
Teoretická informatika

  • Garant předmětu: Josef Hynek

  • Hodinová dotace: 2/2

  • Cíl předmětu:

  • Poskytnout studentům dostatečný přehled o teoretických základech informatiky. Předmět je rozdělen do tří částí, které postupně pokrývají oblast automatů a formálních gramatik, teorii vyčíslitelnosti a teorii složitosti.


Sylabus
Sylabus:

  • Konečné automaty, ekvivalence automatů, iterační lemma, dosažitelnost a ekvivalence stavů, redukce a normalizace konečných automatů, nedeterministické konečné automaty

  • Regulární výrazy, Kleenova věta, převod regulárního výrazu na automat, převod automatu na regulární výraz

  • Chomského hierarchie gramatik, bezkontextové gramatiky, derivační stromy, zásobníkové automaty, přijímání prázdným zásobníkem a koncovým stavem, iterační (pumping) lemma

  • Kontextové gramatiky, Turingovy stroje, různé typy Turingových strojů, definice algoritmu, univerzální Turingův stroj

  • Rozhodovací problémy, problém zastavení Turingova stroje, Postův problém přiřazení a jeho aplikace

  • Teorie složitosti, časová a prostorová složitost, analýza algoritmu a měření složitosti

  • Definice tříd P a NP, polynomiální převoditelnost problémů, pojem NP-úplnosti, příklady NP-úplných problémů, přibližná řešení těžkých problémů


Doporu en literatura
Doporučená literatura:

  • Sipser, M., Introduction to theTheoryofComputationCourse Technology, 2nd Ed., Thomson, Boston, MA, 2006.

  • Kurz http://oliva.uhk.cz/ - RNDr. Andrea Ševčíková

  • Hopcroft, J.E., Motwani, R., Ullman, J.D.: Introduction to AutomataTheory, Languages, and Computation (2nd Edition), AddisonWesley, 2000.

  • Cormen, T. H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, (2nd Edition), MIT Press 2001.

  • Garey, M.R.: Johnson, D.S.: Computers and Intractability : A Guide to theTheoryof NP-Completeness (SeriesofBooks in theMathematicalSciences), W.H. Freeman 1979.

  • Kučera, L.: Kombinatorické algoritmy, SNTL Praha 1991.

  • Koubek, V.: Automaty a gramatiky. On-line výukové materiály MFF UK (http://ktiml.ms.mff.cuni.cz/vyuka/materialy.html )

  • Majerech, V.: Úvod do složitosti a NP-úplnosti. On-line výukové materiály MFF UK (http://ktiml.ms.mff.cuni.cz/vyuka/materialy.html )

  • Majerech, V.: Složitost a NP-úplnost. On-line výukové materiály MFF UK (http://ktiml.ms.mff.cuni.cz/vyuka/materialy.html )

  • Kučera, A.: Vyčíslitelnost. On-line výukové materiály MFF UK (http://ktiml.ms.mff.cuni.cz/vyuka/materialy.html)


Zp sob ukon en p edm tu
Způsob ukončení předmětu:

  • Zápočet

    • písemný test

    • (uprostřed semestru – termín bude včas oznámen)

  • Zkouška

    • písemná a ústní

  • Rozsah zkoušené látky

    • odpovídá obsahu přednášek


P edm t studia teoretick informatiky
Předmět studia teoretické informatiky:

  • Jak počítač interpretuje či překládá program?

  • Jak rychle bude výpočet probíhat?

  • Jaké jsou možnosti počítačů?

  • Jaké jsou jejich limity?

  • Co může a co nemůže být „vypočteno“?

  • Proč jsou některé výpočty prakticky či vůbec nerealizovatelné?


Teoretick p edm t t k a nudn
Teoretický předmět = těžký a nudný?

  • Bez porozumění základním principům zůstává poznání jen na povrchu

  • Teorie rozvíjí způsob myšlení a dává obecný nadhled

  • Celá řada poznatků má zásadní význam pro praxi

  • Návrh „rychlých“ algoritmů pro určitý problém vs. návrh těžko rozluštitelných kódů a šifer

  • Zatímco konkrétní technické znalosti (např. určitý programovací jazyk) se rychle mění, teorie zůstává stejná (gramatiky a formální jazyky)


Oblasti pokryt v r mci tohoto p edm tu
Oblasti pokryté v rámci tohoto předmětu:

  • Teorie automatů

  • Teorie složitosti

  • Teorie vyčíslitelnosti

  • Všechny tři teorie vznikaly postupně v minulém století spolu s rozvojem výpočetní techniky a jejich cílem bylo nalézt odpovědi na otázku rozsahu možností počítačů.

  • Počítač se za více než 60 let změnil k nepoznání, ale změnily se principiálně i jeho schopnosti řešit problémy?


Teorie automat
Teorie automatů:

  • Matematické modely výpočetních strojů

  • Různé možnosti definice výpočtu a výpočetních strojů

  • Různé modely – různé možnosti?

  • Aplikace v oblasti

    • zpracování textu

    • interpretace a překladu programovacích jazyků

    • rozpoznávání vzorů (pattern matching)


Teorie slo itosti
Teorie složitosti:

  • Některé problémy jsou „jednoduché“

    • třídění

  • Jiné jsou složité

    • problém obchodního cestujícího

    • faktorizace přirozeného čísla

  • Způsob klasifikace problémů do určitých tříd

  • Možnost demonstrovat, že určitý problém je „těžký“

  • Využití

    • při návrhu algoritmů pro příslušný problém

    • v oblasti kryptografie


Co s t k mi probl my
Co s těžkými problémy?

  • Je podstatné, že víme a umíme prokázat, že problém je „těžký“

  • Chápeme-li důvod obtížnosti, lze někdy problém zjednodušit a řešit snadnější úlohu

  • Jindy postačí dostatečně dobré či přibližné řešení

  • V dalších případech můžeme použít stochastické metody

    • Hladový algoritmus, heuristické algoritmy, Monte Carlo

    • Neuronové sítě, fuzzy přístupy, genetické algoritmy

    • Rojová inteligence, algoritmy na bázi mravenčích kolonií


Teorie vy slitelnosti
Teorie vyčíslitelnosti:

  • Zatímco teorie složitosti dělí problémy na

    • jednoduché

    • a obtížné

  • teorie vyčíslitelnosti dělí problémy

    • na algoritmicky řešitelné

    • a algoritmicky neřešitelné

  • Lze snadno dokázat, že existují úlohy algoritmicky neřešitelné

  • Dopady nejen zpětně do teorie, ale i velký praktický význam


Teorie automat a form ln ch jazyk
Teorie automatů a formálních jazyků:

  • Začneme gramatikami a jazyky

  • Noam Chomski (* 1928)

    • (1956 – Cambridge , MA)

    • matematický model gramatiky

  • Teorie formálních jazyků je velmi propracovaná

  • Důležitý praktický význam

    • programovací musí být vhodně definovaný a specifikovaný

    • program napsaný ve vyšším programovacím jazyce je nutné před provedením přeložit do jazyka instrukcí konkrétního počítače – tuto funkci plní překladač


Teorie automat a form ln ch jazyk1
Teorie automatů a formálních jazyků:

  • Překladač je program, který jako vstupní data zpracovává text zapsaný v nějakém jazyce.

  • Rozlišujeme

    • Kompilační překladače (kompilátory)

    • Interpretační překladače (interprety)


Teorie automat a form ln ch jazyk2
Teorie automatů a formálních jazyků:

  • Kompilátor je program, který čte program ve vyšším programovacím jazyce (zdrojový kód) a produkuje cílový program (spustitelný kód)

    • Zdrojový jazyk (C++)

    • Cílový jazyk (jazyk instrukcí)

    • Implementační jazyk - (překladač = program) => jazyk, ve kterém je napsán překladač(C++)

Zdrojový kód

Cílový kód

Kompilátor


Teorie automat a form ln ch jazyk3
Teorie automatů a formálních jazyků:

  • Interpret je program, který čte zdrojový program, analyzuje jej a zajišťuje provádění příslušných operací („interpretuje program“).

  • Jednodušší vývoj interpretu, jednodušší ladění programů, snadná portabilita – potřeba interpretu ke spuštění, pomalejší běh („interpretační režie“ - analýza při každém spuštění, nebývá používána optimalizace)

Vstupní data

Zdroj

Interpretační překladač

Výsledky


Proces p ekladu
Proces překladu:

  • Lze rozdělit na čtyři části

    • Lexikální analýza

    • Syntaktická analýza

    • Zpracování sémantiky

    • Generování cílového kódu

  • Program musí být vytvořen podle jistých pravidel, která vyplývají z definice jazyka

  • Analýza postupně ověřuje platnost těchto pravidel

  • Rozdělení na části i jejich pořadí má svůj význam


Lexik ln anal za
Lexikální analýza:

  • Lexikální analýza kontroluje jednotlivé znaky programu a ze znaků vytváří vyšší jednotky (číslo, identifikátor, příkaz)

  • Každé slovo jazyka musí být vytvořeno v souladu s gramatikou (pravidly) daného jazyka

  • Kontroluje se přípustnost znaků i struktura slova

  • Příklad:

    počet faktur x pocet_faktur

    0.234.567 x 0.234567

    0.87+F06 x 0.87+E06


Dal postup p ekladu
Další postup překladu:

  • Syntaktická analýza kontroluje správnost vyšších jednotek jazyka

  • Příklad:

    if (podmínka) then (příkaz)

    if (podmínka) then (příkaz) else (příkaz)

    repeat (posloupnost příkazů) until

  • Sémantická analýza kontroluje význam vět

  • Příklad:

    if Pole=2 then ….. (Pole je typu array)

  • Poté následuje generování cílového kódu


Realizace p ekladu
Realizace překladu:

  • Rozdělení analýzy na lexikální a syntaktickou má svoje důvody v teorii formálních jazyků

  • Lexikální analýzu lze realizovat jednoduššími a účinnějšími prostředky a na základě specifikace jazyka lze snadno sestrojit lexikální analyzátor

  • Syntaktická analýza vyžaduje složitější prostředky, ale i zde je možné využít teorii automatů a formálních jazyků ke konstrukci analyzátoru

  • Využitím formalismu gramatik a automatů lze konstruovat analyzátory automaticky a tím zkrátit čas potřebný k jejich tvorbě a současně i zvýšit spolehlivost překladače