Booleovská algebra. Booleovské binární a unární funkce. Základní zákony. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 1 / 30
Obsah přednášky 1 Booleovská funkce 2 Přehled unárních booleovských funkcí 3 Přehled binárních booleovských funkcí 4 Booleovská algebra 5 Tautologie a kontradikce 6 Převod pravdivostní tabulky na formuli Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 2 / 30
Booleovská funkce 1. Úvod Spojité veličiny: Proměnné veličiny, které nabývají nekonečného množství hodnot. Lze je popsat spojitými proměnnými a vyjádřit reálnými datovými typy. Diskrétní veličiny: Proměnné veličiny, které nabývají konečného množství hodnot. Lze je popsat diskrétními proměnnými a vyjádřit celočíselnými datovými typy. Booleovská algebra: Proměnné veličiny nabývají hodnot 0,1. Hodnotu 0 lze interpretovat jako nepravda, hodnotu 1 jako pravda. Obě hodnoty lze simulovat fyzikálně: prochází proud, neprochází proud. V informatice hraje velmi výraznou roli při konstrukci relací. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 3 / 30
2. Booleovská funkce Definition Booleovská funkce Booleovskou funkci f s argumenty x 1,..., x n označujeme takovou funkci y = f (x 1,..., x n ), která libovolné kombinaci argumentů přiřadí funkční hodnotu f (x 1,..., x n ) {0, 1} Počet argumentů n obecně libovolný, většinou bývá konečný, n Z + : n = 1: unární booleovská funkce. n = 2: binární booleovská funkce. Definiční obor booleovské funkce: x i = {0, 1}, k = Df = 2 n. Počet booleovských funkcí m = 2 k. Vektor kombinací β Vektor β tvořený konečnou uspořádanou posloupností nul a jedniček vyjádřený ve tvaru (β 1, β 2,..., β n ), kde { 0 β i = f (x 1,..., x n ) = 1 Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 4 / 30
Booleovská funkce 3. Pravdivostní tabulka Udává závislost funkčních hodnot f (x 1,..., x n ) na hodnotách argumentu (x 1,..., x n ). x 1 x 2... x n f (x 1,..., x n ) 0, 1 0, 1... 0, 1 0, 1 0, 1 0, 1... 0, 1 0, 1 0, 1 0, 1... 0, 1 0, 1 0, 1 0, 1... 0, 1 0, 1 0, 1 0, 1... 0, 1 0, 1............... Počet řádků pravdivostní tabulky dán definičním oborem booleovské funkce: unární booleovská funkce = dva řádky x dva sloupce, binární booleovská funkce = čtyři řádky x tři sloupce. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 5 / 30
Přehled unárních booleovských funkcí 4. Unární booleovská funkce Unární booleovská funkce pracuje pouze s jednou proměnnou: f (x) {0, 1}. Definiční obor unární funkce dán 2 1 hodnotami. Existuje 2 21 unárních booleovských funkcí. Přehled unárních booleovských funkcí: Falsum. Negace. Aserce. Verum. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 6 / 30
Přehled unárních booleovských funkcí 5. Falsum Funkci y = f 1 (x) nazýváme falsum, jestliže platí f 1 (0, 1) {0}. Tato funkce libovolné hodnotě x přiřazuje hodnotu nepravda. Pravdivostní tabulka funkce f 1 (x): x f 1 (x) 0 0 1 0 Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 7 / 30
6. Negace Přehled unárních booleovských funkcí Funkci y = f 2 (x) nazýváme negací, jestliže platí { 1 pro x = 0 f 2 (0, 1) = 0 pro x = 1. Negace je nejznámější a nejčastěji používanou unární funkcí. Přiřazuje hodnotě f (x) opačnou hodnotu proměnné x. Označení negace: x. Pravdivostní tabulka negace: x f 1 (x) 0 1 1 0 V programovacích jazycích odvozených od jazyka C bývá negace označována symbolem!. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 8 / 30
Přehled unárních booleovských funkcí 7. Aserce Funkci y = f 3 (x) nazýváme asercí, jestliže platí { 1 pro x = 1 f 2 (0, 1) = 0 pro x = 0. Aserce přiřazuje hodnotě f (x) hodnotu proměnné x. Pravdivostní tabulka aserce: x f 1 (x) 0 0 1 1 Tato funkce se v praxi příliš nepoužívá. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 9 / 30
Přehled unárních booleovských funkcí 8. Verum Funkci y = f 4 (x) nazýváme verum, jestliže platí f 4 (0, 1) {1} Tato funkce libovolné hodnotě x přiřazuje hodnotu pravda. Pravdivostní tabulka verum: x f 1 (x) 0 1 1 1 Tato funkce se v praxi příliš nepoužívá. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 10 / 30
Přehled binárních booleovských funkcí 9. Binární booleovská funkce Binární booleovské funkce pracují s dvojicí argumentů x 1, x 2, platí f (x 1, x 2 ) {0, 1}. Definiční obor binární funkce dán 2 2 hodnotami. Existuje 2 212 = 16 binárních booleovských funkcí. Nejčastěji používané booleovské binární funkce: Konjunkce Disjunkce Negace konjunkce Negace disjunkce Ekvivalence Nonekvivalence Implikace. Definiční obor každé binární booleovské funkce je tvořen 2 2 hodnotami. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 11 / 30
10. Konjunkce Přehled binárních booleovských funkcí Konjunkcí neboli logickým součinem nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 0 1 0 0 1 1 1 Funkční hodnota je rovna jedné pouze v případě, kdy jsou oba vstupní argumenty x 1, x 2 rovny jedné. Logický součin označujeme znakem, zápis a b čteme jako a i b. Pro vyjádření konjunkce používáme logickou spojku AND. V programovacích jazycích odvozených od jazyka C bývá konjunkce označována symbolem &&. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 12 / 30
11. Disjunkce Přehled binárních booleovských funkcí Disjunkcí neboli logickým součtem nazýváme takovou funkci f popsanou následující pravdivostní tabulkou: x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 1 Poslední řádkou tabulky se disjunkce liší od obyčejného součtu. Funkční hodnota je rovna nule pouze v případě, kdy jsou oba vstupní argumenty x 1, x 2 rovny nule. Logický součet označujeme znakem, zápis a b čteme jako a nebo b. Pro vyjádření disjunkce používáme logickou spojku OR. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 13 / 30
Přehled binárních booleovských funkcí 12. Negace konjunkce Negaci logického součinu nazýváme takovou funkci f popsanou následující pravdivostní tabulkou. x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 1 1 0 1 1 1 0 Funkční hodnota nabývá jedné v případě, kdy oba argumenty x 1, x 2 nejsou rovny jedné. Tuto funkci nazýváme Shefferovou funkcí. Pro její vyjádření používáme logickou spojku NAND. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 14 / 30
Přehled binárních booleovských funkcí 13. Negace disjunkce Negaci logického součtu nazýváme takovou funkci f popsanou následující pravdivostní tabulkou. x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 0 1 0 0 1 1 0 Funkční hodnota nabývá jedné v případě, kdy oba argumenty x 1, x 2 nejsou jsou rovny nule. Tuto funkci nazýváme Pierceovou funkcí. Pro její vyjádření používáme logickou spojku NOR. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 15 / 30
Přehled binárních booleovských funkcí 14. Nonekvivalence Nonekvivalencí nazýváme takovou funkci f popsanou následující pravdivostní tabulkou. x 1 x 2 f (x 1, x 2 ) 0 0 0 0 1 1 1 0 1 1 1 0 Funkce je analogií sčítání, označujeme ji znakem. Její hodnota je pravdivá pokud se oba argumenty x 1, x 2 liší. Pro její vyjádření používáme XOR= exlucive OR. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 16 / 30
15. Implikace Přehled binárních booleovských funkcí Implikací nazýváme takovou funkci f popsanou následující pravdivostní tabulkou. x 1 x 2 f (x 1, x 2 ) 0 0 1 0 1 1 1 0 0 1 1 1 U implikace je důležité pořadí argumentů x 1, x 2, x 1 je p edpoklad a x 2 je tvrzení. Implikaci lze interpretovat jako Jestliže platí x 1, pak platí x 2. Funkční hodnota nabývá hodnoty nepravda, pokud je první výrok pravdivý a druhá nepravdivý. Pro vyjádření implikace používáme. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 17 / 30
Přehled binárních booleovských funkcí 16. Vztahy mezi booleovskými funkcemi Každou booleovskou funkci lze vyjádřit kombinací ostatních booleovských funkcí stejné třídy. Funkce lze vzájemně upravovat a zjednodušovat. Úpravy musí být ekvivalentní, nesmí se při nich změnit pravdivostní hodnota výrazu. Příklad Schefferova funkce: f (x 1, x 2 ) = x 1 x 2 = x 1 x 2. Pierceova funkce: f (x 1, x 2 ) = x 1 x 2 = x 1 x 2. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 18 / 30
Booleovská algebra 17. Booleovská algebra Je tvořena booleovskými funkcemi s konečným počtem argumentů s definovanými algebraickými pravidly. V praxi pracuje pouze se 3 základními booleovskými unárními a binárními funkcemi: negací, konjunkcí, disjunkcí. Booleovská formule: Konečný logický výraz obsahují kombinace elementárních booleovských funkcí, jehož pravdivost lze vyhodnotit (viz dále). Minimalizace formule: Zápis logického výrazu s co nejmenším počtem logických funkcí a argumentů. Cílem zjednodušení a zpřehlednění formule. Praktické využití šetření strojovým časem při vyhodnocování výrazu. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 19 / 30
Booleovská algebra 18. Booleovská formule a jejich identita Booleovskou formulí označujeme logický výraz V tvořený konečným počtem m booleovských funkcí f a n booleovských proměnných x V = (f (1) (x 1 ), f (1) (x 2 ),..., f (1) (x n ),...,..., f (m) (x 1 ), f (m) (x 2 ),..., f (m) (x n )). Identita formulí: Ověřuje existenci ekvivalence mezi dvěma booleovskými formulemi. Využíváme zákony booleovské algebry (unární zákony,binární zákony) + provádíme její minimalizaci. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 20 / 30
Booleovská algebra 19. Priorita booleovských operací Udává, v jakém pořadí jsou jednotlivé booleovské operace prováděny => analogie s běžnými aritmetickými operacemi. Vyhodnocování výrazu z leva do prava. Pravidlo priority operací: Pravidlo priority operací platí následujícím způsobem: 1 Negace. 2 Konjunkce. 3 Disjunkce. Změna priorit operací: Pořadí vyhodnocování booleovských operací lze změnit prostřednictvím závorek. Příklad: platí následující ekvivalence?: V 1 (x, y, z) : x (y z x) = (x y) z x. Neplatí. V 2 (x, y, z) : (x y) z x) = x y z x. Platí. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 21 / 30
Booleovská algebra 20. Booleovské unární zákony Zákon dvojí negace: Zákon vyloučení třetí možnosti: Zákon sporu: Zákony opakování (idempotence): Zákony neutrálnosti: Zákony agresivnosti: x = x (1) x x = 1 (2) x x = 0 (3) x x = x (4) x x = x (5) x 0 = x (6) x 1 = x (7) x 1 = 1 (8) x 0 = 0 (9) Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 22 / 30
Booleovská algebra 21. Booleovské binární zákony (1/2) Komutativní zákony: x 1 x 2 = x 2 x 1 (10) x 1 x 2 = x 2 x 1 (11) Asociativní zákony: x 1 (x 2 x 3 ) = (x 1 x 2 ) x 3 (12) x 1 (x 2 x 3 ) = (x 1 x 2 ) x 3 (13) Distributivní zákony: x 1 (x 2 x 3 ) = (x 1 x 2 ) (x 1 x 3 ) (14) x 1 (x 2 x 3 = (x 1 x 2 ) (x 1 x 3 ) (15) Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 23 / 30
Booleovská algebra 22. Booleovské binární zákony (2/2) De Morganovy zákony: (x 1 x 2 ) = x 1 x 2 (16) (x 1 x 2 ) = x 1 x 2 (17) Adsorpční zákony: x 1 (x 1 x 2 ) = x 1 (18) x 1 (x 1 x 2 ) = x 1 (19) Zákony adsorpce negace: x 1 (x 1 x 2 ) = x 1 x 2 (20) x 1 (x 1 x 2 ) = x 1 x 2 (21) Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 24 / 30
Booleovská algebra 23. Příklad použití booleovských zákonů Zjednodušte s využitím booleovských unárních a binárních zákonů následující formuli: V (x 1, x 2 ) = (((x 1 x 2 ) (x 1 x 2 )) x 1 V = ((x 1 x 2 ) (x 1 x 2 )) x 1 (18) = ((x 1 x 2 ) (x 1 x 2 )) x 1 (2.) = 0 x 1 (4) = x 1. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 25 / 30
Tautologie a kontradikce 24. Tautologie Představuje booleovskou formuli, která je vždy pravdivá. Pro libovolnou kombinaci argumentů nabývá hodnoty pravda. Většina booleovských unárních a binárních zákonů představují tautologie. Tautologie se ve formalizovaných jazycích používají při posuzování identity vztahů, důkazech, atd. Nejjednodušší tautologii představuje zákon dvojí negace x = x. Při navrhování podmínek sloužících k ukončení cyklu či rekurze je nutno dát pozor, aby formule nebyla tautologií, a nevznikl nekonečný cyklus či nekonečná rekurze. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 26 / 30
Tautologie a kontradikce 25. Kontradikce Kontradikce představuje booleovskou formuli, která je vždy nepravdivá. Pro libovolnou kombinaci argumentů nabývá hodnoty nepravda. Kontradikce je negací tautologie, tautologie je negací kontradikce. Příkladem kontradikce je zákon sporu x x = 0. Při navrhování podmínek sloužících k ukončení cyklu či rekurze je nutno dát pozor, aby formule nebyla kontradikcí, a nevznikl nekonečný cyklus či nekonečná rekurze. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 27 / 30
Tautologie a kontradikce 26. Příklad Ověřte, zda jsou následující formule tautologií či kontradikcí. V 1 (x) = x (x (x x)), V 2 (x 1, x 2 ) = ((x 1 x 2 ) x 1 ) (x 1 (x 2 x 1 )). Formuli V 1 (x) můžeme upravovat: V 1 (x) = x (x 1) 3= x (1) 9 = x 0 10 = 0. Formule V 1 (x) je kontradikcí. Formuli V 2 (x 1, x 2 ) můžeme upravovat: V 2 (x 1, x 2 ) = ((x 1 x 2 ) x 1 ) (x 1 ) 20 = (x 1 ) (x 1 ) 19 = 0 4 = 1. Formule V 2 (x 1, x 2 ) je tautologií. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 28 / 30
Převod pravdivostní tabulky na formuli 27. Vztah mezi formulí a pravdivostní tabulkou: Každou booleovskou formuli lze vyjádřit jako logický součet logických součinů jednotlivých argumentů a negací těchto argumentů. Tento postup představuje rozklad booleovské formule V na součet součinů. Každý řádek pravdivostní tabulky lze zapsat jako jako dílčí formuli V i : { } { } { } x V i (x 1,..., x n) = ( 1 x 2 x n... ) (22) Výslednou formuli V lze vyjádřit jako disjunkci dílčích formulí V i. x 1 x 2 x n S jednotlivými řádky pravdivostní tabulky pracujeme následujícím způsobem: vybereme pouze ty řádky, u kterých je funkční hodnota rovna 1, pokud je hodnota argumentu x i = 1, je v algebraickém výrazu argument v algebraickém výrazu vyjádřen jako x i. pokud je hodnota argumentu x i = 0, je v algebraickém výrazu argument v algebraickém výrazu vyjádřen jako x i. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 29 / 30
28. Příklad Převod pravdivostní tabulky na formuli Booleovská formule V (x 1, x 2, x 3 ) je dána následující pravdivostní tabulkou, nalezněte její algebraické vyjádření. x 1 x 2 x 3 f (x 1, x 2, x 3 ) 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 Pak V 1 (x 1, x 2, x 3 ) = x 1 x 2 x 3, V 3 (x 1, x 2, x 3 ) = x 1 x 2 x 3, V 6 (x 1, x 2, x 3 ) = x 1 x 2 x 3. Výslednou formuli můžeme vyjádřit jako V (x 1, x 2, x 3 ) = V 1 (x 1, x 2, x 3 ) V 3 (x 1, x 2, x 3 ) V 6 (x 1, x 2, x 3 ) = x 1 x 2 x 3 x 1 x 2 x 3 x 1 x 2 x 3. Tomáš Bayer bayertom@natur.cuni.cz (Katedra aplikované Booleovská geoinformatiky algebra. a kartografie, Přírodovědecká fakulta UK.) 30 / 30