Metoda Quine –McCluskey este o metodă tabelară pentru minimizarea funcțiilor booleene propusă de Willard Quine și îmbunătățită de Edward McCluskey . Este o încercare de a scăpa de neajunsurile metodei lui Quine .
Specificul metodei Quine-McCluskey în comparație cu metoda Quine este de a reduce numărul de comparații perechi pentru lipirea lor. Reducerea se realizează datorită împărțirii inițiale a termenilor în grupuri cu un număr egal de uni (zero). Acest lucru face posibilă excluderea comparațiilor care, evident, nu dau lipire.
Deși mai practică decât hărțile Karnaugh atunci când vine vorba de mai mult de patru variabile, metoda Quine-McCluskey are, de asemenea, limitări ale domeniului de aplicare, deoarece timpul de rulare al metodei crește exponențial odată cu creșterea datelor de intrare. Se poate arăta că pentru o funcţie de n variabile limita superioară a numărului de implicanţi principali este 3 n / n . Dacă n = 32 pot exista mai mult de 6,5 * 10 15 . Vezi și problema de transcomputing .
Funcțiile cu un număr mare de variabile trebuie reduse la minimum cu o euristică potențial sub-optimală . Astăzi, algoritmul euristic de minimizare espresso este standardul mondial de facto [1] .
Fie dată funcția folosind următorul tabel de adevăr :
|
|
Se poate scrie cu ușurință SDNF prin simpla însumare a mintermilor (ignorând termenii incomplet definiți ), unde funcția ia valoarea 1.
Pentru optimizare, scriem termenii, inclusiv cei care corespund stărilor indiferente, în următorul tabel:
Cantitatea 1 | Minterm | Reprezentare binară |
---|---|---|
unu | M4 | 0100 |
M8 | 1000 | |
2 | M9 | 1001 |
M10 | 1010 | |
M12 | 1100 | |
3 | M11 | 1011 |
M14 | 1110 | |
patru | M15 | 1111 |
Acum puteți începe să combinați mintermii unul cu celălalt, adică să efectuați operația de lipire. Dacă doi mintermi diferă doar într-un caracter care se află în aceeași poziție în ambele, înlocuim acest caracter cu „-”, ceea ce înseamnă că acest caracter nu contează pentru noi. Termenii care nu pot fi combinați în continuare sunt notați cu „*”. Când trecem la implicanții de rangul doi, interpretăm „-” ca a treia valoare. De exemplu: -110 și -100 sau -11- pot fi combinate, dar nu -110 și 011-. (Sugestie: comparați „-” mai întâi.)
Cantitatea "1" Minterms | Implicanți de nivel 1 | Implicanți de nivelul 2 ------------------------------------|-------------- ------- ----|--------------------- 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- |Când nu mai este posibilă o combinație suplimentară, construim un tabel de implicanți primi. Aici luăm în considerare doar acele ieșiri ale funcției care contează, adică nu acordăm atenție stărilor incomplet definite.
patru | opt | 9 | zece | unsprezece | 12 | paisprezece | cincisprezece | ||
m(4,12) | X | X | -100 | ||||||
m(8,9,10,11) | X | X | X | X | zece-- | ||||
m(8,10,12,14) | X | X | X | X | 1--0 | ||||
m(10,11,14,15) | X | X | X | X | 1-1- |
Principiul de selecție implicant este același ca în metoda lui Quine . Implicanții simpli care sunt nuclee sunt afișați cu caractere aldine. În acest exemplu, nucleele nu acoperă toți mintermii, caz în care poate fi efectuată o procedură suplimentară de simplificare a tabelului (vezi metoda lui Petrik ). Avem următoarea opțiune: