You are on page 1of 4

APPROVED

Implementacion en lenguajes de programacion del


metodo de minimizacion de variables booleanas
de Quine-McCluskey
Alexis Lenis Ochoa
Victor Luis Angulo
Luis Ferney Sandoval
27 de mayo de 2015

1.

Descripci
on del problema

La minimizaci
on de expresiones booleanas es fundamental en la optimizacion
de circuitos l
ogicos. Hay varios metodos que son muy utilizados, podemos encontrar tales como reducci
on con leyes de algebra booleana y diagramas o mapas
de Karnaugh. Estos metodos son utilizados cuando las expresiones a simplificar
tienen pocas variables, pero su funcionalidad disminuye cuando el n
umero de
variables aumenta.
El metodo de reducci
on de Quine-McCluskey es utilizado cuando la cantidad de variables es muy grande como ocurre en los problemas de optimizacion
reales. Implementar este metodo en un lenguaje de programacion es u
til para
lograr una herramienta autom
atica, que permite la obtencion de expresiones de
conmutaci
on mnimas.
Con este proyecto, se desea implementar el metodo de Quine-McCluskey en
un lenguaje de programaci
on, es decir, dise
nar un programa de computador,
utilizando herramientas que permitan un desarrollo en la menor cantidad de
lneas de c
odigo, que conduzca a un facil entendimiento en futuras referencias o
modificaciones, garantizando una solucion apropiada y eficaz en la construccion
de circuitos digitales.

2.
2.1.

Objetivos
Obetivo general

Se pretende implementar el metodo de minimizacion de variables booleanas


en un lenguajes de programacion como Java y C++ que utilizan un paradigma de programaci
on orientada a objetos, comparada con la programacion estructurada que ofrecen otros lenguajes reduce la cantidad de lneas de codigo,
mejorando la claridad, calidad y tiempo de desarrollo y de ejecucion.

2.2.

Objetivos especficos
Utilizar el paradigma de programacion orientada a objetos que es de facil
compresi
on para desarrolladores en futuras mejoras.
1

Quine-McCluskey

LATEX

Observar como se desempe


na este algoritmo en Java y C++ y poder establecer ventajas y desventajas del comportamiento del algoritmo en cada
uno de los lenguajes implementados.

3.

Justificaci
on o Motivaci
on

La reducci
on de variables booleanas es muy importante en el ambito del
desarrollo de circuitos digitales y resolucion de condiciones logicas en programaci
on. Hay varios metodos que se pueden utilizar pero con el metodo de QuineMcCluskey se puede simplificar una expresion booleana sin preocuparse por la
cantidad de variables.
En estos campos de aplicacion se hace indispensable contar con un metodo
eficaz para manejar expresiones booleanas con varias entradas; Por ejemplo, en
un procesador el precio o valor monetario esta definido por la cantidad de entradas posibles y componentes utilizados en su fabricacion. Asimismo, la cantidad
de variables determina el precio en el campo de creacion de redes de circuitos,
de iluminaci
on o de comunicacion en edificios, o en general en estructuras, porque la cantidad de componentes que tenga el circuito es proporcional al costo,
e incluso a fallas tecnicas, por eso siempre entre menos variables tenga este
ser
a mejor.
La implementaci
on de este metodo en un lenguaje de programacion evita
posibles errores humanos, y ahorra tiempo en el momento de la simplificacion.
Por otro lado se han implementado codigos de forma estructural, utilizando lenguajes orientados a objetos, pero con poco uso de este paradigma [1], [2], por lo
cual, se hace evidente la necesidad de dise
nar un programa con las caractersticas
expuestas anteriormente.

4.

Estado del arte

El
algebra booleana fue desarrollada por George Boole aplicando tecnicas
algebraicas para tratar expresiones de logica proposicional, restringiendo las
proposiciones primarias por valores algebraicos con valores de 1 y 0, de los cuales
se obtiene varios axiomas y postulados que aplican el metodo de desarrollo usado
por Boole [3] [4].
Esta l
ogica fue aplicada a los circuitos digitales por Claude Shannon en
su tesis doctoral [5], al darse cuenta que esta se podra aplicar a circuitos de
relevadores construyendo computadores con este sistema, se constituyo como la
base de todos los aparatos electronicos que se usan hoy en da. As las cosas
se busc
o la reducci
on de la complejidad logica, por medio de la minimizacion
de la formula booleana. El metodo de Quine McClusckey (Q-M) desarrollado
por Willard Quine y Edward J. McClusckey es un metodo tabular que aplica el
mismo principio de diagramas de Karnaugh, pero no esta limitado por el n
umero
de variables de entrada. Aunque la complejidad aumenta con cada variable que
se a
nade, este metodo se hace indispensable para la minimizacion de expresiones
booleanas.
Se han hecho varias modificaciones al metodo Q-M [6] y adelantos en campos
como algoritmos evolutivos [7], pero a
un tenemos el problema del algoritmo
original: s la cantidad de variables es muy grande tomara mucho tiempo y

Quine-McCluskey

LATEX

recursos llegar a una soluci


on.
Aunque el metodo est
a estandarizado se pueden observar aplicaciones recientes como por ejemplo, la aplicacion de este metodo en la creacion de la
arquitectura de una red inal
ambrica ad hoc en el 2007 en Corea, la cual fue
aprobada por la IEE [8].
Otro referente actual fue la aplicacion con un enfasis en los implicantes
primos, que usa los mismos conceptos y base teorica del metodo de QuineMcCluskey, pero con especial atencion las variables llamadas implicantes primos,
un estudio que fue publicado en el 2013[9].
Se observa que la base te
orica y matematica no se ha cambiado mucho durante el tiempo, ya que el metodo es eficaz y maneja una cantidad de variables
considerable, para modelar problemas de la vida real. Han existido variantes que
ponen prioridad a ciertas variables pero la base y los conceptos son los mismos.

5.

Metodologa y Procedimiento

Para la implementaci
on del algoritmo de Quine-McCluskey se procedera a
analizar los c
odigos propuestos por Sourangsu Banerji [1] se haran algunas pruebas de escritorio con pocas variables para tener una vision general del algoritmo
y poder especular la cantidad de iteraciones de este. Una vez realizado lo anterior
se proceder
a a implementar el codigo en C++ y en Java utilizando Dev-C++y
Eclipse respectivamente. Estos son IDE (integrated development environment)
que son aplicaciones para el desarrollo de software.

6.

Cronograma de actividades
Cuadro 1: Cronograma.

Fecha
03/04/2015 - 07/04/2015
09/04/2015 - 17/04/2015
19/04/2015 - 03/05/2015
25/05/2015 - 10/06/2015

6.1.

Quine-McCluskey
Descripcion
Redaccion del anteproyecto
Proceso de analisis y realizacion de pruebas de escritorio
Implementacion del codigo en un IDE
Redaccion del documento escrito

Redacci
on del anteproyecto

En esta etapa se redactar


a el documento del ante proyecto y se haran las
investigaciones necesarias. Se estableceran los objetivos y se justificara la motivaci
on para la exitosa redacci
on de este.

6.2.

Proceso de an
alisis y realizaci
on de pruebas de escritorio

El entendimiento de este metodo es indispensable para la calidad de este


proyecto. En esta etapa se procedera al analisis del metodo de Quine-McCluskey,
se entender
a y se har
an pruebas de escritorio, las cuales tienen el objetivo de

Quine-McCluskey

LATEX

realizar el proceso escrito, describiendo cada funcion del programa como si ya


estuviera implementado el software, lo cual facilitara la comprension de este
metodo.

6.3.

Implementaci
on del c
odigo en un IDE

Una vez entendido y analizado el metodo de Quine-McCluskey se creara el


c
odigo y se ejecutar
a en un IDE (Ambiente de Desarrollo Integrado), haciendo
varias pruebas para comprobar el correcto funcionamiento de este.

6.4.

Redacci
on del documento escrito

En este paso se redactar


a el documento final. A pesar de que esta es la
tarea final, el documento se estara escribiendo desde el momento en el que se
haya aprobado el anteproyecto. En esta etapa se va a sintetizar el trabajo, y las
actividades anteriormente descritas en el documento.

7.

Referencias

[1] Sourangsu Banerji, Computer Simulation Codes for the Quine-McCluskey


Method of Logic Minimization, RCC-Institute of Information Technology.
[2] S.P. Tomaszewski, I.U. Celik, G.E. Antoniou, Image Processing and Systems Laboratory Department of Computer Science, Montclair State University,
Vol. 13, No. 4, pp.577583, 2003.
[3]Zurcher J, George Boole y las leyes de pensamiento. Universidad de
Costa Rica PP.70-75 ,1981.
[4]Boole G., An Investigation of the Laws of Thought. New York: publicaciones Dover ,(1954)
[5] Shannon C.E., A symbolic analysis of relay and switching circuits, Vol.
57, No. 6, pp. 713723 , 1938.
[6] Jadhav Vitthal, Buchade Amar, Modified Quine-McCluskey Method,
Pune, Maharashtra, India,2012.

[7] Milos Seda,


Heuristic Set-Covering-Based Post-processing for Improving
the Quine-McCluskey Method, International Journal of Computational Intelligence, vol 4, 2 ;2008.
[8] Chih-Cheng Tseng and Kwang-Cheng Chen, Organizing an optimal clusterbased ad hoc network architecture by the modified Quine-McCluskey algorithm,
IEEE Communications Letters, vol. 11, no. 1, pp. 43-45, 2007.
[9]V. Manojlovic, Minimization of Switching Functions using Quine-McCluskey
Method, International Journal of Computer Applications, vol. 82, no. 4, pp. 1216, 2013.
[10]Godse, A.P. and Godse, D.A. Digital Electronics And Logic Design.Technical
Publications(2009)
[11] Turton, Brian CH. Extending Quine-McCluskey for exclusive-or logic
synthesis. Education, IEEE Transactions on 39.1 (1996): 81-85.

You might also like