Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Teoretické základy informatiky Tomáš Foltýnek Teoretické základy informatiky Mgr. Tomáš Foltýnek, Ph.D.

Podobné prezentace


Prezentace na téma: "Teoretické základy informatiky Tomáš Foltýnek Teoretické základy informatiky Mgr. Tomáš Foltýnek, Ph.D."— Transkript prezentace:

1 Teoretické základy informatiky Tomáš Foltýnek Teoretické základy informatiky Mgr. Tomáš Foltýnek, Ph.D. tel kancelář Q2.55

2 Teoretické základy informatiky Rozdělit na dvě přednášky! strana 2

3 Teoretické základy informatiky Cíle předmětu Poskytnout základní teoretické znalosti –Výroková logika –Predikátová logika –Teorie množin –Teorie grafů –Kybernetika a teorie systémů Teoretické vzdělání odlišuje VŠ vzdělaného člověka od obyčejného „kodéra“ Posílit logické myšlení Naučit se formálně správně zapisovat myšlenky strana 3

4 Teoretické základy informatiky Osnova předmětu Matematická logika –Základy výrokové logiky –Formy zápisu výrokových formulí –Deduktivní soustava –Predikátová logika –Struktury a teorie Teorie množin –Základní pojmy z teorie množin –Kartézský součin, relace –Zobrazení, operace –Obtížné úlohy z teorie množin Teorie grafů –Základní pojmy z teorie grafů –Grafové algoritmy –Implementace grafů strana 4

5 Teoretické základy informatiky Forma výuky předmětu Informatika stojí na matematice Budování matematických poznatků: –Primitivní pojem = pojem, jehož význam se nedefinuje (je zřejmý nebo bez obsahu) –Axiom = a priori pravdivé tvrzení, které se nedokazuje a o jehož pravdivosti se nediskutuje –Definice = na základě již známých pojmů definujeme nový pojem –Věta = tvrzení, které není na první pohled zřejmé a jehož platnost je třeba dokázat –Lemma = pomocné tvrzení –Důkaz = z již dokázaných tvrzení se odvodí platnost dokazovaného tvrzení –Příklad = ukázka, ilustrace –Poznámka = jakékoliv povídání okolo strana 5

6 Teoretické základy informatiky Studijní materiály Vaníček, J.: Teoretické základy informatiky. Praha: Alfa, ISBN Slidy z přednášek E-learningová osnova/opora v UIS Google, Wikipedia (anglická!) strana 6

7 Teoretické základy informatiky Ukončení předmětu Zápočet –Účast na cvičení + plnění úkolů –Tři průběžné písemky (3 x 10b.) Nutno získat na každou min. 4 body Nutno získat v součtu min. 18 bodů Celkem 3 možnosti opravy –Udělení zápočtu je plně v kompetenci cvičícího –Pro opakující studenty: Zápočty nerecyklujeme! Závěrečná písemná zkouška –Teoretická část (10 x 2b.) –Praktická část (8 x 5b.) –Je třeba získat min. 60% bodů z každé části strana 7

8 Teoretické základy informatiky Prosba: Komunikujte Ptejte se na přednáškách, cvičeních Chcete-li něco procvičit, pošlete včas Konzultační hodiny po domluvě em strana 8

9 Teoretické základy informatiky Dotazy K formě a organizaci předmětu ? strana 9

10 Teoretické základy informatiky Tomáš Foltýnek Část I: Matematická logika

11 Teoretické základy informatiky Osnova matematické logiky Výroková logika Predikátová logika Důkazové metody Matematické struktury a teorie strana 11

12 Teoretické základy informatiky Výroková logika I. Součást matematiky –základní stavební kámen –informatika stojí na matematice Zkoumá tvrzení, výroky, pravdivost, nepravdivost, důsledky, úsudky Přímé použití –formulace podmínek v programování (a následné optimalizaci algoritmu) –návrh logických obvodů (v procesorech aj.) –formulace databázových dotazů strana 12

13 Teoretické základy informatiky Výroková logika II. Etymologie –řecké slovo logos = rozum, smysl Dělení logiky –intuitivní logika = co nám připadá „logické“ na základě zkušeností –formální (matematická) logika = zkoumá pouze, zda dané tvrzení vyplývá z daných předpokladů Osobnosti –G.W. Leibniz, B. Bolzano, G. Boole, G. Cantor, B. Russel, K. Gödel strana 13

14 Teoretické základy informatiky Výrok Def.: Výrok je tvrzení (oznamovací věta v přirozeném jazyce), o němž je smysluplné prohlásit, zda je pravdivé, či nepravdivé. Příklady výroků –Hlavní město Burkiny Faso je Ouagadougou –Na vrcholku Mt. Everestu je právě teď teplota -8,6°C –1 + 1 = 3 –Během promítání tohoto slajdu na Zemi vyhynulo 5 biologických druhů –Nebude-li pršet, nezmoknem Věty, které nejsou výroky –Kolik je hodin? –Každé koťátko je roztomilé strana 14

15 Teoretické základy informatiky Složený výrok Def.: Složeným výrokem rozumíme takový výrok, který je tvořen souvětím, tj. více výroky spojenými logickými spojkami. Příklady složených výroků –Nebude-li pršet, nezmoknem –Jestliže je to pravda, pak jsem papež Pozn.: Za výroky budeme prozatím považovat pouze tvrzení týkající se jednoho objektu, tj. ne tvrzení typu –Každé číslo dělitelné 6 je dělitelné 2 a 3 –Kdo jinému jámu kopá, sám do ní padá Tato tvrzení budou předmětem zkoumání predikátové logiky strana 15

16 Teoretické základy informatiky Součásti formálního jazyka VL Výroky označíme symboly –výrokové proměnné –logické proměnné –atomické výrokové formule –a, b, c, p, q, r, s, x, y, z, … Pro logické spojky zavedeme symboly – , , , ,  Pro zdůraznění priority slouží kulaté závorky –(, ) strana 16

17 Teoretické základy informatiky Definice výrokové formule Za výrokovou formuli (VF) budeme považovat takovou posloupnost symbolů jazyka VL, pro kterou platí: –Každý elementární výrok je (atomická) VF –Je-li a VF, pak také  a je VF –Jsou-li a, b VF, pak také (a  b), (a  b), (a  b), (a  b) jsou VF –Nic jiného není VF strana 17

18 Teoretické základy informatiky Podformule výrokových formulí Def.: Formule b se nazývá bezprostřední podformulí formule c, má-li c jeden z následujících tvarů:  b, (a  b), (b  a), (a  b), (b  a), (a  b), (b  a), (a  b), (b  a) Def.: Formule b se nazývá (běžnou) podformulí formule c, jestliže existuje taková posloupnost formulí c 1, c 2, …, c m, m  1, že c 1 = b, c m = c a c i-1 je bezprostřední podformulí formule c i pro každé i = 2, 3, … m. Pozn.: Rozklad formule na podformule tvoří stromovou strukturu až k atomickým formulím strana 18

19 Teoretické základy informatiky Pravdivostní hodnota výroku Def.: Pravdivostní hodnotou (elementárního) výroku je zobrazení v: V 0  {0,1} kde V 0 je množina výrokových proměnných Pozn.: Zobrazení přiřazuje každému výroku (výrokové proměnné) hodnotu PRAVDA/NEPRAVDA, TRUE/FALSE, 0/1 –tedy jednobitovou informaci strana 19

20 Teoretické základy informatiky Pravdivostní hodnota VF Zobrazení v rozšíříme na množinu všech VF. Dostáváme zobrazení v’: V  {0,1} definované takto: –v’(a) = v(a) pro a  V 0 –jsou-li a,b VF, pak v’(  a), v’(a  b), v’(a  b), v’(a  b), v’(a  b) jsou definovány tabulkou: ab aaabababababababab strana 20

21 Teoretické základy informatiky Negace (  ) Česky: „není pravda, že“, předpona „ne“ Anglicky: not Má opačnou pravdivostní hodnotu, než původní VF –Negace a je pravdivá, pokud je a nepravdivé –Negace a je nepravdivá, pokud je a pravdivé strana 21

22 Teoretické základy informatiky Konjunkce (  ) Česky: „a zároveň“ Anglicky: „and“ Též logický součin Konjunkce a  b je pravdivá pouze v případě, že jsou současně pravdivé a i b Konjunkce a  b je nepravdivá, pokud je kterákoliv z komponent a,b nepravdivá strana 22

23 Teoretické základy informatiky Disjunkce (  ) Česky: „nebo“ Anglicky: „or“ Též logický součet Disjunkce a  b je pravdivá, pokud je pravdivá kterákoliv z komponent a,b Disjunkce a  b je nepravdivá pouze v případě, že neplatí ani a, ani b. strana 23

24 Teoretické základy informatiky Implikace (  ) Česky: „z toho plyne“ Anglicky: „if … then … “ V implikaci a  b nazýváme –a předpoklad (premisa) –b závěr (konkluze) Implikace je pravdivá, pokud z pravdivého předpokladu plyne pravdivý závěr, anebo pokud neplatí předpoklad Implikace je nepravdivá pouze v případě, že z pravdivého předpokladu plyne nepravdivý závěr Jiná vyjádření implikace a  b –Z a plyne b. Jestliže a, pak b. B je důsledkem a. A je postačující podmínkou pro b. B je nutnou podmínkou pro a. strana 24

25 Teoretické základy informatiky Ekvivalence (  ) Česky: „právě tehdy, když“ Anglicky: „if and only if“ Ekvi-valence = stejná hodnota Ekvivalence a  b je pravdivá tehdy, mají-li výroky a a b stejnou pravdivostní hodnotu –tj. jsou oba pravdivé, nebo oba nepravdivé Ekvivalence je nepravdivá, pokud mají a a b různou pravdivostní hodnotu Jiná vyjádření ekvivalence a  b –A platí tehdy a jen tehdy, když b. B platí tehdy a jen tehdy, když a. A je nutnou a postačující podmínkou pro b. B je nutnou a postačující podmínkou pro a. strana 25

26 Teoretické základy informatiky Tautologie a kontradikce Def.: Výrokovou formuli nazveme tautologie, pokud je vždy pravdivá bez ohledu na pravdivostní hodnotu výrokových proměnných, které obsahuje. Def.: Výrokovou formuli nazveme kontradikce, pokud je vždy nepravdivá bez ohledu na pravdivostní hodnotu výrokových proměnných, které obsahuje strana 26

27 Teoretické základy informatiky Věta o substitucích Nechť T(x 1, x 2, … x n ) je tautologie. Jestliže za libovolnou z proměnných x i dosadíme (ve všech výskytech) libovolnou formuli, potom výsledná formule je opět tautologií. Analogické tvrzení platí i pro kontradikce strana 27

28 Teoretické základy informatiky Význačné tautologie Zákon sporu:  (p  p) Zákon vyloučení třetího: p  p Zákon totožnosti: p  p Zákon dvojí negace:  p  p Claviův zákon (reductio ad absurdum): –(  p  p)  p –(p  p)  p Zákon Dunse Scota: (p  p)  q … strana 28

29 Teoretické základy informatiky Operace s implikací Obměna implikace –(a  b)  (  b  a) Obrácení implikace –(a  b) není totéž jako (b  a)!!! –Implikace není komutativní Tranzitivita implikace –Zákon hypotetického sylogismu –((p  q)  (q  r))  (p  r) strana 29

30 Teoretické základy informatiky Konjunkce a disjunkce Konjunkce implikuje každý ze svých členů –(p  q)  p –(p  q)  q Disjunkce je implikována každým ze svých členů –p  (p  q) –q  (p  q) strana 30

31 Teoretické základy informatiky Komutativní zákony Operace je komutativní, pokud nezáleží na pořadí operandů. Komutativní jsou konjunkce, disjunkce a ekvivalence. –NE implikace! (a  b)  (b  a) (a  b)  (b  a) (a  b)  (b  a) strana 31

32 Teoretické základy informatiky Asociativní zákony Operace je asociativní, pokud nezáleží na uzávorkování Asociativní jsou konjunkce, disjunkce a ekvivalence. –NE implikace! ((a  b)  c)  (a  (b  c)) ((a  b)  c)  (a  (b  c)) ((a  b)  c)  (a  (b  c)) strana 32

33 Teoretické základy informatiky Distributivní zákony „roznásobování“ logických spojek (a  (b  c))  ((a  b)  (a  c)) (a  (b  c))  ((a  b)  (a  c)) strana 33

34 Teoretické základy informatiky Dualita konjunkce a disjunkce deMorganovy zákony –negace konjunkce je disjunkce negací –negace disjunkce je konjunkce negací  (a  b)  (  a   b)  (a  b)  (  a   b) strana 34

35 Teoretické základy informatiky Logická ekvivalence výroků Def.: Řekneme, že výroky p a q jsou logicky ekvivalentní, jestliže výroková formule a  b je tautologie Logicky ekvivalentní výroky mají tedy vždy stejnou pravdivostní hodnotu Příklady logicky ekvivalentních výroků –(p  (q  r)))  ((p  q)  r)) –(p  q)  ((p  q)  (q  p)) strana 35

36 Teoretické základy informatiky Negování složených výroků Pozn.: Negovat složený výrok znamená formulovat výrok, který je logicky ekvivalentní s negací původního výroku a neobsahuje negaci složeného výroku jako svoji podformuli Pravidla pro negování logických spojek –  (a  b)  (  a   b) –  (a  b)  (  a   b) –  (a  b)  (a   b) –  (a  b)  ((a   b)  (b   a)) Příklad: Negujte výrokovou formuli (a  (b  c)  ((  a  c)  b) strana 36

37 Teoretické základy informatiky Úplný systém logických spojek Def.: Řekneme, že množina logických spojek L tvoří úplný systém logických spojek, jestliže ke každé formuli existuje formule, která je s ní logicky ekvivalentní, a která obsahuje pouze spojky z L. Úplný systém log. spojek tvoří: –negace a implikace –negace a konjunkce –negace a disjunkce Otázka: Kolik různých (binárních) logických spojek můžeme definovat? –Netvoří některá z nich sama o sobě úplný systém? strana 37

38 Teoretické základy informatiky Piercova a Shefferova spojka Shefferova spojka (NAND) –(a  b)   (a  b) Piercova spojka (NOR) –(a  b)   (a  b) Všechny logické spojky je možné vyjádřit pouze pomocí Shefferovy/Piercovy spojky strana 38

39 Teoretické základy informatiky Způsoby zápisu výrazů Infixový zápis –Klasický způsob – operátor je mezi operandy –3 + 5, a  b Prefixový zápis –Operátor je před operandy –+ 3 5,  a b Postfixový zápis –Operátor je za operandy –3 5 +, a b  Jedná se o různý zápis téhož výrazu –Jiná syntaxe, jiný způsob vyhodnocení –Stejná sémantika, stejný výsledek Prefix a postfix nepotřebují závorky strana 39

40 Teoretické základy informatiky Převod z infixu do prefixu Pomocí stromového rozkladu –Nakreslíme si rozklad výrazu –Přečteme kořen, pak rekurzivně levý podstrom a rekurzivně pravý podstrom Jednodušší výrazy lze intuitivně Příklad: Vyjádřete prefixovou notací formuli (a  (b  c))  (  a  b) strana 40

41 Teoretické základy informatiky Převod z infixu do postfixu Předpokládejme „dobře uzávorkovaný“ výraz Algoritmus slepé koleje –Čteme výraz v infixu zleva doprava –Proměnná pokračuje na výstup –Operátor padá do zásobníku (slepé koleje) –Levá závorka padá do zásobníku (slepé koleje) –Pravá závorka vyráží ze zásobníku vše až po levou závorku. Závorky na výstup nepíšeme –Na konci vyprázdníme zásobník Příklad: Vyjádřete postfixovou notací formuli (a  (b  c))  (  a  b) strana 41

42 Teoretické základy informatiky Vyhodnocení výrazu v postfixu Pomocí zásobníkového automatu –Čteme výraz zleva doprava –Přečteme-li operand, uložíme jej na zásobník –Přečteme-li operátor, vybereme ze zásobníku tolik operandů, kolik je arita operátoru, aplikujeme na ně operátor a výsledek uložíme na zásobník –Po dočtení výrazu je na zásobníku pouze výsledek výrazu Stejným způsobem lze převádět z postfixu do infixu Příklad: Převeďte z postfixu do infixu formuli ab  ca  b  Příklad: Vyhodnoťte postfixově zapsaný aritmetický výraz * / 1 - strana 42

43 Teoretické základy informatiky Disjunktivní normální forma Výroková formule je v disjunktivní normální formě (DNF), je-li disjunkcí formulí, pro které platí: –každá je konjunkcí atomických výrokových formulí a jejich negací –v žádné se nevyskytuje žádná atomická formule současně se svou negací DNF je úplná, pokud jsou ve všech konjunkcích stejné atomické formule strana 43

44 Teoretické základy informatiky Konjunktivní normální forma Výroková formule je v konjunktivní normální formě (KNF), je-li konjunkcí formulí, pro které platí: –každá je disjunkcí atomických výrokových formulí a jejich negací –v žádné se nevyskytuje žádná atomická formule současně se svou negací KNF je úplná, pokud jsou ve všech konjunkcích stejné atomické formule strana 44

45 Teoretické základy informatiky DNF a KNF Ke každé výrokové formuli lze nalézt ekvivalentní formuli v úplném DNF a KNF Úplný DNF/KNF je určen jednoznačně až na volbu a pořadí proměnných I prázdná disjunkce (disjunkce prázdné množiny konjunkcí) je v DNF a v KNF Jaký je algoritmus převodu do DNF/KNF? –Pomocí pravdivostní tabulky –Pomocí pravidel pro úpravy logických formulí Převeďte do (úplné) DNF a KNF formuli (a  (b  c))  (  a  b) strana 45


Stáhnout ppt "Teoretické základy informatiky Tomáš Foltýnek Teoretické základy informatiky Mgr. Tomáš Foltýnek, Ph.D."

Podobné prezentace


Reklamy Google