Quineova metoda je způsob, jak reprezentovat funkci v DNF nebo CNF s minimálním počtem členů a minimální sadou proměnných. [1] [2] [3]
Převod funkcí lze rozdělit do dvou kroků:
Představme si, že daná funkce je reprezentována v SDNF . Pro implementaci první fáze transformace prochází dvěma kroky:
Operace lepení se redukuje na hledání dvojic výrazů odpovídajících tvaru nebo a jejich převod na následující výrazy: . Výsledky lepení nyní hrají roli doplňkových termínů. Je nutné najít všechny možné dvojice termínů (každý termín s každým).
Poté se provede operace absorpce . Je založen na rovnosti (termín absorbuje výraz ). V důsledku této akce jsou z logického výrazu vymazány všechny členy absorbované jinými proměnnými, jejichž výsledky jsou získány v operaci lepení .
Obě operace prvního stupně mohou být prováděny tak dlouho, dokud to lze provést.
Použití těchto operací je uvedeno v tabulce:
0 | 0 | 0 | 0 |
0 | 0 | jeden | 0 |
0 | jeden | 0 | jeden |
0 | jeden | jeden | 0 |
jeden | 0 | 0 | jeden |
jeden | 0 | jeden | jeden |
jeden | jeden | 0 | jeden |
jeden | jeden | jeden | jeden |
SDNF vypadá takto:
Výsledek operace lepení je nutný k transformaci funkce na druhém stupni (absorpce)
Členy výsledku lepení jsou
Člen absorbuje ty členy původního výrazu, které obsahují , tedy první a čtvrtý. Tito členové jsou smazáni. Termín absorbuje druhý a třetí a termín absorbuje pátý termín původního výrazu.
Opakováním obou operací vznikne následující výraz:
Zde, dvojice pojmů a jsou slepeny k sobě (slepení dvojice pojmů vede ke stejnému výsledku), výsledek slepení pohltí 2-, 3-, 4-, 5-tý výraz výrazu. Další lepicí a absorpční operace se ukazují jako nemožné, zkrácená forma vyjádření dané funkce (v tomto případě se shoduje s minimální formou)
Zkrácené členy (v našem případě to je a ) se nazývají jednoduché implikanty funkce. Ve výsledku jsme dostali nejjednodušší výraz ve srovnání s původní verzí - SDNF . Blokové schéma takového prvku je znázorněno na obrázku vpravo.
Stejně jako v první fázi může výsledná rovnost obsahovat členy, jejichž odstranění žádným způsobem neovlivní konečný výsledek. Další fází minimalizace je odstranění takových proměnných. Níže uvedená tabulka obsahuje pravdivostní hodnoty funkce. Podle ní se bude vybírat další SDNF .
0 | 0 | 0 | 0 | jeden |
0 | 0 | 0 | jeden | jeden |
0 | 0 | jeden | 0 | jeden |
0 | 0 | jeden | jeden | 0 |
0 | jeden | 0 | 0 | 0 |
0 | jeden | 0 | jeden | 0 |
0 | jeden | jeden | 0 | jeden |
0 | jeden | jeden | jeden | 0 |
jeden | 0 | 0 | 0 | 0 |
jeden | 0 | 0 | jeden | 0 |
jeden | 0 | jeden | 0 | 0 |
jeden | 0 | jeden | jeden | 0 |
jeden | jeden | 0 | 0 | 0 |
jeden | jeden | 0 | jeden | 0 |
jeden | jeden | jeden | 0 | jeden |
jeden | jeden | jeden | jeden | jeden |
SDNF zkompilovaný z této tabulky vypadá takto:
Termíny tohoto výrazu jsou jednoduchými implikanty výrazu. Přechod z redukované formy na minimum se provádí pomocí implikantní matice .
Členy SDNF dané funkce se vejdou do sloupců a do řádků - jednoduché implikanty, tedy členy zkráceného tvaru. Sloupce termínů PDNF jsou označeny , které jsou absorbovány jednotlivými primárními implikanty. V následující tabulce jednoduchý implikant absorbuje pojmy a (křížky jsou umístěny v prvním a druhém sloupci).
Jednoduchý implikant | ||||||
---|---|---|---|---|---|---|
Druhý implikant absorbuje první a třetí člen SDNF (označeno křížky) atd. Implikanty, které nepodléhají vyloučení, tvoří jádro . Takové implikanty jsou určeny výše uvedenou maticí. Pro každý z nich existuje alespoň jeden sloupec, který je pokryt pouze tímto implikantem.
V našem příkladu tvoří implikanty a (překrývají druhý a šestý sloupec) jádro. Z redukované formy nelze současně vyloučit všechny implikanty, které nejsou zahrnuty v jádru, protože vyloučení jednoho z implikantů může z druhého udělat nepotřebný člen.
Pro získání minimálního formuláře stačí vybrat z implikantů nezařazených do jádra takový jejich minimální počet s minimálním počtem písmen v každém z těchto implikantů, který zajistí překrytí všech sloupců, na které se nevztahuje členy jádra. V uvažovaném příkladu je nutné pokrýt třetí a čtvrtý sloupec matice implikanty, které nejsou součástí jádra. Toho lze dosáhnout různými způsoby, ale protože je nutné zvolit minimální počet implikantů, je zřejmé, že implikant by měl být vybrán tak, aby tyto sloupce překrýval .
Minimální disjunktivní normální forma (MDNF) dané funkce je:
(A)Blokové schéma odpovídající tomuto výrazu je znázorněno na obrázku vlevo. Přechod z redukovaného schématu na MDNF byl proveden odstraněním nadbytečných termínů - implikant a . Ukažme si přípustnost takového vyloučení členů z logického výrazu.
Implikanty a stanou se rovny log. 1 pro následující sady hodnot argumentů: , , a , , .
Role těchto implikantů ve vyjádření zkráceného tvaru funkce je pouze přiřadit funkci na daných množinách hodnot argumentů hodnotu 1. U těchto množin je však funkce rovna 1 kvůli ostatním implikantům výrazu. Dosazením množiny hodnot uvedených výše do vzorce (a) skutečně získáme:
;
;
Pro získání minimální konjunktivní normální formy (MCNF) pomocí Quineovy metody jsou zavedena následující kritéria: