teoretick informatika
Download
Skip this Video
Download Presentation
Teoretická informatika

Loading in 2 Seconds...

play fullscreen
1 / 19

Teoretická informatika - 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 ' Teoretická informatika' - 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
ad