1. 6. 2021

Quine–McCluskey & Wolfram language

Potřebujeme minimalizovat logickou funkci, která pro hodnoty 1, 2, 3, 4, 5, 6 a 10 vrací 1, pro 11 a 14 může vracet cokoliv, a pro zbývající hodnoty vrací nulu. K výpočtu minimální logické funkce se používá Quine–McCluskey algorithm. Ve Wolfram language ho zavoláme následujícím způsobem:

BooleanMinimize[BooleanFunction[Reverse[{0,1,1,1,1,1,1,0,0,0,1,_,0,0,_,0}]]][a,b,c,d]

Dostaneme:

(!a && b && !d) || (!a && !c && d) || (!b && c)

Pomocí BooleanFunction si vytvoříme logickou funkci, které předložíme seznam očekávaných hodnot. Pozor, funkce očekává hodnoty v obráceném pořadí, proto musíme použít Reverse. Pomocí BooleanMinimize pak vypočítáme minimalizaci logické funkce. Výrazem [a,b,c,d] do obecné logické funkce dosadíme konkrétní jména proměnných.