36
1 Profesor Leopoldo Silva Bijit 19-01-2010 Capítulo 6 Algoritmos de minimización Durante 40 años el algoritmo de minimización conocido como método de Quine-McCluskey permaneció prácticamente sin cambios. En 1992 aparecen dos métodos, fundamentalmente nuevos, que permiten desarrollar algoritmos más eficientes para encontrar soluciones exactas. El método de minimización de Quine-McCluskey, consiste en encontrar los implicantes primos y luego seleccionar un conjunto de éstos que cubran la función; esto último se efectúa mediante la reducción de la tabla de implicantes. Como alternativa se describe el método de Tison, de consenso reiterado, para determinar los implicantes primos. La tabla de implicantes tiene como columnas los mintérminos y como renglones los cubos que son implicantes primos. Para n variables, se tienen 2 n mintérminos o columnas; y se dispone de un resultado que establece que se pueden tener del orden de 3 n n implicantes primos. Con lo cual los algoritmos para reducir la tabla, en forma exacta, tienen un costo exponencial. Por esta razón se han desarrollado heurísticas de minimización que están basadas en propiedades de las funciones booleanas y que producen resultados bastante satisfactorios, desde un punto de vista de ingeniería. Un excelente ejemplo de estos programas es espresso, que se trata en el Apéndice 3. 6.1. 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: X f Figura 6.1 Implicación. Puede verse que si X f, con g una función booleana, puede anotarse: f = X + g. X f

Algoritmos de minimizaciónlsb/elo211/clases/c06.pdf · Durante 40 años el algoritmo de minimización conocido como método de Quine-McCluskey permaneció prácticamente sin cambios

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

1

Profesor Leopoldo Silva Bijit 19-01-2010

Capítulo 6

Algoritmos de minimización

Durante 40 años el algoritmo de minimización conocido como método de Quine-McCluskey

permaneció prácticamente sin cambios. En 1992 aparecen dos métodos, fundamentalmente

nuevos, que permiten desarrollar algoritmos más eficientes para encontrar soluciones exactas.

El método de minimización de Quine-McCluskey, consiste en encontrar los implicantes primos

y luego seleccionar un conjunto de éstos que cubran la función; esto último se efectúa mediante

la reducción de la tabla de implicantes.

Como alternativa se describe el método de Tison, de consenso reiterado, para determinar los

implicantes primos.

La tabla de implicantes tiene como columnas los mintérminos y como renglones los cubos que

son implicantes primos. Para n variables, se tienen 2nmintérminos o columnas; y se dispone de

un resultado que establece que se pueden tener del orden de 3n

n implicantes primos. Con lo cual

los algoritmos para reducir la tabla, en forma exacta, tienen un costo exponencial.

Por esta razón se han desarrollado heurísticas de minimización que están basadas en

propiedades de las funciones booleanas y que producen resultados bastante satisfactorios, desde

un punto de vista de ingeniería. Un excelente ejemplo de estos programas es espresso, que se

trata en el Apéndice 3.

6.1. 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: X f

Figura 6.1 Implicación.

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

X f

2 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Es decir, X es un término o parte de f. También suele decirse que f cubre a X.

En un 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, si la intersección de g y X es vacía; si la intersección no

es vacía, pueden existir algunos mintérminos comunes a X y g.

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

6.2. 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, un implicante primo 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.

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.

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

Capítulo 6. Algoritmos de minimización 3

Profesor Leopoldo Silva Bijit 19-01-2010

Ejemplo 6.1.

Para una función de 4 variables, cuyo mapa es de la figura 6.2, 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.

Figura 6.2 Implicantes primos

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

AC + BC' + A'B'D

Para un diseño libre de perturbaciones deben agregarse: AB, A’C’D y B’CD.

Ejemplo 6.2.

Minimizar, determinando implicantes, observando el mapa de la Figura 6.3.

Figura 6.3 Implicantes primos ejemplo 6.2

D

0 0

1 1

1 0

1 0

A

0 1

0 1

1 1

0 0

B

C

0 d

1 1

1 0

1 0 D

A

1 0

0 0

1 1

1 1

B

C

4 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Para la función de 4 variables, cuyo mapa es el de la figura 6.3, se tienen los siguientes

implicantes primos:

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

Sólo BD es no esencial, ya que los demás contienen un mintérmino no cubierto por los otros

implicantes primos.

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

Para un diseño libre de perturbaciones debe agregarse el cubo BD.

6.4. Método de Quine (1952)

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 del teorema de fusión ( a ab ab ) a todos los

términos de la forma canónica.

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

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

Obtener los implicantes primos de: ( , , ) (0,2,5,6,7)f a b c m

Capítulo 6. Algoritmos de minimización 5

Profesor Leopoldo Silva Bijit 19-01-2010

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

Figura 6.4 Obtención de implicantes primos

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.

6.4.2. Tabla de implicantes

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 marca con valor 1 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 debe 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 6.4.

La tabla de implicantes, para el ejemplo anterior:

0 2 5 6 7 a'c' 1 1 bc' 1 1

ac 1 1 ab 1 1

Figura 6.5 Tabla de implicantes primos

La columna 0, por tener sólo un renglón marcado, permite identificar a: a'c' como implicante

primo esencial.

6 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Igualmente la columna 5 indica que el implicante 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' o ab.

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

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

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. Una columna cubre a otra, si contiene marcas en cada renglón que esa otra columna tiene marcas, pudiendo además tener renglones adicionales marcados.

Ejemplo 6.5.

En la Figura 6.6, el implicante primo ipa cubre al implicante primo ipb. Puede eliminarse

renglón ipb; ya que si luego se eligiese ipa, m1 y m3 quedarían considerados en la función.

Si se elimina ipa, en lugar de ipb, no queda garantizada la cobertura de m2.

m1 m2 m3 ipa 1 1 1 ipb 1 1

Figura 6.6 Renglón cubierto por otro.

Capítulo 6. Algoritmos de minimización 7

Profesor Leopoldo Silva Bijit 19-01-2010

Para la función: f(A, B, C, D) = m(0, 4, 5, 11, 13, 15) según el mapa de la Figura 6.7, se tienen

los siguientes implicantes primos: A’C’D’ (0, 4) , A’BC’ (4, 5), BC’D (5, 13), ABD (13, 15),

ACD (11, 15). Todos ellos deben considerarse para un diseño libre de perturbaciones.

Figura 6.7 Mapa con implicantes.

La tabla de implicantes resulta:

0 4 5 11 13 15

A‟C‟D‟ 1 1

A‟BC‟ 1 1

BC‟D 1 1

ABD 1 1

ACD 1 1

Figura 6.8 Tabla de implicantes.

Se tiene que A’C’D’ y ACD son implicantes primos esenciales. Reduciendo la tabla de la Figura

6.8, se obtiene:

5 13

A‟BC‟ 1

BC‟D 1 1

ABD 1

Figura 6.9 Tabla de implicantes reducida.

CD

AB

00 01

00

01

1 1

1 1

0 4

5

11 10

1 13

12 8

9

11

10

2

3 7

6

1 1

14

15 11

10

f(A, B, C, D)=m(0,4,5,11,13,15)

8 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

El cubo BC’D cubre a los implicantes A’BC’ y ABD. Si se eliminan los renglones cubiertos, sólo

queda el renglón dominante BC’D; luego de esto queda una tabla con un solo implicante. La

función mínima resulta:

f(A, B, C, D) = A’C’D’ + ACD + BC’D

Ejemplo 6.6.

m1 m2 m3

ipa 1 1

ipb 1 1

ipc 1 1

ipd 1

Figura 6.10 Columna cubierta por otra.

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.

Si se elimina columna m2, para cubrir al mintérmino m1 debe seleccionarse uno de los cubos:

ipb o ipc; y como cualquiera de éstos contiene a m2, se considera automáticamente a m2 en la

cobertura.

No es correcta la eliminación de columna m1, ya que si se eliminara la columna m1, en lugar de

m2, quedarían para seleccionar los implicantes ipa, ipb e ipc; pero si luego se eligiera a ipa, no

se incluiría a m1 en la función.

Para la función: f(A, B, C, D) = m(1, 2, 3, 5, 7) +d(0, 6, 9, 13) según el mapa de la Figura

6.11, se tienen los siguientes implicantes primos: A’B’ (1, 2, 3), C’D (1, 5), A’D (1, 3, 5, 7), A’C

(2, 3, 7).

Figura 6.11 Mapa con implicantes.

CD

AB

00 01

00

01

d

1 1 1

0 4

5

11 10

d d 13

12 8

9

11

10

1 1

1 d 2

3 7

6

14

15 11

10

Capítulo 6. Algoritmos de minimización 9

Profesor Leopoldo Silva Bijit 19-01-2010

La tabla de implicantes de la Figura 6.12, muestra que no hay implicantes primos esenciales. En

la tabla de implicantes no se colocan los mintérminos superfluos.

1 2 3 5 7

A‟B‟ 1 1 1

C‟D 1 1

A‟D 1 1 1 1

A‟C 1 1 1

Figura 6.12 Tabla implicantes con columnas cubiertas por otras.

La columna 1 cubre a la columna 5; la columna 3 cubre a las columnas 2 y 7. Pueden eliminarse

las columnas 1 y 3.

Si se elimina la columna 1, dejando la 5; si se eligen cualquiera de los implicantes marcados en

la columna 5, es decir: C’D o A’D, se estará cubriendo al mintérmino 1.

2 5 7

A‟B‟ 1

C‟D 1

A‟D 1 1

A‟C 1 1

Figura 6.13. Tabla reducida, por eliminación de columnas.

En la Figura 6.13, se tiene que el cubo A’D cubre al cubo C’D; y que el implicante A’C cubre al

implicante A’B’. Eliminando los renglones cubiertos, resulta:

2 5 7

A‟D 1 1

A‟C 1 1

Figura 6.14. Tabla reducida, por eliminación de renglones.

En la tabla reducida de la Figura 6.14, los cubos A’D y A’C deben formar parte de la función ya

que tienen una columna con una sola marca; éstos podría denominarse implicantes primos

esenciales secundarios. Resulta:

f(A, B, C, D) = A’D + A’C

También se tiene, observando la Figura 6.13, las coberturas:

f(A, B, C, D) = A’D + A’B’

f(A, B, C, D) = A’C + C’D

10 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

6.5. Tabla reducida cíclica.

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.

En determinados casos, luego de remover los implicantes primos esenciales, los renglones

cubiertos por otros, y las columnas que cubren a otras, no puede seguir reduciéndose la tabla.

Se denominan tablas reducidas cíclicas, aquéllas que no pueden reducirse según el método

recién planteado.

Para resolver tablas cíclicas se tienen varios métodos; uno es una heurística conocida como

“bifurcación y acotamiento”, otro es el algoritmo o método exacto de Petrick.

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.

6.5.1. Bifurcación.

En la heurística de bifurcación se elige un implicante primo Pi.

Se resuelve la tabla cíclica considerando que Pi forma parte de la cobertura final y también

considerando que no forma parte; se escoge entre las dos, la solución con mínimo costo. Se

almacena el costo y se varía la elección del implicante primo; se vuelve a realizar el proceso

anterior y se compara costos almacenados hasta encontrar el menor.

Puede escogerse el implicante que tenga menos literales, es decir el que cubra la mayor cantidad

de mintérminos; también es buen candidato el cubo que contenga un mintérmino que es cubierto

por el menor número de implicantes, es decir un implicante que sea “casi un implicante primo

esencial”. Existen en la literatura otras heurísticas para escoger al implicante primo que permite

resolver una tabla cíclica.

Ejemplo 6.7.

Costo m1 m2 m3

Ip1 2 1 1

Ip2 4 1 1

Ip3 2 1 1

Figura 6.15. Método de bifurcación (branching).

La columna costo puede ser el número de literales del implicante primo. Se escoge,

tentativamente, uno de los implicantes, removiéndolo junto a los mintérminos que cubre; se

Capítulo 6. Algoritmos de minimización 11

Profesor Leopoldo Silva Bijit 19-01-2010

resuelve el subproblema y se calcula el costo. Finalmente se escoge la bifurcación que conduzca

al costo menor.

Para el caso de la tabla cíclica de la Figura 6.15, se escoge en primer lugar Ip1, con costo 2,

queda, luego de la reducción:

Costo m3

Ip2 4 1

Ip3 2 1

Figura 6.16. Bifurcación con Ip1.

Se escoge Ip3, por ser de menor costo, resulta un costo total de (2 + 2) = 4.

Luego, en segundo lugar, se escoge Ip2, resultando:

Costo m1

Ip1 2 1

Ip3 2 1

Figura 6.17. Bifurcación con Ip2.

Puede elegirse, luego Ip1 o Ip3, resultando un costo total de ( 4 + 2) = 6.

Podría haberse descartado la elección de Ip2, ya que tendría mayor costo que la anterior.

Finalmente, en este ejemplo, se escoge Ip3, resultando:

Costo m2

Ip1 2 1

Ip2 4 1

Figura 6.18. Bifurcación con Ip3.

Se escoge Ip1, con un costo total de: (2 + 2) = 4.

Entonces tenemos dos soluciones con costo total 4, para la solución de la tabla cíclica. A este

costo habría que sumarle el debido a la selección de implicantes primos antes de la tabla cíclica.

Si el subproblema resulta cíclico, debe repetirse el procedimiento en forma recursiva.

6.5.2. Petrick (1956).

Se plantea una expresión booleana P, como producto de sumas, que garantice que la cobertura

considera todos los mintérminos de la tabla, sea ésta cíclica o no, y que a la vez entregue todas

las soluciones de cobertura posibles.

12 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

En la Figura 6.19 se han identificado los implicantes primos y los mintérminos de una tabla

cíclica.

m1 m2 m3 m4

Ip1 1 1

Ip2 1 1

Ip3 1 1

Ip4 1 1

Figura 6.19. Tabla cíclica.

Si definimos Pi como verdadera si el implicante primo Ipi está presente en la cobertura; y falsa

si no está presente, podemos plantear, observando la Figura 6.19, que para que el mintérmino

m1 esté presente en la cobertura, debe cumplirse que debe estar presente el implicante Ip1 o el

implicante Ip4; es decir: (P1+P4).

Que estén presentes todos los mintérminos, puede escribirse:

P = (P1+P4)(P2+P3)(P1+P3)(P2+P4)

La proposición anterior debe satisfacerse, lo cual se logra con P=1.

Puede expresarse P, como una suma de productos. Cada producto es una posible solución.

En el caso del ejemplo, efectuando los productos y empleando el teorema de idempotencia:

P= (P1P2+P1P3+P2P4+P3P4)(P1P2+P1P4+P2P3+P3P4)

P=P1P2+P1P2P4+P1P2P3+P1P2P3P4+P1P3P4+P2P3P4+P3P4

P=P1P2(1+P4+P3+P3P4) +P3P4(1+P1+P2)

P=P1P2 + P3P4.

Conviene emplear: (X + Y)(X + Z) = X + YZ, en la reducción a suma de productos.

Se tienen dos soluciones, que resuelven la tabla cíclica: los implicantes Ip1 e Ip2, o bien los

implicantes Ip3 e Ip4. Puede verificarse que ambas son coberturas, con la tabla de la Figura

6.19.

Se elige la de menor costo.

Ejemplo 6.8.

Si una columna cubre a otra, puede eliminarse la columna que cubre a las otras. Por ejemplo si

un mintérmino tiene garantizada su inclusión, si (P6 + P7 + P8) y si otro mintérmino tiene

asegurada su cobertura si: (P6 + P7); entonces puede comprobarse que:

(P6 + P7 + P8) (P6 + P7) = (P6 + P7) usando (a+b) a = a.

Esto implica conservar el mintérmino con menos marcas en las columnas.

Capítulo 6. Algoritmos de minimización 13

Profesor Leopoldo Silva Bijit 19-01-2010

El método de Petrick puede aplicarse a tablas de implicantes primos, incluidos los esenciales.

En caso de estar presentes, estos últimos, la expresión que debe satisfacerse, para incluir todos

los mintérminos, tendrá la forma:

P= (Pp1)(...)(Ppm)(Pa+Pb)(…)

Donde (Pp1)(…)( Ppm) son los m implicantes primos esenciales. El resto de las sumas deben

garantizar la inclusión de los mintérminos no esenciales en la cobertura de la función. De esta

forma el tratamiento algebraico para reducir los productos de sumas a suma de productos se

complica un tanto, pero se obtienen todas las formas de implementación posibles. En todas éstas

deben estar presentes los m implicantes primos esenciales.

Ejemplo 6.9.

Si se toma la tabla de la Figura 6.13, y se enumeran los implicantes según:

2 5 7

IP1 A‟B‟ 1

IP2 C‟D 1

IP3 A‟D 1 1

IP4 A‟C 1 1

Figura 6.20. Implicantes primos de Ejemplo 6.6.

Que estén presentes todos los mintérminos, puede escribirse:

P = (P1+P4)(P2+P3)(P3+P4)

Efectuando los productos, se obtiene:

P = P1P3+P2P4+P3P4

Generando las tres soluciones con dos productos:

f1(A, B, C, D) = A’B’ + A’D

f2(A, B, C, D) = C’D + A’C

f3(A, B, C, D) = A’D + A’C’

Lo cual muestra que el método de Petrick obtiene todas las soluciones posibles.

Debe notarse que si se eliminan los renglones que son cubiertos por otros, no se obtienen todas

las soluciones. En el caso del ejemplo de la Figura 6.20, deberían eliminarse el renglón IP1, que

es cubierto por IP4; y el implicante primo IP2 que es cubierto por el renglón IP3.

Ejemplo 6.10.

Reducir la tabla de implicantes de la función f(a,b,c,d) que se muestra en la Figura 6.21.

Notar que el costo de todos los implicantes primos es similar, ya que todos contienen dos

mintérminos.

14 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

1 3 4 6 7 9 13 15 ipa 1 1 ipb 1 1

ipc 1 1 ipd 1 1 ipe 1 1 ipf 1 1 ipg 1 1 iph 1 1

Figura 6.21. Tabla de implicantes Ejemplo 6.10.

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

ipd 1 ipe 1 1 ipf 1 1 ipg 1 1 iph 1 1

Figura 6.22 Remoción implicante primo esencial

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

1 3 7 9 13 15 ipa 1 1 ipc 1 1 ipe 1 1

ipf 1 1 ipg 1 1 iph 1 1

Figura 6.23. Remoción renglón ipd

La tabla resultante es cíclica.

Una heurística simple es seleccionar a uno de los implicantes de la tabla reducida cíclica,

posiblemente el que tenga mayor número de marcas en las columnas. Este procedimiento no

obtiene todas las soluciones posibles.

Capítulo 6. Algoritmos de minimización 15

Profesor Leopoldo Silva Bijit 19-01-2010

Se escoge arbitrariamente al primitivo ipa para formar la función, esto elimina columnas 1 y 3,

quedando: 7 9 13 15

ipc 1 ipe 1 1 ipf 1 1 ipg 1 1 iph 1

Figura 6.24. Remoción implicante primo ipa, en tabla cíclica.

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

7 9 13 15 ipe 1 1 ipf 1 1 ipg 1 1

Figura 6.25 Remoción renglones ipc e iph.

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

Entonces, se tiene, en términos de las variables:

f=a’bd’+a’b’d+bcd+ac’d

Solución con 12 literales y 16 entradas.

Existen otras formas posibles. Éstas se obtienen eliminando otro implicante cuando la tabla

resultó cíclica. Por ejemplo, eliminando ipc, en la Figura 6.18, resulta:

1 9 13 15 ipa 1 ipe 1 ipf 1 1 ipg 1 1

iph 1 1

Figura 6.26 Remoción implicante primo ipc, en tabla cíclica.

ipf cubre a ipe. iph cubre a ipa.

Eliminando ipa e ipe, se obtiene:

16 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

1 9 13 15 ipf 1 1 ipg 1 1

iph 1 1

Figura 6.27 Remoción implicantes primos ipa e ipe.

En la cual deben escogerse: ipf e iph.

Entonces resulta otra función mínima:

f = ipb +ipc + ipf + iph

En términos de las variables:

f=a’bd’+b’c’d+a’cd+abd

Solución con 12 literales y 16 entradas.

Aplicando el método de Petrick a la tabla de la Figura 6.21, se debe satisfacer p, para cubrir

todos los mintérminos:

p= (pa+ph)*(pa+pc)*(pb)*(pb+pd)*(pc+pd+pe)*(pg+ph)*(pf+pg)*(pe+pf);

Expresando como suma de productos, se obtienen siete soluciones, debe notarse que pb, está

presente en todos los productos, ya que es esencial. A continuación debe evaluarse el costo de

cada una de las soluciones para seleccionar cuales son mínimas.

p = pb*pc*pe*pg*ph + pa*pb*pe*pf*ph + pa*pb*pd*pf*ph + pa*pb*pd*pf*pg +

pa*pb*pc*pf*pg + pb*pc*pf*ph + pa*pb*pe*pg;

Los dos últimos productos, formados por cuatro implicantes primos son las dos soluciones

obtenidas antes, con 16 entradas. Los primeros cuatro productos del método de Petrick,

conducen a soluciones con 15 literales y 20 entradas, por lo cual no son considerados soluciones

mínimas.

Adicionalmente debe resolverse para la forma producto de sumas, considerando la función:

'( , , , ) (0,2,5,8,10,11,12,14)f a b c d m

En la cual se encuentran cuatro implicantes primos, todos esenciales. Lo cual conduce a una

solución:

f’= b’d’+ad’+ab’c+a’bc’d

Obteniéndose la expresión con 11 literales y 15 entradas, la cual es la solución mínima:

f= (b+d)(a’+d)(a’+b+c’)(a+b’+c+d’)

Capítulo 6. Algoritmos de minimización 17

Profesor Leopoldo Silva Bijit 19-01-2010

6.6. Método de Quine-McCluskey (1956)

Es una variante para encontrar los implicantes primos, representando en forma digital el método

de Quine, y es adecuado para ser programado en un computador.

Su complejidad, de tipo exponencial, lo convierte en un problema intratable para elevados

valores de variables.

Se forma la columna de mintérminos, codificada en binario o decimal, en grupos, de acuerdo al

número de unos. De esta forma sólo será necesario comparar los mintérminos de grupos

adyacentes, disminuyendo significativamente las comparaciones que deben realizarse para

formar las columnas con cubos mayores. Por ejemplo: el grupo que contiene un uno no puede

ser adyacente a los mintérminos que contengan tres unos; no pueden estar a distancia uno.

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.

Es posible encontrar una función que entregue el número de unos en representación binaria de

un número decimal. La cual facilita 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 6.11.

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 m6 = 000110 m10 = 001010

m12 = 001100 m7 = 000111 m14 = 001110 m41 = 101001 m15 = 001111

18 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Formando grupos, de acuerdo al número de unos, se obtiene la siguiente tabla:

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

Figura 6.28 Agrupación según número de unos.

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

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 -

Figura 6.29 Grupos de dos mintérminos adyacentes.

En la notación decimal, se anota la lista de mintérminos y la posición de la variable eliminada 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.

Capítulo 6. Algoritmos de minimización 19

Profesor Leopoldo Silva Bijit 19-01-2010

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)

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

Figura 6.30. Grupos de cuatro mintérminos agrupables.

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 1 0, 2, 8, 10 1 1 1 1 2, 6, 10, 14 1 1 1 1

8, 10, 12, 14 1 1 1 1 6, 7, 14, 15 1 1 1 1

Figura 6.31. Tabla de implicantes ejemplo 6.8.

20 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

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.

6.7. Método de Tison (1965) para encontrar implicantes primos. Consenso

reiterado.

6.7.1. Fundamentos.

Se tiene una función f, definida por una suma de productos:

1 2 ... kf p p p

Si se tiene:

i jp a p con 1a , siendo a una de las variables de f .

Se puede descartar ip de f.

Esto debido a que:

( 1)i j j j j jp p a p p a p p

Lo cual puede anotarse:

i jp p

El método consiste en introducir términos implicados, de tal manera de eliminar los términos

que los implican. Es decir, se introduce jp , en la suma de productos, y se elimina ip .

Si por ejemplo, se tiene:

'f xT x yT

Debido a que yT es el término de consenso entre 'x yT y xT , puede escribirse:

'f xT x yT yT

Como se tiene que:

'x yT yT

Entonces, se puede cambiar el producto 'x yT por el implicado yT , resultando:

f xT yT

Capítulo 6. Algoritmos de minimización 21

Profesor Leopoldo Silva Bijit 19-01-2010

Logrando, de este modo, una suma de productos con menos literales.

La formación de implicantes basada en el teorema de fusión, sobre la que está basado el método

de Quine, también puede verse como la eliminación de productos que implican a otros

productos:

'f xT x T

El consenso de xT y 'x T es T . Y se tiene que: xT T y que 'x T T , con lo cual puede

escribirse: f T .

Los productos S y R tienen consenso 0 0S R , si existe una variable x tal que 0S xS y 0'R x R ;

y no existe una variable y , en el producto 0S , que aparezca como 'y en 0R . Si existe la variable

y , el término 0 0S R es cero, y no hay consenso. Se dice que la variable x es biforme en el

conjunto: ,S R . Los productos S y R están formados por conjuntos disjuntos de mintérminos.

El consenso es el implicante primo de los mintérminos de S y R , y es la máxima cobertura entre

las fronteras de la exclusión mutua entre S y R .

00 01 11 10

00

01

11

10

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

S0R0=A‟BD

S

R

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

S0R0=A‟D

Figura 6.32. Término de consenso.

6.7.2. Algoritmo de Tison.

Sea una función f, definida por una suma de productos:

1 2 ... kf p p p

Sea el conjunto:

1 2, ,..., kL p p p

22 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

El algoritmo de Tison, encuentra todos los implicantes primos de f.

Para cada variable biforme x de f:

{

Para (cada par ,i jp p de L: )

{ Si (existe consenso q, para x) L L Q ; }

Para (cada ip de L: )

{ Si (existe jp de L, tal que: i jp p ) iL L p ; }

}

Ejemplo 6.12.

Sea una función f, definida por sus mintérminos.

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.33. Mintérminos de f.

Si se inicia L con los mintérminos de la función:

0000,0001,0011,0101,0110,0111,1110,1111L

La variable C es biforme, se tiene consenso A’B’D entre: (0001,0011) ; y A’BD entre

(0101,0111).

Capítulo 6. Algoritmos de minimización 23

Profesor Leopoldo Silva Bijit 19-01-2010

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.34. Productos de consenso para variable C.

Agregando los términos de consenso a L, queda:

0000,0001,0011,0101,0110,0111,1110,1111,00 _1,01_1L

Eliminando los que implican el consenso:

0000,0110,1110,1111,00 _1,01_1L

D es biforme, se tiene consenso A’B’C’ entre (0000, 00_1), A’BC entre (0110, 01_1) y ABC

entre (1110, 1111).

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.35. Productos de consenso para variable D.

Agregándolos a L:

0000,0110,1110,1111,00 _1,01_1,000 _,011_,111_L

Eliminando los que implican consensos:

00 _1,01_1,000 _,011_,111_L

24 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

A es biforme, se tiene consenso BC entre (011_, 111_).

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.36. Productos de consenso para variable A.

Agregando (_11_) a L:

00 _1,01_1,000 _,011_,111_, _11_L

Eliminando los que implican consenso:

00 _1,01_1,000 _, _11_L

Finalmente B, es biforme, se tiene consenso A’D entre (00_1,01_1),

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.37. Productos de consenso para variable B.

Agregando (0__1) a L:

00 _1,01_1,000 _, _11_,0 __1L

Eliminando los que implican consenso, se obtienen los implicantes primos:

000 _, _11_,0 __1L

Capítulo 6. Algoritmos de minimización 25

Profesor Leopoldo Silva Bijit 19-01-2010

00 01 11 10

00

01

11

10

1

1

1

1

1

1

1

1

15 11 7 3

14 10 6 2

13 9 5 1

12 8 4 0

CD

AB

Figura 6.38. Implicantes primos para f.

Finalmente, debido a que todos son implicantes primos esenciales:

' ' ' 'f A B C BC A D

6.7.3. Operaciones para desarrollar el algoritmo,

La elaboración de algoritmos está basada en desarrollar funciones que determinen:

a) Obtener términos de consenso.

Para encontrar la idea general, puede observarse el siguiente ejemplo:

10 1 0 0

11 0

S

R

Sólo la cuarta variable es biforme, y no existe otra que presente conflicto binario.

Entonces:

0 0 1 1 0 0S R

Debido a que el producto de una variable o su complemento en S, cuando no está presente esa

variable en R, deja la variable en el término de consenso.

Lo anterior puede comprobarse en el siguiente ejemplo. El producto: ( ' ')( ' ) 'ab e ab cde ab cd

Puede representarse, empleando notación de cubos, por:

0 0

=

S

R

S R

10--0

10111

1011-

26 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Considerando un cubo como una secuencia de caracteres, pueden compararse uno a uno los

caracteres de dos cubos.

Para obtener el término de consenso:

Si los caracteres son iguales, queda el carácter; si son diferentes en binario queda ; si uno de

los caracteres es , queda el otro carácter.

b) Un producto que implica otro: i jp p

El código, con notación de subcubo, para ip , sintoniza con todos los caracteres binarios de jp ;

y ip tiene unos o ceros en posiciones donde jp tiene .

Ejemplo: 1011 1 1 1 1

Ejemplo 6.13.

Aplicando las operaciones binarias anteriores, pueden determinarse los implicantes primos de f,

debe observarse que L puede estar formado por productos, no necesariamente mintérminos.

Para: 1 2 3 4 5 6( , , , , , )f x x x x x x , se tiene:

0 11 1,0 0 1,1 11 0,1 1 1L

1x es biforme en L, en 0 11 1,1 1 1 con consenso: 11 1

0 11 1,0 0 1,1 11 0,1 1 1, 11 1L

Se tiene la única implicación: 0 11 1 11 1 .

Entonces L queda:

0 0 1,1 11 0,1 1 1, 11 1L

2x no es biforme en L.

3x es biforme en L, en 0 0 1,1 11 1 con consenso: 0 1 1

0 0 1,1 11 0,1 1 1, 11 1,0 1 1L

No se encuentran implicaciones. L conserva sus valores.

4x y 5x no son biformes en L.

6x es biforme en L, en 1 11 0,1 1 1 con consenso: 1 11 y también en:

1 11 0, 11 1 con consenso: 1 11

0 0 1,1 11 0,1 1 1, 11 1,0 1 1,1 11L

Se tiene la única implicación: 1 11 0 1 11 .

Se tienen entonces los implicantes primos:

Capítulo 6. Algoritmos de minimización 27

Profesor Leopoldo Silva Bijit 19-01-2010

0 0 1,1 1 1, 11 1,0 1 1,1 11L

Ejemplo 6.14.

Minimizar: be’f+acde’fgh+b’gh

Se tiene una función de ocho variables, para la cual es difícil emplear mapas de Karnaugh.

Con b biforme, el consenso entre el primer y último término es: e’fgh.

Pero acde’fgh implica e’fgh. A su vez e’fgh es término de consenso, e implica a be’f y b’gh.

Entonces resulta: be’f + b’gh

Ejemplo 6.15.

Minimizar: ac’de+d’+e’+c.

c es biforme, el consenso es ade, y ac’de implica a ade. Queda ade+d’+e’+c.

d es biforme, el consenso entre ade y d’ es ae. Pero ade implica a ae. Queda ae+d’+e’+c.

e es biforme, el consenso entre ae y e’ es a; pero ae implica a e, queda finalmente: a+d’+e’+c.

28 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Problemas resueltos.

Problema 6.1.

Se tiene la función g(A, B, C, D, E, F) = m( 8, 10, 24, 26, 42, 58, 59 )

a) Determinar los implicantes primos aplicando el método de Quine McCluskey.

b) Indicar cuáles son esenciales, justificando su respuesta.

c) Minimizar la función g.

Solución.

Se ordena según número de unos de los mintérminos. En la primera columna quedan todos los

mintérminos marcados, en el proceso de formar la siguiente columna de 1-cubos.

8 001000

10 001010

24 011000

26 011010

42 101010

58 111010

59 111011

Figura P6.1. Ordenamiento según número de unos.

En la segunda columna, de 1-cubos, queda sin marcar el grupo 58,59.

8,10 0010_0

8,24 0_1000

10,26 0_1010

10,42 _01010

24,26 0110_0

26,58 _11010

42,58 1_1010

58,59 11101_ ip1

Figura P6.2. Implicantes formados por dos mintérminos.

La tercera columna, de los 2-cubos, es la última que puede formarse. Y por lo tanto los

renglones quedan sin marcar.

8,10,24,26 0 _10_0 ip2

10,26,42,58 _ _1010 ip3

Figura P6.3. 2 cubos.

un uno

dos unos

tres unos

cuatro unos

cinco unos

queda sin marcar

Capítulo 6. Algoritmos de minimización 29

Profesor Leopoldo Silva Bijit 19-01-2010

Finalmente los implicantes son: ip1 = ABCD'E ; ip2 = A'CD'F' ; ip3 = CD'EF'

Determinación de los implicantes primos.

ip1 es esencial porque es el único que contiene al 8 y 24.

ip2 es esencial porque es el único que contiene al 42.

ip3 es esencial porque es el único que contiene al 59.

Resultando la siguiente función mínima: g = ABCD'E + A'CD'F' + CD'EF'

Problema 6.2.

En el proceso de reducción de tablas se tiene la siguiente tabla reducida.

2 3 4 5 8 10

ip1 x x x

ip2 x x x x

ip3 x x

ip4 x x x x

ip5 x x

Figura P6.4. Tabla Problema 6.2.

a) Determinar cuáles renglones pueden eliminarse por estar cubiertos por otro.

b) Determinar cuáles columnas pueden eliminarse.

c) Explicar la razón por la que ip2 e ip4 figuran con los mismos mintérminos.

Solución.

a) ip1 cubre a ip3 y también a ip5. Podrían eliminarse renglones asociados a ip3 e ip5.

ip2 cubre a ip4 y viceversa; puede eliminarse uno de ellos.

b) Columna 3 puede eliminarse, ya que está cubierta por la columna 2. (el mintérmino 3 tiene

asegurada su consideración)

Columna 4 puede eliminarse, ya que está cubierta por las columnas 5, 8 y 10. (el mintérmino 4

tiene asegurada su consideración)

Columnas 5, 8 y 10 se cubren entre sí. Pueden eliminarse dos cualesquiera.

c) ip2 e ip4 tienen iguales mintérminos, se diferencian en implicantes superfluos; los cuáles no

se indican en la tabla.

Ejercicios propuestos.

Ejercicio 6.1.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:

f(a, b, c, d) = m(0, 2, 5, 6, 7, 8, 10, 12, 13, 14, 15) resulta:

f(a, b, c, d) = b’d’ + bd + cd’ + ad’

30 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Ejercicio 6.2.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:

f(a, b, c, d) = m(0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) tiene las siguientes soluciones:

f1(a, b, c, d) =a’b + ac’ + b’c + a’d’ P3*P5*P7*P8

f2(a, b, c, d) =ab’ + bc’ + a’c + a’d’ P2*P4*P6*P8

f3(a, b, c, d) =ab’ + bc’ + a’c + b’d’ P2*P4*P6*P9

f4(a, b, c, d) =c’d’ + a’b + ac’ + b’c P1*P3*P5*P7

f5(a, b, c, d) =c’d’ + ab’ + bc’ + a’c P1*P2*P4*P6

f6(a, b, c, d) =a’b + ac’ + b’c + b’d’ P3*P5*P7*P9

Todas de 12 entradas y 8 literales.

Pero el diseño mínimo se obtiene con la forma producto de sumas:

f(a, b, c , d)= (a’ + b’+ c’)(a + b + c + d’) con 8 entradas y 7 literales.

Verificar que se tienen 9 implicantes primos, todos de igual costo en literales:

IP1 IP2 IP3 IP4 IP5 IP6 IP7 IP8 IP9

c‟d‟ ab‟ a‟b bc‟ ac‟ a‟c b‟c a‟d‟ b‟d‟

Y para que estén presentes todos los mintérminos, debe cumplirse, aplicando el método de

Petrick:

P = (P1+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P1+P3+P4+P9)*(P3+P4)*(P3+P6+P9)*

(P3+P6)* (P1+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P1+P4+P5)*(P4+P5);

Lo cual entrega 15 soluciones, seis de ellas formadas por cuatro implicantes, que resultan las

formas mínimas.

P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 +

P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P1*P4*P5*P6*P7 + P1*P2*P3*P4*P7 +

P1*P2*P3*P5*P6 + P3*P5*P7*P9 +P2*P4*P6*P9 +P3*P5*P7*P8 +P2*P4*P6*P8 +

P1*P3*P5*P7 + P1*P2*P4*P6;

La reducción a producto de sumas puede lograrse escribiendo en un archivo eq.eqn, el

contenido:

INORDER = P1 P2 P3 P4 P5 P6 P7 P8 P9;

OUTORDER = P;

P = (P1+P8+P9)*(P6+P7+P8+P9)*(P6+P7)*(P1+P3+P4+P9)*(P3+P4)*(P3+P6+P9)*(P3+P6)*

(P1+P2+P5+P8)*(P2+P5)*(P2+P7+P8)*(P2+P7)*(P1+P4+P5)*(P4+P5);

Luego empleando sis (ver Apéndice 6), se ejecutan los comandos:

sis> read_eqn eq.eqn

sis> write_eqn res.eqn

Capítulo 6. Algoritmos de minimización 31

Profesor Leopoldo Silva Bijit 19-01-2010

Lo cual produce el archivo res.eqn, con los productos:

INORDER = P1 P2 P3 P4 P5 P6 P7 P8 P9;

OUTORDER = P;

P = P4*P5*P6*P7*P9 + P2*P3*P4*P7*P9 + P2*P3*P5*P6*P9 + P4*P5*P6*P7*P8 +

P2*P3*P4*P7*P8 + P2*P3*P5*P6*P8 + P1*P4*P5*P6*P7 + P1*P2*P3*P4*P7 +

P1*P2*P3*P5*P6 + P3*P5*P7*P9 + P2*P4*P6*P9 + P3*P5*P7*P8 + P2*P4*P6*P8 +

P1*P3*P5*P7 + P1*P2*P4*P6;

Los últimos seis productos son las formas mínimas, y se han anotado a la derecha de las

funciones en el enunciado del problema.

Ejercicio 6.3.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:

f(a, b, c, d) = m(2, 3, 7, 9, 11, 13) +d(1, 10, 15) resulta:

f(a, b, c, d) = ad + b’c + cd

Con implicantes primos: ad , b’c , cd, b’d

Ejercicio 6.4.

Verificar, aplicando método de Quine-McCluskey, que la minimización de:

f(a, b, c, d) = Σ m(1, 5, 7, 8, 9, 13, 15) + Σ d(4, 12, 14) resulta:

f(a, b, c, d) = ab + ac’+ c’d

Ejercicio 6.5.

Verificar que el diseño mínimo de:

f(a, b, c) = Σ m(0, 1, 2, 5, 6, 7)

resulta: f(a, b, c) = a'b'+ bc'+ ac = a'c'+ b'c + ab

Ejercicio 6.6.

Verificar que el diseño mínimo de:

f(a, b, c, d) = Σ m(2, 5, 6, 11, 12, 14, 15) + Σ d(0, 3, 4)

resulta: f(a, b, c, d) = a'bc' + bd' + acd + a'd'

Ejercicio 6.7.

Demostrar

f g f g g y f g f

( ) ( )f g f g y g f

32 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Referencias.

W.V. Quine. "The problem of simplifying truth functions." American Mathematical Monthly

Vol. 59. Octubre 1952. págs 521-531.

W.V. Quine. "A way to simplify truth functions." American Mathematical Monthly Vol. 62.

Noviembre 1955. págs 627-631.

E.J. McCluskey. "Minimization of Boolean Functions". Bell Syst. Tech. Journal N°6,

Noviembre 1956. págs. 1417-1444.

P. Tison. "Théorie des consensus.” These présentée à La Faculte des Sciences de L'Universite

de Grenoble. Junio 1965.

P. Tison, "Generalization of consensus theory and application to the minimization of Boolean

functions," IEEE Trans. Electron. Comput., vol. EC-16, pp. 446-456, Aug. 1967.

Petrick, S. R. “A Direct Determination of the Irredundant Forms of a Boolean Function from the

Set of Prime Implicants”. Technical Report AFCRC-TR-56-110, Air Force Cambridge Research

Center, Cambridge, MA, USA. 1956.

Capítulo 6. Algoritmos de minimización 33

Profesor Leopoldo Silva Bijit 19-01-2010

Índice general.

CAPÍTULO 6 ............................................................................................................................................. 1

ALGORITMOS DE MINIMIZACIÓN ................................................................................................... 1

6.1. IMPLICACIÓN ..................................................................................................................................... 1 6.2. IMPLICANTES PRIMOS ........................................................................................................................ 2 6.3. IMPLICANTE PRIMO ESENCIAL ............................................................................................................ 2

Ejemplo 6.1. ........................................................................................................................................ 3 Ejemplo 6.2. ........................................................................................................................................ 3

6.4. MÉTODO DE QUINE (1952) ................................................................................................................ 4 6.4.1. Obtención de implicantes primos .............................................................................................. 4

Ejemplo 6.3. ..................................................................................................................................................... 4 6.4.2. Tabla de implicantes ................................................................................................................. 5

Ejemplo 6.4. ..................................................................................................................................................... 5 6.4.3. Reducción de tablas ................................................................................................................... 6

Ejemplo 6.5. ..................................................................................................................................................... 6 Ejemplo 6.6. ..................................................................................................................................................... 8

6.5. TABLA REDUCIDA CÍCLICA. ............................................................................................................. 10 6.5.1. Bifurcación. ............................................................................................................................. 10

Ejemplo 6.7. ................................................................................................................................................... 10 6.5.2. Petrick (1956). ......................................................................................................................... 11

Ejemplo 6.8. ................................................................................................................................................... 12 Ejemplo 6.9. ................................................................................................................................................... 13 Ejemplo 6.10. ................................................................................................................................................. 13

6.6. MÉTODO DE QUINE-MCCLUSKEY (1956) ........................................................................................ 17 Ejemplo 6.11...................................................................................................................................... 17

6.7. MÉTODO DE TISON (1965) PARA ENCONTRAR IMPLICANTES PRIMOS. CONSENSO REITERADO. ........ 20 6.7.1. Fundamentos. .......................................................................................................................... 20 6.7.2. Algoritmo de Tison. ................................................................................................................. 21

Ejemplo 6.12. ................................................................................................................................................. 22 6.7.3. Operaciones para desarrollar el algoritmo, ........................................................................... 25

a) Obtener términos de consenso. .................................................................................................................. 25

b) Un producto que implica otro: i jp p ............................................................................................... 26

Ejemplo 6.13...................................................................................................................................... 26 Ejemplo 6.14...................................................................................................................................... 27 Ejemplo 6.15...................................................................................................................................... 27

PROBLEMAS RESUELTOS. ........................................................................................................................ 28 Problema 6.1. .................................................................................................................................... 28 Problema 6.2. .................................................................................................................................... 29

EJERCICIOS PROPUESTOS. ....................................................................................................................... 29 Ejercicio 6.1. ..................................................................................................................................... 29 Ejercicio 6.2. ..................................................................................................................................... 30 Ejercicio 6.3. ..................................................................................................................................... 31 Ejercicio 6.4. ..................................................................................................................................... 31 Ejercicio 6.5. ..................................................................................................................................... 31

34 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010

Ejercicio 6.6. ...................................................................................................................................... 31 Ejercicio 6.7. ...................................................................................................................................... 31

REFERENCIAS. ......................................................................................................................................... 32 ÍNDICE GENERAL. .................................................................................................................................... 33 ÍNDICE DE FIGURAS ................................................................................................................................. 35

Capítulo 6. Algoritmos de minimización 35

Profesor Leopoldo Silva Bijit 19-01-2010

Índice de figuras

Figura 6.1 Implicación. ................................................................................................................. 1 Figura 6.2 Implicantes primos ....................................................................................................... 3 Figura 6.3 Implicantes primos ejemplo 6.2 ................................................................................... 3 Figura 6.4 Obtención de implicantes primos ................................................................................. 5 Figura 6.5 Tabla de implicantes primos ........................................................................................ 5 Figura 6.6 Renglón cubierto por otro. .......................................................................................... 6 Figura 6.7 Mapa con implicantes. ................................................................................................ 7 Figura 6.8 Tabla de implicantes. ................................................................................................... 7 Figura 6.9 Tabla de implicantes reducida...................................................................................... 7 Figura 6.10 Columna cubierta por otra.......................................................................................... 8 Figura 6.11 Mapa con implicantes. ............................................................................................... 8 Figura 6.12 Tabla implicantes con columnas cubiertas por otras. ................................................. 9 Figura 6.13. Tabla reducida, por eliminación de columnas........................................................... 9 Figura 6.14. Tabla reducida, por eliminación de renglones. ......................................................... 9 Figura 6.15. Método de bifurcación (branching). ........................................................................ 10 Figura 6.16. Bifurcación con Ip1. ................................................................................................ 11 Figura 6.17. Bifurcación con Ip2. ................................................................................................ 11 Figura 6.18. Bifurcación con Ip3. ................................................................................................ 11 Figura 6.19. Tabla cíclica. ........................................................................................................... 12 Figura 6.20. Implicantes primos de Ejemplo 6.6. ........................................................................ 13 Figura 6.21. Tabla de implicantes Ejemplo 6.10. ........................................................................ 14 Figura 6.22 Remoción implicante primo esencial ....................................................................... 14 Figura 6.23. Remoción renglón ipd ............................................................................................. 14 Figura 6.24. Remoción implicante primo ipa, en tabla cíclica. ................................................... 15 Figura 6.25 Remoción renglones ipc e iph. ................................................................................. 15 Figura 6.26 Remoción implicante primo ipc, en tabla cíclica. .................................................... 15 Figura 6.27 Remoción implicantes primos ipa e ipe. .................................................................. 16 Figura 6.28 Agrupación según número de unos. ......................................................................... 18 Figura 6.29 Grupos de dos mintérminos adyacentes. .................................................................. 18 Figura 6.30. Grupos de cuatro mintérminos agrupables. ............................................................. 19 Figura 6.31. Tabla de implicantes ejemplo 6.8. .......................................................................... 19 Figura 6.32. Término de consenso. ............................................................................................ 21 Figura 6.33. Mintérminos de f. ................................................................................................... 22 Figura 6.34. Productos de consenso para variable C. ................................................................. 23 Figura 6.35. Productos de consenso para variable D. ................................................................. 23 Figura 6.36. Productos de consenso para variable A. ................................................................. 24 Figura 6.37. Productos de consenso para variable B. ................................................................. 24 Figura 6.38. Implicantes primos para f. ...................................................................................... 25 Figura P6.1. Ordenamiento según número de unos. .................................................................... 28 Figura P6.2. Implicantes formados por dos mintérminos. ........................................................... 28 Figura P6.3. 2 cubos. ................................................................................................................... 28 Figura P6.4. Tabla Problema 6.2. ................................................................................................ 29

36 Sistemas Digitales

Profesor Leopoldo Silva Bijit 19-01-2010