miércoles, 23 de marzo de 2011

Minimizacion Metodo Quine - McCluskey

El método de minimización Quine - McCluskey es un método tabular que a partir de los minterminos de una función booleana permite encontrar los implicantes primos de la función con el menor numero de variables. El programa está basado en una publican aparecida en la revista EDN en la sección Design Ideas a comienzo de la década de los 90, originalmente fue escrito en basic. En ese tiempo ya programaba en lenguaje C y tomaba como reto actualizar los programas al mismo, lo que me permitía aprender mucho más.

La versión de este programa admite como entrada un archivo llamado MIN.MIN en el que se especifican los datos de la función a minimizar. El formato usado es el llamado libre, con las siguientes palabras claves: 

:bit
:n
:minterminos
:variables

observe que las etiquetas comienzan con dos puntos seguido de la palabra clave, en la linea siguiente se especifica el valor correspondiente. Un ejemplo se este archivo es:

:bit
4

:n
9

:minterminos
1101
0111
1010
1001
0110
0011
1000
0010
0000

:variables
T
U
V
W

note que los minterminos están ordenados de acuerdo al número de 1's. Al correr el programa la salida correspondiente es:


pi[ 1 ] = 1-01
pi[ 2 ] = 0-1-
pi[ 3 ] = -0-0
pi[ 4 ] = 100-

        Tabla de implicantes primos

         13   7  10   9   6   3   8   2   0
=============================================
 1-01 |  ¹  --- ---  ¹  --- --- --- --- ---
 0-1- | ---  ¹  --- ---  ¹   ¹  ---  ¹  ---
 -0-0 | --- ---  ¹  --- --- ---  ¹   ¹   ¹
 100- | --- --- ---  ¹  --- ---  ¹  --- ---
=============================================

      f = T  . V' . W
        + T' . V
        + U' . W'
        + T  . U' . V'

f = T.V'.W + T'.V + U'.W' + T.U'.V'

Finalmente este programa fue la base para otro que permite el diseño de maquinas secuenciales multientrada. Proximamente hablaré de ese programa.

http://www.filefactory.com/file/ca4d6c7/n/Quine_-_McCluskey.zip

No hay comentarios: