El método Quine – McCluskey es un método tabular para minimizar funciones booleanas propuesto por Willard Quine y mejorado por Edward McCluskey . Es un intento de deshacerse de las deficiencias del método de Quine .
La especificidad del método de Quine-McCluskey en comparación con el método de Quine es reducir el número de comparaciones por pares para su pegado. La reducción se logra debido a la división inicial de los términos en grupos con igual número de unos (ceros). Esto permite excluir comparaciones que obviamente no dan pegado.
Aunque es más práctico que los mapas de Karnaugh cuando se trata de más de cuatro variables, el método de Quine-McCluskey también tiene limitaciones de alcance, ya que el tiempo de ejecución del método crece exponencialmente con el aumento de los datos de entrada. Se puede demostrar que para una función de n variables el límite superior del número de implicantes principales es 3 n / n . Si n = 32 puede haber más de 6,5 * 10 15 . Véase también problema de transcomputación .
Las funciones con una gran cantidad de variables deben minimizarse con una heurística potencialmente subóptima . Hoy en día, el algoritmo heurístico de minimización de espresso es el estándar mundial de facto [1] .
Sea dada la función usando la siguiente tabla de verdad :
|
|
Uno puede escribir fácilmente SDNF simplemente sumando los minitérminos (ignorando los términos definidos de manera incompleta ), donde la función toma el valor 1.
Para optimizar, escribimos los minitérminos, incluidos los que corresponden a estados indiferentes, en la siguiente tabla:
Cantidad: 1 | término mínimo | representación binaria |
---|---|---|
una | M4 | 0100 |
M8 | 1000 | |
2 | M9 | 1001 |
M10 | 1010 | |
M12 | 1100 | |
3 | M11 | 1011 |
M14 | 1110 | |
cuatro | M15 | 1111 |
Ahora puede comenzar a combinar minterms entre sí, es decir, realizar la operación de pegado. Si dos minitérminos difieren solo en un carácter que está en la misma posición en ambos, reemplazamos este carácter por “-”, lo que significa que este carácter no nos importa. Los términos que no pueden combinarse más se indican con "*". Al pasar a implicantes de segundo rango, interpretamos "-" como el tercer valor. Por ejemplo: -110 y -100 o -11- se pueden combinar, pero no -110 y 011-. (Sugerencia: compare "-" primero).
Cantidad "1" Minitérminos | Implicantes de nivel 1 | Implicantes de nivel 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 |-------------------------------------- 2m9 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- | 3m11 1011 | m(10,14) 1-10 | m14 1110 | m(12,14) 11-0 | ---------------------------|------------- ------- ----| 4m15 1111 | m(11,15) 1-11 | | m(14,15) 111- |Cuando ya no es posible realizar más combinaciones, construimos una tabla de implicantes primos. Aquí tomamos en cuenta solo aquellas salidas de la función que importan, es decir, no prestamos atención a estados incompletamente definidos.
cuatro | ocho | 9 | diez | once | 12 | catorce | quince | ||
m(4,12) | X | X | -100 | ||||||
m(8,9,10,11) | X | X | X | X | diez-- | ||||
m(8,10,12,14) | X | X | X | X | 1--0 | ||||
m(10,11,14,15) | X | X | X | X | 1-1- |
El principio de selección implicante es el mismo que en el método de Quine . Los implicantes simples que son núcleos se muestran en negrita. En este ejemplo, los núcleos no cubren todos los minitérminos, en cuyo caso se puede realizar un procedimiento adicional de simplificación de tablas (consulte el método de Petrik ). Obtenemos la siguiente opción: