MINIMALIZACE LOGICKÝCH FUNKCÍ MINIMISATION OF LOGICAL FUNCTIONS

Podobné dokumenty
Příloha 1. Náleţitosti a uspořádání textové části VŠKP

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY

Booleova algebra. ZákonyBooleovy algebry Vyjádření logických funkcí

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Bakalářská práce bakalářský studijní obor Teleinformatika

Logické proměnné a logické funkce

Booleovská algebra. Booleovské binární a unární funkce. Základní zákony.

NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI

Logické řízení. Náplň výuky

Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Neuronové sítě Minimalizace disjunktivní normální formy

DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování

AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION OF ORDERING SYSTEM ERRORS

2. LOGICKÉ OBVODY. Kombinační logické obvody

P4 LOGICKÉ OBVODY. I. Kombinační Logické obvody

Binární logika Osnova kurzu

DIGITÁLN LNÍ OBVODY A MIKROPROCESORY 1. ZÁKLADNÍ POJMY DIGITÁLNÍ TECHNIKY

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

12. Booleova algebra, logická funkce určitá a neurčitá, realizace logických funkcí, binární kódy pro algebraické operace.

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

1. 5. Minimalizace logické funkce a implementace do cílového programovatelného obvodu CPLD

0.1 Úvod do lineární algebry

Formální systém výrokové logiky

SMĚRNICE REKTORA Č. 9/2007

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

LOGICKÉ OBVODY 2 kombinační obvody, minimalizace

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Booleovská algebra. Pravdivostní tabulka. Karnaughova mapa. Booleovské n-krychle. Základní zákony. Unární a binární funkce. Podmínky.

STATISTICA Téma 1. Práce s datovým souborem

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Y36SAP Y36SAP-2. Logické obvody kombinační Formy popisu Příklad návrhu Sčítačka Kubátová Y36SAP-Logické obvody 1.

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

6 Algebra blokových schémat

Obsah. Vymezení použitých pojmů

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

Výroková a predikátová logika - II

0. ÚVOD - matematické symboly, značení,

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Výroková a predikátová logika - II

MULTISIM VÝUKOVÝ ELEKTRONICKÝ MATERIÁL

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Základy číslicové techniky z, zk

1 Výroková logika 1. 2 Predikátová logika 3. 3 Důkazy matematických vět 4. 4 Doporučená literatura 7

0.1 Úvod do lineární algebry

Minimalizace logické funkce

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

LDF MENDELU. Simona Fišnarová (MENDELU) Základy lineárního programování VMAT, IMT 1 / 25

VEKTORY. Obrázek 1: Jediný vektor. Souřadnice vektoru jsou jeho průměty do souřadných os x a y u dvojrozměrného vektoru, AB = B A

5. Lokální, vázané a globální extrémy

1 Řešení soustav lineárních rovnic

teorie logických spojek chápaných jako pravdivostní funkce

průniku podmnožin, spojení je rovno sjednocení podmnožin a komplement je doplněk Obr. 5: Booleovy algebry

Tabulkový kalkulátor. Tabulkový kalkulátor. LibreOffice Calc 12.část

Žáci mají k dispozici pracovní list. Formou kolektivní diskuze a výkladu si osvojí způsoby algebraické minimalizace a využití Booleovy algebry

43 HTML šablony. Záložka Šablony v systému

příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.

Přílohy. Příloha 1. Obr. P1.1 Zadání úlohy v MS Excel

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Obr. P1.1 Zadání úlohy v MS Excel

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Kontingenční tabulky v MS Excel 2010

Výukový materiál zpracován v rámci projektu EU peníze školám

Lineární algebra Operace s vektory a maticemi

Výroková a predikátová logika - II

1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

Základy algoritmizace a programování

Metoda Monte Carlo a její aplikace v problematice oceňování technologií. Manuál k programu

Výroková logika. Teoretická informatika Tomáš Foltýnek

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Modul IRZ návod k použití

SČÍTAČKA, LOGICKÉ OBVODY ÚVOD TEORIE

Doporučení k uspořádání absolventské práce obhajované na Ústavu mikroelektroniky a Ústavu elektrotechnologie FEKT VUT v Brně ČÁST PRVNÍ

MODAM Popis okna. 2 Jana Bělohlávková, Katedra matematiky a deskriptivní geometrie, VŠB - TU Ostrava

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Postup pro zpracování kontrolního hlášení

Kódováni dat. Kódy používané pro strojové operace

Unární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek

Tvorba kurzu v LMS Moodle

Algebrogramy. PaedDr. Libuše Sekaninová Martin Blahák (grafická úprava)

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

KOMBINAČNÍ LOGICKÉ OBVODY

(Cramerovo pravidlo, determinanty, inverzní matice)

1 Linearní prostory nad komplexními čísly

Predikátová logika. prvního řádu

1. Předmět a účel Rámcové licenční smlouvy

2HCS Fakturace 3 - výzvy k platbě (upomínky) -

Programy na PODMÍNĚNÝ příkaz IF a CASE

2 Zpracování naměřených dat. 2.1 Gaussův zákon chyb. 2.2 Náhodná veličina a její rozdělení

Úvod do informatiky. Miroslav Kolařík

Základní pojmy matematické logiky

Výsledný graf ukazuje následující obrázek.

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE MINIMALIZACE LOGICKÝCH FUNKCÍ MINIMISATION OF LOGICAL FUNCTIONS BAKALÁŘSKÁ PRÁCE BACHELOR S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR PETR JANDA Doc. RNDr. Ing. MILOŠ ŠEDA, Ph.D. BRNO 2007

Strana 5 LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŢÍT ŠKOLNÍ DÍLO LICENČNÍ SMLOUVA uzavřená mezi smluvními stranami: 1. Pan/paní Jméno a příjmení: Petr Janda Bytem: Zázmolí 17, Brno, 614 00 Narozen/a (datum a místo): 25.4.1976 v Brně (dále jen autor ) 2. Vysoké učení technické v Brně Fakulta strojního inženýrství se sídlem Technická 2896/2, 616 69 Brno a jejímž jménem jedná na základě písemného pověření děkanem fakulty: Doc. RNDr. Ing. Miloš Šeda, Ph.D., ředitel ÚAI (dále jen nabyvatel ) Čl. 1 Specifikace školního díla 1. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): disertační práce diplomová práce bakalářská práce jiná práce, jejíž druh je specifikován jako... (dále jen VŠKP nebo dílo) Název VŠKP: Vedoucí/ školitel VŠKP: Ústav: Datum obhajoby VŠKP: Minimalizace logických funkcí Doc. RNDr. Ing. Miloš Šeda, Ph.D., ředitel ÚAI Ústav Automatizace a Informatiky VŠKP odevzdal autor nabyvateli v * : tištěné formě počet exemplářů 2 elektronické formě počet exemplářů 3 * hodící se zaškrtněte

Strana 6 2. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním. 3. Dílo je chráněno jako dílo dle autorského zákona v platném znění. 4. Autor potvrzuje, že listinná a elektronická verze díla je identická. Článek 2 Udělení licenčního oprávnění 1. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin. 2. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu. 3. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti ihned po uzavření této smlouvy 1 rok po uzavření této smlouvy 3 roky po uzavření této smlouvy 5 let po uzavření této smlouvy 10 let po uzavření této smlouvy (z důvodu utajení v něm obsažených informací) 4. Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením 47b zákona č. 111/ 1998 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek 3 Závěrečná ustanovení 1. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP. 2. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy. 3. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek. 4. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami. V Brně dne:... Nabyvatel Autor

Strana 7 ABSTRAKT Práce se zabývá popisem obecných pravidel Booleovy algebry a také popisem dostupných minimalizačních metod, které se často používají v elektrotechnice a automatizaci k sestavení logických řídících obvodů. V návaznosti na teoretickou část byl v programovacím jazyku Delphi vytvořen program pro minimalizaci logických funkcí pomocí Qiune-McCluskeyho algoritmu. Program MLF by měl sloužit pro zjednodušení navrhování logických obvodů. ABSTRACT This thesis deals with descriptions of general rules of the Boolean algebra and minimization methods. They are commonly used in electrical engineering and automation for design of logical control circuits. In context with theoretical part of this thesis, program MLF for Quine-McCluskey minimization algorithm in programming language Delphi was developed. This MLF program should serve for simplifying of logical circuits design. KLÍČOVÁ SLOVA Minimalizace, algoritmus, logická funkce, Qiune-McCluskeyho algoritmus, Booleova algebra. KEYWORDS Minimization, algorithm, logical function, Qiune-McCluskeyho algorithm, Booleans algebra.

Strana 9 Obsah: ZADÁNÍ ZÁVĚREČNÉ PRÁCE - 3 - LICENČNÍ SMLOUVA - 5 - ABSTRAKT - 7-1. ÚVOD - 11-2. BOOLEOVA ALGEBRA - 13-2.1. Základní matematické principy Booleovy algebry - 13-2.2. Vyjádření booleovských funkcí - 14-2.3. Použití Booleovy algebry - 15-3. POPIS MINIMALIZAČNÍCH METOD - 17-3.1. Booleova algebra - 17-3.2. Karnaghuova mapa - 17-3.3. Quine - McCluskeyho algoritmus - 17-3.4. Quineův algoritmu pro nalezení všech minimálních implikant - 17-3.4.1. McCluskeyho úprava Quineova algoritmu - 18-3.5. Blakeova metoda - 19-3.6. Porovnání minimalizačních metod - 19-4. MINIMÁLNÍ DISJUNKTIVNÍ FORMA - 21-4.1. Rozšíření Quine-McCluskeyho metody - 21-5. POPIS SOFTWARU MLF - 23-5.1. Zdrojový kód - 23-5.2. Grafické rozhraní programu - 24-5.3. Zadání ÚNDF - 28-5.4. Zadání pravdivostní tabulky - 29-5.5. Tvorba inicializačního souboru a následný výpočet více úloh - 30-6. ZÁVĚR - 33 -

Strana 11 1. ÚVOD Minimalizací Booleových funkcí rozumíme proceduru stanovení jejich nejjednoduššího vyjádření ve tvaru kompozice funkcí libovolně zvolené úplné soustavy S funkcí. Za nejjednodušší vyjádření pokládáme obvykle výraz tvořený minimálním možným počtem kompozic. Takto formulovaná úloha je vždy řešitelná, protože uvažujeme jen konečné funkčně úplné soustavy. Lze totiž postupně vyhodnocovat všechny funkce soustavy S a porovnávat je s minimalizovanou funkcí, pak všechny možné dvojnásobné kompozice funkcí z S, dále všechny možné kompozice trojnásobné atd., až dospějeme ke kompozici rovné uvažované funkci. Je pochopitelné, že tento způsob řešení je velmi těžkopádný. V praxi proto užíváme speciální metody minimalizace funkcí vypracované vždy pro určitou funkčně úplnou soustavu. Nejlépe vypracované jsou metody minimalizace pro soustavu {disjunkce, konjunkce, negace}, spočívající ve vyjádření dané Booleovy funkce s použitím minimálně možného počtu operací [1]. V dalším textu této práce se omezíme jen na vyjádření minimalizované funkce ve tvaru normální disjunktivní formy (označované zkratkou ndf) s co nejmenším možným počtem písmen.

Strana 13 2. BOOLEOVA ALGEBRA 2.1. Základní matematické principy Booleovy algebry Booleova algebra je logická algebra založená na dvouhodnotových veličinách, publikovaná irským matematikem G. Boolem (1815 1864) [2]. Jejím základem jsou veličiny nabývající pouze dvou možných hodnot, nejčastěji označovaných jako 0 a 1. V zásadě se při řešení booleovských rovnic používají tři matematické operace rozdělené podle priority v následujícím pořadí: Negace jedná se o logickou funkci jedné proměnné, jejíž funkční hodnota je vždy opačná než hodnota vstupní proměnné s běžným zápisem. Pravdivostní tabulka negace viz Tab. 1. 1 0 0 1 Tab. 1 Negace logická funkce jedné proměnné Konjunkce (logický součin) tvar výrazu je tvořen několika kratšími výrazy, které jsou mezi sebou násobeny, např.. Pravdivostní tabulka konjunkce viz Tab. 2. 0 0 0 0 0 1 0 1 0 1 1 1 Tab. 2 Konjunkce logická funkce dvou proměnných Disjunkce (logický součet) tvar výrazu skládající se z několika kratších výrazů spolu sčítaných, např.. Pravdivostní tabulka disjunkce viz Tab. 3. 0 0 0 1 0 1 1 1 0 1 1 1 Tab. 3 Disjunkce logická funkce dvou proměnných Pro práci s výše popsanými matematickými operacemi se používají následující základní pravidla Booleovy algebry [2]: Komutativní zákony Asociativní zákony Distributivní zákony (2.1) (2.2) (2.3)

Strana 14 2. BOOLEOVA ALGEBRA Absorpční zákony Neutrálnost 0 a 1 Agresivnost 0 a 1 De Morganovy zákony (2.4) (2.5) (2.6) (2.7) Výše popsaná pravidla nejsou úplná. V Booleově algebře ještě používáme další čtyři pravidla, která budou podrobněji popsána v kapitole 3.1. 2.2. Vyjádření booleovských funkcí Pro vyjádření booleovských funkcí používáme tyto následující formy zápisu: Pravdivostní tabulka do ní zapisujeme všechny možné kombinace hodnot nezávisle proměnných, pro které je funkce definována a jim odpovídající funkční hodnotu. Při zápisu je zvykem psát pořadí kombinací nezávisle proměnných po sobě ve dvojkové soustavě [2]. Příklad pravdivostní tabulky viz Tab. 4. 1 0 0 0 0 1 1 1 0 0 1 1 Tab. 4 Pravdivostní tabulka Algebraický výraz vyjádření logické funkce jako logický součet logických součinů. V pravdivostní tabulce postupujeme po řádcích a uvažujeme pouze ty, ve kterých funkční proměnná nabývá hodnoty. Každému takovému řádku odpovídá jeden součtový člen, který má tolik činitelů v součinu, kolik je vstupních logických proměnných. Vstupní proměnná, která má v příslušném řádku hodnotu 1 je zastoupena přímo. Ta, která má hodnotu, je zastoupena svojí negací [2]. Příklad algebraického výrazu zadán Tab.4 viz níže: Karnaughova mapa slouží nejen k vyjádření booleových funkcí, ale také k jejich minimalizaci. Mapa je tabulka obsahující tolik políček, kolik je kombinací proměnných funkce. Funkci s proměnnými vyjadřujeme mapou s políčky. Každé políčko odpovídá jedné z možných kombinací a zapisujeme do něj odpovídající funkční hodnotu. V zásadě rozlišujeme dvě mapy (Karnaughova a Svobodova) podle kódu, kterým přiřazujeme políčka jednotlivým kombinacím. U kódu Karnaughovy mapy se sousední políčka od sebe liší pouze v hodnotě jedné proměnné (používá Greyův kód) [2]. Svobodova mapa využívá binární kód, tzn. sousední políčka se mohou od sebe lišit i více proměnnými, neboť jednotlivá pole jsou ohodnocena číslem v desítkové

2. BOOLEOVA ALGEBRA Strana 15 soustavě vzestupně od do. Příklady Karnaughovy a Svobodovy mapy viz Obr. 1 a 2. x 4 x 2 x 1 x 3 0 1 3 2 x 4 x 2 x 1 x 3 1 0 1 2 3 1 4 1 5 1 7 6 4 5 6 7 1 1 12 13 15 14 1 8 9 10 11 8 9 11 10 12 1 1 13 14 15 Obr. 1 Karnaughova mapa Obr. 2 Svobodova mapa 2.3. Pouţití Booleovy algebry Booleova algebra se používá převážně v elektrotechnice při vytváření logických obvodů. Výhodou této algebry je využití především pravdivostních tabulek, do kterých lze jednoduchým způsobem zapisovat hodnoty vstupních a výstupních proměnných. Z těchto tabulek dále získáváme úplnou normální formu booleovských rovnic. Ve strojírenství nejvíce využíváme Booleovu algebru v oboru automatizace a regulace, při navrhování regulačních obvodů.

Strana 17 3. POPIS MINIMALIZAČNÍCH METOD 3.1. Booleova algebra Při minimalizaci funkcí pomocí Booleovy algebry se vychází ze čtyř základních pravidel, která jsou [1]: Vyloučený třetí (3.1) Logický rozpor (3.2) Dvojitá negace (3.3) Opakování (3.4) Vyjádření booleovské funkce může být zapsáno v součtovém nebo součinovém tvaru. Pro převod funkce mezi těmito tvary používáme De Morganových zákonů. 3.2. Karnaghuova mapa Minimalizace logických funkcí pomocí Karnaughovy mapy je umožněna její základní vlastností a to, že se dvě sousední políčka mapy liší pouze v hodnotě jedné proměnné. Pro získání minimální formy postupujeme tak, že sdružujeme do dvojic, čtveřic, osmic atd. sousední pole mapy, která obsahují jedničku jako funkční hodnotu. Základními pravidly pro minimalizaci logických funkcí pomocí Karnaughovy mapy jsou: všechny jedničky v mapě musí být zakroužkovány, žádnou nesmíme vynechat; každá jednička se může zakroužkovat několikrát, může být současně součástí dvojice, čtveřice, atd.; přednost mají větší seskupení jedniček před menšími; v rámci pravidla, podle kterého žádnou jedničku nesmíme vynechat, se snažíme o co nejmenší počet smyček. Jednotlivé smyčky představují elementární součiny výsledné funkce. Každý součin získáme tak, že vezmeme jednu smyčku z níž zapíšeme pouze ty proměnné, které nemění svoji hodnotu ve sloupcích nebo řádcích, ve kterých smyčka leží [2]. 3.3. Quine - McCluskeyho algoritmus Tato metoda se stává ze dvou částí. První částí je Quineův algoritmus, jež hledá všechny minimální implikanty dané výchozí úplné normální disjunktivní formy (úndfy). Implikantou funkce nazýváme funkci, jestliže množina bodů, ve kterých funkce nabývá hodnotu 1, je částí množiny. Množina je množinou všech jedniček a neurčených bodů dané funkce f [3]. 3.4. Quineův algoritmu pro nalezení všech minimálních implikant Nejdříve danou booleovskou funkci vyjádříme v úndfě. To nelze pouze v případě, že stále. Je-li funkcí proměnných a je-li její úndfa,

Strana 18 3. POPIS MINIMALIZAČNÍCH METOD zjistíme, zda neobsahuje všech možných členů, tj. zda-li je vždy. Následující algoritmus vede k cíli jen v případě. Sestavíme posloupnost disjunktivních forem, takto: I. Je-li, již sestrojené, vypustíme opakující se členy, tj. ty, které se liší jen pořadím proměnných a pak postupně uvažujeme všechny možné dvojice elementárních součinů v, které mají délku a které se liší v jediné inverzi, a každý elementární součin, který je společnou částí nějaké takové dvojice, přičteme k, čímž dostaneme ; (tedy najdeme-li v dvojici a, kde, pak k přičteme součin, přitom víme, že. II. Je-li, již sestrojena, vypustíme opakující se členy, tj. ty, které se liší jenom pořadím proměnných, a pak postupně uvažujeme všechny možné dvojice elementárních součinů v, z nichž jeden má délku a druhý má délku, přičemž ten kratší je částí toho delšího (tj. případně až na pořadí proměnných, kratší vznikne z delšího vypuštěním jednoho výskytu jedné proměnné s inverzí nebo bez inverze), a vždy ten delší součin vypustíme z, čímž dostaneme ; (jde o dvojice a, kde ; přitom víme, že pro každou booleovskou konstantu. Jestliže pro nějaký index zjistíme, že v neexistuje žádná dvojice elementárních součinů lišících se v jediné inverzi, jsme hotovi a množina všech minimálních implikantů výrazu je množinou všech součinů v disjunktní formě. Při praktickém užívání se Quineův algoritmus různě upravuje. Především je třeba si uvědomit, že každý součin, který je členem formy a má délku větší než, je minimálním implikantem výchozí formy (protože s ním se již nic neděje, ale zůstává obsažen ve všech dalších formách a tedy i ve výsledné formě ). Tedy každou formu, kde, lze rozdělit na dvě části a tak, že do patří všechny elementární součiny z, které mají délku větší než, a do patří všechny ostatní (ty mají délku ), takže platí. Zřejmě Quineův algoritmus se týká jenom části, takže, kde v h * i jsou všechny součiny z, které mají délku. Avšak každé se dá rozdělit na části pro tak, že do každého dáme právě ty elementární součiny které mají délku, přičemž klademe v případě, že žádaný součin délky neexistuje. Tedy platí a zřejmě. Potom je snadno vidět, že, zatímco [4]. 3.4.1. McCluskeyho úprava Quineova algoritmu Druhou částí algoritmu je McCluskeyho úprava Quineova algoritmu. Úprava se týká dvou věcí. Jednak se předpokládá, že pořadí jednotlivých proměnných je v každém elementárním součinu pevně stanoveno, takže každý takový součin je jednoznačně určen posloupností jedniček a nul. A dále pak se členy každé formy rozdělí do skupin tak, že v téže skupině jsou ty členy, v nichž se vyskytuje stejný počet proměnných bez inverze. Skupiny se uspořádají tak, že v první jsou členy s největším

3. POPIS MINIMALIZAČNÍCH METOD Strana 19 počtem výskytu proměnných bez inverze a v další pak je tento počet o jedničku menší atd. Toho se využívá při aplikaci kroku I a II neboť nemusíme porovnávat všechny dvojice členů, ale porovnáváme pouze členy sousedních skupin [4]. 3.5. Blakeova metoda Elementární součiny a se nazývají ortogonální, jestliže. Pro každé ortogonální součiny a platí zobecněné spojování, neboť. Aplikujeme-li na libovolnou ndf funkce všechny možné operace zobecněného spojování a poté absorpce, obdržíme zkrácenou normální disjunktivní formu (zndf) uvedené funkce [1]. Příklad: tj. zndf 3.6. Porovnání minimalizačních metod Minimalizace funkcí lze provádět několika metodami, které jsou popsány výše. Jednotlivé metody se od sebe liší způsobem provedení a vhodností pro jejich použití. První metodou je zjednodušování logických funkcí aplikací pravidel Booleovy algebry až na minimální výraz. Metoda se vyznačuje velkou pracností s nejistým výsledkem, že daný výraz je již opravdu v minimálním tvaru a navíc je nevhodná pro složitější funkce více proměnných. Metoda minimalizace pomocí karnaughových map je oproti předešlé metodě přehlednější, rychlejší a jednodušší. Bohužel však i tato metoda je nevhodná pro zpracování funkcí s více než cca 6 proměnnými (z důvodu, že mapa obsahuje políček, kde je počet proměnných, což např. při sedmi proměnných znamená práci se 128 políčky mapy). Další výše popsanou metodou je Quine-McCluskeyho algoritmus, který je vhodný pro počítačové zpracování. Metoda není omezena počtem proměnných, čímž se významně liší od metod předcházejících. Přesto však musíme upozornit na hranice možností výpočetní techniky, které nejsou neomezené, a brát zřetel na sofistikovanost daného výpočtového softwaru. Poslední zmíněná Blakeova metoda dovoluje na rozdíl od Quine-McCluskeyho metody operovat s libovolnou ndf funkce f a nejen s úndf.

Strana 21 4. MINIMÁLNÍ DISJUNKTIVNÍ FORMA V kapitole 3. byly popsány metody minimalizace jejichž výsledkem je nalezení všech součtů minimálních implikant. V obecném případě Quine-McCluskeyho algoritmu tyto výsledky však nemusí vyjadřovat minimální disjunktivní formu, i když žádný z výrazů již nelze dále zjednodušit, některý z nich může být redundantní. V následující podkapitole se tedy budeme věnovat postupu nalezení minimální disjunktivní formy. 4.1. Rozšíření Quine-McCluskeyho metody Při hledání minimální disjunktivní formy je třeba si uvědomit, že jestliže z minimální disjunktivní formy vypustíme některý ze součinů, tj. některou z minimálních implikant, jejich součtem uvažovaná forma je, že dostaneme formu, která již danou booleovskou funkci nevyjadřuje. (Jinak by se totiž uvažovaná forma dala zkrátit, což je spor s její minimalitou.) Taková disjunktivní forma, která vyjadřuje danou booleovskou funkci, ale která přestane tuto funkci vyjadřovat když z ní kterýkoliv člen, tj. elementární součin, vypustíme, se nazývá neredukovatelná. Tedy minimální disjunktivní forma je vždy neredukovatelná disjunktivní forma dané funkce. To ovšem znamená, že minimální disjunktivní formy nemusíme hledat vůbec mezi všemi disjunktivními formami, které jsou sestaveny z minimálních implikant, ale pouze mezi těmi, které jsou neredukovatelné. Tedy napřed najít všechny neredukovatelné a pak z nich vybrat ty nejkratší. Ale právě postup nalezení všech neredukovatelných je velice málo účinný (zejména ve složitějších případech). Tento postup se názorněji objasní pomocí tzv. tabulky minimálních implikant, která je sestavena takto: má tolik řádků kolik je minimálních implikant a záhlaví každého řádku je jediná minimální implikanta; má tolik sloupců kolik je elementárních součinů v úndfě dané funkce a záhlaví každého sloupce je jediný elementární součin z úndfy. V průsečíku nějakého řádku a nějakého sloupce uděláme značku, např. *, jestliže minimální implikanta tohoto řádku je částí elementárního součinu onoho sloupce (tj. vznikne z elementárního součinu vypuštěním některých proměnných). Příklad tabulky minimálních implikant viz tab. 5. yzw x zw xy w yz x z xy x w z x w * * xy * * x w * * z * * * * z * * * * Tab. 5 Tabulka minimálních implikant Z Quineova algoritmu ihned plyne, že disjunktivní forma, která je součtem všech minimálních implikant vyjadřuje danou funkci. Některé minimální implikanty lze však vypustit a i pak tato kratší disjunktivní forma vyjadřuje danou funkci. S vypuštěním lze jít jen tak daleko, aby ty hvězdičky, které jsou v řádcích uvažovaných minimálních implikant byly rozloženy do všech sloupců. Jakmile jsou hvězdičky všech uvažovaných minimálních implikant rozloženy jinak, tj. existuje alespoň jeden sloupec, v němž žádná z nich není, pak součet uvažovaných implikant již nevyjadřuje danou funkci. Důsledkem tohoto tvrzení je, že význačnou úlohu hrají ty sloupce tabulky, v nichž je

Strana 22 4. MINIMÁLNÍ DISJUNKTIVNÍ FORMA jediná hvězdička, protože ta minimální implikanta, v jejímž řádku tato jediná hvězdička je, musí být v každé disjunktivní formě z minimálních implikant, která vyjadřuje danou funkci. Proto se těmto minimálním implikantám říká nezbytné. Může se ovšem stát, že žádná minimální implikanta není nezbytná. Zde je velice důležité, že o nezbytnosti minimální implikanty se lze podle tabulky přesvědčit ihned a snadno. Proto se vždy napřed vyhledají všechny nezbytné implikanty a celá tabulka se zjednoduší tak, že z ní vypustíme všechny řádky nezbytných implikant a všechny sloupce obsahující jejich hvězdičky. Někdy je tato zjednodušená tabulka již tak přehledná, že je přímo vidět jak vybrat zbývající minimální implikanty, abychom dostali minimální disjunktivní formu. Předchozí Tab. 5 vede na zjednodušenou tabulku Tab. 6: x w x w * x w * Tab. 6 Zjednodušená tabulka minimálních implikant Z této tabulky je zřejmé, že je třeba přibrat buď jednu nebo druhou minimální implikantu k nezbytným a tím dostat celkem dvě minimální disjunktivní formy: a [4].

Strana 23 5. POPIS SOFTWARU MLF 5.1. Zdrojový kód Druhou částí bakalářské práce bylo vytvořit ve vyšším programovacím jazyku program pro minimalizaci funkcí pomocí Quine-McCluskeyho algoritmu. Program MLF byl vytvořen v programovacím prostředí Delphi 6. Zdrojový kód obsahuje výkonnou třídu TUNDF, která se stará o vlastní provedení minimalizace. Části kódu vidíte na obr. 3. Obr. 3 Ukázky částí zdrojového kódu třída TUNDF

Strana 24 5. POPIS SOFTWARU MLF 5.2. Grafické rozhraní programu Ikona pro spuštění programu MLF je zobrazena na obr.4. částí: Obr. 4 Ikona programu MLF Po spuštění programu se objeví hlavní okno, viz obr.5, které sestává ze čtyř A B C D A. Hlavní nabídka B. Panel rychlého spuštění C. Panel formy zadání D. Plocha pro zobrazení výsledků Obr. 5 Hlavní okno programu MLF

5. POPIS SOFTWARU MLF Strana 25 A. Hlavní nabídka Je tvořena čtyřmi podskupinami - Program, Data, Formulář, Zadání. Každá podskupina dále obsahuje příkazy pro obsluhu programu. Program Podskupina zobrazena na obr.6, obsahující následující příkazy: O programu základní informace o verzi, programátorovi a datu vydání; Konec příkaz pro ukončení běhu programu (klávesová zkratka Ctrl+Q). Data Obr. 6 Podskupina hlavní nabídky Program Podskupina zobrazena na obr.7, obsahující následující příkazy: Generovat náhodně pro zadání vstupních dat úndfou nebo pravdivostní tabulkou vygeneruje náhodné hodnoty elementárních součinů (Ctrl+R); Načíst ze souboru načte vstupní data hromadného zpracování ze souboru s příponou.ini (Ctrl+O); Uložit do souboru uloží vybrané výpočty do vybraného souboru (Ctrl+S); Vytvořit soubor otevře editor inicializačního souboru (Ctrl+N). Obr. 7 Podskupina hlavní nabídky Data

Strana 26 5. POPIS SOFTWARU MLF Formulář Podskupina zobrazena na obr.8, obsahující příkazy: Odstranit odstraní formulář z téže oblasti jako předchozí příkaz (Ctrl+E); Smazat vymaže uživatelem zadané hodnoty ve formuláři (Ctrl+D). Zadání Obr. 8 Podskupina hlavní nabídky Formulář Podskupina zobrazena na obr.9, obsahující příkazy: ÚNDF (Ctrl+N); Pravdivostní tabulka (Ctrl+N). Tyto volby mají stejnou funkci jako volby v panelu formy zadání viz obr. 5, popiska C - Panel formy zadání. Obr. 9 Podskupina hlavní nabídky Zadání

5. POPIS SOFTWARU MLF Strana 27 B. Panel rychlého spuštění Skládá se ze šesti tlačítek, viz obr.10, která slouží pro snadnou manipulaci s programem. Jednotlivá tlačítka mají stejné významy jako položky podskupin Data a Formulář z hlavní nabídky. Obr. 10 Tlačítka panelu rychlého spuštění

Strana 28 5. POPIS SOFTWARU MLF 5.3. Zadání ÚNDF Pro zadání funkce pomocí úndfy si nejprve vybereme první položku na panelu Forma zadání, poté určíme počet vstupních proměnných a klikneme na tlačítko Pokračuj - obr.11. Obr. 11 Výběr formy zadání počítané rovnice a počtu vstupních proměnných Objeví se okno zadání úndfy, viz obr. 12, kde jsou umístěny ovládací prvky pro zadání jednotlivých elementárních součinů. Označení zaškrtávacího pole nad proměnnou znamená negaci dané proměnné. Pomocí tlačítka Přidat elementární součin přidáme tyto součiny do zadání, které se nám zobrazí v oblasti zobrazení zadání (červeně ohraničená část obr. 12). Oblast zobrazení zadání Obr. 12 Okno zadání úplné normální disjunktivní formy Po použití tlačítka Vypočítej se vrátíme zpět do hlavního okna programu, viz obr.13, kde se na ploše pro zobrazení výsledků (viz obr.5, D) objeví záložka s názvem Úloha XX v níž je zobrazen výsledek počítané úlohy.

5. POPIS SOFTWARU MLF Strana 29 5.4. Zadání pravdivostní tabulky Obr. 13 Zobrazení výsledku početní úlohy Po zvolení dané položky z panelu Forma zadání, určení počtu vstupních proměnných a kliknutí na tlačítko Pokračuj, se na ploše pro zobrazení výsledků (viz obr.5, D) vygeneruje pravdivostní tabulka se zaškrtávacími poli pro každý řádek (elementární součin) viz obr.14. Obr. 14 Pravdivostní tabulka

Strana 30 5. POPIS SOFTWARU MLF Označení zaškrtávacího pole je rovno 1 ve funkční hodnotě elementárního součinu. Po kliknutí na tlačítko Vypočítej je provedena minimalizace funkce a zobrazen výsledek - obr.15. Obr. 15 Provedení výpočtu a zobrazení výsledku 5.5. Tvorba inicializačního souboru a následný výpočet více úloh Po vybrání této nabídky se zobrazí editační okno, viz obr.16, se třemi funkčními tlačítky, v němž je možno zadat více úloh současně. Poté máme buď možnost uložit data do souboru a nebo nechat úlohy spočítat. Obr. 16 Editační okno inicializačního souboru

5. POPIS SOFTWARU MLF Strana 31 Požadujeme-li výpočet jednotlivých úloh, budeme dotázáni, zda chceme pokračovat, nebo si předtím přejeme data uložit - obr.17. Obr. 17 Upozornění na ztrátu neuložených dat Následně je proveden výpočet a na ploše pro zobrazení výsledků (viz obr.5, D) hlavního okna programu zobrazen příslušný počet záložek viz obr.18. Obr.18 Výsledky jednotlivých úloh z editoru inicializačního souboru

Strana 33 6. ZÁVĚR Cílem bakalářské práce bylo popsat metody minimalizace logických funkcí a ve vyšším programovacím jazyce naprogramovat Quine-McCluskeyho algoritmus. Na základě doporučené literatury a internetových zdrojů byla vypracována teoretická část práce zabývající se základními matematickými principy Booleovy algebry. V návaznosti na základní pravidla Booleovy algebry byly popsány následující minimalizační metody: metody Booleovy algebry, Karnaughova mapa, Quine- McCluskeyho algoritmus a Blakeova metoda. Výsledkem porovnání těchto metod bylo konstatování nevhodnosti metod Booleovy algebry a nedokonalost Karnaughových map z důvodu jejich omezení počtem vstupních proměnných, i když využitím map lze dosáhnout minimální disjunktivní formy funkce. Poslední dvě vyjmenované metody: Quine-McCluskyho a Blakeova metoda, jsou nevýhodné v získání pouze zkrácené disjunktivní formy při algoritmickém výpočtu. Výpočet lze dále zjednodušit, avšak pouze využitím tabulky minimálních implikant, tzn. ruční formou výpočtu. Nevýhodou Quine-McCluskeyho algoritmu oproti Blakeově metodě je nutnost zadání úplné normální disjunktivní formy. Po důkladném prostudování Quine-McCluskeyho algoritmu byl na jeho základě vytvořen program MLF, který umožňuje výpočet zkrácené disjunktivní formy z úplné normální disjunktivní formy. Program byl vytvořen v programovacím jazyce Delphi a lze jej využít v oblastech, kde se provádí návrhy logických obvodů a jejich optimalizace. Vývoj programu by měl i nadále pokračovat ve spolupráci s Ústavem automatizace a informatiky VUT v Brně.

Strana 35 SEZNAM POUŢITÉ LITERATURY [1] BOKR, J. Minimalizace Booleových funkcí. 1.vyd. Plzeň : VŠSE, 1971. 35 s. [2] ŠVARC, I. Základy automatizace. 2.vyd. Brno : VUT v Brně, 2002. 101 s. [3] HOLÝ, Pavol. Určovanie skrátenej DNF pomocou Quine-McCluskeyho algoritmu [online]. 2001, 2001 [cit. 2007-04-11] <https://hornad.fei.tuke.sk/projekty/syntlog/sdnfgmc/index.html> [4] ČULÍK, K.; SKALICKÁ, M.; VÁŇOVÁ, I. Logika I. 1.vyd. Brno : SNTL, 1968. 82 s.