Vyrokova logika Zakladnim pojmem vyrokove logiky je vyrok. V tzv. dvouhodnotove logice vyrokem rozumime tvrzeni (oznamovaci větu), o kterem je smysluplne prohlasit, zda je pravdive či nikoliv. Je-li tvrzeni pravdive, řikame, že jeho pravdivostni hodnota je TRUE, neni-li pravdive, že jeho pravdivostni hodnota je FALSE. Často se hodnota TRUE koduje čislem 1, hodnota FALSE jako 0. Přiklady vyroků (pravdivych i nepravdivych) mohou byt (zname-li okamžik, kdy jejich pravdivost posuzujeme): 1. Praha je hlavni město ČR. 2. Dnes v noci bude uplněk. 3. 4 > 3 4. 1 + 1 = 3
Vyrokova logika Logicky usudek pak můžeme neformalně popsat jako metodu, jak z vyroků, jejichž pravdivostni hodnoty zname, vytvařet dalši vyroky o zname pravdivostni hodnotě. Přikladem velmi jednoducheho logickeho usudku může byt uvaha, že pokud je vyrok Pravě teď v mistě, kde se vyskytuji, neprši pravdivy, je jeho opak Pravě teď v mistě, kde se vyskytuji, prši nepravdivy (a naopak). Obvykle usudek vytvařime na zakladě vice vyroků. Napřiklad z pravdivosti vyroků: Franta je doma, nebo šel do restaurace. Je-li Franta doma, pak nas očekava. Můžeme usoudit na pravdivost vyroku: Jestliže nas Franta neočekava, pak odešel do restaurace. Při tvorbě usudků ze zakladnich (jednoduchych) vyroků vytvařime složeny vyrok.
Skládání výroků Běžny hovorovy jazyk, jako je napřiklad česky jazyk, je velice bohaty na různe slovni obraty, kterymi z jednoduchych vyroků vytvařime vyroky složene. Hlavnim ukolem vyrokove logiky je analyzovat skladani jednoduchych vyroků na složene vyroky pomoci tak zvanych logickych spojek1. Negace znamena neni pravda, že, neplati, ne-. papir je bily je vyrok Tento papir neni bily. Nejde tedy ve skutečnosti o spojku, protože se ji učastni pouze jediny vyrok. Formalně se negace vyroku x znači symbolem x, někdy tež x nebo x či NOT. Negaci vyroku Tento papir je bily je vyrok Tento papir neni bily.
Disjunkce Disjunkce znamená nebo. Ovšem nebo v tom smyslu, že se připoušti i platnost obou vyroků současně. Zde je třeba poznamenat, že čeština (pravě tak jako angličtina) neni zcela přesny jazyk v tom smyslu, že nebo ( or ) někdy může znamenat, že se obě možnosti nevylučuji, napřiklad Student u zkoušky neprospěl, protože nema dostatek nadani nebo se nepřipravil poctivě ale někdy i to, že se obě možnosti vylučuji Student zkoušku buď složi, nebo nesloži. Klasicka latina obě spojky pečlivě odlišuje (vel a aut). V logice je zvykem chápat nebo vždy jako nevylučujici nebo. Označuje se symbolem, někdy i + či slovem OR. Disjunkce je pravdivá, když je alespoň jeden z vyroků pravdivy. Vylučujici nebo je odlišnou logickou spojkou, pro kterou se uživa symbol, respektive XOR. Pro vylučujici nebo se uživa někdy i latinske slůvko vel. Latina byla totiž jazyk přisně dbajici na přesnost a na rozdil od většiny živych jazyků obě dvě vyznamově odlišne spojky nebo důsledně odlišovala.
Konjunkce Konjunkce znamena a, i, a zaroveň. Formalně se označuje symbolem, někdy i &, připadě znakem nasobeni či slovem AND. Konjunkce je pravdiva jen tehdy, když jsou oba vyroky pravdive. Přikladem může byt věta Dnes bude jasno a zaroveň bude vysoka teplota
Implikace Implikace znamena jestliže, pak, z plyne. Formalně se označuje symbolem Implikace je nepravdiva jen tehdy, jeli prvni vyrok pravdivy a druhy vyrok nepravdivy. Jinak je vždy pravdiva. Z nespravneho předpokladu lze tedy v souladu s pravidly vyrokove logiky vyvodit cokoliv, i zjevnou nepravdu. I takovy usudek je považovan za spravny z hlediska formalni logiky. Přikladem pravdive implikace může byt vyrok Vylezu-li z rybnika, budu mokry, ale i vyrok Je-li 1 = 2, potom 2 < 1.
Ekvivalence Ekvivalence znamena tehdy a pouze tehdy, když., tehdy a jen tehdy, když, nebo pravě tehdy, když. Formalně se označuje symbolem. Ekvivalence je pravdiva vždy, když oba vyroky nabyvaji stejnych ohodnoceni, tj. oba vyroky jsou pravdive, nebo jsou oba vyroky nepravdive. Označuje nutnou a současně postačujici podminku. Ekvivalence Budu mokry tehdy a pouze tehdy, když vylezu z nevypuštěneho rybnika nebude zřejmě spravnym vyrokem, protože jsem se mohl vratit z prochazky v dešti.
Pravdivostní tabulka
Logické spojky
Syntaktická pravidla
Formule je: Formule se nazyva tautologie, jestliže je pravdiva při všech pravdivostnich ohodnocenich logickych proměnnych, a kontradikce, jestliže je při všech pravdivostnich ohodnocenich logickych proměnnych nepravdiva. Formule se nazyva splnitelna formule, jestliže existuje alespoň jedno pravdivostni ohodnoceni jejich logickych proměnnych, při kterem je pravdiva.
Normální formy Konjunktivní normální forma (CNF) = konjunkce jednoho nebo konečně mnoha formulí, kde každá z nich je literál nebo disjunkce. Příklad: (x y) ( y z ) (x r z ) Disjunktivní normální forma (DNF) = disjunkce jednoho nebo konečně mnoha formulí, kde každá z nich je literál nebo konjunkce literálů. Příklad: (x y) ( y z ) (x r z ) Formule v konjunkci u CNF je nazývána klauzule. Je to tedy disjunkce literálů nebo literál. Zavádíme pojem prázdná klauzule,která neobsahuje žádný literál a není splnitelná. Pro každou log. formuli existuje tautologicky ekvivalentní DNF formule a také tautologicky ekvivalentní CNF formule. Pro každý Booleovskývýraz existuje odpovídající CNF i DNF formule.
Meze logiky, matematické důkazy Paradoxy. Kurt Goedel, teorémy o neúplnosti axiomatických formálních systémů: žádný formální systém nemůže být zároveň úplný a bezesporný bezespornost formálního systému nelze uvnitř tohoto systému dokázat Matematický důkaz je demonstrace nutné pravdivosti nějakého tvrzení za určitých předpokladů (axiomů). Typy matematických důkazů: Přímý důkaz Důkaz sporem/nepřímý důkaz Indukce, důkaz pro n a pro n+1 Důkaz rozborem případů Důkaz výpočtem. Nelze použít žádný postup založený na názoru, experimentu, intuici, zkušenosti, analogii... Vědecký důkaz vychází z falzifikace hypotéz (Karl Popper)
blank
Booleovská algebra System logickych spojek { } je zřejmě úplny, neni však minimalni. Velmi často se uživa uplny system logickych spojek { } zvany Booleova algebra. Ani Booleova algebra neni minimalnim uplnym systemem. Jednu ze spojek konjunkce a negace lze vždy nahradit druhou. Přesto byva často pohodlnějši pracovat jak s konjunkci, tak i negaci. Vypočty provaděne v Booleově algebře velmi připomina operace s čisly nebo s prvky libovolneho algebraickeho okruhu. Proto se často použiva misto konjunkce symbol nasobeni a misto disjunkce symbol sčitani +, někdy i misto FALSE 0 a misto TRUE 1. U logickych spojek ma disjunkce nižši prioritu než konjunkce. Negaci se přiznava nejvyšši priorita. Kombinaci negace a konjunkce nebo disjunkce jsou známá hradla NAND a NOR.
Operace Booleovské algebry
blank
Predikátová logika S výrokovou logikou vědecké disciplíny nevystačí. S predikátovou logikou prvého řádu se zpravidla vystačí v matematice i informatice. Jazyk predikátové logiky obsahuje tuto abecedu: Logické symboly: 1. Konečnou nebo nekonečnou spočetnou množinu proměnných (značíme x, y, z, u, v, x 1 1, x 2,... ). 2. Logické spojky,,,, ( ). 3. Univerzální kvantifikátor (čti pro všechna ), jako zobecnění konjunkce. 4. Existenční kvantifikátor (čti existuje), jako zobecnění disjunkce.
Blank
Logické odvozováni Vychazet z pevně dane množiny předpokladů. Tyto předpoklady musi byt dany předem. Při zdůvodňovani tvrzeni se nelze neustale odvolavat na stale zřejmějši a zřejmějši fakta. Někdy je nutne skončit něčim, co je již nepochybne nebo na čem jsme se dohodli. Axiomy maji tvar logickych formuli. Mit k dispozici pravidla (axiomy) přislušne (vyrokove či predikatove) logiky. Tato pravidla maji opět tvar formuli. Mit k dispozici odvozovaci pravidla, pomoci kterych z vyroků, jejichž spravnost jsme již prokazali, můžeme vytvařet dalši vyroky, ktere budeme pokladat za spravne. Tato pravidla musi byt shodna s naši intuici a měla by byt pokud možno jednoducha. Řikame jim dedukčni pravidla.
Dedukční pravidla
Resoluční princip Pro zjišťovani, zda je či neni nějaka formule semantickym a tedy logickym důsledkem nějakych předpokladů, se nabizeji u vyrokove logiky dvě metody. Prva, tak zvana tabulkova metoda, spočiva ve vyhodnoceni všech možnych m-tic možnych pravdivostnich hodnot, ktere mohou proměnne nabyvat. To lze samozřejmě provest algoritmicky a řešit vypočetni technikou. Pro větši počty proměnnych to však naraži na časovou naročnost, protože takovych m-tic je 2 na m. Druha metoda spočiva v provedeni logickeho důkazu. Tu však algoritmizovat nelze. Slepym prověřovanim všech potencialnich dokazovacich řetězců bychom sice někdy kladnou odpověď dostali, obecně však opět za neunosnou dobu. Zapornou odpovědi bychom si však nemohli byt jisti nikdy. U predikatove logiky prva z obou cest ( tabulkova metoda ) zcela odpada, protože interpretaci predikatove formule může byt nekonečně mnoho. Cesta konstrukci logickeho důkazu naraži opět na nemožnost algoritmizace. Zatim tedy nemame prostředky, jak rozhodnuti, zda je nějaka formule důsledkem danych předpokladů, automatizovat a svěřit počitači. Častečně tento problem řeši tak zvany resolučni princip.
Prolog Typicky připad užiti resolučniho principu je jazyk PROLOG (PROgramming in LOGic), ktery vychazi z databaze poznatků tvořene atomickymi formulemi predikatove logiky, popisujicimi fakta platna v zkoumanem vyseku světa a pravidly pouze typu implikaci: (α1 α2 αm) β, ktere musi platit současně. Tyto implikace, vyjadřujici platna pravidla, převede do tvaru klausuli: α1 α2 αm β, ve kterych jsou všechny proměnne negovany, vždy pouze kromě posledni proměnne, odpovidajici důsledku. Klausule tohoto typu se nazyva Hornova klausule. Databazi PROLOGu tedy tvoři Hornovy klausule. Při ověřovani, zda, nebo pro jake hodnoty proměnnych plati zadana formule predikatoveho počtu, přida interpret k databazi negaci dotazu a resolučni metodou zkouma splnitelnost takto ziskane množiny formuli. Interprety PROLOGu ovšem zpravidla nezkoumaji všechny možne resolventy, ale aplikuji tak zvanou linearni strategii. Tato strategie spočiva v tom, že vychazi z dotazu jako cile a pokouši se jej splnit tak, že prohliži databazi postupně klausuli po klausuli a hleda možnost nalezeni resolventy. Pokud ji je schopna sestrojit, pracuje s ni jako s dilčim cilem a snaži se k ni nalezt dalši klausuli umožňujici užiti resolučniho pravidla. Přitom vždy prohliži databazi linearně od začatku, to je od prvniho uloženeho faktu či pravidla. Tato strategie umožňuje sice rychle vyhodnoceni dotazu, jeji nedokonalost vede však někdy k tomu, že kladna odpověď na dotaz neni nalezena, nebo k tomu, že se vypočetni proces dostane do nekonečneho cyklu.
Blank
Trojhodnotová logika
blank
Fuzzy logika Větši uplatněni ziskala fuzzy logika, česky mlhava logika či neostra logika. Ta umožňuje přiřadit vyrokovym a predikatovym formulim spojite spektrum možnych pravdivostnich hodnot z intervalu <0, 1>. Tvrzeni s pravdivostni hodnotou 1 je interpretovano jako bezpochyby pravdive, tvrzeni s pravdivostni hodnotou 0 jakobezpochyby nepravdive. Pravdivostni hodnoty mezi 0 a 1 vyjadřuji větši (bliže k 1) či menši (bliže k 0) miru důvěry v pravdivost tvrzeni.
Proč je vlastně fuzzy logika tak důležitá? Jednak je potřeba pracovat s vágními daty a jednak používání přesných popisů nás vede k idealizování skutečností reálného světa a tedy k odklonu od reality. Zavedení fuzzy množin Každému prvku přiřadíme stupeň příslušnosti, který vyjadřuje míru příslušnosti daného prvku do fuzzy množiny. Např.: Každé hodnotě rychlosti přiřadíme číslo z intervalu <0,1>, který vyjadřuje míru našeho přesvědčení, že daná rychlost je nízká. Čím vyšší (nižší) je stupeň příslušnosti, tím více (méně) platí, že příslušná rychlost je nízká.
Funkce příslušnosti Jeden z hlavních problémů je určení funkce příslušnosti. Funkce příslušnosti umožňuje přiřadit příslušnost k množinám v rozmezí od 0 do 1, včetně obou hraničních hodnot. Fuzzy logika tak umožňuje matematicky vyjádřit pojmy jako trochu, dost nebo hodně. Přesněji, umožňuje vyjádřit částečnou příslušnost k množině.
Průběh síly v závislosti na teplotě Teplota Síla příslušnosti Slovní vyjádření 5 0 zcela jistě není příjemná 10 0,2 asi sotva 15 0,3 sotva 20 0,5 snad 25 0,8 téměř jistě 35 1,0 zcela jistě
Je nutné si uvědomit zásadní rozdíl mezi číslicovým zpracováním (sčítání, odčítání, násobení, dělení, mocniny ) a logickým zpracováním (AND, NAND, OR, XOR ). Pokud snímáme teplotu a používáme dvouhodnotovou logiku, pak když měříme např. teplotu vody, do 100 o C nevře - log0, od 100 o C vře log1. Pokud použijeme fuzzy systém, pak můžeme předpokládat, že voda vře od 80 C do 120 C a pravdivostní hodnoty mohou být rozložené podle závislosti na obrázku
Blokové schéma fuzzyregulace