Professional Documents
Culture Documents
METODO DE QUINE McCLUSKEY PDF
METODO DE QUINE McCLUSKEY PDF
2
En matemticas las expresiones booleanas se simplifican por numerosas
razones:
- Una expresin ms simple es ms fcil de entender y tiene menos
posibilidades de error a la hora de su interpretacin.
- Una expresin simplificada suelen ser ms eficiente y efectiva cuando se
implementan en la prctica, como en el caso de circuitos elctricos o en
determinados algoritmos.
El mtodo de Quine-McCluskey es particularmente til cuando se tienen
funciones con un gran nmero de variables, no es el caso del mtodo de
Karnaugh, que se hace impracticable con ms de cinco variables. En nuestro
caso, como el mximo nmero de variables ser cuatro podremos utili zar
conjuntamente ambos mtodos.
Una expresin booleana se compone de variables y trminos. Para este
mtodo las variables slo podrn tener un valor numrico de cero (el
correspondiente al valor de verdad false) o uno (el correspondiente al valor de
verdad true) y se designarn mediante una letra.
Como notacin 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 relacionarn entre s nicamente mediante
operaciones lgicas and para formar trminos y mediante or para relacionarse
con otros trminos constituyendo una sta debe de ser
cannica, es decir:
- Cada variable se usa una vez en cada trmino. A dichos trminos se les llama
.
P.ejemplo f(x,y,j) =
xy z +x yz
c
2
!%
2ebbene 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. 2i pu
dimostrare che per una funzione di n variabili il limite superiore sul numero di
implicanti primi 3n/n. 2e 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.
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 2OP, dall'acronimo inglese sum of products), ma il tutto
facilmente estendibile alla forma di prodotto di somme (o PO2, 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.V tabellare tutti i mintermini della funzione in forma binaria, in ordine crescente
come per la tabella della verit;
2.V 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;
c
2
3.V creare quindi una nuova tabella con tutti i termini prodotto marcati che vengono
fuori dalla prima tabella e si ripete il passo 2);
4.V 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.
2ia data la seguente funzione:
&
(
0001
...
1001
...
1011
11
...
1100
12
...
1101
13
...
1110
14
...
1111
15
...
&
001
1,9
10
...
9,11 ...
01
9,13 ...
11
11,15 ...
110
11
12,13 ...
0
>
12,14 ...
Wilber Araujo Quispe
c
11
111
2
13,15 ...
14,15 ...
&
(
1
11
9,11,13,15 ...
12,13,14,15 ...
P1(9,11,13,15) = ad
P2(12,13,14,15) = ab
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 P i della funzione. Gli elementi della tabella di copertura
sono caselle segnate con 1 se l'implicante P i 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|
-------------------------------
ABCD
m0 0 0 0 0
m1 0 0 0 1
m2 0 0 1 0
m3 0 0 1 1
f
0
0
0
0
Wilber Araujo Quispe
c
m4 0 1 0 0
m5 0 1 0 1
m6 0 1 1 0
m7 0 1 1 1
m8 1 0 0 0
m9 1 0 0 1
m10 1 0 1 0
m11 1 0 1 1
m12 1 1 0 0
m13 1 1 0 1
m14 1 1 1 0
m15 1 1 1 1
2
1
0
0
0
1
1
1
1
0
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 "-"):
c
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
m1 5 1111 | m(11,15) 1-11
|
| m(14,15) 111|
4 8 10 11 12 15
m(4,12)*
m(8,9,10,11)
X X X
m(8,10,12,14)
X X
m(10,11,14,15)*
X X
-100
10--
1--0
X 1-1-
Per poter procedere alla scelta delle coperture si applicano i seguenti criteri:
V
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
c
2
Algoritmo de Quine-McCluskey
El algoritmo de Quine-McCluskey del (o el el mtodo de los implicants primeros ) es un mtodo
utiliz para la minimizacin de las funciones boleanas que fue desarrollada por W. Es
funcionalmente idntica al Karnaugh que traza, pero la forma tabular hace ms eficiente para el
uso en algoritmos de la computadora, y tambin da una manera determinista de comprobar que
la forma mnima de una funcin boleana se ha alcanzado. 2e refiere a veces como el mtodo de
la tabulacin.
El mtodo implica dos pasos: Encontrar todos los implicants de la prima de la funcin.
Utilizar esos implicants primeros en una carta implicant de la prima del para encontrar los
implicants primeros esenciales de la funcin, as como otros implicants primeros que sean
necesarios cubrir la funcin.
!+
Aunque ms sea prctico que Karnaugh el trazado al ocuparse de ms de cuatro variables, el
algoritmo de Quine-McCluskey tambin 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 tamao de la entrada. Puede ser demostrado que para una funcin de las
variables del n el lmite superior en el nmero de implicants primeros es 3 el n del n /. 2i 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 mnimo con mtodos heursticos potencialmente noptimo, cuyo el minimizer heurstico de la lgica del caf express es el estndar de hecho del
mundo.
+!
& M' !
Reduccin al mnimo de una funcin arbitraria:
c
2
R
c
2
&
El mtodo consta de dos pasos:
1.V Encontrar todos los implicantes primos de la funcin.
2.V Usar esos implicantes en una tabla de implicantes primos para encontrar los
implicantes primos esenciales, los cuales son necesarios y suficientes para
generar la funcin.
!+
Aunque es ms prctico que el mapa de Karnaugh, cuando se trata de trabajar con ms
de cuatro variables, el tiempo de resolucin del algoritmo Quine-McCluskey crece de
forma exponencial con el aumento del nmero de variables. 2e puede demostrar que
para una funcin de n variables el lmite superior del nmero de implicantes primos es
3n/n. 2i n = 32 habr ms de 6.5 * 1015 implicantes primos. Funciones con un nmero
grande de variables tienen que ser minimizadas con otros mtodos heursticos.
+!
& M' !
Minimizando una funcin arbitraria:
m0
m1
m4
c
2
m5
m6
m7
m8
m9
m10
m11
m12
m13
m14
m15
Uno fcilmente puede formar la expresin cannica suma de productos de esta tabla,
simplemente sumando minitrminos (dejando fuera las redundancias) donde la funcin
se evala con 1:
Por supuesto, esta expresin no es mnima. Para optimizarla, primero son colocados
todos los minitrminos evaluados en la funcin como 1 en una tabla. Las redundancias
tambin son agregadas a la tabla, estas pueden combinarse con los minitrminos:
M/
c
m4
m8
0100
1000
m9
m10
m12
1001
1010
1100
m11
m14
1011
1110
m15
1111
2
En este punto, uno puede empezar a combinar los minitrminos entre s. 2i dos
minitrminos slo varan en un solo dgito, ese dgito debe reemplazarse por un guin "" indicando que ese bit no importa. Los trminos que ya no pueden combinarse ms son
marcados con "*". Cuando van de tamao 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.)
Nmero de 1s Minterm Bin | Implicantes de tamao 2 | Implicantes de tamao 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
|
-------------------------------- |-------------------------|
4
m15 1111 | m(11,15) 1 -11
|
| m(14,15) 111|
MM
c
2
X X X
X X
- 100
1 0- -
X X
1 - - 0
X 1 - 1-
En esta tabla vemos los minitrminos 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 ms implicantes. Es el caso de
que est cubierto por
que est cubierto por
y
y
o
.
Por este motivo, cada uno de estos dos implicantes slo son esenciales en ausencia del
otro. Un proceso adicional simple para reducir estos implicantes es prueba y error, pero
un proceso ms sistemtico es el mtodo de Petrick. En el caso que estamos analizando,
los dos implicantes primos
y
no llegan a incluir todos
los minitrminos por lo que podemos combinar estos implicantes con cada uno de los
implicantes no esenciales para conseguir dos funciones mnimas:
,.
,0
Cuando las variables de una funcin son varias -seis o ms- el mtodo de Karnaugh
resulta muy engorroso y complicado. En estos casos es ms asequible el mtodo de
Quine-Mc Cluskey que a pesar de ser ms lento, es ms sistemtico y por lo tanto ms
seguro. As mismo puede resultar ms idneo incluso para cinco variables.
El mtodo de Quine Mc-Clusquey parte tambin de la representacin de una funcin en
forma cannica (minterms y maxterms). Consiste en ordenar, segn el nmero de
unos que tengan, las combinaciones de las variables que satisfacen la ecuacin.
A continuacin se buscan las combinaciones que comparadas con las de grupos
adyacentes, con un bit ms o menos difieren slo en una variable, que en una
combinacin estar negada y en la otra no, eliminndose la misma.
La simplificacin se basa en el mismo teorema que Karnaugh; es decir, que
M*
c
2
,2
M
.04,
'
M5 Todos los trminos de la ecuacin deben de contener todas las variables.
*5 Todos los trminos de la ecuacin que carezcan de alguna o algunas variables, sta o
stas se incluyen, realizando el producto lgico entre ese o esos trminos cannicos y
los grupos formados por la suma de la o las variables sin negar y negadas.
+!'
2ea
la
ecuacin
3
,.2
1
,2
Como se puede observar, el segundo trmino cannico no contiene la variable B; pero
como debe tenerla, segn la observacin segunda, se le introduce y queda:
3 ,.21 ,2 6 . 1 .2 3 ,.2 1 ,2.1 ,2.2
Ya
todos
los
trminos
contienen
todas
las
variables.
$ ! !) ) '
M5 Conseguir que todos los trminos contengan todas las variables de la funcin.
*5 2e sustituyen todos los trminos por los bits que representan las variables.(Una
variable sin negar es un uno y para una variable negada se pone un cero).
>5 2e determina el ndice de cada trmino, siendo ste el nmero de unos que tenga.
As mismo, y para distinguir entre si los distintos trminos de igual ndice, se designa a
cada uno de ellos el valor decimal que su cdigo binario representa. Por ejemplo 10011
es
de
ndice
3
y
se
le
asigna
el
valor
once.
5 2e hace una primera lista de los trminos de la ecuacin clasificndolos por su
ndice.
5 2e hace una segunda lista combinando los trminos anteriores teniendo en cuenta
que los trminos a combinar no deben diferir entre s ms que en el estado de una
variable, la cual se sustituye por un guin. 2i hay dos o ms trminos repetidos, se
eliminan
todos
menos
uno.
l5 2e forma una tercera lista combinando las parejas de trminos de acuerdo con la
norma anterior. Las nuevas combinaciones dispondrn, por lo tanto, de dos guiones, el
anterior y el obtenido ahora. Los trminos repetidos se eliminan todos menos uno.
;5 Con los trminos no eliminados (despus de sustituidos de nuevo por letras) se
forma
la
expresin
simplificada.
+!' 2ea la ecuacin 3 ,2.2 1 ,2 1 ,2.2
1Poner
a
todos
los
trminos
todas
las
3 ,2.2 6 12 1 ,2 6 .1.2 1,2.21,
3 ,2.2 1 ,2.22 1 ,2. 1 ,2.2 1 ,2.21 ,.
22ustituimos
las
letras
por
3 /M/M 1 /M// 1 /MMM 1 //MM 1 /MM/ 1 MMMM
3- y 4- Determinacin del ndice y confeccin de la primera lista.
7
1
2
2
2
3
3
1 ,
variables:
6 .1.2
1 ,.2
bits:
1 M/MM
M>
c
1111
2
15
7
0109 1
0190 1
0 1 91 2
0 91 1 2
0119 2
9011 2
9111 3
1911 3
6- Tercera lista:
(
4,5-6,7
4,6-5,7
3,7-11,15
3,11-7,15
7
019 9 1
019 9 1*
9 911 2
9 911 2*
+
' &(! !
&0. ,: Verificar los dos teoremas de DeMorgan mediante el uso de diagramas
c
V
jt
V
V
VVlVi i
i VlVtVVMVVi
:V
.V .V
V
ViVV
jtVVitVl
liV .VVlViitV:V
V
V
VtVtVVlViVV
jtVVVV.:V
V
V
VVlVit
M
V
il Vj Vi
V
c
2
V
V
tV
V lV tV V MV V V V i i
V
V
V
tiV
VlVtVVMVVi
:V
. .V
V
ViVV
jtVVitVl
liV .VVlViitV:V
V
V
V tVtV V lV iV V
jtV VV V.V VtV i V V
VlVVVlViV.VVilVlViViV
VtV
V
lV
tV
tV
V
MV
V
V
V
i i
V
V
V
.
:VMtVtVlVt iVi lVlV lV
tV. VVV
iV V
jtV
i iV tV V
V
lV lV t iV V lV
V
M
V
V
. V
. V
t
V
il VjViV
c
2
V
VlVl
i VVtV lVltV
itVtVVlV VlViV
V
jtV V
V V V lV i lV
iV V lV itV tV
VVtVi lVVttl:V
V
V
CV tVtViVVlV VltV
ilVl VlV iVV
jtV
tVtVlVt iVi lVlV lV
tVBC:V
V
V
V
.
:VViVV
jtViVV iVV
V
lViitVli
V
M
V
il VjViV
c
2
V
V
tViVVVlVjtVlV
tV i
V. V. V. VV. V
V V tV lV V ttV V
tV V iV V
ill
V
V
V itV lV iV V
jtV
iV V lV
iV tV V i
V iV V V
V V lV V V
tV "iVVtV#iVV
ill:V
V
V
V V V tV lV liV
itV V lV iV iV V
tV V V
VV
illV:V
!
. .V
V
$ %V V
V V l V BlV V V i lV ""V
iltV tV
ilii
i
V
V
tV iV V V itV
V V iV liV V tV tV V lV
liVV"M"V
VVVVlVtVV.VVV"M"
V&VVlVlV
i
iiV V lV iV V V #tiV V V V tV t
V
V
V
M
V
il VjViV
c
2
Tomando en cuenta las entradas que producen un "M" 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 trminos ,:.:, ,., ,., ,.:,
,. y ,.:
Podemos agrupar los trminos ,.', ,. y ,:.: obteniendo la regin comn a las
variables . y , o sea .1, y tomando tras esto la interseccin de esta regin con la
regin que corresponde a la variable ,:
c
2 !" # "
V
V
VVt i%VlVt%iV.VV.:V
V
V
tVjVVVlVt%iVlitiVlVt%iV.:V
V
V
VlVtViV tVlV#i VilVVlViVilii
:V
!
. . .V
*
V
il VjViV
c
%
%
2 $ &'( $ ) ( &$
V
V
.
:VVV
i
itV
V lVV!VVlViit:V
V
V
V
lV ""V
V
V lV "
"
V
V
lV
tiVV
liV lVV!VVV
iVi
ttVVV VV
'VVi
V(V lVV!VVlVVV'VVVliVV
VitVVtV#
ttVlViVi
i
VVV
V lV
t
*M
V
il VjViV
c
2
&0.
,: Representar, usando mapas de Karnaugh para cuatro variables, las
siguientes
expresiones
que
contienen
minterms:
1)
,.
,.
,.
,:.:
,:.:
2)
,.
,.::
,.:
,:.:
,:.::
Los mapas de Karnaughg para las expresiones dadas sern como se muestra a
continuacin:
1)
**
c
2
2)
*>
c
Usando
minterms,
dibujar
su
2
mapa
de
Karnaugh
correspondiente.
De acuerdo con la Tabla de Verdad proporcionada, trabajando sobre las salidas con
valor de "M" la salida Boleana del circuito est dada en funcin de sus minterms por la
siguiente expresin:
! 3 ,:.: + ,. + ,. + ,. + ,.
El mapa de Karnaugh que corresponde a esta expresin es el siguiente:
&0. ,' Dibujar los mapas de Karnaugh para las siguientes expresiones:
c
__1)
,.
__2)
,.
2
,:.:
+
aspecto:
1)
2)
c
2
la
configuracin
utilizando
el
mapa
de
Karnaugh.
*l
c
2
2egn se puede observar en el mapa, una primera simplificacin se puede llevar a cabo
enrollando el mapa horizontalmente alrededor de un cilindro para que varios cuadros
queden cubiertos por la expresin .:. 2in embargo, esto deja fuera tres "unos".
Buscamos a continuacin la mejor manera de agrupar los "unos" restantes como se
muestra en el siguiente agrupamiento:
*;
c
2
Estos dos agrupamientos "cobijan" todos los "unos"faltantes. Vemos que los dems
"unos" se pueden agrupar bajo las expresiones ,. y .:. La salida simplificada estar
dada entonces por la siguiente relacin:
) 3 ,. + .: + .:
*R
c
2
maxterms:
1) (, 1 .) (, 1 . 1 ) (, 1 . 1 1 ) (. 1 1 )
2) (, 1 . 1 ) (, 1 1 ) (. 1 1 ) (, 1 )
Los
mapas
de
Karnaugh
pedidos
son
los
siguientes:
1)
c
2
2)
>/
c
2
Usando maxterms, la salida del circuito est dada por la siguiente relacin:
(, 1 . 1 1 ) (, 1 . 1 1 ) (, 1 . 1 1 ) (, 1 . 1 1 ) (, 1 . 1 1
)
El mapa de Karnaugh con las agrupaciones simplificadoras posibles es el siguiente:
>M
c
2
&0.
,: 2e requiere construr un circuito lgico que produzca las siguientes
salidas:
>*
c
2
Haciendo uso del mapa de Karnaugh y diseando 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 lgico de cuatro
variables, no todas las 16 combinaciones posibles de variables estn presentes, tales
como las combinaciones ,.3MMM/, ,.3MM/M, etc., lo cual podemos tomar como
un indicativo de que tales combinaciones no estn presentes por el simple hecho de que
no sern utilizadas para los propsitos que persigue el circuito lgico que est siendo
diseado. En otras palabras, son combinaciones redundantes, las cuales no importa que
tomen un valor de "M" de "/". Y si son redundantes, las podemos meter dentro del
mapa de Karnaugh simbolizadas con una ";", dando a entender con esto que pueden
tomar un valor de "M" de "/" sin que ello afecte en lo absoluto los requerimientos
finales del diseo. 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 ,.: y ,.:: junto con
las redundancias ,.:, ,., ,., ,., ,. y ,. se reducen a la
variable ,. Enmarcados en un recuadro de color rojo, los minterms ,. y ,.
junto con las redundancias ,. y ,. se reducen al trmino .. Y enmarcados
en un recuadro de color azul, los minterms A'BCD y A'BC'D junto con las redundancias
>>
c
2
&0.
,: Escribir, mostrando todas las variables Boleanas en forma explcita, las
expresiones
(1)
representadas
por
la
siguiente
F(,(,)
notacin
compacta:
m(0,2,7)
(2)
F(,,.,,)
m(0,1,3,4,5,7,12,13,15)
(3)
F(,,.,,)
m(15,11,7,14,10,12,6,4)
<
(4)
m(0,1,2,4,6)
En el primer caso que involucra a tres variables, la expresin Boleana explcita ser:
F(,(,) = m(000,010,111)
F(,(,) = ( + ( + (
En el segundo caso, la expresin Boleana explcita ser:
F(,,.,,) = m(0000,0001,0011,0100,0101,0111,1100,1101,1111)
F(A,B,C,D) = ,. + ,. + ,. + ,. + ,.
+ ,. + ,. + ,. + ,.
En el tercer caso, la expresin Boleana explcita ser:
F(,,.,,) = m(1111,0111,1110,1010,1100,0110,0100)
F(,,.,,) = ,. + ,. + ,. + ,. + ,. + ,. + ,.
>
c
+
+
2 * ,-. * / . ,*
V
&V V lV
tV
V V VV V il
VVtV i lV tV V lV
ilVVVVtVV#
VV)V***ViVVi
Vi lV
V
V
VVVlV#i VBlV#l
itV:V
<V
,,,,,*,*,*,,**,V
+V
V
< -
- -
-
V
V
V
.
:V MitV lV %tV V i"M
Cl.V ilii
V lV iitV
#i
V
< -.- -.- .- .V
V
VlVt
i V
tVVilii
VlVlitVVVllVV
V
V
lV
l:V
<V
,,,,,**,,*,*V
+V
V
<V+V M V
V
V lV t%iV /V V i
V V llV V
V V ilii
i V
iVVVViVlitVVVVlitVVtVtVVVt
VlitV
VlVVt:V
V
V
VlVVlitVVVVlV#i ViilVViV
iV:V
< -. .- . .V
>
V
il VjViV
c
1
1
2 0 234 0 5 4 20
V
&V V lV t
V litV V V lV #i V ilV ilii
V V <. V
V
V tV
V V lVili
iV V lV iii
i V V V
iVtV iV
t
l
V
V
V
.
:V MitV lV %tV V i"M
Cl.V ilii
V lV iitV
#i
V
< -.- -. . . . . -.V
V
V
iV V lV t
i V
tV V ilii
V lV litV V V
llVV
V
VlV
l:V
<V
,,,,,,*,,*,,,*,**,,,*,,***,,V
+V
V
<V+V,01345*0V
V
V lV t%iV /V V i
V V llV V
V V ilii
i V
iVVVViVlitVVVVlitVVtVtVVVt
VlitV
VlVVt:V
V
V
V lV ilii
i V
iV V V V lV ili
tV iiV V lV
#i V
BlV
iilV
V
-.-V
.V
.-V
V
- V
V
6iltV V V V V ii lV V tV lV
tV V t
lV
>
V
il VjViV
c
2
m(0000,0001,0010,0011,0101,0111,1000,1010,1100,1101,1111)
< = m(0,1,2,3,5,7,8,10,12,13,15)
Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificacin
sucesiva pasando de una primera lista a una segunda lista y tras esto a una tercera lista
de la manera mostrada:
>;
c
7
7
2 6 89: 6 ; : 86
V
V
V lV ilii
i V
iV V V V lV ili
tV iiV V lV
#i V BlV iilV V -.V .-V V .V -V V .
V 6iltV
tV V t
lV
V lV iliV V V V lV ili
tV iiV
t:V
V
V
V V V lV l
i V ilV V lV iii
i V
V lV ili
tV iiV
tVViVVt
:V
< .- . -. -V
V
V
.
:V MitV lV %tV V i"M
Cl.V ilii
V lV iitV
#i
V
<
-.--
-.-
-.
-.
.-
.
>
V
il VjViV
c
2
Agrupando los trminos segn sus ndices, podemos llevar a cabo una simplificacin
sucesiva pasando de la primera lista que aparece en el extremo izquierdo a la segunda
lista en donde puede apreciarse que los trminos de cuatro variables han sido reducidos
a trminos de tres variables, pasando finalmente a la tercera lista en el extremo derecho
en la cual los trminos de tres variables han sido reducidos a trminos de dos variables:
>
c
2
el primero se presta a ser programado para ser resuelto de manera automtica por una
computadora. Repasando los problemas anteriores, cualquiera que tenga conocimientos
previos en programacin en algn lenguaje como BA2IC C++ podr ir formando ya
en su mente un algoritmo ("receta de cocina" generalizada especificando una serie de
pasos para la resolucin de un problema computacional) para llevar a cabo la
minimizacin de un circuito lgico en forma automatizada mediante el mtodo QuineMcCluskey, el cual siempre garantiza la obtencin de la configuracin mnima. 2in
embargo, el principal problema con el mtodo de Quine-McCluskey, visible ya para
alguien con conocimientos de programacin que quiera elaborar su programa para
generalizar el mtodo hacia cualquier nmero de variables, es que tiene que llevar a
cabo una bsqueda exhaustiva agotando una por una todas las posibilidades, lo cual en
la materia clsica de equivale a tener que recorrer todos los
nodos de un "rbol" que se va formando al irse acumulando los resultados parciales
obtenidos en la bsqueda de la solucin ptima. Esto, desde luego, pone al mtodo de
Quine-McCluskey dentro de una categora de problemas matemticos conocidos como
de
aplicacin
del
mtodo.
&0.
,: As como hay una notacin compacta para representar una expresin
Boleana puesta en funcin de sus minterms como una suma de productos, tambin hay
una notacin compacta para representar una expresin Boleana puesta en funcin de sus
maxterms como un producto de sumas. Bajo esta notacin, la siguiente expresin
Boleana escrita empleando maxterms, como un producto de sumas:
! 3 (, 1 . 1 )(, 1 . 1 )
puede ser convertida a notacin compacta recordando la manera en la cual se definen
los maxterms a partir de una Tabla de Verdad (recurdese que en un maxterm la suma
Boleana de las variables debe ser siempre cero, debindose complementar aquellas
variables que sean "M" para que as haya nicamente "ceros" en la formacin del
maxterm). As, la expresin dada arriba queda representada en forma compacta de la
siguiente manera:
c
2
! 3 =M(000,001)
o bien, usando la ms familiar notacin decimal:
! 3 =M(0,1)
Revirtiendo los pasos, podemos reconstrur la expresin original. Obsrvese que se ha
utilizado la letra griega & mayscula (=) para indicar que se trata de un producto de
sumas.
El
par
"=M"
se
lee
como
"el
producto
de
maxterms".
F(,,.,)
(,
(,
(2) F(,,.,,) = (,+.++) (,+.11) (,1.++) (,1.11)
(2) < = (,1.++) (,+.++) (,+.++) (,+.++) (,+.11)
__________
( ,+.1+)
(,+.++)
=M(101,110)
F(,,.,) = =M(5,6)
Para la segunda expresin, convirtiendo cada maxterm a su equivalente binario de
acuerdo con lo que lo producira en una Tabla de Verdad:
F(,,.,,) = =M(0101,1000,0011,1001)
F(,,.,,) = =M(5,8,3,9)
Reacomodando:
F(,,.,,) = =M(3,5,8,9)
c
=
=
2 < >?@ < A @ ><
V
V lV t
V #i V
itiV
V #tV V V iltV iiV V
V
VlVVlV
iVVV lVV!:V
<V
+V
M,,*,,**,***,*,*,*,,,*,,**,**V
V
<V+V M07*1*,45**V
V
R
:V
<V+V M0745*,***1V
V
V
.
:V
tV V V
i
itV V V liV
V
tV i lV V
tV
VVV'VVlViit:V
V
V
lV itV
V V V V tiliV V V "
i
itV
V
iV
V llV lV
tiV V
tV V l V i
V
V
CV V V V 'V tV lVV lV V
tV V iitV lV
iitVtViV
VV
V V V lVjVlV tV V VlV
VVlVtVVVlVlVVVVtiliVVV "
i
it:V
il VjViV
c
C
C
2 B DEF B G F DB
V
V
$ %VVVtVtiliVVlVVV'VVVtiV"
li
"V
V iiiV V
i V BlV tV lV V iV V t
tV lV iV
H
H
H
V #i V V ili
V lV
i V V iV V ltV iV MV V
liV
i
i V V
lVVlV
lVM
V
V
H
IVtVlVili
i VVlViitV:VVVV
VV
V
J
VVViVVVV
VVV
i V lVVt:VVVVV+VV8VV
V
V
V
iV VVVt%iVVtVV
VVV i%VlV
iVVV
VV
VVVVV
ViV V
VVVVVit%iVV
VlVtVVlVit%iVV
VV
iVV
V
V
>
il VjViV
c
2
Un implicante primo es un implicante que no puede ser agrupado con otros implicantes, para
formar un sub-cubo de mayor dimensin.
;)
Encontrar los implicantes primos es determinar los grupos de mintrminos 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 mintrminos que forman el sub-cubo mayor posible.
c
2
Ejemplo: Para una funcin de 4 variables se tienen los siguientes implicantes primos:
C
.
A
2lo BD es no esencial.
C
B
Wilber Araujo Quispe
c
2
Es un mtodo sistemtico para encontrar la expresin mnima de una funcin, que no depende
de la habilidad para reconocer agrupaciones en un mapa de $>.
Bsicamente, es una bsqueda exhaustiva de todas las adyacencias entre los mintrminos de la
funcin, mediante la aplicacin sistemtica de:
ab ab
2e vuelve a repetir el paso anterior hasta que no se puedan formar nuevas columnas.
Los trminos que originan nuevas entradas, en la prxima columna, slo necesitan marcarse una
vez. Pero pueden usarse las veces que sea necesario.
Ntese que la segunda columna lista todos los grupos de dos mintrminos. La tercera, lista
grupos de cuatro mintrminos 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: f(a, b,c)
m(0,2,5,6,7)
c
2
Primera columna
2egunda columna
min.
marcas
Grupos Implicantes
a'b'c'
(0,2)
a'c'
a'bc'
(2,6)
bc'
ab'c
(5,7)
ac
abc'
(6,7)
ab
abc
No se pueden formar nuevas columnas, por lo tanto los implicantes primos son:
a'c', bc', ac, ab
Ntese que en la segunda columna, se han identificado los renglones con los grupos de
mintrminos.
La tabla de implicantes se forma empleando los implicantes primos en los renglones y los
mintrminos de la funcin en las columnas. Luego, en cada rengln, se efecta una marca en las
columnas de los mintrminos pertenecientes al implicante considerado.
Aquellas columnas que tengan slo una marca, permiten detectar a los implicantes primos
esenciales. En esta tabla puede escogerse el menor nmero de implicantes primos que cubran
todos los mintrminos de la funcin. Evidentemente, deben estar presentes todos los implicantes
primitivos esenciales en la expresin mnima de una funcin.
7
Wilber Araujo Quispe
c
a'c'
bc'
2
ac
ab
2e acostumbra encerrar con un crculo las marcas en las columnas que definen los implicantes
primos esenciales.
Ntese que slo resta cubrir el mintrmino 6, lo que puede lograrse eligiendo: bc' ab
o, alternativamente:
f = a'c' + ac + ab
En caso de tener tablas complejas, stas pueden reducirse mediante el siguiente mtodo.
Cada vez que se selecciona un implicante para formar la funcin, se remueve el rengln
correspondiente.
Cuando se remueve un rengln, tambin se eliminan las columnas que tienen marcas en dicho
rengln.
c
2
Un rengln cubre a otro, si tiene marcas en las columnas marcadas del otro, pudiendo adems
tener columnas adicionales marcadas. Podra decirse que el rengln eliminado es menos
importante, debido a su menor cobertura de la funcin.
m1
m2
m3
ipa
ipb
Una columna cubre a otra, si contiene marcas en cada rengln que esa otra columna tiene
marcas.
Ejemplo:
m1
ipa
m2
m3
ipb
ipc
ipd
2e repite la aplicacin de las reglas hasta agotar la tabla. 2iempre 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 funcin se forma con los implicantes de los renglones removidos por contener columnas con
una sola marca.
Excepcin a lo anterior la constituyen las tablas reducidas cclicas, que no pueden reducirse
segn el mtodo recin planteado. En stas se elige un implicante en forma arbitraria y se
remueve el rengln correspondiente.
c
2
ipa
ipb
ipc
15
ipd
ipe
ipf
ipg
iph
13
ipa
ipc
15
ipd
ipe
ipf
ipg
iph
13
El rengln ipc cubre a ipd; por lo tanto, puede eliminarse el rengln ipd.
ipa
ipc
ipe
13
15
c
2
ipf
ipg
iph
La tabla resultante es cclica. 2e escoge arbitrariamente al primitivo ipa para formar la funcin,
esto elimina columnas 1 y 3, quedando:
7
ipc
ipe
13
15
ipf
ipg
iph
Ahora, ipe cubre a ipc; e ipg cubre a iph, queda eliminando a ipc e iph:
7
ipe
13
ipf
ipg
15
ipe e ipg deben formar parte de la funcin; pues contienen a las columnas 7 y 9, que en la tabla
reducida slo tienen una marca. Luego de esto, la tabla queda vaca.
Finalmente:
Existen otras formas mnimas posibles. Estas se obtienen eliminando otro implicante cuando la
tabla result cclica.
c
1
ipa
13
15
ipe
ipf
ipg
iph
2
ipf cubre a ipe. iph cubre a ipa. Eliminando ipa e ipe, se obtiene:
ipf
ipg
iph
13
15
El mtodo anterior es adecuado para un nmero reducido de variables. Una variante del mtodo
tabular recin descrito es el de Quine-McCluskey. Bsicamente, representa en forma digital el
mtodo de Quine, y es muy adecuado para ser programado en un computador.
c
2
2e comparan los elementos de cada grupo, buscando adyacencias, y se forman las siguientes
columnas en forma similar al mtodo de . Notando que en la representacin decimal,
diferencias de 1, 2, 4, 8 y, en general, de una potencia de 2, indican una diferencia en un bit.
Tambin se mantiene la separacin en grupos en las nuevas columnas.
Existen tablas con los nmeros decimales y su nmero de unos en representacin binaria. Para
facilitar la formacin de los grupos.
La segunda columna representa todas las agrupaciones posibles de dos mintrminos. La tercera
columna representa grupos de cuatro mintrminos, y as sucesivamente.
El algoritmo permite trabajar con dgitos decimales o binarios. 2e anotan en los ejemplos
columnas binarias y decimales.
En la segunda y siguientes columnas, las variables eliminadas se denotarn con un
guin(tambin es posible anotar la posicin del guin con un nmero decimal potencia de dos).
Pueden combinarse dos trminos si ellos difieren solamente en un literal; por esta razn, no
podrn combinarse dos trminos 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
observacin organiza la bsqueda de adyacencias, ya que slo es preciso comparar entre grupos
adyacentes.
Ejemplo:
$(a,b,c,d,e,f) = ; m(0,2,6,7,8,10,12,14,15,41)
>
c
2
m10 = 001010
m12 = 001100
m7 = 000111
m14 = 001110
m41 = 101001
m15 = 001111
Decimal
mintrmino
Nmero de unos
10
12
14
41
15
Los mintrminos del grupo con n unos, se comparan con todos los del grupo con (n+1) unos.
Decimal
Grupo
Binario
Posicin a
Nmero de unos
c
2
0,2
0.8
2,6
2,10
8,10
8,12
6,7
6,14
10,14
12,14
7,15
14,15
En el ejemplo no queda marcado el 41, ya que no puede agruparse con ningn otro mintrmino;
en este caso el mintrmino 41 es implicante primo esencial.
Para formar la tercera tabla, que contendr grupos de cuatro mintrminos; se buscan diferencias
de potencias de dos entre grupos adyacentes, pero adems deben tener igual diferencia (o
posicin 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 comn (2).
No importa el orden de las listas de mintrminos, slo se anotan una vez. Por ejemplo, entre los
primeros grupos se tiene:
Diferencia:
0, 2
(2)
8, 10
(2)
8, 8
generando: 0, 2, 8, 10 (2,8)
c
Diferencia:
2
0, 8
(8)
2, 10
(8)
2, 2
generando: 0, 8, 2, 10 (8,2)
Decimal
Binario
Grupo
Posicin
Nmero de unos
0, 2, 8, 10
2,8
2, 6, 10, 14
4,8
8, 10,12,14
2,4
6, 7, 14, 15
1,8
Ntese 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 mintrminos que
estn formando un 3-cubo.
Implicantes
10
12
14
41
15
primos
41
0, 2, 8, 10
2, 6, 10, 14
8, 10, 12, 14
6, 7, 14, 15
c
2
Ntese que todo el proceso podra haberse realizado slo considerando la informacin binaria, o
solamente la informacin decimal.
La exposicin de este mtodo permite elaborar algoritmos para efectuar programas para
minimizacin automtica, y tambin tener las bases para comprender el funcionamiento de las
aplicaciones.
EQUATION2
truth_table ( [a, b, c, d, e, f ]-> g)
0-> 1;
2-> 1;
6-> 1;
7-> 1;
8-> 1;
10-> 1;
12-> 1;
14-> 1;
15-> 1;
41-> 1;
c
2
END quine
2e 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 simulacin temporal, que permite obtener las siguientes formas de
ondas:
Para lograr las formas de ondas, se generan los siguientes vectores de prueba: