Teoretick - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

Teoretick

Description:

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 ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 20
Provided by: Hyn46
Category:

less

Transcript and Presenter's Notes

Title: Teoretick


1
Teoretická informatika
  • Garant predmetu Josef Hynek
  • Hodinová dotace 2/2
  • Cíl predmetu
  • Poskytnout studentum dostatecný prehled o
    teoretických základech informatiky. Predmet je
    rozdelen do trí cástí, které postupne pokrývají
    oblast automatu a formálních gramatik, teorii
    vycíslitelnosti a teorii složitosti.

2
Sylabus
  • Konecné automaty, ekvivalence automatu, iteracní
    lemma, dosažitelnost a ekvivalence stavu, redukce
    a normalizace konecných automatu,
    nedeterministické konecné automaty
  • Regulární výrazy, Kleenova veta, prevod
    regulárního výrazu na automat, prevod automatu na
    regulární výraz
  • Chomského hierarchie gramatik, bezkontextové
    gramatiky, derivacní stromy, zásobníkové
    automaty, prijímání prázdným zásobníkem a
    koncovým stavem, iteracní (pumping) lemma
  • Kontextové gramatiky, Turingovy stroje, ruzné
    typy Turingových stroju, definice algoritmu,
    univerzální Turinguv stroj
  • Rozhodovací problémy, problém zastavení Turingova
    stroje, Postuv problém prirazení a jeho aplikace
  • Teorie složitosti, casová a prostorová složitost,
    analýza algoritmu a merení složitosti
  • Definice tríd P a NP, polynomiální prevoditelnost
    problému, pojem NP-úplnosti, príklady NP-úplných
    problému, približná rešení težkých problému

3
Doporucená literatura
  • Sipser, M., Introduction to the Theory of
    Computation Course Technology, 2nd Ed., Thomson,
    Boston, MA, 2006.
  • Kurz http//oliva.uhk.cz/ - RNDr. Andrea
    Ševcíková
  • Hopcroft, J.E., Motwani, R., Ullman, J.D.
    Introduction to Automata Theory, Languages, and
    Computation (2nd Edition), Addison Wesley, 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 the Theory of
    NP-Completeness (Series of Books in the
    Mathematical Sciences), W.H. Freeman 1979.
  • Kucera, 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/vyuk
    a/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 )
  • Kucera, A. Vycíslitelnost. On-line výukové
    materiály MFF UK (http//ktiml.ms.mff.cuni.cz/vyuk
    a/materialy.html )

4
Zpusob ukoncení predmetu
  • Zápocet
  • písemný test
  • (uprostred semestru termín bude vcas oznámen)
  • Zkouška
  • písemná a ústní
  • Rozsah zkoušené látky
  • odpovídá obsahu prednášek

5
Predmet studia teoretické informatiky
  • Jak pocítac interpretuje ci prekládá program?
  • Jak rychle bude výpocet probíhat?
  • Jaké jsou možnosti pocítacu?
  • Jaké jsou jejich limity?
  • Co muže a co nemuže být vypocteno?
  • Proc jsou nekteré výpocty prakticky ci vubec
    nerealizovatelné?

6
Teoretický predmet težký a nudný?
  • Bez porozumení základním principum zustává
    poznání jen na povrchu
  • Teorie rozvíjí zpusob myšlení a dává obecný
    nadhled
  • Celá rada poznatku má zásadní význam pro praxi
  • Návrh rychlých algoritmu pro urcitý problém vs.
    návrh težko rozluštitelných kódu a šifer
  • Zatímco konkrétní technické znalosti (napr.
    urcitý programovací jazyk) se rychle mení, teorie
    zustává stejná (gramatiky a formální jazyky)

7
Oblasti pokryté v rámci tohoto predmetu
  • Teorie automatu
  • Teorie složitosti
  • Teorie vycíslitelnosti
  • Všechny tri teorie vznikaly postupne v minulém
    století spolu s rozvojem výpocetní techniky a
    jejich cílem bylo nalézt odpovedi na otázku
    rozsahu možností pocítacu.
  • Pocítac se za více než 60 let zmenil k nepoznání,
    ale zmenily se principiálne i jeho schopnosti
    rešit problémy?

8
Teorie automatu
  • Matematické modely výpocetních stroju
  • Ruzné možnosti definice výpoctu a výpocetních
    stroju
  • Ruzné modely ruzné možnosti?
  • Aplikace v oblasti
  • zpracování textu
  • interpretace a prekladu programovacích jazyku
  • rozpoznávání vzoru (pattern matching)

9
Teorie složitosti
  • Nekteré problémy jsou jednoduché
  • trídení
  • Jiné jsou složité
  • problém obchodního cestujícího
  • faktorizace prirozeného císla
  • Zpusob klasifikace problému do urcitých tríd
  • Možnost demonstrovat, že urcitý problém je
    težký
  • Využití
  • pri návrhu algoritmu pro príslušný problém
  • v oblasti kryptografie

10
Co s težkými problémy?
  • Je podstatné, že víme a umíme prokázat, že
    problém je težký
  • Chápeme-li duvod obtížnosti, lze nekdy problém
    zjednodušit a rešit snadnejší úlohu
  • Jindy postací dostatecne dobré ci približné
    rešení
  • V dalších prípadech mužeme použít stochastické
    metody
  • Hladový algoritmus, heuristické algoritmy, Monte
    Carlo
  • Neuronové síte, fuzzy prístupy, genetické
    algoritmy
  • Rojová inteligence, algoritmy na bázi mravencích
    kolonií

11
Teorie vycíslitelnosti
  • Zatímco teorie složitosti delí problémy na
  • jednoduché
  • a obtížné
  • teorie vycíslitelnosti delí problémy
  • na algoritmicky rešitelné
  • a algoritmicky nerešitelné
  • Lze snadno dokázat, že existují úlohy
    algoritmicky nerešitelné
  • Dopady nejen zpetne do teorie, ale i velký
    praktický význam

12
Teorie automatu a formálních jazyku
  • Zacneme gramatikami a jazyky
  • Noam Chomski ( 1928)
  • (1956 Cambridge , MA)
  • matematický model gramatiky
  • Teorie formálních jazyku je velmi propracovaná
  • Duležitý praktický význam
  • programovací musí být vhodne definovaný a
    specifikovaný
  • program napsaný ve vyšším programovacím jazyce je
    nutné pred provedením preložit do jazyka
    instrukcí konkrétního pocítace tuto funkci plní
    prekladac

13
Teorie automatu a formálních jazyku
  • Prekladac je program, který jako vstupní data
    zpracovává text zapsaný v nejakém jazyce.
  • Rozlišujeme
  • Kompilacní prekladace (kompilátory)
  • Interpretacní prekladace (interprety)

14
Teorie automatu a formálních jazyku
  • Kompilátor je program, který cte 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í)
  • Implementacní jazyk - (prekladac program) gt
    jazyk, ve kterém je napsán prekladac (C)

Zdrojový kód
Cílový kód
Kompilátor
15
Teorie automatu a formálních jazyku
  • Interpret je program, který cte zdrojový program,
    analyzuje jej a zajištuje provádení príslušných
    operací (interpretuje program).
  • Jednodušší vývoj interpretu, jednodušší ladení
    programu, snadná portabilita potreba interpretu
    ke spuštení, pomalejší beh (interpretacní režie
    - analýza pri každém spuštení, nebývá používána
    optimalizace)

Vstupní data
Zdroj
Interpretacní prekladac
Výsledky
16
Proces prekladu
  • Lze rozdelit na ctyri cásti
  • Lexikální analýza
  • Syntaktická analýza
  • Zpracování sémantiky
  • Generování cílového kódu
  • Program musí být vytvoren podle jistých pravidel,
    která vyplývají z definice jazyka
  • Analýza postupne overuje platnost techto pravidel
  • Rozdelení na cásti i jejich poradí má svuj význam

17
Lexikální analýza
  • Lexikální analýza kontroluje jednotlivé znaky
    programu a ze znaku vytvárí vyšší jednotky
    (císlo, identifikátor, príkaz)
  • Každé slovo jazyka musí být vytvoreno v souladu s
    gramatikou (pravidly) daného jazyka
  • Kontroluje se prípustnost znaku i struktura slova
  • Príklad
  • pocet faktur x pocet_faktur
  • 0.234.567 x 0.234567
  • 0.87F06 x 0.87E06

18
Další postup prekladu
  • Syntaktická analýza kontroluje správnost vyšších
    jednotek jazyka
  • Príklad
  • if (podmínka) then (príkaz)
  • if (podmínka) then (príkaz) else (príkaz)
  • repeat (posloupnost príkazu) until
  • Sémantická analýza kontroluje význam vet
  • Príklad
  • if Pole2 then .. (Pole je typu array)
  • Poté následuje generování cílového kódu

19
Realizace prekladu
  • Rozdelení analýzy na lexikální a syntaktickou má
    svoje duvody v teorii formálních jazyku
  • Lexikální analýzu lze realizovat jednoduššími a
    úcinnejšími prostredky a na základe specifikace
    jazyka lze snadno sestrojit lexikální analyzátor
  • Syntaktická analýza vyžaduje složitejší
    prostredky, ale i zde je možné využít teorii
    automatu a formálních jazyku ke konstrukci
    analyzátoru
  • Využitím formalismu gramatik a automatu lze
    konstruovat analyzátory automaticky a tím zkrátit
    cas potrebný k jejich tvorbe a soucasne i zvýšit
    spolehlivost prekladace
Write a Comment
User Comments (0)
About PowerShow.com