Quine –McCluskey-metoden är en tabellform för att minimera booleska funktioner som föreslagits av Willard Quine och förbättrats av Edward McCluskey . Det är ett försök att bli av med bristerna i Quines metod .
Specificiteten hos Quine-McCluskey-metoden i jämförelse med Quine-metoden är att minska antalet parvisa jämförelser för deras limning. Minskningen uppnås på grund av den initiala indelningen av termer i grupper med lika många ettor (nollor). Detta gör det möjligt att utesluta jämförelser som uppenbarligen inte ger limning.
Även om det är mer praktiskt än Karnaugh-kartor när det kommer till fler än fyra variabler, har Quine-McCluskey-metoden också begränsningar i omfattningen, eftersom metodens körtid växer exponentiellt med ökande indata. Det kan visas att för en funktion av n variabler är den övre gränsen för antalet huvudimplikanter 3 n / n . Om n = 32 kan det vara fler än 6,5 * 10 15 . Se även omräkningsproblem .
Funktioner med ett stort antal variabler måste minimeras med en potentiellt suboptimal heuristik . Idag är den heuristiska algoritmen för espressominimering den de facto världsstandarden [1] .
Låt funktionen ges med hjälp av följande sanningstabell :
|
|
Man kan enkelt skriva SDNF genom att helt enkelt summera mintermerna (ignorera ofullständigt definierade termer ), där funktionen tar värdet 1.
För optimering skriver vi mintermerna, inklusive de som motsvarar likgiltiga tillstånd, i följande tabell:
Kvantitet 1 | Minterm | Binär representation |
---|---|---|
ett | M4 | 0100 |
M8 | 1000 | |
2 | M9 | 1001 |
M10 | 1010 | |
M12 | 1100 | |
3 | M11 | 1011 |
M14 | 1110 | |
fyra | M15 | 1111 |
Nu kan du börja kombinera minterms med varandra, det vill säga utföra limningsoperationen. Om två mintermer skiljer sig endast i ett tecken som är i samma position i båda, ersätter vi detta tecken med "-", vilket betyder att detta tecken inte spelar någon roll för oss. Termer som inte är tillgängliga för ytterligare kombination betecknas med "*". När vi övergår till implikanter av den andra rangen tolkar vi "-" som det tredje värdet. Till exempel: -110 och -100 eller -11- kan kombineras, men inte -110 och 011-. (Tips: Jämför "-" först.)
Kvantitet "1" Minterms | Nivå 1 implikanter | Nivå 2 implikanter ------------------------------------|------------- ------- ----|--------------------- 1 m4 0100 | m(4,12) -100* | m(8,9,10,11) 10--* m8 1000 | m(8,9) 100- | m(8,10,12,14) 1--0* ------------------------------------| m(8,10) 10-0 |-------------------------------- 2 m9 1001 | m(8,12) 1-00 | m(10,11,14,15) 1-1-* m10 1010 |-----------------------------| m12 1100 | m(9,11) 10-1 | ------------------------------------| m(10,11) 101- | 3 m11 1011 | m(10,14) 1-10 | m14 1110 | m(12,14) 11-0 | ------------------------------------|------------- ------- ----| 4 m15 1111 | m(11,15) 1-11 | | m(14,15) 111- |När ytterligare kombination inte längre är möjlig, konstruerar vi en tabell med primära implikanter. Här tar vi bara hänsyn till de utgångar från funktionen som spelar roll, det vill säga vi uppmärksammar inte ofullständigt definierade tillstånd.
fyra | åtta | 9 | tio | elva | 12 | fjorton | femton | ||
m(4,12) | X | X | -100 | ||||||
m(8,9,10,11) | X | X | X | X | tio-- | ||||
m(8,10,12,14) | X | X | X | X | 1--0 | ||||
m(10,11,14,15) | X | X | X | X | 1-1- |
Den implikanta urvalsprincipen är densamma som i Quines metod . Enkla implikanter som är kärnor visas i fet stil. I det här exemplet täcker inte kärnorna alla minterms, i vilket fall en ytterligare tabellförenklingsprocedur kan utföras (se Petriks metod ). Vi får följande alternativ: