mÉtodo de quine mccluskey

76
Universidad José Carlos Mariátegui Sistemas Digitales MÉTODO DE QUINE McCLUSKEY Introducción En matemáticas las expresiones booleanas se simplifican por numerosas razones: - Una expresión más simple es más fácil de entender y tiene menos posibilidades de error a la hora de su interpretación. - Una expresión simplificada suelen ser más eficiente y efectiva cuando se implementan en la práctica, como en el caso de circuitos eléctricos o en determinados algoritmos. El método de Quine-McCluskey es particularmente útil cuando se tienen funciones con un gran número de variables, no es el caso del método de Karnaugh, que se hace impracticable con más de cinco variables. En nuestro caso, como el máximo número de variables será cuatro podremos utilizar conjuntamente ambos métodos. Una expresión booleana se compone de variables y términos. Para este método las variables sólo podrán tener un valor numérico de cero (el correspondiente al valor de verdad false) o uno (el correspondiente al valor de verdad true) y se designarán mediante una letra. Como notación se designará x si la variable contiene el valor uno, x’ en caso de que contenga el valor cero. 1 Wilber Araujo Quispe

Upload: loconil

Post on 26-Jun-2015

3.181 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

MÉTODO DE QUINE McCLUSKEY

 IntroducciónEn matemáticas las expresiones booleanas se simplifican por numerosas razones:

- Una expresión más simple es más fácil de entender y tiene menos posibilidades de error a la hora de su interpretación.

- Una expresión simplificada suelen ser más eficiente y efectiva cuando se implementan en la práctica, como en el caso de circuitos eléctricos o en determinados algoritmos.

El método de Quine-McCluskey es particularmente útil cuando se tienen funciones con un gran número de variables, no es el caso del método de Karnaugh, que se hace impracticable con más de cinco variables. En nuestro caso, como el máximo número de variables será cuatro podremos utilizar conjuntamente ambos métodos.

Una expresión booleana se compone de variables y términos. Para este método las variables sólo podrán tener un valor numérico de cero (el correspondiente al valor de verdad false) o uno (el correspondiente al valor de verdad true) y se designarán mediante una letra.

Como notación se designará x si la variable contiene el valor uno, x’ en caso de que contenga el valor cero.

Por otra parte, las variables se relacionarán entre sí únicamente mediante operaciones lógicas and para formar términos y mediante or para relacionarse con otros términos constituyendo una suma de productos. Ésta debe de ser canónica, es decir:

- Cada variable se usa una vez en cada término. A dichos términos se les llama términos canónicos.

 P.ejemplo f(x,y,j) = x’y z +x y’z

x’y z se representa con 011, donde x = 0, y = 1, z = 1

 x y’z se representa con 101, donde x = 1, y = 0, z = 1

1 Wilber Araujo Quispe

Page 2: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Metodo de Quine-McCluskeyIl metodo di Quine-McCluskey (o metodo degli implicanti primi) è un algoritmo sviluppato da Willard Van Orman Quine ed Edward McCluskey che viene utilizzato nelle reti combinatorie a due livelli di logica per la minimizzazione di una funzione booleana di n variabili. Il metodo è funzionalmente identico alla mappa di Karnaugh, ma la sua forma tabellare lo rende più efficiente per essere realizzato al computer; inoltre fornisce anche un modo deterministico per testare la minimizzazione di una funzione booleana.

Il metodo consiste in due passi:

1. Identificare tutti gli implicanti primi della funzione. 2. Riportare gli implicanti primi trovati in una tabella per ricavare gli implicanti

primi essenziali della funzione.

Complessità

Sebbene sia più pratico rispetto alle mappe di Karnaugh per funzioni con più di 4 variabili, il metodo di Quine-McCluskey ha comunque un intervallo limitato di utilizzo, poiché il problema che l'algoritmo risolve (la soddisfacibilità booleana) è NP-difficile: il suo runtime cresce esponenzialmente all'aumentare del numero degli ingressi. Si può dimostrare che per una funzione di n variabili il limite superiore sul numero di implicanti primi è 3n/n. Se n = 32 ci possono essere più di 6.5 * 1015 implicanti primi. Pertanto, le funzioni con un grande numero di variabili booleane deve essere minimizzato con metodi euristici, come ad esempio il minimizzatore logico Espresso.

Metodo

Il metodo consiste in due fasi principali: la ricerca degli implicanti primi e la successiva ricerca della copertura ottimale. Consideriamo la minimizzazione in forma di somma di prodotti (detta anche SOP, dall'acronimo inglese sum of products), ma il tutto è facilmente estendibile alla forma di prodotto di somme (o POS, product of sums).

Nella prima fase si applica sistematicamente la semplificazione del tipo:

cioè la proprietà distributiva del prodotto rispetto alla somma, dove P indica un qualsiasi termine prodotto (mintermine). Ovviamente il metodo è estendibile anche a funzioni non completamente specificate e anche a circuiti multiuscita. La prima fase consiste dei passi:

1. tabellare tutti i mintermini della funzione in forma binaria, in ordine crescente come per la tabella della verità;

2 Wilber Araujo Quispe

Page 3: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

2. confrontare tra loro tutti i termini esaustivamente: si semplificano i termini che differiscono per un solo bit (distanza di Hamming unitaria) e si marcano, in quanto essi hanno contribuito alla creazione di un implicante;

3. creare quindi una nuova tabella con tutti i termini prodotto marcati che vengono fuori dalla prima tabella e si ripete il passo 2);

4. il processo termina quando non si possono più fare riduzioni.

Al punto della costruzione della tabella è facile vedere che non dobbiamo necessariamente confrontare tutti i termini tra loro, ma effettivamente solo quei termini adiacenti che differiscono per un solo bit 1. Quindi raggruppiamo nella tabella i termini che hanno un numero uguale di 1 nel mintermine.

Esempio

Sia data la seguente funzione:

Passo 1: tabella degli implicanti primi

  a b c d       Pi 

  0 0 0 1   1 ...

  1 0 0 1   9 ...

  1 0 1 1   11 ...

  1 1 0 0   12 ...

  1 1 0 1   13 ...

  1 1 1 0   14 ...

  1 1 1 1   15 ...

Passo 2): confronto

Vediamo dalla tabella che il mintermine 1 va confrontato solo con il mintermine 9, che ha due 1 nel suo prodotto e non con gli altri che differiscono di due bit. Confrontando il mintermine 1 con quello 9 vediamo che differiscono solo per il primo bit: la prima riga della successiva tabella deve quindi essere -001 semplicando per l'appunto il primo bit. Il confronto di 1 con 12 non è compatibile perché i due mintermini non differiscono per un solo bit. Viceversa 9 si confronta con 11 e 13 ma non con 14, e 12 si confronta con 13 e 14 ma non con 11. Infine 11, 13, 14 si confrontano con 15. Il risultato finale è tabellato nella successiva tabella.

  a b c d       Pi 

  − 0 0 1   1,9 ...

  1 0 − 1   9,11 ...

  1 − 0 1   9,13 ...

  1 − 1 1   11,15 ...

3 Wilber Araujo Quispe

Page 4: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

  1 1 0 −   12,13 ...

  1 1 − 0   12,14 ...

  1 1 − 1   13,15 ...

  1 1 1 −   14,15 ...

Passo 2): ancora riduzione

Ovviamente dobbiamo nuovamente ridurre finché è possible. In questo caso possiamo solo confrontare 9,11 con 13,15 che differiscono per il secondo bit e 12,13 con 14,15 che differiscono solo per il terzo bit:

  a b c d       Pi 

  1 − − 1   9,11,13,15 ...

  1 1 − −   12,13,14,15 ...

Passo 3): selezione implicanti primi

A questo punto non sono possibili altre riduzioni. Gli implicanti primi sono:

P1(9,11,13,15) = ad

P2(12,13,14,15) = ab

Copertura

La seconda fase riguarda la scelta ottimale degli implicanti. Per fare questo costruiamo una tabella detta tabella di copertura che consiste in una matrice in cui gli indici di riga rappresentano gli implicanti primi identificati, mentre gli indici di colonna rappresentano tutti i mintermini Pi della funzione. Gli elementi della tabella di copertura

sono caselle segnate con 1 se l'implicante Pi copre il mintermine j-esimo, altrimenti sono 0. In alternativa si usa semplicemente una "x" per identificare solo gli uno in tabella.

1 9 11 12 13 14 15 ------------------------------- P0 | x x | P1 | x x x x | P2 | x x x x | -------------------------------

Esempio

A B C D f m0 0 0 0 0 0

4 Wilber Araujo Quispe

Page 5: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

m1 0 0 0 1 0 m2 0 0 1 0 0 m3 0 0 1 1 0 m4 0 1 0 0 1 m5 0 1 0 1 0 m6 0 1 1 0 0 m7 0 1 1 1 0 m8 1 0 0 0 1 m9 1 0 0 1 -m10 1 0 1 0 1m11 1 0 1 1 1 m12 1 1 0 0 1m13 1 1 0 1 0m14 1 1 1 0 -m15 1 1 1 1 1

Dalla tabella si può ricavare la forma canonica della funzione sotto forma di somma di prodotti (disgiuntiva) semplicemente sommando i mintermini con uscita "1" (ma tralasciando quelli con uscita don't care "-"):

fA,B,C,D = A'BC'D' + AB'C'D' + AB'CD' + AB'CD + ABC'D' + ABCD

La funzione, ovviamente, non è in forma minima. Quindi, per minimizzarla, si riportano su una tabella tutti i mintermini con uscita "1" (comprendendo anche quelli con il don't care come uscita), ordinandoli in classi a seconda del numero di "1" presenti in ciascun mintermine:

Numero di "1" Mintermine Rappresentazione binaria--------------------------------------------1 m4 0100 m8 1000--------------------------------------------2 m9 1001 m10 1010 m12 1100--------------------------------------------3 m11 1011 m14 1110--------------------------------------------4 m15 1111

A questo punto, si può iniziare a combinare i mintermini tra di loro. Se due mintermini, appartenenti a classi diverse, hanno una distanza di Hamming pari a 1 (ossia differiscono per una sola variabile), allora possono essere uniti, inserendo nella variabile non in comune un don't care. I mintermini che non possono essere combinati tra di loro sono indicati nell'esempio con un asterisco ("*"). Una volta esauriti tutti gli implicanti del 4º ordine, si passa all'eventuale semplificazione di quelli del 3º ordine, dove in questo caso vanno uniti tra loro i mintermini con distanza di Hamming pari a 2. Alla fine si perviene alla seguente tabella:

Implicanti del 4º ordine | Implicanti del 3º ordine | Implicanti del 2º ordine -------------------------------|--------------------------|-------------------------Numero di "1" Mintermine | |

5 Wilber Araujo Quispe

Page 6: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

-------------------------------|--------------------------|-------------------------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- |

Passo 2: tabella degli implicanti primi

Una volta terminata la ricerca degli implicanti primi, questi vengono riportati in una tabella apposita, scrivendo sulle righe gli implicanti e sulle colonne i mintermini.

4 8 10 11 12 15

m(4,12)* X X -100

m(8,9,10,11) X X X 10--

m(8,10,12,14) X X X 1--0

m(10,11,14,15)*

X X X 1-1-

Per poter procedere alla scelta delle coperture si applicano i seguenti criteri:

Dominanza di riga: La riga i domina la riga j se l'implicante Pi copre tutti i mintermini che copre l'implicante Pj più almeno uno.

Dominanza di colonna: La colonna i domina la colonna j se il mintermine mj è coperto dagli stessi implicanti da cui è coperto mi più almeno uno.

Scelta dell'implicante essenziale: Un implicante è detto essenziale se una marcatura presente in una colonna è coperta in una sola riga. Nel qual caso si aggiunge l'implicante all'insieme delle coperture e si elimina la riga e tutte le colonne in cui è presente una marcatura dell'implicante.

6 Wilber Araujo Quispe

Page 7: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

In questo caso, il secondo implicante primo può essere coperto dal terzo e dal quarto, mentre il terzo implicante primo può essere coperto dal secondo e dal primo, quindi entrambi non sono essenziali. In alcuni casi, "si presentano situazioni di mappe cicliche in cui non sono presenti condizioni di dominanza né di essenzialità, per cui vanno utilizzate altre procedure per la semplificazione. Un modo sistematico ed efficiente è rappresentato dal metodo di Petrick. In quest'esempio, gli implicanti primi essenziali non coinvologono tutti i mintermini, quindi si possono combinare gli implicanti essenziali con i due non essenziali, ottenendo le seguenti due equazioni:

Entrambe le equazioni ricavate sono funzionalmente equivalenti all'equazione originaria:

 

Algoritmo de Quine-McCluskey

El algoritmo de Quine-McCluskey del (o el el método de los implicants primeros ) es un método utilizó para la minimización de las funciones boleanas que fue desarrollada por W. Es funcionalmente idéntica al Karnaugh que traza, pero la forma tabular hace más eficiente para el uso en algoritmos de la computadora, y también da una manera determinista de comprobar que la forma mínima de una función boleana se ha alcanzado. Se refiere a veces como el método de la tabulación.

El método implica dos pasos: Encontrar todos los implicants de la prima de la función.

Utilizar esos implicants primeros en una carta implicant de la prima del para encontrar los implicants primeros esenciales de la función, así como otros implicants primeros que sean necesarios cubrir la función.

Complejidad

Aunque más sea práctico que Karnaugh el trazado al ocuparse de más de cuatro variables, el algoritmo de Quine-McCluskey también tiene una gama limitada de uso puesto que el problema que soluciona es el NP-duro: el tiempo de pasada del algoritmo de Quine-McCluskey crece el exponencial con el tamaño de la entrada. Puede ser demostrado que para una función de las variables del n el límite superior en el número de implicants primeros es 3 el n del n /. Si el n = 32 allí puede estar sobre 6.5 * 1015, implicants primeros. Las funciones con una gran cantidad de variables tienen que ser reducidas al mínimo con métodos heurísticos potencialmente no-

7 Wilber Araujo Quispe

Page 8: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

óptimo, cuyo el minimizer heurístico de la lógica del café express es el estándar de hecho del mundo.

Ejemplo

Paso 1: encontrar implicants primeros

Reducción al mínimo de una función arbitraria:

f (A, B, C, D) = \ suma m (4.14) \,

A B C D f m0 0 0 0 0 0 m1 0 0 0 1 0 m2 0 0 1 0 0 m3 0 0 1 1 0 m4 0 1 0 0 1 m5 0 1 0 1 0 m6 0 1 1 0 0 m7 0 1 1 1 0 m8 1 0 0 0 1 m9 1 0 0 1 x m10 1 0 1 0 1 m11 1 0 1 1 1 m12 1 1 0 0 1 m13 1 1 0 1 0 m14 1 1 1 0 x m15 1 1 1 1 1

Uno puede formar fácilmente la suma canónica de expresión de los productos de esta tabla, simplemente sumando el Minterms (que deja hacia fuera el no hacer - los términos del cuidado) donde la función evalúa a una: f_ del

l {A, B, C, D} = A'BC'D + AB'C'D + AB'CD + AB'CD + ABC'D + ABCD

Por supuesto, eso no es ciertamente mínimo. Para optimizar tan, todos los minterms que evalúan a uno primero se ponen en una tabla del minterm. No hacer - los términos del cuidado también se agregan en esta tabla, así que pueden ser combinados con los minterms:

Número de representación del binario de 1s Minterm -------------------------------------------- 1 m4 0100 m8 1000 -------------------------------------------- 2 m9 1001 m10 1010 m12 1100 -------------------------------------------- 3 m11 1011 m14 1110 -------------------------------------------- 4 m15 1111

A este punto, uno puede comenzar a combinar minterms con otros minterms. Si dos términos varían por solamente un solo dígito que cambia, ese dígito se puede substituir por una rociada que indica que no importa el dígito. Los términos que no pueden ser combinados más se marcan con un " *". Al ir del tamaño 2 a clasificar 4, tratar “-” como tercer valor de pedacito. Ex: -110 y -100 o -11 - se puede combinar, pero no -110 y 011-. (Truco: Emparejar encima de “-” primero.)

Número de 1s Minterm 0-Cube | Tamaño 2 Implicants | Tamaño 4 Implicants ------------------------------|-------------------|---------------------- 1 m4 0100 | m (4.11) 10--* m8 1000 | m (8.14) 1--0* ------------------------------| m (8.10) 10-0 |---------------------- 2 m9 1001 | m (8.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 - |

Paso 2: carta implicant primera

Ningunos de los términos se pueden combinar más lejos que éste, tan a este punto nosotros construye una tabla implicant primera esencial. A lo largo del lado van los implicants primeros acaban de generarse que, y a lo largo de la tapa van los minterms especificados anterior. No cuidar los términos no se colocan en tapa - se omiten de esta sección porque no son entradas necesarias.

8 Wilber Araujo Quispe

Page 9: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Algoritmo Quine–McCluskeyEl Algoritmo Quine–McCluskey es un método de simplificación de funciones booleanas desarrollado por Willard Van Orman Quine y Edward J. McCluskey. Es funcionalmente idéntico a la utilización del mapa de Karnaugh, pero su forma tabular lo hace más eficiente para su implementación en lenguajes computacionales, y provee un método determinístico de conseguir la mínima expresión de una función booleana.

Contenido

Pasos

El método consta de dos pasos:

1. Encontrar todos los implicantes primos de la función. 2. Usar esos implicantes en una tabla de implicantes primos para encontrar los

implicantes primos esenciales, los cuales son necesarios y suficientes para generar la función.

Complejidad

Aunque es más práctico que el mapa de Karnaugh, cuando se trata de trabajar con más de cuatro variables, el tiempo de resolución del algoritmo Quine-McCluskey crece de forma exponencial con el aumento del número de variables. Se puede demostrar que para una función de n variables el límite superior del número de implicantes primos es 3n/n. Si n = 32 habrá más de 6.5 * 1015 implicantes primos. Funciones con un número grande de variables tienen que ser minimizadas con otros métodos heurísticos.

Ejemplo

Paso 1: Encontrando implicantes primos

Minimizando una función arbitraria:

A B C D f

m0 0 0 0 0 0

m1 0 0 0 1 0

9 Wilber Araujo Quispe

Page 10: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

m² 0 0 1 0 0

m³ 0 0 1 1 0

m4 0 1 0 0 1

m5 0 1 0 1 0

m6 0 1 1 0 0

m7 0 1 1 1 0

m8 1 0 0 0 1

m9 1 0 0 1 X

m10 1 0 1 0 1

m11 1 0 1 1 1

m12 1 1 0 0 1

m13 1 1 0 1 0

m14 1 1 1 0 X

m15 1 1 1 1 1

10 Wilber Araujo Quispe

Page 11: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Uno fácilmente puede formar la expresión canónica suma de productos de esta tabla, simplemente sumando minitérminos (dejando fuera las redundancias) donde la función se evalúa con 1:

Por supuesto, esta expresión no es mínima. Para optimizarla, primero son colocados todos los minitérminos evaluados en la función como 1 en una tabla. Las redundancias también son agregadas a la tabla, estas pueden combinarse con los minitérminos:

N. de 1s Minterm Representación binaria

1m4m8

01001000

2m9m10m12

100110101100

3m11m14

10111110

4 m15 1111

En este punto, uno puede empezar a combinar los minitérminos entre sí. Si dos minitérminos sólo varían en un solo dígito, ese dígito debe reemplazarse por un guión "-" indicando que ese bit no importa. Los términos que ya no pueden combinarse más son marcados con "*". Cuando van de tamaño 2 a 4, tratamos '-' como un valor de bit.

Ejemplo: -110 y -100 o -11- pueden ser combinados, pero no -110 y 011-.

(Consejo: agrupar los '-' primero.)

Número de 1s Minterm Bin | Implicantes de tamaño 2 | Implicantes de tamaño 4--------------------------------|-------------------------|------------------------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 |--------------------------------|-------------------------|

11 Wilber Araujo Quispe

Page 12: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

4 m15 1111 | m(11,15) 1-11 | | m(14,15) 111- |

Paso 2: tabla de implicantes primos

Los términos marcados con "*" ya no pueden combinarse más, en este punto ya tenemos la tabla de implicantes primos. En el costado van los implicantes primos recientemente generados, y en la parte superior los minitérminos utilizados. Los minitérminos correspondientes a las redundancias son omitidos en este paso, no se colocan en la parte superior.

4 810

11 12 15

X X - 1 0 0

X X X 1 0 - -

X X X 1 - - 0

X X X 1 - 1 -

En esta tabla vemos los minitérminos que "cubre" cada implicante primo. Ninguno de los implicantes de esta tabla está incluido dentro de otro (esto queda garantizado en el paso uno), pero si puede estar "cubierto" por dos o más implicantes. Es el caso de

que está cubierto por y o

que está cubierto por y .

Por este motivo, cada uno de estos dos implicantes sólo son esenciales en ausencia del otro. Un proceso adicional simple para reducir estos implicantes es prueba y error, pero un proceso más sistemático es el método de Petrick. En el caso que estamos analizando,

los dos implicantes primos y no llegan a incluir todos los minitérminos por lo que podemos combinar estos implicantes con cada uno de los implicantes no esenciales para conseguir dos funciones mínimas:

Las dos son equivalentes a esta función original:

12 Wilber Araujo Quispe

Page 13: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

MÉTODO TABULAR DE QUINE-MC CLUSKEY Cuando las variables de una función son varias -seis o más- el método de Karnaugh resulta muy engorroso y complicado. En estos casos es más asequible el método de Quine-Mc Cluskey que a pesar de ser más lento, es más sistemático y por lo tanto más seguro. Así mismo puede resultar más idóneo incluso para cinco variables.El método de Quine Mc-Clusquey parte también de la representación de una función en forma canónica (minterms y maxterms). Consiste en ordenar, según el número de “unos” que tengan, las combinaciones de las variables que satisfacen la ecuación.A continuación se buscan las combinaciones que comparadas con las de grupos adyacentes, con un bit más o menos difieren sólo en una variable, que en una combinación estará negada y en la otra no, eliminándose la misma.La simplificación se basa en el mismo teorema que Karnaugh; es decir, queA + A’ = 1.

OBSERVACIONES: 1º- Todos los términos de la ecuación deben de contener todas las variables. 2º- Todos los términos de la ecuación que carezcan de alguna o algunas variables, ésta o éstas se incluyen, realizando el producto lógico entre ese o esos términos canónicos y los grupos formados por la suma de la o las variables sin negar y negadas.

Ejemplo: Sea la ecuación Y = ABCD’ + A’CDComo se puede observar, el segundo término canónico no contiene la variable B; pero como debe tenerla, según la observación segunda, se le introduce y queda: Y = ABCD’+ A’CD ( B + B’) = ABCD’ + A’BCD+ A’B’CD Ya todos los términos contienen todas las variables.

Los pasos a seguir para la simplificación de funciones por éste método son: 1º- Conseguir que todos los términos contengan todas las variables de la función. 2º- Se sustituyen todos los términos por los bits que representan las variables.(Una variable sin negar es un “uno” y para una variable negada se pone un “cero”). 3º- Se determina el índice de cada término, siendo éste el número de “unos” que tenga. Así mismo, y para distinguir entre si los distintos términos de igual índice, se designa a cada uno de ellos el valor decimal que su código binario representa. Por ejemplo 10011 es de índice 3 y se le asigna el valor once. 4º- Se hace una primera lista de los términos de la ecuación clasificándolos por su índice. 5º- Se hace una segunda lista combinando los términos anteriores teniendo en cuenta que los términos a combinar no deben diferir entre sí más que en el estado de una variable, la cual se sustituye por un guión”. Si hay dos o más términos repetidos, se eliminan todos menos uno. 6º- Se forma una tercera lista combinando las parejas de términos de acuerdo con la norma anterior. Las nuevas combinaciones dispondrán, por lo tanto, de dos guiones, el anterior y el obtenido ahora. Los términos repetidos se eliminan todos menos uno. 7º- Con los términos no eliminados (después de sustituidos de nuevo por letras) se forma la expresión simplificada.

13 Wilber Araujo Quispe

Page 14: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Ejemplo: Sea la ecuación Y = A’BC’ + A’CD + A’BCD’ + ACD1º- Poner a todos los términos todas las variables:Y = A’BC’ ( D+D’) + A’CD ( B+B’) +A’BCD’+ACD ( B+B’) Y = A’BC’D + A’BC’D’ + A’BCD + A’B’CD + A’BCD’+ ABCD + AB’CD 2º- Sustituimos las letras por bits:Y = 0101 + 0100 + 0111 + 0011 + 0110 + 1111 + 10113º- y 4º- Determinación del índice y confección de la primera lista.

índice término valor decimal 1 0100 4 2 0011 3 2 0101 5 2 0110 6 3 0111 7 3 1011 11 4 1111 15

5º- Confección de una segunda lista:

combinaciones término índice 4,5 0 1 0 _ 1 4,6 0 1 _ 0 1 5,7 0 1 _1 2 3,7 0 _1 1 2 6,7 0 1 1 _ 2 3,11 _ 0 1 1 2 7,15, _ 1 1 1 3 11,15 1 _ 1 1 3

6º- Tercera lista:

combinaciones término índice 4,5-6,7 01_ _ 1 4,6-5,7 01_ _ 1* 3,7-11,15 _ _11 2 3,11-7,15 _ _11 2*

Se elimina por estar repetido

7º- Ecuación simplificada Y = A’B + CD

Ejercicios

14 Wilber Araujo Quispe

Page 15: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

4: Problemas resueltos

PROBLEMA: Verificar los dos teoremas de DeMorgan mediante el uso de diagramas

de subconjuntos.

Empezaremos por la verificación del teorema de DeMorgan que dice:

A + B = A · B

Un diagrama de subconjuntos nos permite localizar A + B de la siguiente manera:

Por otra parte, de los diagramas de subconjuntos de A y B:

15 Wilber Araujo Quispe

Page 16: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

vemos de la intersección de los mismos (que viene siendo el producto Boleano de A y

B) que A·B es igual a:

Esto comprueba el teorema de DeMorgan que se deseaba verificar.

Ahora continuamos con el teorema de DeMorgan que dice:

A · B = A + B

Un diagrama de subconjuntos nos permite localizar A · B de la siguiente manera:

16 Wilber Araujo Quispe

Page 17: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Por otra parte, de los diagramas de subconjuntos de A y B que tenemos arriba, vemos

que la suma de los mismos A+B es igual al diagrama superior derecho. Esto comprueba

el otro teorema de DeMorgan que se deseaba verificar.

PROBLEMA: Mostrar todos los términos posibles del doble producto ABC usando un

diagrama de subconjuntos, escribiendo dentro de cada celda el término que le

corresponda (como ABC, ABC, etc.)

Para la resolución de este problema, resulta conveniente tener a la mano los diagramas

de subconjuntos para cada una de las variables considerando que el sistema estará

formado por tres variables en total:

Con estos tres diagramas a la mano, resulta fácil elaborar el diagrama de subconjuntos

mostrando todos los términos posibles del doble producto ABC:

17 Wilber Araujo Quispe

Page 18: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: Usando diagramas de subconjuntos, diseñar una máquina que produzca

las siguientes salidas.

Esta máquina se puede lograr juntando los productos básicos ABC, ABC, ABC y ABC,

pero en este problema se trata de construír una máquina más sencilla.

Un vistazo al diagrama de subconjuntos producido por la Tabla de Verdad

proporcionada demuestra que dicho diagrama se puede descomponer en la suma de

otros sub-diagramas que representan expresiones más sencillas:

18 Wilber Araujo Quispe

Page 19: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

En base a esto, la salida correspondiente a la misma máquina pero construída de una

manera más sencilla será:

Salida = AB + AC + BC

Obsérvese que con mera álgebra Boleana no es posible "ver" fácilmente esta

simplificación.

Esta máquina puede ser vista como una máquina analizadora de votos, puesto que la

salida será "1" cuando una mayoría de las entradas A, B, C sean "1". Y desde luego, el

principio de la misma puede ser extendido a más de tres entradas.

PROBLEMA: Usando diagramas de subconjuntos, diseñar la máquina más sencilla

posible cuya Tabla de Verdad sea la siguiente:

19 Wilber Araujo Quispe

Page 20: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Tomando en cuenta las entradas que producen un "1" a la salida, de la Tabla de Verdad

obtenemos el siguiente diagrama de subconjuntos (usando el mismo orden de acomodos

que en los problemas previos) que destaca los seis términos A·B·C, ABC, ABC, AB·C,

ABC y ABC:

Podemos agrupar los términos ABC', ABC y A·B·C obteniendo la región común a las

variables B y C, o sea B+C, y tomando tras esto la intersección de esta región con la

región que corresponde a la variable A:

20 Wilber Araujo Quispe

Page 21: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Podemos agrupar también los términos ABC y AB·C:

Esto deja a un solo término solitario, el término ABC:

Sumando las tres regiones obtenemos la expresión final para la máquina simplificada:

Salida = A(B + C) + AB + ABC

21 Wilber Araujo Quispe

Page 22: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: Dado un circuito cuya Tabla de Verdad es la siguiente:

construír el mapa de Karnaugh que le corresponde, mostrando en el mapa todas las

entradas correspondientes tanto de los "unos" como de los "ceros".

El contenido de cualquier Tabla de Verdad se puede vaciar directamente a un mapa de

Karnaugh, y viceversa. La Tabla de Verdad y el mapa de Karnaugh son en realidad dos

formas diferentes de representar exactamente la misma información. Podemos empezar

con la construcción del mapa poniendo un "1" en todos los casilleros del mapa que

correspondan a los minterms, por ejemplo ABCD, A·B·CD, etc., y una vez que

hayamos vaciado todos los minterms en el mapa podemos simplemente llenar el resto

de los casilleros con "0". Para la Tabla de Verdad proporcionada, vaciando los "unos"

en los lugares que les corresponden y vaciando los "ceros" en los lugares que les

corresponden, el mapa de Karnaugh será:

22 Wilber Araujo Quispe

Page 23: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: Representar, usando mapas de Karnaugh para cuatro variables, las

siguientes expresiones que contienen minterms:

1) ABCD + ABCD + ABCD + A·B·CD + A·B·CD

2) ABCD + AB·C·D + ABC·D + A·B·CD + A·B·C·D

Los mapas de Karnaughg para las expresiones dadas serán como se muestra a

continuación:

1)

23 Wilber Araujo Quispe

Page 25: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: La Tabla de Verdad para un circuito lógico es como se muestra a

continuación:

Usando minterms, dibujar su mapa de Karnaugh correspondiente.

De acuerdo con la Tabla de Verdad proporcionada, trabajando sobre las salidas con

valor de "1" la salida Boleana del circuito está dada en función de sus minterms por la

siguiente expresión:

Salida = A·B·C + ABC + ABC + ABC + ABC

El mapa de Karnaugh que corresponde a esta expresión es el siguiente:

25 Wilber Araujo Quispe

Page 26: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: Dibujar los mapas de Karnaugh para las siguientes expresiones:

__1) AB + A·B·C + BC

__2) ABC + B + BC

Puesto que ambas expresiones están dadas como sumas-de-productos, la representación

apropiada en ambos casos es a través de minterms. Los mapas deseados tendrán el

siguiente aspecto:

1)

2)

26 Wilber Araujo Quispe

Page 27: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

PROBLEMA: Representar en un mapa de Karnaugh la siguiente expresión:

ABCD + AB·C·D + ABD + A·B·CD + A·C

El mapa de Karnaugh para esta expresión Boleana de cuatro variables es el siguiente:

PROBLEMA: Una configuración produce la siguiente salida:

f = AB + ABCD + A·B·CD + A·B·D + A·B·CD

Simplificar la configuración utilizando el mapa de Karnaugh.

El mapa de Karnaugh, mostrando un posible agrupamiento simplificador, es el

siguiente:

27 Wilber Araujo Quispe

Page 28: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Según se puede observar en el mapa, una primera simplificación se puede llevar a cabo

enrollando el mapa horizontalmente alrededor de un cilindro para que varios cuadros

queden cubiertos por la expresión B·C. Sin embargo, esto deja fuera tres "unos".

Buscamos a continuación la mejor manera de agrupar los "unos" restantes como se

muestra en el siguiente agrupamiento:

28 Wilber Araujo Quispe

Page 29: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Estos dos agrupamientos "cobijan" todos los "unos"faltantes. Vemos que los demás

"unos" se pueden agrupar bajo las expresiones AB y B·D. La salida simplificada estará

dada entonces por la siguiente relación:

f = AB + B·C + B·D

PROBLEMA: Utilizando el mapa de Karnaugh, simplificar la siguiente expresión:

f = ABCD + ABCD + ABC·D + AB·CD + ABCD + ABCD + A·B·CD + A·B·CD

El mapa de Karnaugh correspondiente a esta expresión, con una posible simplificación,

es el siguiente:

La solución posible indicada en el mapa resulta ser:

f = ABD + ACD + ABC + A·BD

Existe, sin embargo, otra solución posible, la cual se indica en el siguiente mapa de

Karnaugh (uno de los agrupamientos se obtiene enrollando el mapa horizontalmente

uniendo el borde derecho con el borde izquierdo):

29 Wilber Araujo Quispe

Page 30: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Vemos pues que la solución alterna está dada por la relación:

f = ABC + BCD + ACD + B·CD

En este problema, el mapa de Karnaugh nos proporciona dos soluciones diferentes para

un mismo caso, cualquiera de las cuales es igualmente aceptable y válida.

Corresponderá al ingeniero de diseño decidir cuál de las dos soluciones es más

económica de construír con los componentes que tenga disponibles a la mano.

PROBLEMA: Representar en mapas de Karnaugh las siguientes expresiones que

contienen maxterms:

1) (A + B) ∙ (A + B + C) ∙ (A + B + C + D) ∙ (B + C + D)

2) (A + B + C) ∙ (A + C + D) ∙ (B + C + D) ∙ (A + D)

Los mapas de Karnaugh pedidos son los siguientes:

1)

30 Wilber Araujo Quispe

Page 31: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

2)

PROBLEMA: Un circuito produce la siguiente Tabla de Verdad. Usando maxterms,

encontrar su salida y simplificar dicha expresión usando el mapa de Karnaugh:

31 Wilber Araujo Quispe

Page 32: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Usando maxterms, la salida del circuito está dada por la siguiente relación:

(A + B + C + D) ∙ (A + B + C + D) ∙ (A + B + C + D) ∙ (A + B + C + D) ∙ (A + B + C +

D)

El mapa de Karnaugh con las agrupaciones simplificadoras posibles es el siguiente:

32 Wilber Araujo Quispe

Page 33: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Del mapa vemos que la expresión de salida simplificada será:

Salida = (B + C + D) ∙ (A + C + D) ∙ (A + B +D) ∙ (A + B + C)

PROBLEMA: Se requiere construír un circuito lógico que produzca las siguientes

salidas:

33 Wilber Araujo Quispe

Page 34: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Haciendo uso del mapa de Karnaugh y diseñando alrededor de los minterms, encontrar

un circuito minimizado que pueda producir las salidas deseadas.

Lo primero que debemos notar es que aunque se trata de un circuito lógico de cuatro

variables, no todas las 16 combinaciones posibles de variables están presentes, tales

como las combinaciones ABCD=1110, ABCD=1101, etc., lo cual podemos tomar como

un indicativo de que tales combinaciones no están presentes por el simple hecho de que

no serán utilizadas para los propósitos que persigue el circuito lógico que está siendo

diseñado. En otras palabras, son combinaciones redundantes, las cuales no importa que

tomen un valor de "1" ó de "0". Y si son redundantes, las podemos meter dentro del

mapa de Karnaugh simbolizadas con una "X", dando a entender con esto que pueden

tomar un valor de "1" ó de "0" sin que ello afecte en lo absoluto los requerimientos

finales del diseño. El mapa de Karnaugh del circuito, mostrando las simplificaciones

posibles que se pueden lograr aprovechando las combinaciones redundantes, es el

siguiente:

Enmarcados en un recuadro de color verde, los minterms AB·CD y AB·C·D junto con

las redundancias ABC·D, ABCD, ABCD, ABCD, ABCD y ABCD se reducen a la

variable A. Enmarcados en un recuadro de color rojo, los minterms ABCD y ABCD

junto con las redundancias ABCD y ABCD se reducen al término BC. Y enmarcados

34 Wilber Araujo Quispe

Page 35: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

en un recuadro de color azul, los minterms A'BCD y A'BC'D junto con las redundancias

ABCD y ABCD se reducen al término BD. La salida del circuito minimizado resulta ser

entonces:

Salida = A + BC + BD

PROBLEMA: Escribir, mostrando todas las variables Boleanas en forma explícita, las

expresiones representadas por la siguiente notación compacta:

(1) F(a,b,c) = Σm(0,2,7)

(2) F(A,B,C,D) = Σm(0,1,3,4,5,7,12,13,15)

(3) F(A,B,C,D) = Σm(15,11,7,14,10,12,6,4)

(4) Z = Σm(0,1,2,4,6)

En el primer caso que involucra a tres variables, la expresión Boleana explícita será:

F(a,b,c) = Σm(000,010,111)

F(a,b,c) = a∙b∙c + abc + abc

En el segundo caso, la expresión Boleana explícita será:

F(A,B,C,D) = Σm(0000,0001,0011,0100,0101,0111,1100,1101,1111)

F(A,B,C,D) = A∙B∙C∙D + A∙B∙CD + A∙BCD + ABC∙D + ABCD

+ ABCD + ABC∙D + ABCD + ABCD

En el tercer caso, la expresión Boleana explícita será:

F(A,B,C,D) = Σm(1111,0111,1110,1010,1100,0110,0100)

F(A,B,C,D) = ABCD + ABCD + ABCD + ABCD + ABC∙D + ABCDD + ABC∙D

35 Wilber Araujo Quispe

Page 36: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Y en el cuarto caso que podemos suponer que involucra a tres variables puesto que el

decimal más grande de todos no excede de 7 (111), designando a dichas variables como

p, q y r la expresión Boleana explícita será:

Z = Σm(000,001,010,100,110)

Z = p∙q∙r+ p∙q + pqr + pq∙r + pqr

PROBLEMA: Mediante el método de Quine-McCluskey, simplificar la siguiente

expresión.

Z = A∙B∙C + A∙B∙C + AB∙C + ABC

Usaremos la notación compacta para simplificar los listados que se llevarán a cabo, con

la cual:

Z = Σ(000,001,100,101)

Z = Σm(0,1,4,5)

Agrupando los términos según sus índices, podemos llevar a cabo una simplificación

sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista

de la manera mostrada:

En la segunda lista podemos ver que la expresión original ha sido reducida a:

Z = A∙B + B∙C + BC + AB

36 Wilber Araujo Quispe

Page 37: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Y en la tercera lista vemos que la expresión final simplificada es Z=B.

En este caso, dada la simplicidad de la minimización, no fue necesario trazar ninguna

retícula.

PROBLEMA: Mediante el método de Quine-McCluskey, simplificar la siguiente

expresión.

Z = A∙B∙CD + A∙BCD + ABCD + ABCD' + ABCD + ABCD' + A∙BCD

Por comodidad, usaremos la notación compacta para simplificar los listados que se

llevarán a cabo, con lo cual:

Z = Σm(0000,0010,0100,0101,1000,1001,1100)

Z = Σm(0,2,4,5,8,9,12)

Agrupando los términos según sus índices, podemos llevar a cabo una simplificación

sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista

de la manera mostrada:

De la simplificación sucesiva podemos ver que los implicantes primarios de la

expresión Boleana original son A∙B∙D, ABC, AB∙C y C∙D.

Finalmente, y aunque no es indispensable en este problema, construímos una retícula

37 Wilber Araujo Quispe

Page 38: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

con la finalidad de confirmar que ninguno de los implicantes primarios obtenidos es

redundante:

Podemos ver que la solución final de la minimización es entonces:

Z = A∙B∙D + ABC + AB∙C + C∙D

PROBLEMA: Mediante el método de Quine-McCluskey, simplificar la siguiente

expresión.

Z = A∙B∙C∙D + A∙B∙CD + A∙BCD + A∙BCD + ABCD + ABCD

+ AB∙C∙D + ABCD + ABC∙D + ABCD + ABCD

Nuevamente, por comodidad usaremos la notación compacta para simplificar los

listados que se llevarán a cabo, con lo cual:

Z = Σm(0000,0001,0010,0011,0101,0111,1000,1010,1100,1101,1111)

Z = Σm(0,1,2,3,5,7,8,10,12,13,15)

Agrupando los términos según sus índices, podemos llevar a cabo una simplificación

38 Wilber Araujo Quispe

Page 39: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista

de la manera mostrada:

De la simplificación sucesiva podemos ver que los implicantes primarios de la

expresión Boleana original son A∙B, B∙D, AD, BD, AC∙D y ABC. Finalmente,

construímos una retícula con la finalidad de remover a los implicantes primarios

redundantes:

Podemos ver que la solución final de la minimización, con los implicantes primarios

redundantes ya removidos, es entonces:

Z = B∙D + BD + A∙B + AC∙D

PROBLEMA: Mediante el método de Quine-McCluskey, simplificar la siguiente

expresión.

39 Wilber Araujo Quispe

Page 40: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Z = A∙B∙C∙D + A∙B∙CD + A∙BCD + A∙BCD + ABC∙D + ABCD

+ ABCD + AB∙CD' + AB∙CD + ABCD + ABCD

Agrupando los términos según sus índices, podemos llevar a cabo una simplificación

sucesiva pasando de la primera lista que aparece en el extremo izquierdo a la segunda

lista en donde puede apreciarse que los términos de cuatro variables han sido reducidos

a términos de tres variables, pasando finalmente a la tercera lista en el extremo derecho

en la cual los términos de tres variables han sido reducidos a términos de dos variables:

Finalmente, construímos la retícula en la cual "graficamos" los implicantes primarios

obtenidos en su relación con los minterms de la expresión original:

40 Wilber Araujo Quispe

Page 41: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

De la reticula podemos ver que la expresión final simplificada es:

Z = B∙C + A∙D + CD

El método de Quine-McCluskey es superior al mapa de Karnaugh en el sentido de que

el primero se presta a ser programado para ser resuelto de manera automática por una

computadora. Repasando los problemas anteriores, cualquiera que tenga conocimientos

previos en programación en algún lenguaje como BASIC ó C++ podrá ir formando ya

en su mente un algoritmo ("receta de cocina" generalizada especificando una serie de

pasos para la resolución de un problema computacional) para llevar a cabo la

minimización de un circuito lógico en forma automatizada mediante el método Quine-

McCluskey, el cual siempre garantiza la obtención de la configuración mínima. Sin

embargo, el principal problema con el método de Quine-McCluskey, visible ya para

alguien con conocimientos de programación que quiera elaborar su programa para

generalizar el método hacia cualquier número de variables, es que tiene que llevar a

cabo una búsqueda exhaustiva agotando una por una todas las posibilidades, lo cual en

la materia clásica de Estructuras de Datos equivale a tener que recorrer todos los

nodos de un "árbol" que se va formando al irse acumulando los resultados parciales

obtenidos en la búsqueda de la solución óptima. Esto, desde luego, pone al método de

Quine-McCluskey dentro de una categoría de problemas matemáticos conocidos como

NP-"duros", lo cual en términos llanos significa que el algoritmo de Quine-McCluskey

va creciendo exponencialmente de acuerdo a la cantidad de variables de entrada

aumentando enormemente la cantidad de tiempo computacional requerido a medida que

aumenta la cantidad de entradas a un circuito lógico, lo cual eventualmente limita el

rango de aplicación del método.

PROBLEMA: Así como hay una notación compacta para representar una expresión

Boleana puesta en función de sus minterms como una suma de productos, también hay

una notación compacta para representar una expresión Boleana puesta en función de sus

maxterms como un producto de sumas. Bajo esta notación, la siguiente expresión

Boleana escrita empleando maxterms, como un producto de sumas:

Salida = (A + B + C)(A + B + C)

41 Wilber Araujo Quispe

Page 42: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

puede ser convertida a notación compacta recordando la manera en la cual se definen

los maxterms a partir de una Tabla de Verdad (recuérdese que en un maxterm la suma

Boleana de las variables debe ser siempre cero, debiéndose complementar aquellas

variables que sean "1" para que así haya únicamente "ceros" en la formación del

maxterm). Así, la expresión dada arriba queda representada en forma compacta de la

siguiente manera:

Salida = ΠM(000,001)

o bien, usando la más familiar notación decimal:

Salida = ΠM(0,1)

Revirtiendo los pasos, podemos reconstruír la expresión original. Obsérvese que se ha

utilizado la letra griega Pi mayúscula (Π) para indicar que se trata de un producto de

sumas. El par "ΠM" se lee como "el producto de maxterms".

Definido lo anterior, representar en forma compacta las siguientes expresiones:

(1) F(A,B,C) = (A + B + C) ∙ (A + B + C)

(2) F(A,B,C,D) = (A+B+C+D) ∙ (A+B+C+D) ∙ (A+B+C+D) ∙ (A+B+C+D)

(2) Z = (A+B+C+D) ∙ (A+B+C+D) ∙ (A+B+C+D) ∙ (A+B+C+D) ∙ (A+B+C+D)

__________∙ (A+B+C+D) ∙ (A+B+C+D)

Para la primera expresión, convirtiendo cada maxterm a su equivalente binario de

acuerdo con la combinación de "unos" y "ceros" que lo producirían en una Tabla de

Verdad:

F(A,B,C) = ΠM(101,110)

F(A,B,C) = ΠM(5,6)

42 Wilber Araujo Quispe

Page 43: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Para la segunda expresión, convirtiendo cada maxterm a su equivalente binario de

acuerdo con lo que lo produciría en una Tabla de Verdad:

F(A,B,C,D) = ΠM(0101,1000,0011,1001)

F(A,B,C,D) = ΠM(5,8,3,9)

Reacomodando:

F(A,B,C,D) = ΠM(3,5,8,9)

Para la tercera expresión, convirtiendo cada maxterm a su equivalente binario de

acuerdo con lo que lo produciría en una Tabla de Verdad:

Z = ΠM(0010,0110,1110,1010,1000,1001,1011)

Z = ΠM(2,6,14,10,8,9,11)

Reacomodando:

Z = ΠM(2,6,8,9,10,11,14)

PROBLEMA: Encontrar, para un circuito de dos salidas con cuatro variables de

entrada, cuyos mapas de Karnaugh sean los siguientes:

43 Wilber Araujo Quispe

Page 44: MÉTODO DE QUINE McCLUSKEY

Xf

Universidad José Carlos Mariátegui Sistemas Digitales

los agrupamientos comunes que podrían ser utilizados para formar sub-circuitos

comunes reduciendo con ello la cantidad de componentes y alambrado requerido.

Con ambos mapas de Karnaugh puestos lado a lado, podemos captar de inmediato las

siguientes tres regiones comunes (una encerrada en una línea roja, la otra en una línea

verde, y la otra en una línea azul) que podrían ser utilizadas para formar sub-circuitos:

Obsérvese que no estamos utilizando aquí el mapa de Karnaugh en su sentido "clásico"

para minimizar una función Boleana dentro del mapa, sino para detectar las regiones

comunes en mapas diferentes. Sin embargo, una vez detectadas las regiones comunes a

mapas diferentes, podemos tratar de minimizar dichas regiones comunes dentro de cada

mapa (la simplificación en todo caso será la misma para regiones iguales). Esta técnica

se puede extender a circuitos lógicos con tres, cuatro, cinco o más salidas. El

inconveniente de ir extendiendo este método a una cantidad mayor de variables de

salida es que con muchos mapas de Karnaugh puede ir resultando más difícil captar las

regiones comunes.

6. Implicación

Un implicante es un mintérmino o un grupo de éstos que formen un sub-cubo.

Una expresión X implica la función f, si y solamente si f=1 para cualquier combinación de valores para los cuales X=1.

Se anota la implicación de la siguiente forma:

44 Wilber Araujo Quispe

Page 45: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

X Þ f

Puede verse que si X Þ f, con g una función booleana, puede anotarse: f = X + g .

Es decir, X es un término o parte de f. También suele decirse que f cubre a X. En una mapa de f, si X corresponde a un grupo de mintérminos, g corresponderá al resto de los mintérminos de f, no considerados en X.

Se desea ahora definir las componentes de f que sean más primitivas.

Implicantes primos

Un implicante primo es un implicante que no puede ser agrupado con otros implicantes, para formar un sub-cubo de mayor dimensión.

Se dice que X (producto de literales) es un “implicante primo” de f si y sólo si:

X Þ f

No existe y tal que X Þ y Þ f, donde el número de literales de y es menor que el número de literales de X.

No puede encontrarse un grupo mayor que X. Si existe y; entonces y es un implicante primo.

Básicamente, es un producto de literales que no puede ser combinado con otros para obtener un término con menos literales. Se dice primo o primitivo en el sentido de ser componente básica o elemental de una función.

Algunas propiedades de un implicante primo:

No contiene literales repetidos.

No contiene a una variable y a su complemento.

No contiene variables redundantes. Es decir, si se descarta un literal del implicante, el resto no será implicante.

Si x e y son implicantes primos de f, entonces: x no cubre a y; y viceversa.

45 Wilber Araujo Quispe

Page 46: MÉTODO DE QUINE McCLUSKEY

0X11

1010

D

A

1000

1111

B

C

0011

1010

A

Universidad José Carlos Mariátegui Sistemas Digitales

Encontrar los implicantes primos es determinar los grupos de mintérminos que pueden escribirse con menos literales.

Pasar de un implicante a un implicante primo está asociado a un proceso de crecimiento; es decir, a encontrar un grupo de mintérminos que forman el sub-cubo mayor posible.

Implicante primo esencial

Es aquél que cubre a lo menos un mintérmino de la función que no es cubierto por otros implicantes primos. Deben estar presentes en la forma mínima.

Los mintérminos superfluos pueden emplearse para formar implicantes primos; pero no deben considerarse para los implicantes primos esenciales.

Ejemplo: Para una función de 4 variables se tienen los siguientes implicantes primos:

A'B'D, BC', AC, A'C'D, AB, B'CD

De los 6 implicantes primos, sólo AC es esencial. ya que contiene al mintérmino: AB'CD' que no es cubierto por ningún otro implicante primo.

Puede comprobarse que se logra una mínima cobertura de la función con:

AC + BC' + A'B'D

Ejemplo: Para una función de 4 variables se tienen los siguientes implicantes primos:

BD, ABC', ACD, A'BC, A'C'D

46 Wilber Araujo Quispe

Page 47: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Sólo BD es no esencial.

La función mínima debe contener

los esenciales, y con éstos se logra

cubrir completamente a la función:

f = ABC' + ACD + A'BC + A'C'D

Método de Quine

Es un método sistemático para encontrar la expresión mínima de una función, que no depende de la habilidad para reconocer agrupaciones en un mapa de Karnaugh.

Básicamente, es una búsqueda exhaustiva de todas las adyacencias entre los mintérminos de la función, mediante la aplicación sistemática de:

a todos los términos de la forma canónica.

Obtención de implicantes primos

Se forma una primera columna con los mintérminos de la función.

Se forma la siguiente columna según:

¡ Se revisa el primer elemento de la columna con todos los siguientes; si se encuentra

un término que sólo difiera en una variable, se lo anota en la nueva columna,

omitiendo el literal correspondiente; se marcan los términos en la columna actual.

¡ Se repite el proceso para todos los elementos de la columna.

Se vuelve a repetir el paso anterior hasta que no se puedan formar nuevas columnas.

47 Wilber Araujo Quispe

a=ab+a b̄

Page 48: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Los términos que originan nuevas entradas, en la próxima columna, sólo necesitan marcarse una vez. Pero pueden usarse las veces que sea necesario.

Nótese que la segunda columna lista todos los grupos de dos mintérminos. La tercera, lista grupos de cuatro mintérminos adyacentes, y así sucesivamente. Al finalizar el proceso anterior, los elementos no marcados en las columnas, corresponden a los implicantes primos.

Ejemplo:

Obtener los implicantes primos de:

Primera columna Segunda columna

m min. marcas Grupos Implicantes

0 a'b'c' (0,2) a'c'

2 a'bc' (2,6) bc'

5 ab'c (5,7) ac

6 abc' (6,7) ab

7 abc

No se pueden formar nuevas columnas, por lo tanto los implicantes primos son:

a'c', bc', ac, ab

Nótese que en la segunda columna, se han identificado los renglones con los grupos de mintérminos.

Cuando se escribe, en la segunda columna: a'c', se marcan con el 0 y el 2 en la primera columna.

Cuando se escribe, en la segunda columna: bc', se marcan con los mintérminos 2 y 6.

Tabla de implicantes

48 Wilber Araujo Quispe

Page 49: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

La tabla de implicantes se forma empleando los implicantes primos en los renglones y los mintérminos de la función en las columnas. Luego, en cada renglón, se efectúa una marca en las columnas de los mintérminos pertenecientes al implicante considerado.

Aquellas columnas que tengan sólo una marca, permiten detectar a los implicantes primos esenciales. En esta tabla puede escogerse el menor número de implicantes primos que cubran todos los mintérminos de la función. Evidentemente, deben estar presentes todos los implicantes primitivos esenciales en la expresión mínima de una función.

Ejemplo: La tabla de implicantes, para el ejemplo anterior:

0 2 5 6 7

a'c'

bc'

ac

ab

La columna 0 permite identificar a: a'c' como implicante primo esencial.

Igualmente la columna 5 indica que ac también es esencial.

Se acostumbra encerrar con un círculo las marcas en las columnas que definen los implicantes primos esenciales.

Nótese que sólo resta cubrir el mintérmino 6, lo que puede lograrse eligiendo: bc' ó ab

Finalmente, la forma mínima es: f = a'c' +ac + bc'

o, alternativamente: f = a'c' + ac + ab

Reducción de tablas

En caso de tener tablas complejas, éstas pueden reducirse mediante el siguiente método.

Cada vez que se selecciona un implicante para formar la función, se remueve el renglón correspondiente.

49 Wilber Araujo Quispe

Page 50: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Cuando se remueve un renglón, también se eliminan las columnas que tienen marcas en dicho renglón.

Se comienza eliminando los implicantes primos esenciales. Luego la tabla puede seguir reduciéndose, aplicando las siguientes reglas:

Un renglón cubierto por otro, puede eliminarse (sólo el renglón).

Una columna que cubre a otra puede eliminarse (sólo la columna).

Un renglón cubre a otro, si tiene marcas en las columnas marcadas del otro, pudiendo además tener columnas adicionales marcadas. Podría decirse que el renglón eliminado es menos importante, debido a su menor cobertura de la función.

Ejemplo: Implicante primo ipa cubre a implicante primo ipb.

m1 m2 m3

ipa

ipb

Una columna cubre a otra, si contiene marcas en cada renglón que esa otra columna tiene marcas.

Ejemplo:

m1 m2 m3

ipa

ipb

ipc

ipd

La columna m2 cubre a la columna m1; puede eliminarse la columna m2. El mintérmino de la columna eliminada tiene asegurada su consideración.

50 Wilber Araujo Quispe

Page 51: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Se repite la aplicación de las reglas hasta agotar la tabla. Siempre se remueven aquellos renglones que contengan columnas con una sola marca (se tratan en la tabla reducida, en forma similar a los implicantes primos esenciales en la tabla completa).

La función se forma con los implicantes de los renglones removidos por contener columnas con una sola marca.

Excepción a lo anterior la constituyen las tablas reducidas cíclicas, que no pueden reducirse según el método recién planteado. En éstas se elige un implicante en forma arbitraria y se remueve el renglón correspondiente.

51 Wilber Araujo Quispe

Page 52: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Ejemplo: Reducir la tabla de implicantes de la función f.

1 3 4 6 7 9 13 15

ipa

ipb

ipc

ipd

ipe

ipf

ipg

iph

Observar que el implicante primo b es esencial. Removiendo el renglón asociado a b, deben también removerse columnas asociadas a los mintérminos 4 y 6.

Queda la siguiente tabla reducida:

1 3 7 9 13 15

ipa

ipc

ipd

ipe

ipf

ipg

iph

El renglón ipc cubre a ipd; por lo tanto, puede eliminarse el renglón ipd.

1 3 7 9 13 15

ipa

ipc

52 Wilber Araujo Quispe

Page 53: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

ipe

ipf

ipg

iph

La tabla resultante es cíclica. Se escoge arbitrariamente al primitivo ipa para formar la función, esto elimina columnas 1 y 3, quedando:

7 9 13 15

ipc

ipe

ipf

ipg

iph

Ahora, ipe cubre a ipc; e ipg cubre a iph, queda eliminando a ipc e iph:

7 9 13 15

ipe

ipf

ipg

ipe e ipg deben formar parte de la función; pues contienen a las columnas 7 y 9, que en la tabla reducida sólo tienen una marca. Luego de esto, la tabla queda vacía.

Finalmente:

F = ipb + ipa + ipe + ipg

Existen otras formas mínimas posibles. Estas se obtienen eliminando otro implicante cuando la tabla resultó cíclica.

53 Wilber Araujo Quispe

Page 54: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Por ejemplo, eliminando ipc, resulta:

1 9 13 15

ipa

ipe

ipf

ipg

iph

ipf cubre a ipe. iph cubre a ipa. Eliminando ipa e ipe, se obtiene:

1 9 13 15

ipf

ipg

iph

En la cual deben escogerse: ipf e iph.

Entonces resulta otra función mínima:

f = ipb +ipc + ipf + iph

Cuando se tienen condiciones superfluas, el método es similar, excepto que en la tabla no se consideran las columnas de mintérminos superfluos, debido a que éstos no requieren ser cubiertos.

El método anterior es adecuado para un número reducido de variables. Una variante del método tabular recién descrito es el de Quine-McCluskey. Básicamente, representa en forma digital el método de Quine, y es muy adecuado para ser programado en un computador.

54 Wilber Araujo Quispe

Page 55: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Método de Quine-McCluskey

Se forma la columna de mintérminos, codificada en binario o decimal, en grupos, de acuerdo al número de unos.

Se comparan los elementos de cada grupo, buscando adyacencias, y se forman las siguientes columnas en forma similar al método de Quine. Notando que en la representación decimal, diferencias de 1, 2, 4, 8 y, en general, de una potencia de 2, indican una diferencia en un bit. También se mantiene la separación en grupos en las nuevas columnas.

Existen tablas con los números decimales y su número de unos en representación binaria. Para facilitar la formación de los grupos.

La segunda columna representa todas las agrupaciones posibles de dos mintérminos. La tercera columna representa grupos de cuatro mintérminos, y así sucesivamente.

El algoritmo permite trabajar con dígitos decimales o binarios. Se anotan en los ejemplos columnas binarias y decimales.

En la segunda y siguientes columnas, las variables eliminadas se denotarán con un guión(también es posible anotar la posición del guión con un número decimal potencia de dos).

Pueden combinarse dos términos si ellos difieren solamente en un literal; por esta razón, no podrán combinarse dos términos en un mismo grupo. Los miembros de un grupo de un solo "1", difieren en dos variables por lo menos; lo mismo puede establecerse para los otros grupos. Esta observación organiza la búsqueda de adyacencias, ya que sólo es preciso comparar entre grupos adyacentes.

Ejemplo:

Aplicar método de Quine-McCluskey para minimizar la siguiente función:

g(a,b,c,d,e,f) = m(0,2,6,7,8,10,12,14,15,41)

Considerando la equivalencia binaria de los mintérminos decimales, se tienen:

m0 = 000000

m2 = 000010

m8 = 001000

55 Wilber Araujo Quispe

Page 56: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

m6 = 000110

m10 = 001010

m12 = 001100

m7 = 000111

m14 = 001110

m41 = 101001

m15 = 001111

Formando grupos, de acuerdo al número de unos:

Se obtiene la siguiente tabla:

Decimal

mintérmino a b c d e f Número de unos

0 0 0 0 0 0 0 0

2 0 0 0 0 1 0 1

8 0 0 1 0 0 0

6 0 0 0 1 1 0 2

10 0 0 1 0 1 0

12 0 0 1 1 0 0

7 0 0 0 1 1 1 3

14 0 0 1 1 1 0

41 1 0 1 0 0 1

15 0 0 1 1 1 1 4

Los mintérminos del grupo con n unos, se comparan con todos los del grupo con (n+1) unos.

En la representación decimal se buscan diferencias de potencias de dos; en binario, se busca la diferencia en un bit. Puede formarse la siguiente tabla, que contiene los implicantes formados por dos mintérminos:

Decimal Binario

56 Wilber Araujo Quispe

Page 57: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Grupo Posición a b c d e f Número de unos

0,2 2 0 0 0 0 - 0 0

0.8 8 0 0 - 0 0 0

2,6 4 0 0 0 - 1 0 1

2,10 8 0 0 - 0 1 0

8,10 2 0 0 1 0 - 0

8,12 4 0 0 1 - 0 0

6,7 1 0 0 0 1 1 - 2

6,14 8 0 0 - 1 1 0

10,14 4 0 0 1 - 1 0

12,14 2 0 0 1 1 - 0

7,15 8 0 0 - 1 1 1 3

14,15 1 0 0 1 1 1 -

En la notación decimal, se anota la lista de mintérminos y la posición de la variable eleiminada se registra con una potencia de dos entre paréntesis. Nótese que se mantiene el concepto de grupos, mediante líneas horizontales. A medida que se forma la segunda tabla, se van marcando los mintérminos utilizados en la primera tabla.

En el ejemplo no queda marcado el 41, ya que no puede agruparse con ningún otro mintérmino; en este caso el mintérmino 41 es implicante primo esencial.

Para formar la tercera tabla, que contendrá grupos de cuatro mintérminos; se buscan diferencias de potencias de dos entre grupos adyacentes, pero además deben tener igual diferencia (o posición de variable eliminada). Por ejemplo la componente del grupo ‘0,2’ es necesario compararla solamente con ‘8,10’ del segundo grupo, debido a la diferencia común (2).

No importa el orden de las listas de mintérminos, sólo se anotan una vez. Por ejemplo, entre los primeros grupos se tiene:

0, 2 (2)

8, 10 (2)

Diferencia: 8, 8 generando: 0, 2, 8, 10 (2,8)

57 Wilber Araujo Quispe

Page 58: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

0, 8 (8)

2, 10 (8)

Diferencia: 2, 2 generando: 0, 8, 2, 10 (8,2)

Estas dos agrupaciones se consideran iguales. Desarrollando en forma similar, se genera la siguiente tabla:

Decimal Binario

Grupo Posición a b c d e f Número de unos

0, 2, 8, 10 2,8 0 0 - 0 - 0 0

2, 6, 10, 14 4,8 0 0 - - 1 0 1

8, 10,12,14 2,4 0 0 1 - - 0

6, 7, 14, 15 1,8 0 0 - 1 1 - 2

De este modo quedan marcados todos los grupos de la segunda lista.

Nótese que, en la tabla anterior, no hay diferencias comunes entre grupos, por lo tanto, no puede formarse una siguiente tabla. Es decir, no hay implicantes formados por 8 mintérminos que estén formando un 3-cubo.

La tabla de implicantes resulta:

Implicantes

primos

0 2 8 6 10 12 7 14 41 15

41

0, 2, 8, 10

2, 6, 10, 14

8, 10, 12, 14

6, 7, 14, 15

58 Wilber Araujo Quispe

Page 59: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

Removiendo los implicantes primos esenciales, la función mínima queda:

g = ab'cd'e'f + a'b'd'f' + a'b'cf' + a'b'de

Es conveniente realizar el ejemplo, desarrollando agrupaciones en un mapa de Karnaugh, a medida que se forman las tablas.

Nótese que todo el proceso podría haberse realizado sólo considerando la información binaria, o solamente la información decimal.

La exposición de este método permite elaborar algoritmos para efectuar programas para minimización automática, y también tener las bases para comprender el funcionamiento de las aplicaciones.

El siguiente programa en Abel, permite obtener las ecuaciones minimizadas:

" Ejemplo Quine McKluskey.

"g(a,b,c,d,e,f) = Suma(0,2,6,7,8,10,12,14,15,41)

MODULE quine

" entradas

a, b, c, d ,e, f PIN;

" salidas

g PIN ISTYPE 'COM';

EQUATIONS

truth_table ( [a, b, c, d, e, f ]-> g)

0-> 1;

2-> 1;

6-> 1;

7-> 1;

8-> 1;

10-> 1;

12-> 1;

59 Wilber Araujo Quispe

Page 60: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

14-> 1;

15-> 1;

41-> 1;

END quine

Se obtienen las siguientes ecuaciones:

g = (a & !b & c & !d & !e & f ) # (!a & !b & d & e) # (!a & !b & !d & !f) # (!a & !b & c & !f)

!g = (a & !c) # (d & !e & f) # (a & e) # (!a & !d & f) # (!c & d & !e) # (b) # (a & !f)

Y puede generarse una simulación temporal, que permite obtener las siguientes formas de ondas:

Para lograr las formas de ondas, se generan los siguientes vectores de prueba:

Test_vectors ( [a, b, c, d, e, f]-> g )

00-> 1;01-> 0;02-> 1;03-> 0;04-> 0;05-> 0;

06-> 1;07-> 1;08-> 1;09-> 0;10-> 1;11-> 0;

12-> 1;13-> 0;14-> 1;15-> 1;16-> 0;17-> 0;

18-> 0;19-> 0;20-> 0;21-> 0;22-> 0;23-> 0;

24-> 0;25-> 0;26-> 0;27-> 0;28-> 0;29-> 0;

30-> 0;31-> 0;32-> 0;33-> 0;34-> 0;35-> 0;

36-> 0;37-> 0;38-> 0;39-> 0;40-> 0;41-> 1;

42-> 0;43-> 0;44-> 0;45-> 0;46-> 0;47-> 0;

48-> 0;49-> 0;50-> 0;51-> 0;52-> 0;53-> 0;

54-> 0;55-> 0;56-> 0;57-> 0;58-> 0;59-> 0;

60-> 0;61-> 0;62-> 0;63-> 0;

60 Wilber Araujo Quispe

Page 61: MÉTODO DE QUINE McCLUSKEY

Universidad José Carlos Mariátegui Sistemas Digitales

61 Wilber Araujo Quispe