Sei sulla pagina 1di 6

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

ISSN 0122-1701

IMPLEMENTACIN EN LENGUAJE GRFICO DE UN ALGORITMO BASADO EN QUINE-McCLUSKEY Y PETRICK PARA MINIMIZACIN GLOBAL
Implementation in a graphical language of an algorithm based on Quine-McCluskey and Petrick methods for global minimization

RESUMEN En este trabajo se presenta la implementacin en un lenguaje grfico de un algoritmo basado en los mtodos de Quine-McCluskey y Petrick para la minimizacin global ptima de funciones simultneas booleanas que comparten el mismo conjunto de variables de entrada. Se muestra como la minimizacin global, en comparacin con las implementaciones clsicas, obtiene una solucin de menor costo a la obtenida mediante la combinacin de la minimizacin ptima individual de cada funcin. Se discute su utilidad prctica y didctica. PALABRAS CLAVES: Sntesis funciones booleanas, Petrick, QuineMcCluskey, Solucin ptima, Programacin grfica, LabVIEW. ABSTRACT This paper shows the implementation in a graphic language of an algorithm based on Quine-McCluskey and Petrick methods for optimal global minimization of simultaneous switching functions sharing their input set of variables. It is shown how this global minimization, when compared to classic implementations, achieve a better solution than the one obtained combining optimal solutions for individual functions. Its practical and didactic usability is discussed. KEYWORDS: Switching functions minimization, Petrick, Quine-McCluskey, Optimal solution, Graphical programming, LabVIEW.

MAURICIO HOLGUN L. Ingeniero Electricista. Profesor Catedrtico Estudiante Maestra en Ingeniera Elctrica. Universidad Tecnolgica de Pereira ma_hol@ohm.utp.edu.co ANDRS ESCOBAR MEJA Ingeniero Electricista, M. Sc. Profesor Auxiliar Universidad Tecnolgica de Pereira andreses1@utp.edu.co GERMN A. HOLGUN L. Ingeniero Electricista, M. Sc. Profesor Asistente Universidad Tecnolgica de Pereira gahol@utp.edu.co Grupo de Investigacin en Control e Instrumentacin.

1. INTRODUCCIN En la literatura relacionada con sistemas digitales se ha tratado ampliamente la minimizacin de funciones de conmutacin como herramienta fundamental en la sntesis de circuitos lgicos [1-6]. Tradicionalmente se emplean mtodos como el de Veitch-Karnaugh, el cual se basa en formas rectangulares de los diagramas de Venn para hacer representaciones de conjuntos. Los Mapas de Veitch-Karnaugh se han mostrado como la herramienta de uso ms comn, pero con limitacin prctica a una nica funcin y generalmente con no ms de 5 variables [7-14]. En la prctica, las implementaciones de circuitos lgicos de conmutacin casi siempre involucran ms de dos o tres funciones y con no menos de cuatro variables; lo cual implica el uso de un mapa de Karnaugh por variable conllevando a una realizacin mnima por funcin, ms no la realizacin mnima global, la cual por ejemplo podra aprovechar resultados intermedios de una funcin para evaluacin de otras, sin que con ello necesariamente una funcin se base en una implementacin mnima, pero
Fecha de Recepcin: (Letra Times New Roman de 8 puntos) Fecha de Aceptacin: Dejar en blanco

s produciendo una implementacin general mnima para el conjunto de funciones [8, 9]. La gran mayora de literatura siempre hace referencia a mtodos de simplificacin para una nica funcin. Sin embargo en algunos textos como [8, 9, 10], se encuentra mtodos alternos de simplificacin tanto para aplicaciones de una sola funcin como para aquellas con mltiples funciones. Entre estos mtodos el ms destacado y recurrente es el de Quine-McCluskey que se fundamenta en representaciones tabulares de los diagramas de Venn y que siempre se referencia como mtodo general para implementaciones programadas y con el poder de tratar ms variables que los mapas de Karnaugh [8, 9, 10]. El mtodo de Quine-McCluskey, al igual que los Mapas de Karnaugh, tiene un componente heurstico cuando se trata de completar la cubierta, o conjunto de implicantes primos necesarios para terminar de cubrir los mintrminos de una funcin y que no son cubiertos por los implicantes primos esenciales [8, 9]. Para implementaciones con un gran nmero de variables podra ser que esta parte heurstica conduzca a resultados

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

no mnimos, por lo que generalmente se recurre al algoritmo de Petrick con el fin de poder evaluar la realizacin mnima [9]. Indagando sobre implementaciones programadas realizadas tanto en varias referencias como en programas tpicos de simplificacin, se ha encontrado que es prcticamente nula la implementacin de los algoritmos generales de Quine-McCluskey y de Petrick y que en los casos existentes stas implementaciones siempre se limitan a una nica funcin. Ya que lo comn es enfrentar soluciones a problemas como ms de una funcin y de cuatro variables, los programas existentes de simplificacin no entregan la solucin global ptima. Todo lo anterior ha motivado a los autores ha realizar la implementacin de un programa de minimizacin global con base en estos algoritmos de simplificacin, optando por una aproximacin desde los lenguajes grficos de programacin con el fin de aprovechar al mximo las tecnologas existentes en cuanto a procesamiento multi-ncleo y sin mucha experiencia en programacin de tareas multi-hilo requerida en los lenguajes textuales. Todo lo anterior con miras a futuras comparaciones, ya sea con otras implementaciones y/o algoritmos, permitiendo cuantificar de forma rpida la eficiencia y aplicabilidad prctica de cada desarrollo.

Un mapa de Karnaugh no es ms que una representacin rectangular de un diagrama de Venn que conserva sus dos caractersticas fundamentales: cada regin posee tantas regiones vecinas como nmero de variables y entre ellas slo cambia un bit [7 a 14]. Un mapa de Karnaugh para tres variables se muestra en la Figura 2.

Figura 2. Mapa de Karnaugh para 3 Variables.

La simplificacin consiste esencialmente en aprovechar el hecho que cuando regiones adyacentes representan mintrminos, stas se pueden agrupar y eliminar las variables que cambia de valor entre ellas, por lo que las agrupaciones deben ser en potencias de 2[1,2]. Adems las agrupaciones deben ser tal que cada una sea lo ms grande posible y con el mnimo de agrupaciones para cubrir la totalidad de mintrminos de la funcin [8,9]. stas consideraciones que en principio parecen fciles, son directas en la simplificacin para una funcin, ms no siempre ciertas para implementaciones con funciones simultneas simplificadas individualmente por mapas de Karnaugh.

2. MARCO TERICO Inicialmente se presenta la descripcin de los algoritmos de simplificacin de Quine-McCluskey y Petrick, describiendo de forma rpida su naturaleza. Todos los mtodos clsicos de simplificacin tienen su fundamento en los diagramas de Venn, los cuales son representaciones en contorno cerrado de conjuntos, con rectngulos para representar comnmente el conjunto universal y crculos para los conjuntos. Un diagrama de Venn para tres variables booleanas se muestra en la Figura 1, donde es claro que los tres conjuntos describen un total de ocho regiones (cada una representa a su vez un posible mintrmino de la funcin) que se caracterizan por cambio de un slo bit entre regiones adyacentes. 2.1. ALGORITMO DE QUINE-McCLUSKEY El algoritmo de Quine-McCluskey es una implementacin tabular de los mapas de Karnaugh [2, 4, 5], lo cual permite un manejo amplio de ms de 5 variables y que se puede extender fcilmente a la simplificacin de dos o ms funciones simultneas para garantizar la mnima cantidad de grupos para cubrir el global de la implementacin y a su vez haciendo cada grupo lo ms grande posible dentro del criterio global de minimizacin [9]. A continuacin se hace una descripcin general del algoritmo de Quine-McCluskey [3, 4, 5, 8, 9]: 1. Identificar para cada funcin el nmero de unos en la representacin binaria de sus mintrminos. Si existen trminos Dontcare, estos deben ser incluidos. Poner todos los mintrminos formando una columna y organizados segn el nmero de unos que contengan. Se debe indicar adems para cada mintrmino las funciones que cubre. Buscar adyacencias entre grupos vecinos, identificando con un guin la variable que cambia y las funciones que abarca. Dos trminos son adyacentes si slo cambia una variable y como mnimo comparten una funcin. Si un trmino se

2.

3.

Figura 1. Diagrama de Venn para 3 variables.

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

4.

5.

6.

agrupa abarcando todas las funciones a las que pertenece no es implicante primo. Repetir bsqueda de adyacencias formando cada vez una nueva columna hasta que no se puede realizar ms agrupaciones. Formar una nueva tabla con implicantes primos en filas y mintrminos por funcin en las columnas. En esta parte no se incluyen los trminos Dontcare. Cada mintrmino se cruza contra las agrupaciones que lo contienen. Si un mintrmino slo es cubierto por un implicante primo, ste es un implicante primo esencial que debe ir en la cubierta y cubre de forma global todos los mintrminos adicionales que contiene. Identificar el mnimo nmero de implicantes primos necesarios para cubrir los mintrminos an no cubiertos de cada funcin.

2.2. ALGORITMO DE PETRICK El punto 6 descrito en el algoritmo de Quine-McCluskey implica una bsqueda heurstica del mnimo nmero de implicantes primos que terminen de cubrir los mintrminos faltantes. Este procedimiento podra conllevar a una solucin no ptima (mnima) en casos donde se tengan muchas posibles soluciones, lo cual es comn cuando se plantean sistemas con varias funciones. El algoritmo de Petrick permite encontrar la solucin mnima mediante un procedimiento claro y secuencial, el cual se describe a continuacin [6,9]: 1. Escribir una expresin en forma de producto de sumas (POS), donde cada trmino suma contiene todos los posibles implicantes primos para un mintrmino no agrupado an. Llevar la forma POS obtenida a una forma de suma de productos (SOP). Para ello se emplea la ley distributiva y se simplifican literales mediante leyes de absorcin o involucin. Cada trmino producto de la forma SOP resultante representa una posible combinacin de cubierta, lo cual quiere decir que se debe seleccionar la combinacin mnima.

2.

3.

3. IMPLEMENTACIN DEL ALGORITMO EN UN LENGUAJE GRFICO Los algoritmos previamente descritos han sido implementados con ayuda del software de programacin grfica LabVIEW8.0. La programacin se basa esencialmente en una estructura de secuencia, ver la Figura 3, que va progresivamente realizando los diferentes pasos descritos por los algoritmos.
Figura 3. Marcos de estructura de secuencia para el programa.
____________________________ 1. Las notas de pie de pgina debern estar en la pgina donde se citan. Letra Times New Roman de 8 puntos

10

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

Los marcos de la estructura de secuencia realizan respectivamente las siguientes labores: Marco 0: Se encarga de inicializar la tabla de verdad en valores como: Iniciar tabla con ceros, unos o Dontcares. Marco 1: Realiza una depuracin de la tabla de verdad ingresada, con lo cual todo lo que no se introduce como un 1 o un 0 lgico se trata como un Dontcare. Marco 2: Realiza puntos 1 y 2 de Quine-McCluskey. Marco 3: Realiza puntos 3 y 4 de Quine-McCluskey. Marco 4: Realiza punto 5 de Quine-McCluskey. Marco 5: Realiza algoritmo de Petrick. Marco 6: Realiza ajuste para presentacin de resultados. El poder del algoritmo combinado de Quine-McCluskey con Petrick se muestra a continuacin con aplicacin a la simplificacin de un conjunto de funciones de referencia. El objeto es mostrar la operacin adecuada del algoritmo implementado, demostrar su alcance de simplificacin global y adems tener un sistema de funciones de referencia con base en el cual se puedan hacer futuras comparaciones. La interfaz de usuario para el programa se muestra en la siguiente seccin.

Figura 5. Mapa de Karnaugh para

Figura 6. Mapa de Karnaugh para

De las Figuras 4, 5 y 6 se obtienen las expresiones mnimas por funcin, las cuales se pueden denominar como mnimos locales. Estas expresiones tienen forma SOP y son las siguientes:

4. EJEMPLO DE REFERENCIA Para mostrar la aplicabilidad del mtodo se ha seleccionado un ejemplo clsico encontrado en [9] pginas 220 a 222. Adicional a este ejemplo, se ha verificado la correcta operacin del programa implementando todos los ejemplos que trae la misma referencia tanto para el algoritmo de Quine-McCluskey como para el de Petrick, ver pginas 211 a 244. El sistema costa de un conjunto de tres funciones con cuatro variables, donde las variables son comunes para todas las funciones.

f ( A, B, C , D ) = BCD + ABD + BCD f ( A, B, C , D ) = AB + BCD f ( A, B, C , D ) = ABD + BCD + ABD


El costo de realizacin de una implementacin se define como la cantidad de elementos de circuito y su tipo necesarios para llevarlo a efecto [7 a 14]. En general se debe tener en cuenta: la cantidad de trminos productos diferentes; s se desea realizar todos estos productos con un nico tipo de elemento (por ejemplo, solo con compuertas AND de dos entradas); la cantidad de trminos suma de acuerdo con la naturaleza del elemento que las implementa (por ejemplo, solo con compuertas OR de dos entradas) y el nmero total de literales usados. Para el ejemplo realizado con mapas de Karnaugh se tienen las siguientes relaciones de elementos a usar: Total de trminos producto diferentes: 6 Total de compuertas AND de 2 entradas necesarias: 9 Total de compuertas OR de 2 entradas necesarias: 5 En esta evaluacin de costos se ha tenido en cuenta los trminos AND de 2 variables que igualmente se pueden reutilizar en otros trminos, como por ejemplo, en f el trmino (2)

f ( A, B, C , D ) = m ( 0, 2,7,10 ) + d (12,15 ) f ( A, B, C , D ) = m ( 2, 4,5 ) + d ( 6, 7,8,10 ) f ( A, B, C , D ) = m ( 2,7,8 ) + d ( 0,5,13)


(1)

Inicialmente se realiza la simplificacin usando mapas de Karnaugh, para lo cual cada funcin es llevada de forma individual a uno de estos mapas. El procedimiento de simplificacin se asume conocido por parte del lector.

BCD puede ser implementado haciendo primero BD para poder reutilizar esta parte en el trmino BCD de la funcin f . Sin embargo, se debe

Figura 4. Mapa de Karnaugh para

tener en cuenta que los trminos reutilizables son circunstanciales en minimizaciones locales.

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

11

Usando el algoritmo de minimizacin global que se ha programado, se pretende observar cmo se comportan estos mismos costos. Para ello inicialmente se introducen los datos en la interfaz de usuario, la cual se muestra en la Figura 7 con las configuraciones para las funciones ya descritas en la ecuacin (1):

En la parte superior a la solucin, Figura 8, se pueden consultar los valores intermedios producto de los puntos 3 y 4 del algoritmo de Quine-McCluskey y que de forma generalizada se conocen como los n-Cubos. En la solucin obtenida, para cada funcin la respuesta est igualmente en forma SOP, asignando un cero a la posicin de una variable complementada, un uno a la posicin de una variable sin complementar y un guin para la posicin de una variable que se simplifica. Por tanto, llevando a una notacin igual a la mostrada para la ecuacin (2), los resultados son:

f ( A, B, C , D ) = BCD + ABD + ABCD f ( A, B, C , D ) = AB + BCD f ( A, B, C , D ) = ABD + ABCD + BCD


Los costos de implementacin de esta realizacin se muestran a continuacin:
Figura 7. Interfaz de usuario del programa.

(3)

En la interfaz, se ingresan los datos directamente en forma de tabla de verdad, asignando un 1 a los mintrminos que se deben cubrir, una d a los trminos Dontcare y un 0 a los dems. Por facilidad se ha programado la inicializacin de la tabla con valores adecuados, por ejemplo, en el caso descrito la tabla posee ms ceros que cualquier otro valor, por lo que se ha optado inicializarla en consecuencia. Con los datos ya ingresados, se procede a solicitar la simplificacin, como se observa en la Figura 8.

Total de trminos producto diferentes: 5 Total de compuertas AND de 2 entradas necesarias: 8 Total de compuertas OR de 2 entradas necesarias: 4 En el anterior totalizado de elementos, se ha tenido en cuenta que ahora es posible reutilizar adicionalmente un resultado parcial de una operacin OR entre dos trminos comunes a las funciones f y f . Una observacin rpida de los resultados muestra que la realizacin obtenida por el programa no implica una solucin mnima para cada una de las funciones a implementar, pero evidentemente la solucin requiere ahora de menos elementos de circuito y por ende, se logra una solucin mnima global en comparacin a la obtenida con los mapas de Karnaugh (2). Lo anterior se logra gracias a que el mtodo hace una bsqueda exhaustiva de todos los posibles implicantes primos y le asigna prioridad a aquellos que son compartidos entre varias funciones lo que permite a la postre una reutilizacin mayor de resultados intermedios en la implementacin global.

5. TRABAJOS FUTUROS El propsito de los autores es seguir ahondando en mtodos de simplificacin para funciones de conmutacin, donde se pueda superar las limitaciones prcticas de los mtodos tradicionales. Se pretende continuar trabajando sobre mtodos que permitan la simplificacin de varias funciones simultneas y garanticen a la vez redes libres de riesgos por tiempo.
Figura 8. Simplificacin mediante algoritmo programado.
____________________________ 1. Las notas de pie de pgina debern estar en la pgina donde se citan. Letra Times New Roman de 8 puntos

12

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

Es igualmente de inters mtodos que superen los retos computacionales que plantean algoritmos como el presentado en este artculo, y que se ven afectados en el tiempo de ejecucin a medida que el nmero de variables crece debido a la inherente bsqueda exhaustiva de implicantes primos. Aunque en la prctica, al igual que en el ejemplo planteado, es comn ver funciones con menos mintrminos que posibles combinaciones, solamente una funcin de cinco variables con todos sus mintrminos conlleva a problemas de cmputo, as la solucin sea tan trivial como 1 lgico.

funcin. Aunque ciertas situaciones en trminos que se pueden reutilizar pueden ser circunstanciales de un conjunto de funciones dadas, lo que s se puede garantizar es que el nmero total de trminos producto a implementar gracias a los algoritmos programados es menor, y en el peor de los casos igual, a los obtenidos por mtodos tradicionales; lo cual conlleva necesariamente a una implementacin mnima global. Se debe abordar temas adicionales como requerimientos de redes libres de riesgo por tiempo o esfuerzos computacionales de los mtodos programados, los cuales son fuente de inters y motivacin para los autores en futuros trabajos.

6. CONCLUSIONES Y RECOMENDACIONES Mtodos tradicionales de simplificacin de funciones de conmutacin, tales como los mapas de Karnaugh o simplificaciones mediante aplicacin iterativa de teoremas del lgebra de Boole, son herramientas clsicas que siempre conducen a soluciones mnimas para una nica funcin, adems stos mtodos son difcilmente aplicables a funciones con ms de cinco variables; en el caso de los mapas de Karnaugh su representacin grfica presenta dificultadas de abstraccin y los mtodos de simplificacin por lgebra podran no asegurar una solucin mnima. Sin embargo, en el campo prctico las implementaciones comunes conllevan siempre varias funciones con varias variables, lo cual debe ser afrontado desde un punto de vista diferente. El algoritmo de Quine-McCluskey es uno de los ms reconocidos gracias a su aplicabilidad a la simplificacin de varias funciones y adems permite encontrar una solucin mnima global, aunque presenta situaciones heursticas en su punto 6 (ver Seccin 2). La solucin al problema heurstico de Quine-McCluskey es resuelta por Petrick mediante el algoritmo que lleva su nombre y el cual realiza una bsqueda completa de la solucin mnima entre los implicantes primos necesarios para terminar de cubrir los mintrminos no cubiertos por los implicantes primos esenciales. Los dos prrafos anteriores justifican la eleccin por parte de los autores de estos mtodos como algoritmos de base en la implementacin programada realizada. Adems la seleccin de implementacin en un lenguaje grfico entrega ventajas didcticas que no sera fcilmente explorables en lenguajes textuales tradicionales, ya que se facilita el seguimiento al flujo de la informacin, comprensin de las diferentes etapas de los algoritmos, especialmente por parte de alumnos de pregrado, as como la mantenibilidad y optimizacin del mismo algoritmo implementado. Los resultados de la implementacin muestran el poder de simplificacin global del programa montado, donde el nmero total de elementos de circuito es menor a una realizacin con mtodos que slo garantizan mnimos por

7. BIBLIOGRAFA [1] M. Karnaugh, The map method for synthesis of combinational logic circuits. AIEE Comm electronics, 1953. [2] E. W. Veitch, A chart method for simplifying truth functions. Proc Computing Machinery Conf, 1952. [3] W. V. Quine, The problem of simplifying truth functions, American Mathematical Monthly, vol. 59, no. 8, pp. 521531, 1952. [4] E. J. McCluskey, Minimization of boolean functions, Ph.D. dissertation, M.I.T., 1956 [5] E. J. McCluskey, Introduction to the theory of switching circuits. New York, McGraw-Hill Books, 1965. [6] S. R. Petrick, Ed., On the minimization of boolean functions. Symposium on Switching theory, 1959. [7] Floyd Thomas L. Fundamentos de sistemas digitales, 7 Edicin. Prentice Hall, 2000. [8] John Wakerly. Diseo Digital: Principios y prcticas, 3ra Edicin. Pearson Educacin, 2001. [9] Victor P. Nelson, Nagle H. Troy, Carroll Bill, Irwin J. David. Anlisis y diseo de circuitos lgicos digitales. Prentice Hall, 1996. [10] Tinder Richard. Engineering digital design, Second Edition Revised. Academic Press, 2000. [11] M. Morris Mano. Diseo Digital 3ra ed., Pearson, Prentice Hall, 1995. [12] R. L Tokheim. Principios digitales, 3ra Edicin. McGraw-Hill, 1995. [13] E. Mandado. Sistemas electrnicos digitales, 7ma Edicin. Marcombo Boixereu Editores, 2004. [14] Ronald J. Tocci. Sistemas Digitales: Principios y aplicaciones. Prentice Hall, 2007.

Potrebbero piacerti anche