MASARYKOVA UNIVERZITA PEDAGOGICKÁ FAKULTA Katedra Matematiky Booleova algebra a její aplikace Bakalářská práce Brno 2016 Autor práce: Vedoucí práce: Jakub Zrůcký PhDr. Jiřina Novotná, Ph.D.
Bibliografický záznam ZRŮCKÝ, Jakub. Booleova algebra a její aplikace: bakalářská práce. Brno: Masarykova univerzita, Fakulta pedagogická, Katedra matematiky, 2016. Vedoucí bakalářské práce PhDr. Jiřina Novotná, Ph.D. Anotace Bakalářská práce Booleova algebra a její aplikace se skládá ze tří částí. První část vymezuje pojem Booleova algebra, který buduje za pomocí definic nejzákladnějších pojmů, počínaje množinou. Druhá část popisuje dva nejdůležitější modely Booleovy algebry, kterými jsou množinová algebra a algebra pravdivostních hodnot výroků. Ve třetí části obsahuje práce ukázkové příklady aplikací Booleovy algebry, především několik způsobů minimalizace výrazů. Annotation Bachelor thesis Boolean algebra and its applications is divided into three parts. The first part defines the term Boolean algebra, which is built with the help of the most basic terms, beginning with a set. The second part describes the two most important models of Boolean algebra the algebra of sets and the algebra of the truth values of propositions. In the third part there are selected examples of applications of Boolean algebra, especially several ways to achieve minimization. Klíčová slova George Boole, Booleova algebra, množinová algebra, výroková logika Keywords George Boole, Boolean algebra, algebra of sets, propositional logic 2
Poděkování Upřímně děkuji paní doktorce Jiřině Novotné za vedení této práce, nesmírně cenné připomínky a hlavně velikou ochotu a pochopení. Prohlášení Prohlašuji, že jsem bakalářskou práci zpracoval samostatně a použil jen prameny uvedené v seznamu literatury. V Brně dne 30. 3. 2016 3
Obsah Úvod... 5 1. George Boole... 6 2. Budování Booleovy algebry... 9 2.1 Množina... 9 2.2 Kartézský součin... 9 2.3 Relace... 9 2.4 Zobrazení... 9 2.5 Operace (binární)... 9 2.6 Operace (unární)... 10 2.7 Booleova algebra... 11 2.8 Princip duality... 13 3. Modely Booleovy algebry...13 3.1 Množinová algebra (2 M,,, )... 13 3.2 Algebra pravdivostních hodnot výroků (H,,, ), H = {0,1}... 14 3.2.1 Způsoby vyjádření logických funkcí... 16 4. Příklady...22 4.1 Algebraická minimalizace... 22 4.2 Rovnost množin... 25 4.3 Zjednodušení zápisů množin... 28 4.4 Minimalizace výrokové formule... 30 4.5 Minimalizace pomocí Karnaughových map... 38 4.6 Blokové a kontaktní schéma... 40 Závěr...42 Summary... 42 5. Zdroje...43 5.1 Knižní zdroje... 43 5.2 Internetové zdroje... 44 6. Seznam tabulek a obrázků:...45 4
Úvod Cílem této bakalářské práce je představit čtenářům pravděpodobně nejvýznamnější objev britského matematika George Boola, který byl na jeho počest pojmenován Booleova algebra. Na začátku práce je jeho životu, životnímu dílu a přínosu pro matematiku věnována krátká biografická poznámka. Tento na první pohled složitý koncept je budován v první části práce pomocí v logické návaznosti uvedených základních pojmů: množina, kartézský součin, relace, zobrazení a (komutativní/ asociativní/distributivní, unární/binární) operace. Finální obecná definice Booleovy algebry je složená z těchto pojmů a několika axiomů. V závěru této části je naznačeno, jak spolu tyto axiomy souvisí a vzájemně se doplňují. (Booleovu algebru je možné definovat i jako speciální typ uspořádané množiny, tzv. svazu, kterou se ale v této práci zabývat nebudeme. Konkrétně se jedná o svaz distributivní a komplementární.) Druhá část této práce je věnována dvěma nejdůležitějším modelům Booleovy algebry, kterými jsou množinová algebra a algebra pravdivostních hodnot výroků. V množinové algebře se Booleova algebra aplikuje na potenční množinu a dílčí operace převádíme na sjednocení, průnik a doplněk, zatímco ve výrokové logice na dvouprvkovou množinu pravdivostních výroků a operace na disjunkci, konjunkci, resp. negaci. V sekci algebra pravděpodobnostních hodnot výroků se také uvádí způsoby vyjádření Booleových funkcí: pravdivostní tabulka, algebraický výraz (ÚNDF, ÚNKF) nebo Karnaughova mapa. Třetí, závěrečná část obsahuje řešené příklady zaměřené především na nejdůležitější praktické využití Booleovy algebry - minimalizaci. V dnešní době se totiž setkáváme s neustálým zvyšováním nároků na snižování nákladů na výrobu a provoz všech pracovních procesů. Toho lze dosáhnout právě pomocí minimalizace neboli zjednodušování. Jedná se o postup, při kterém se snažíme naleznout nejkratší a nejjednodušší cestu k dosažení cíle. Pro toto téma své bakalářské práce jsem se rozhodl na základě faktu, který obdivuji na matematice nejvíce. Tím je skutečnost, že všechny na pohled naprosto nekompatibilní oblasti matematiky sdílí společné jádro a ač se to na první pohled nezdá, všechny spolu souvisí. 5
Booleova algebra tento fakt demonstruje nalezením spojení (nejen) mezi množinovou algebrou a logikou. 1. George Boole Zpracováno podle (Bell, 1986, 433-447). Čistá matematika byla objevena Boolem v díle, které pojmenoval Zákony myšlení. -BERTRAND RUSSEL George Boole se narodil 2. 11. 1815 v Lincolnu v Anglii, jako syn obyčejného hokynáře. Společenská třída, do které Booleův otec patřil, byla opovrhována a v podstatě v očích vyšších tříd neexistovala. Předpokládalo se, že dítě narozené v této vrstvě získá základní znalosti a dovednosti k přežití, ale rozhodně nebude zasahovat do vyšších tříd. Typickým znakem vyššího původu byla v té době znalost latiny, i přesto, že jen málo lidí ji ovládalo natolik, aby ji mohlo číst bez problémů. Znalost její gramatiky byla považována za důkaz vznešenosti a schopnosti konverzace na úrovni. Na škole, kterou Boole navštěvoval, se samozřejmě latina nevyučovala, a tak se Boole rozhodl, že pokud se má kdy dostat do vyšší vrstvy společnosti, musí se latinu a řečtinu naučit sám. Jeho otec se ho snažil podporovat, ale sám latinu neovládal, a tak alespoň George představil jinému obchodníkovi, který ho seznámil s jejími základy. Vše ostatní se musel George naučit sám. Přes všechna očekávání dokázal Boole už v osmi letech latinsky číst a ve dvanácti letech zvládal tento jazyk natolik, že přeložil Horacovy ódy do anglického verše. Pyšný otec zveřejnil tento překlad do místních novin. Znalci klasiky odmítli, že by dvanáctiletý chlapec mohl vyprodukovat takovýto překlad. Po škole musel mladý George finančně podporovat svoji rodinu, a tak se stal učitelem na dvou školách zároveň. Práce učitele ho naplňovala a umožňovala mu trávit večery dalším samostudiem. Brzy ovládal i francouzský, německý a italský jazyk. 6
Po dosažení dvaceti let otevřel Boole svoji vlastní civilní školu. Přesto, že měl základy matematiky od svého otce, aby mohl vyučovat své žáky všestranně, začal studovat matematické učebnice, které v něm okamžitě vzbudily velký zájem o tuto vědu. Abychom získali představu Booleovy mentální kapacity, představme si dvacetiletého studenta, který bez jakékoliv pomoci pochopí jedno z nejtěžších mistrovských děl, které kdy byly napsány - Mécanique céleste od Laplace, dílo sestavené z obtížných matematických zdůvodnění plných mezer, s prohlášeními jako je lehké vidět apod., nebo pochopení Mécanique analytique od Lagrange, ve kterém od začátku do konce není jediný diagram, který by osvětlil jeho analýzu. Přesto to Boole dokázal a dokonce napsal první matematický příspěvek, konkrétně esej o variacích kalkulu. Dalším objevem jeho samostudia byly invarianty. Bez tohoto objevu, který dále rozvíjeli Cayley a Sylvester, by teorie relativity nebyla možná. Šance k publikování byly v Booleových dnech mizerné, aniž by byl autor členem nějaké akademické společnosti s vlastními periodiky. Naštěstí roku 1837 byl pod vedením skotského matematika D.F.Gregoryho založen The Cambridge Mathematical Journal. Když mu Boole poslal některé ze svých prací, jejich originalita a styl Gregoryho velmi ohromila a podnítila přátelství těchto dvou mužů, které vydrželo po celý jejich život. I s Boolem potom britští matematikové posunuli abstraktní představu o algebře na vyšší úroveň, než kdy vůbec bylo považováno za možné, počínaje Peacockovým dílem Treatise on Algebra (1830), kde jednou pro vždy zbořil představu, že x,y,z v relacích jako x+y = y+x, xy = yx, x(y+z) = xy+xz apod. musí tyto proměnné nutně představovat čísla. Nemusí, a to je jeden z nejdůležitějších poznatků o algebře a síle jejích využití. Tato renovace algebry konečně umožnila Booleovi dosáhnout uznání, především když oddělil symboly matematických operací od prvků, se kterými operují, a začal je zkoumat jako samostatné objekty. Přesto, že Boole stále učil na základní škole, seznámil se s vedoucími muži britské matematiky, ať již korespondenčně či osobně. Vyprovokován slavným argumentem matematika De Morgana a skotského filozofa Hamiltona, přispěchal svému matematickému příteli na pomoc a publikoval uzoučký svazek nazvaný The Mathematical Analysis of Logic, který mu zajistil nehynoucí slávu. Přes naléhání mnoha předních matematiků té doby, odmítl Boole ortodoxní matematický trénink v Cambridgi a roku 1849 přijal místo profesora 7
matematiky na nově otevřené Queen s College. Po težkém boji s chudobou a samostudiem mu nynější finanční svoboda a příležitosti umožnily věnovat se naplno rozvíjení myšlenek jeho mistrovského díla. Ve svých devětatřiceti letech publikoval An Investigation of the Laws of Trought, on which are founded the Mathematical Theories of Logic and Probabilities. V tomto díle se Boole zabývá redukcí logiky na velice jednoduchý typ algebry. Logická dedukce se v této algebře stává pouhou elementární manipulací jednoduchých formulí, čímž se logika dostává pod křídla matematiky. Tento průlomový přístup je nyní základem pochopení moderní matematiky. Je pozoruhodné, že na základě několika axiomů (zmíněných dále v textu) je symbolicky vybudována celá klasická logika. Jednoduchá algebra generována z těchto postulátů tvoří tzv. logické rovnice, kde jsou logické problémy přeloženy do takových rovnic, které jsou poté řešitelné pomocí algebraických nástrojů. Řešení je potom reinterpretováno zpět do logických pojmů. Jako všechny novinky, symbolická logika byla po mnoho let po jejím vynalezení opomíjena. Až do roku 1910 ji významní matematikové chápali jako filozofickou zajímavost bez matematického významu. Práce Whiteheata a Russella Principia Mathematica (1910 1913) byla první, která přesvědčila podstatnou část profesionálních matematiků, že si symbolická matematika zaslouží jejich vážnou pozornost. Rok po této publikaci pravděpodobně stále podvědomě toužící po společenském uznání se oženil s Mary Everest, s neteří profesora řečtiny na Queen s College. Jeho žena se stala jeho oddaným učedníkem a po jeho smrti aplikovala některé z jeho myšlenek v pamfletu Booleova psychologie. George Boole zemřel se všemi poctami 8. prosince1864. Jeho předčasná smrt byla způsobena zápalem plic, který byl následkem prochlazení po promoknutí v dešti, po kterém odmítl zrušit svou přednášku ve škole. 8
2. Budování Booleovy algebry Pozn.: V této práci budeme používat znaky a, které znamenají náleží, resp. pro každé. 2.1 Množina Jednoznačně vymezený souhrn objektů (které nazýváme prvky množiny). O jakémkoliv prvku tedy musí být možné rozhodnout, zda do množiny patří, nebo ne. Množiny většinou označujeme velkými písmeny (A, B apod.). 2.2 Kartézský součin Kartézským součinem množin A a B (píšeme A B) rozumíme množinu všech uspořádaných dvojic (a,b) takových, že a A a b B. Pozn. 1: Kartézský součin není komutativní, tzn. A B B A Pozn. 2: V uspořádaných dvojicích záleží na pořadí prvků, tzn. (a,b) (b,a) 2.3 Relace Relací ρ na množině A rozumíme libovolnou podmnožinu kartézského součinu A A. Dva prvky a,b jsou v relaci ρ na množině A, jestliže (a,b) ρ. Zkráceně zapisujeme aρb. 2.4 Zobrazení Zobrazením množiny A do množiny B rozumíme relaci f na množině A x B takovou, že pro každý prvek a z množiny A existuje nejvýše jeden prvek b z množiny B takový, že a je v relaci f s b (značíme také a f b či (a,b) f). 2.5 Operace (binární) Obecně operací na množině A rozumíme zobrazení množiny A x A do množiny A. (Často označujeme hvězdička či kolečko ) 9
x * y = z Operace * je komutativní, když a,b A platí a * b = b * a. Operace * je asociativní, když a,b,c A platí (a * b) * c = a * (b * c). Operace * a jsou navzájem distributivní právě tehdy, když a,b,c A platí a * (b c) = (a * b) (a * c) a zároveň a (b * c) = (a b) * (a c) V Booleově algebře používáme binární operace sčítání (+) a násobení (.). Binární operace + a. definujeme tabulkami: Tab. 1:Sčítání a násobení 2.6 Operace (unární) Unární operací na množině A rozumíme zobrazení množiny A do množiny A. (Často označujeme x, příp. x ) V Booleově algebře používáme unární operaci ( ), označovanou např. doplněk (množinová algebra) či negace (algebra pravdivostních hodnot výroků). Unární operaci definujeme tabulkou: Tab. 2: Doplněk/negace 10
2.7 Booleova algebra (Odvárko, 1973, 38) Libovolnou neprázdnou množinu B, v níž existují alespoň dva vzájemně různé prvky 0,1, v níž je definována rovnost prvků a na které jsou zavedeny dvě navzájem distributivní, komutativní, asociativní binární operace a jedna operace unární, nazýváme Booleova algebra, jestliže jsou splněny následující axiomy:,, B platí: - vyloučení třetího 1 - logický rozpor 0 - dvojitá negace - opakování - komutativita - asociativita ( ) ( ) ( ) ( ) - distributivita ( ) ( ) ( ) ( ) - absorpce ( ) ( ) - neutrálnost 0 a 1 0 1 - agresivita 0 a 1 1 1 0 0 - de Morganovy Pozn.1: Tento systém axiomů není nezávislý, tzn. některé axiomy lze dokázat pomocí jiných, např. při dokazování de Morganových zákonů musíme ukázat, že prvek x y je doplňkem prvku x y, tedy: 11
Řešení: De Morganovy zákony můžeme ukázat také tabulkou: Další ukázky odvozování axiomů: Tab. 3: De Morganovy zákony Poznámka dle (Odvárko, 1973, 50) a (Štěpánek, 60) Pozn. 2: Kromě této definice je možné definovat Booleovu algebru i jako speciální typ uspořádané množiny, tzv. svazu. Konkrétně se jedná o distributivní a komplementární svaz. 12
2.8 Princip duality Jestliže v platné formuli Booleovy algebry nahradíme operaci + za a naopak, a dále zaměníme 0 za 1 a naopak, dostaneme opět platnou formuli Booleovy algebry. (Tento fakt je patrný i ze seznamu axiomů, např. axiomy pro logický rozpor a vyloučení třetího jsou navzájem duální, stejně jako třeba de Morganovy zákony) 3. Modely Booleovy algebry 3.1 Množinová algebra (2 M,,, ) Za množinu B zvolíme množinu, potenční množinu neprázdné množiny M (tj. systém všech jejích podmnožin), operaci sčítání, násobení a doplněk na B specifikujeme postupně jako sjednocení, průnik a doplněk na. Pak pro všechny prvky množiny platí všechny axiomy Booleovy algebry a říkáme, že množinová algebra (,,, ) je modelem Booleovy algebry (B, +,, ). (Odvárko, 1973, 37), (Řezáč, 2009, 43) Sjednocením množin A a B (označujeme A B) rozumíme množinu, která obsahuje všechny prvky z A i B. Obr. 1: Sjednocení Vyberme např. množinu A jako množinu čísel dělitelných dvěma a množinu B jako množinu čísel dělitelných třemi. Sjednocením těchto množin je množina všech čísel, která jsou dělitelná dvěma nebo třemi (příp. oběma). Patří do ní tedy popořadě čísla 2,3,4,6,8,9,10,12 atd. Průnikem množin A a B (označujeme A B) rozumíme množinu, která obsahuje všechny prvky, které jsou společné těmto dvěma množinám. 13
Průnikem našich dvou množin je tedy množina čísel, která jsou dělitelná jak dvěma, tak třemi (tzn., jsou dělitelná šesti). Patří do ní tedy popořadě čísla 6,12,18,24 atd. Doplňkem množiny A (označujeme A') vzhledem k nějaké množině Z rozumíme množinu všech prvků, které patří do množiny Z, ale nepatří do množiny A Doplňkem naší množiny A do množiny všech přirozených čísel jsou tedy všechna čísla, která nejsou dělitelná dvěma (tzn. čísla lichá). Patří do ní tedy popořadě čísla 1,3,5,7 atd. Prázdnou množinou (označujeme ) rozumíme množinu, která nemá žádné prvky. 3.2 Algebra pravdivostních hodnot výroků (H,,, ), H = {0,1} Za množinu B zvolíme množinu H = {0, 1} pravdivostních hodnot výroků, operaci sčítání, násobení a doplněk na B specifikujeme postupně jako disjunkci, konjunkci a negaci na H. Pak pro všechny prvky množiny H platí všechny axiomy Booleovy algebry. Říkáme, že algebra pravdivostních hodnot (H,,, ) je modelem Booleovy algebry (B, +,, ). (Odvárko, 1973, 37), (Řezáč, 2009, 43) Disjunkcí dvou výroků A a B (označujeme A B) rozumíme výrok, který je pravdivý, pokud alespoň jeden z výroků A a B je pravdivý. 14
Vybermee např. výrok A jako Číslo x je dělitelné dvěma. a výrok B jako Číslo x je dělitelné třemi. Disjunkce těchto výroků je tedy výrok Číslo x je dělitelné dvěma nebo třemi. A nabývá tak pravdivostní hodnotu 1, pokud je číslo x dělitelné dvěma nebo třemi (příp. oběma). To splňují čísla jako 2,3,4,6,8,9 apod. Konjunkcí dvou výroků A a B (označujeme A B) rozumíme výrok, který je pravdivý, jsou-li oba dané výroky pravdivé. Konjunkce našich dvou výroků A a B je tedy výrok Číslo x je dělitelné jak dvěma, tak třemi., což splňují čísla dělitelná šesti, tedy 6,12,,18 atd. Negací pravdivostní hodnotu 1 právě tehdy, když výrok A nabývá pravdivostní hodnotu 0 (a naopak). Negací našeho výroku A je tedy výrok Není pravda, že číslo x je dělitelné dvěma., či elegantněji Číslo x není dělitelné dvěma. To splňují čísla lichá, tedy 1,3,5 atd. Implikací výroků hodnot: výroku A (označujeme A nebo A ) rozumíme výrok, který nabývá A a B rozumíme výrok s následující tabulkou pravdivostních Vybermee výrok A jako Našetřím 10000 Kč. a výrok B jako Pojedu v létě na dovolenou. Implikace A B (pozor, tato operace na rozdíl od předchozích není komutativní) odpovídá výroku Pokud našetřím 10000 Kč, pojedu v létě na dovolenou., která je pravdivá, pokud jsou A i B oba pravdivé či nepravdivé, ale také, pokud je výrok A (tzv. dostatečná podmínka) pravdivý a výrok B (tzv. podmínka nutná) není. 15
Pozn.: Oba tyto modely Booleovy algebry (stejně jako všechny další) jsou izomorfní. Izomorfními algebrami rozumíme takové algebry, mezi kterými existuje izomorfismus, tj. vzájemně jednoznačné zobrazení mezi nosnými množinami, které zachovává všechny operace. 3.2.1 Způsoby vyjádření logických funkcí Zpracováno podle (Horký, 2009, 16 19). Nejčastěji používané způsoby vyjádření logických funkcí jsou pravdivostní tabulka, algebraický výraz, Karnaughova mapa a blokové schéma. 3.2.1.1 Pravdivostní tabulka Pravdivostní tabulkou nazýváme tabulku, do které zapisujeme logickou (Booleovu) funkci. Tato tabulka je tvořena r + n sloupci a 2 n řádky. Číslo n je počet nezávislých proměnných x 1, x 2... x n, pro které je definována daná funkce a číslo r udává počet sloupců výsledných funkcí (většinou se zabýváme pouze jednou funkcí závislou proměnnou y). Počet všech možných variací n-té třídy s opakováním nezávislých proměnných udává číslo 2 n, přičemž číslem n je označen počet nezávislých proměnných. Pořadí těchto variací se často v pravdivostní tabulce píše v pořadí podle binární (dvojkové) soustavy. Je-li tedy zadána logická funkce o třech nezávislých proměnných a jediné výsledné funkci, pravdivostní tabulka bude mít čtyři sloupce (r + n = 1 + 3 = 4) a osm řádků (2 n = 2 3 = 8). Pravdivostní tabulka (1): Tab. 4: Pravdivostní tabulka (1) 16
Pravdivostní tabulka (1) zobrazuje funkční hodnotu y, závislou na třech nezávislých proměnných x 1, x 2 a x 3. Tuto tabulku využijeme dále v dalších možnostech vyjádření logické funkce. 3.2.1.2 Algebraický výraz Algebraické vyjádření logické funkce se zpravidla vyjadřuje ve dvou možných tvarech, a to buď v základním součtovém, nebo v základním součinovém tvaru. V textech zabývajících se touto problematiku se často používají tyto dva názvy: úplná normální disjunktivní forma ÚNDF úplná normální konjunktivní forma ÚNKF Jednoduše řečeno, ÚNDF je součet součinů. Všechny proměnné jsou zapsány buď v přímém, nebo negovaném tvaru. Daná funkce nabývá hodnotu 1 právě tehdy, když některý ze součinů, kterými je tvořena, rovněž nabývá hodnotu 1. ÚNDF takto popisuje funkci jakožto součet případů, kdy má tato funkce hodnotu 1. ÚNKF je naopak součin součtů. Všechny proměnné jsou opět zapsány v přímém, či negovaném tvaru. Funkce nabývá hodnoty 1, pokud každý jednotlivý dílčí součet má také hodnotu jedna. ÚNKF tedy popisuje funkci jako součin případů, kdy nabývá hodnotu 0. Pokud tedy chceme danou funkci zapsat algebraicky pomocí součtů (ÚNDF), postupujeme v tabulce po řádcích. Vždy, když je funkční hodnota rovna jedné, opíšeme příslušnou konjunkci podmínek. Třetí řádek tabulky (1) tedy odpovídá x 1 = 0, x 2 = 1, x 3 = 0. Jestliže narazíme na hodnotu proměnné 0, vyjádříme ji ekvivalentně pomocí její negace, zatímco při proměnné rovné 1, zapisujeme přímo. Logický výraz odpovídající třetímu řádku tabulky (1) je tedy 1 2 3. Je tedy zřejmé, že pro každý řádek, ve kterém nabývá funkční hodnota y hodnotu 1, vypíšeme právě jeden logický součin vstupních proměnných. Konečná logická funkce je vytvořena součtem všech takovýchto výrazů. Použijeme-li tento postup na pravdivostní tabulku (1), obdržíme algebraické vyjádření tvaru: Chceme-li naopak logickou funkci vyjádřit v součinovém tvaru (ÚNKF), postupujeme v pravdivostní tabulce opět po řádcích a vždy, když je funkční hodnota rovna 0, opíšeme příslušnou disjunkci podmínek. Takto prvnímu řádku naší tabulky (1) odpovídá x 1 = 0, x 2 = 0, 17
x 3 = 0. Tam, kde nabývají proměnné hodnotu 0, popíšeme je přímo x 1, x 2 a x 3. Když ale máme proměnnou rovnou 1, vypíšeme ji ekvivalentně její negací. Takto platí pro první řádek této tabulky logický výraz x 1 + x 2 + x 3. Konečná logická funkce je vytvořena součinem všech takto nalezených výrazů. Po aplikaci tohoto postupu na tuto tabulku (1), její algebraické vyjádření je ve tvaru: (Pozn.: V praxi se mnohem častěji používá úplná normální disjunktivní forma.) 3.2.1.3 Karnaughova mapa Pomocí map se logické funkce vyjadřují především kvůli jejich snadné následné minimalizaci (viz kapitola 4.5). Využití těchto map není vždy vhodné, především pokud počet nezávislých proměnných překračuje šest. Mapa je totiž tvořena tolika políčky, kolik je všech možných variací n-té třídy s opakováním nezávislých proměnných, obsahuje tedy 2 n polí, kde číslo n vyjadřuje počet nezávislých proměnných x 1, x 2... x n. Dá se říci, že je to ve skutečnosti pouze přetransformovaná pravdivostní tabulka, kde každému jejímu řádku odpovídá jedno políčko Karnaughovy mapy. Vodorovnou či svislou čarou (označenou příslušnou proměnnou) vedle mapy označíme takové sloupce či řádky, ve kterých proměnná nabývá hodnoty 1. Tam, kde funkce nabývá funkční hodnotu 1, do příslušného pole tabulky také zapíšeme 1. Naopak, je-li funkční hodnota 0, necháváme toto pole prázdné. Přepisování funkce na Karnaughovu mapu je tedy poměrně jednoduché. Spočívá vlastně jen v přepsání všech funkčních hodnot do odpovídajících polí. Při přepisu do mapy se dá vycházet z tabulky pravdivostních hodnot, i z algebraického výrazu. Ten ale musíme mít v úplné normální disjunktivní formě (ÚNDF). (Pozn.: Kromě Karnaughovy mapy se někdy používá i velice podobná Svobodova mapa. Tato mapa se liší pouze ve způsobu kódování řádků a sloupců. V Karnaughově mapě se od sebe sousední pole liší pouze v jedné hodnotě a v praxi je o něco výhodnější (především pro minimalizaci). To Svobodova mapa ke kódování používá binární kód, kde se stavové indexy zvětšují zleva doprava po sloupcích a shora dolů po řádcích. Rozdíl mezi těmito dvěma mapami lze vidět na Obr. 1.) 18
tabulku (1): Obr. 2: Karnaughova a Svobodova mapa Podle výše popsaného postupu tedy vytvoříme Karnaughovu mapu pro pravdivostní Obr. 3: Karnaughova mapa pro (1) Nakonec si ještě uvedeme Karnaughovy mapy všech možných variant (nejvýše 6): Obr. 4: Karnaughovy mapy 19
3.2.1.4 Blokové schéma Blokové schéma není zdaleka tolik využívané, jako předchozí vyjádření. Jelikož by bylo velice složité a nepřehledné pro typickou logickou funkci zadanou tabulkou nebo algebraickým vyjádřením, kreslí se zpravidla jen pro názornost, a to až po provedené minimalizaci, abychom museli použít co nejméně logických členů. Tento druh schémat odpovídá zapojení hradel (elektronických součástek) plnících logické funkce. Tato logická hradla se poté zapojují do integrovaných obvodů. Jednu součástku tvoří hned několik z nich. Počet vstupů těchto hradel je většinou 2, 4 nebo 8. Podle tohoto počtu vstupů pro jedno logické hradlo se s ohledem na počet dostupných vývodů spojují do jednoho integrovaného obvodu. Příklad takového integrovaného obvodu, obsahujícího čtyři hradla se dvěma vstupy, si ukážeme na následujícím obrázku. Kromě zapojení vývodů je přiloženo také foto tohoto integrovaného obvodu. Zapojení hradel se dvěma vstupy: (Tůma, 2007, 23-25) 20
3.2.1.5 Kontaktní schéma (Také liniové schéma) Tento typ schémat znázorňuje zapojení elektrických kontaktů umožňujících průchod elektrického proudu mezi dvěma póly zdroje. Ty se většinou kreslí jako svislé vodiče. Mezi těmito vodiči prochází proud různě zapojenými kontakty do zátěže. Na straně pravé bývá napájecí napětí kladné, zatímco levá strana je obvykle uzemněna. Roli zátěže může hrát cívka elektromagnetického relé, příp. jiný spotřebič jako žárovka či houkačka. Kontakty relé, která jsou dimenzována na potřebné proudové zatížení, je možné zapojit také na elektrický motor nebo soustavu osvětlení. Nejjednodušší logické funkce y = a y = jsou znázorněny kontaktními schématy na obrázku 5. Kontakty mají shodná označení jako logické proměnné. Jestliže je tedy logická proměnná rovna logické jedničce, spínací kontakt je sepnut, kdežto pro logickou nulu rozepnut. Kontaktů se stejným označením může být ve schématu více. Kontakty označené proměnnou shodnou, včetně její negace, jsou ovládány jedním relé. To je obvykle vybaveno několika kontakty různého druhu (spínací, rozpínací). Obr. 5: Kontaktní schéma pro y = a a y = a Funkci logického součinu a součtu plní zapojení kontaktů ukázané na obrázku 6. Logický součin umožňuje průchod proudu zátěží, jen když jsou oba kontakty sepnuty, tj. příslušné proměnné jsou rovny jedné. Naproti tomu u logického součtu stačí sepnutý kontakt jediný. (Tůma, 2007, 22) Obr. 6: Kontaktní schéma pro součin a součet 21
4. Příklady (příklady převzaty z (Hájek, 1984), (Horký, 2009) a (Odvárko, 1973)) 4.1 Algebraická minimalizace Zadání: Zjednodušte dané výrazy tak, aby obsahovaly co nejméně znaků. Způsob řešení: Aplikujeme axiomy Booleovy algebry. Příklad 1: Příklad 2: Příklad 3: Příklad 4: Příklad 5: 22
Příklad 6: Příklad 7: Příklad 8: Příklad 9: Příklad 10: 23
Příklad 11: Příklad 12: Příklad 13: Příklad 14: 24
Příklad 15 Příklad 16 4.2 Rovnost množin Zadání: Rozhodněte, zda platí daná množinová rovnost. Způsob řešení: Po přepisu do značení Booleovy algebry aplikujeme její axiomy na pravou i levou stranu rovnosti. (Pozn.: Pro názornost dokážeme správnost výsledku Vennovými diagramy.) Příklad 17: Obr. 7: Vennovy diagramy pro Příklad 17 25
Příklad 18: Obr. 8: Vennovy diagramy pro Příklad 18 Příklad 19: Obr. 9: Vennovy diagramy pro Příklad 19 26
Příklad 20: Obr. 10: Vennovy diagramy pro Příklad 20 Příklad 21: Obr. 11: Vennovy diagramy pro Příklad 21 27
4.3 Zjednodušení zápisů množin Zadání: Zjednodušte množinový zápis tak, aby obsahoval co nejméně znaků. Způsob řešení: Po přepisu do značení Booleovy algebry aplikuje její axiomy. Výsledek přepíšeme zpět do původního značení. Příklad 22: Dosadíme zpět: Příklad 23: Dosadíme zpět: 28
Příklad 24: Dosadíme zpět: Příklad 25: Dosadíme zpět: Příklad 26: Dosadíme zpět: 29
Příklad 27: Dosadíme zpět: 4.4 Minimalizace výrokové formule Zadání: Zjednodušte výrokovou formuli tak, aby obsahovala co nejméně znaků Způsob řešení: Zápis přepíšeme tak, aby obsahoval pouze logické operace konjunkce, disjunkce a negace. Po přepsání do značení Booleovy algebry aplikujeme její axiomy. Na konci opět přepíšeme zpět do původního značení. (Pozn.: V prvních třech a v posledním příkladu pro názornost ukážeme správnost výsledku tabulkou. Zároveň tak můžeme porovnat, který ze způsobů řešení je výhodnější.) Příklad 28: Přepis: Řešení: Dosadíme zpět: 30
Tab. 5: Pravdivostní tabulka pro příklad 28 Řešení tabulkou: Příklad 29: Přepis: Řešení: Dosadíme zpět: 31
Tab. 6: Pravdivostní tabulka pro příklad 29 Řešení tabulkou: Příklad 30: Přepis: Řešení: 32
Tab. 7: Pravdivostní tabulka pro příklad 30 Řešení tabulkou: 33
Příklad 31: Přepis: Řešení: Dosadíme zpět: Příklad 32: Přepis: Řešení: Dosadíme zpět: 34
Příklad 33: Přepis: Řešení: Dosadíme zpět: Příklad 34: Přepis: Řešení: Dosadíme zpět: 35
Příklad 35: Zadání: Anna, Bára, Kateřina a Dana chtějí jet se školou na výlet. Rozhodněte, která z děvčat pojedou na výlet, mají-li být dodrženy tyto zásady: Pojede aspoň jedna z dvojice Bára/Dana, nejvýše jedna z dvojice Anna/Kateřina, aspoň jedna z dvojice Anna/Dana a nejvýše jedna z dvojice Bára/Kateřina. Dále je jisté, že Bára nepojede bez Anny a že Kateřina pojede, pojedeli Dana. (Pozn.: Abychom demonstrovali přínos Booleovy algebry, vyřešíme tento příklad i tabulkou. Je zřejmé, který postup je rychlejší a přehlednější.) Přepis: Řešení: Dosadíme zpět: Nyní si všechny možnosti zapíšeme do tabulky, ze které jde vidět, jaké jsou možnosti řešení: Můžeme tedy říci, že na výlet pojede Anna s Bárou nebo Kateřina s Danou. 36
Řešení tabulkou: Zde si všimneme řádků se samými jedničkami: Řešení tabulkou tedy vyšlo stejně. 37
4.5 Minimalizace pomocí Karnaughových map Zpracováno dle (Horký, 2009, 21-22). Zjednodušování logických funkcí využitím Karnaughovy mapy (někdy také označována grafická minimalizace) je možná proto, že sousední pole se od sebe liší pouze v jediné hodnotě. Zminimalizovanou logickou funkci najdeme tak, že v Karnaughově mapě nalezneme tzv. podmapy. Podmapa je vlastně sjednocení sousedících polí do dvojic, čtveřic, osmic, šestnáctic atd., kde logická funkce nabývá funkční hodnotu 1. Při sloučení dvou sousedních polí vypadne jedna proměnná, při sloučení čtyř vypadnou dvě proměnné atd. Ve výsledné logické funkci chybí vždy ta proměnná, která v daných dvojicích, čtveřicích atd. změnila svojí hodnotu. Podmapy je nejvýhodnější vytvářet co největší, aby vypadl co největší počet proměnných. Podmapy vybíráme pomocí těchto šesti pravidel: Žádný jednotkový stav naší logické funkce nesmí být vynechán, vybranými podmapami musí být zakroužkovány všechny. Podmapy tvoříme svisle i vodorovně, spojujeme i pole sousedící přes okraje mapy. Rohy mapy jsou také sousední pole. Podmapy se mohou překrývat, tzn., jedna jednička může současně náležet do dvojice, čtveřice atd. Abychom vyloučili co nejvíce proměnných, snažíme se podmapy vytvářet co největší, přednost tedy mají osmice před čtveřicemi, čtveřice před dvojicemi apod. Jednotkové stavy, které už máme pokryty jinou podmapou, zbytečně nespojujeme, tzn., nevytváříme zbytečné podmapy. Snažíme se naleznout co nejmenší počet podmap, aniž bychom vynechali některou jedničku. 38
Příklad 36: Zadání: Minimalizujte logickou funkci zadanou pravdivostní tabulkou. Tab. 8: Pravdivostní tabulka pro příklad 36 Karnaughova mapa: Obr. 12: Karnaughova mapa pro Příklad 36 Nakreslíme Karnaughovu mapu pro tři proměnné, zapíšeme jedničky do příslušných políček a zakroužkujeme tři dvojice. Těmto třem dvojicím tedy odpovídají tři výrazy. Konečný výsledek je tedy: Příklad 37: Zadání: Minimalizujte logickou funkci zadanou algebraickým předpisem. 39
Karnaughova mapa: Obr. 13: Karnaughova mapa pro Příklad 37 Nakreslíme Karnaughovu mapu pro čtyři proměnné, zapíšeme jedničky do příslušných políček a zakroužkujeme čtveřici a dvě dvojice. Konečný výsledek je tedy: 4.6 Blokové a kontaktní schéma Abychom demonstrovali také příklady zabývající-se blokovými a kontaktními schématy, ukážeme si příklad na syntézu kombinačního logického obvodu. Příklad 38: Zadání: Z tabulek odvoďte minimální tvar zápisu logické funkce, vytvořte kontaktní schéma a blokové schéma. Nechť je požadováno, aby výstup kombinačního logického obvodu y závisel na vstupech a, b, c, d podle následující tabulky, která je rozdělena do dvou částí. V tabulce jsou dvě kombinace vstupních logických proměnných, pro které není funkční hodnota y definována jejich pole je prázdné. Tab. 9: Pravdivostní tabulka pro Příklad 38 40
Řešení: Proveďme minimalizaci např. pomocí Karnaughovy mapy: Dostaneme zminimalizovanou funkci: Obr. 14: Kanrnaughova mapa pro Příklad 38 Příslušné kontaktní schéma je tedy: A příslušné schéma blokové: Obr. 15: Kontaktní schéma pro Příklad 38 Tento příklad byl převzat z (Tůma, 2007, 27-28) Obr. 16: Blokové schéma pro Příklad 38 41
Závěr V této bakalářské práci jsme nejprve postupně od základních pojmů vybudovali pojem Booleova algebra. Tyto pojmy jsme poté spolu s několika axiómy použili k její definici. Následně jsme si ukázali dva nejdůležitější modely Booleovy algebry, týkající se množin a výrokové logiky. Hlavním smyslem této práce bylo ukázat využití Booleovy algebry. Tím zásadním je bezesporu minimalizace. Přestože zjednodušení, či další zadání příkladů, je možné provést několika dalšími způsoby, je zřejmé, že především pro větší počet proměnných je aplikace axiomů Booleovy algebry mnohem jednodušší, přehlednější a rychlejší. Karnaughovy mapy jsou velice přehledné a efektivní, jejich použití je ale omezené jen malým počtem proměnných. Pro některé příklady (viz 4.4) stačí k řešení dokonce pravdivostní tabulka. Přestože ta je teoreticky sestrojitelná pro libovolný počet proměnných, může být velice nepřehledná a její tvorba pracná a časově náročná. Použití Vennových diagramů (viz 4.2) je další velice snadný a názorný způsob, jak řešit některé příklady o třech, příp. čtyřech proměnných. Pokud bychom ale měli proměnných více, jejich využití je podstatně méně výhodné (až nemožné). Summary In this bachelor thesis we started with building Bollean algebra from the most basic of terms. We then used these terms and several axioms to define Bollean algebra. After that, two main models of Boolean algebra were introduced - the algebra of sets and the algebra of the truth values of propositions. The main purpose of the thesis was to show the applications of Boolean algebra. The most crucial one is undoubtedly minimization. Although there are several ways to achieve simplification, it is obvious that the applications of the axioms of Boolean algebra is simpler, more synoptic and faster. Karnaugh maps are definitely effective, yet their use is limited only to a small amount of variables. Some of the exercises could be solved even with a truth table only. Although these are theoretically possible to be made for any amount of variables, their creation takes a lot of time and the result might be difficult to identify. The use of Venn diagrams is another simple way how to solve some exercises with three or four variables. With more variables, their use is much more difficult or even impossible, though. 42
5. Zdroje 5.1 Knižní zdroje 1. BEK, Roman, ZLATNÍK Čeněk. Matematická logika. 1.vyd. Praha: ČVUT, 1981, 237s. 2. BELL, Eric Temple. Men of mathematics. New York: Simon & Schuster, 1986, xvii, 590 s. ISBN 0-671-62818-6. 3. BOYER, Carl B. A history of mathematics. 2nd ed. New York: John Wiley & Sons, 1989, xi, 762 s. ISBN 0-471-50357-6. 4. CORRY, Leo. Modern algebra and the rise of mathematical structures. Basel: Birkhäuser Verlag, 1996, [xii], 460 s. ISBN 3-7643-5311-2. 5. GOLDBLATT, Robert. Topoi: the categorial analysis of logic. Rev. ed. Mineola, N.Y.: Dover Publications, 2006, xx, 551 s. ISBN 0-486-45026-0. 6. HÁJEK, J. a kol. Metody řešení matematických úloh. Studijní materiály katedry matematiky. UJEP Brno: 1984. 7. HORKÝ, Miroslav. Minimalizace logických funkcí. Brno, 2009. Bakalářská práce. Vysoké učení technické v Brně, Fakulta strojního inženýrství. 8. KŘÍŽ, Jaroslav. Logika. Vyd. 1. Praha: SNTL - Nakladatelství technické literatury, 1974. 9. ODVÁRKO, Oldřich. Booleova algebra. 1. vyd. Praha: Mladá fronta, 1973, 115 s. 10. ŘEZÁČ, Miroslav. Booleova algebra. Praha, 2009. Bakalářská práce. Univerzita Karlova v Praze, Matematicko-fyzikální fakulta) 43
5.2 Internetové zdroje 1. BOOLE, George. An Investigation of the Laws of Thought on Which Are Founded the Mathematical Theories of Logic and Probabilities [online]. 16.2.2005. New York: Dover Publications, 1969, 424 s. [cit. 2016-01-22]. Dostupné z: http://www.gutenberg.org/files/15114/15114- pdf.pdf?session_id=c08fd919230b4f4565ff62355f14001e8a6e6d18 2. BURRIS, Stanley. George Boole. In: Stanford Encyclopedia of Philosophy [online]. 2010 [cit. 2016-01-22]. Dostupné z: http://plato.stanford.edu/archives/sum2010/entries/boole/ 3. KAPOUN, Jan. Průkopníci informačního věku (3.): George Boole. In: Business World [online]. 2010 [cit. 2016-01-22]. Dostupné z: http://businessworld.cz/ostatni/prukopnici-informacniho-veku-3-georgeboole-5928 4. ŠTĚPÁNEK, Luboš. Booleova algebra [online] Dostupné z: https://is.muni.cz/th/322248/pedf_b/booleova_algebra.pdf 5. TŮMA, Jiří, WAGNEROVÁ, Renata, FARANA, Radim, LANDRYOVÁ, Lenka. Základy automatizace. 1. vyd. Ostrava: Ediční středisko VŠB TUO, 2007. ISBN 978-80-248-1523-7 Dostupné z: http://www.elearn.vsb.cz/archivcd/fs/zaut/skripta_text.pdf 44
6. Seznam tabulek a obrázků: OBR. 1: SJEDNOCENÍ... 13 OBR. 2: KARNAUGHOVA A SVOBODOVA MAPA... 19 OBR. 3: KARNAUGHOVA MAPA PRO (1)... 19 OBR. 4: KARNAUGHOVY MAPY... 19 OBR. 5: KONTAKTNÍ SCHÉMA PRO Y = A A Y = A... 21 OBR. 6: KONTAKTNÍ SCHÉMA PRO SOUČIN A SOUČET... 21 OBR. 7: VENNOVY DIAGRAMY PRO PŘÍKLAD 17... 25 OBR. 8: VENNOVY DIAGRAMY PRO PŘÍKLAD 18... 26 OBR. 9: VENNOVY DIAGRAMY PRO PŘÍKLAD 19... 26 OBR. 10: VENNOVY DIAGRAMY PRO PŘÍKLAD 20... 27 OBR. 11: VENNOVY DIAGRAMY PRO PŘÍKLAD 21... 27 OBR. 12: KARNAUGHOVA MAPA PRO PŘÍKLAD 36... 39 OBR. 13: KARNAUGHOVA MAPA PRO PŘÍKLAD 37... 40 OBR. 14: KANRNAUGHOVA MAPA PRO PŘÍKLAD 38... 41 OBR. 15: KONTAKTNÍ SCHÉMA PRO PŘÍKLAD 38... 41 OBR. 16: BLOKOVÉ SCHÉMA PRO PŘÍKLAD 38... 41 TAB. 1:SČÍTÁNÍ A NÁSOBENÍ... 10 TAB. 2: DOPLNĚK/NEGACE... 10 TAB. 3: DE MORGANOVY ZÁKONY... 12 TAB. 4: PRAVDIVOSTNÍ TABULKA (1)... 16 TAB. 5: PRAVDIVOSTNÍ TABULKA PRO PŘÍKLAD 28... 31 TAB. 6: PRAVDIVOSTNÍ TABULKA PRO PŘÍKLAD 29... 32 TAB. 7: PRAVDIVOSTNÍ TABULKA PRO PŘÍKLAD 30... 33 TAB. 8: PRAVDIVOSTNÍ TABULKA PRO PŘÍKLAD 36... 39 TAB. 9: PRAVDIVOSTNÍ TABULKA PRO PŘÍKLAD 38... 40 45