Você está na página 1de 10

Grupo Editorial Ediciones Futuro

Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)


Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
Artculo original
Sistema para generar ejercicios de simplificacin de tablas de la
verdad y sus soluciones
System for generate exercises of true table simplifications and its
solutions
Reynel Fals de Pedro
1
, Yenisleidy Piloto Lastra
2
y Ronald Ugas Lago
3

1
Departamento de Sistemas Digitales. Facultad 7. Universidad de las Ciencias Informticas
2
Departamento de Programacin e Ingeniera de Software. Facultad 4. Universidad de las Ciencias Informticas
3
Departamento de Sistemas Digitales. Facultad 7. Universidad de las Ciencias Informticas
{rfals, ypiloto, rugas}@uci.cu

Resumen
Este sistema brinda la posibilidad de crear un conjunto de formas normales o tablas de la verdad
de manera aleatoria y los soluciona paso a paso. Los ejercicios y sus soluciones quedan
plasmados en un fichero LaTeX y pdf. El objetivo es dotar a los profesores de una herramienta
para generar nuevos ejercicios y tener las soluciones detalladas. El programa est diseado para
que un profesor cree de manera automtica una gua de problemas de circuitos lgicos y su
solucin. Se puede adems dar soluciones a problemas especficos a partir de la tabla de la
verdad, por lo que puede ser usado como herramienta para escribir libros de Matemtica
Discreta, Lgica, Electrnica Digital, Mquinas o Arquitectura de Computadoras, gracias al
empleo de una salida en el lenguaje de marcado LaTex.
Palabras clave: circuitos lgicos, desarrollo de herramientas, generacin automtica de
ejercicios de clase, lenguajes de marcado LaTex, mapas de karnaugh, procesador de textos
LaTeX, redaccin de textos



Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
Abstract
This system offers the possibility of creating a set of normal forms and truth tables randomly and
solved step by step. The exercises and their solutions are embedded in a LaTeX file, and / or pdf.
The aim is to give teachers a tool to generate new exercises and have detailed solutions. The
program is designed for a teacher to automatically create a troubleshooting guide and solution
logic circuits. It can also provide solutions to specific problems from the truth table, so it can be
used as a tool for writing books on Discrete Mathematics, Logic, Digital Electronics, Machines and
Computer Architecture, through the use of an output LaTex markup language. The program is
developed in PHP in four main blocks, the first to create all the exercises, the second resolves, the
third writes the file and the fourth gives the user the possibility to interact with the presentation and
content of the exercises and results.
Keywords: Application development, automatic generation of class exercises, Karnaugh maps,
LaTex markup languages, LaTeX word processor, logic circuits, text editing
Introduccin
En varias ocasiones el profesor se enfrenta al reto de crear diferentes ejercicios para repartir
entre los estudiantes, en las distintas modalidades de evaluacin. La principal dificultad reside en
que si se aplican muchos ejercicios el profesor debe de resolver cada uno y contemplar las
diferentes vas de solucin. El otro problema, en el momento de crear mltiples ejercicios, es que
corremos el riesgo de volver a generar uno que ya tenamos creado. En ciertos casos podemos
resolver estos problemas asistindonos de una computadora: generando ejercicios de manera
aleatoria y resolvindolos de manera automtica. Uno de estos casos favorables es la generacin
de ejercicios en forma de tablas de la verdad y formas normales, para su resolucin en forma de
expresiones simplificadas, circuitos lgicos y mapas de Karnaugh simplificados.

La forma de presentar los ejercicios y sus soluciones es mediante un pdf o cdigo fuente en
LaTeX que permite que sea distribuido de manera electrnica o impresa. Los fuentes (LaTeX)
pueden ser modificado con posterioridad para refinar la presentacin final a gusto del usuario.
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
El LaTeX es un conjunto de macros escritas en lenguaje TeX que permite presentar documentos
con alta calidad tipogrfica [Knuth, 1991].
Metodologa Computacional
El sistema que se propone genera varios ejercicios del orden donde es la cantidad de
variables, hasta el momento , se toma la mitad (0.5) para rechazar la creacin de los
ejercicios ms obvios de resolver. Por ejemplo esto evita que existan ciertas combinaciones para
como (0, 0, 0, 0) o (1, 1, 1, 1). La base 3 indica que se tienen en cuenta tambin las
combinaciones opcionales.


Fig. 1. Entrada del cliente para una solucin particular.

El sistema se compone de cuatro bloques principales: el primer bloque genera los ejercicios
mediante la generacin al azar de un nmero que se almacena en una lista donde este no puede
estar previamente, este ciclo se repetir hasta alcanzar la lista el tamao correspondiente a la
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
cantidad de ejercicios deseados. Luego cada nmero es codificado en base 3 obtenindose una
secuencia de 0, 1 y 2 de tamao donde 0 representa las salidas "apagadas", 1 las salidas
"encendidas" y 2 las salidas en las que no importa su estado.
Tabla 1. Tabla de la Verdad generada por el sistema.



Fig. 2. Forma disyuntiva normal abreviada generada por el sistema sobre la base de la Tabla 1.


Fig. 3. Forma conjuntiva normal abreviada generada por el sistema sobre la base de la Tabla 1.

El segundo bloque resuelve un ejercicio determinado pasndole una lista de nmeros entre 0 y
2 (la salida del bloque 1). Tambin se debe decir si la va de solucin es a partir de una forma
disyuntiva (1) o conjuntiva (0), por defecto se toma la primera. A partir de estos datos se explora
de manera recursiva las vecindades de un mapa de Karnaugh mediante la obtencin de nuevas
posiciones donde cada nueva posicin es igual a la posicin actual en O exclusivo () con un
donde , se observa si esa posicin contiene algn valor igual a la actual o igual
a 2 (salida opcional), si es as est ser la nueva posicin actual y se adicionar la posicin al
posible clster, se repetir el proceso hasta que ; entonces se comprobar si ese posible
clster (o lista de posiciones) es un clster en realidad, en caso afirmativo se adiciona a la lista de
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
clsteres en caso contrario se extrae del posible clster la ltima posicin aadida (pop de la
pila). En un paso posterior se remueven los clsteres internos, es decir, se borran los clsteres
que son subconjuntos de otros mayores. El objetivo principal de este bloque es obtener los
clsteres que simplifican al mapa de Karnaugh, a partir de estos se pueden formar las ecuaciones
que se simbolizan mediante dos listas de nmeros que son las variables y las posiciones de las
negaciones.


Fig. 4. Forma disyuntiva normal generada por el sistema sobre la base de la Tabla 1.


Fig. 5. Forma conjuntiva normal generada por el sistema sobre la base de la Tabla 1.

El tercer bloque manipula las secuencias obtenidas en el bloque 1 y los clsteres y ecuaciones
del bloque 2 y escribe en un fichero los cdigos LaTeX que permiten representar las tablas de la
verdad, formas normales, mapas de Karnaugh, expresiones simplificadas y circuitos de
compuertas bsicas. Las tablas y los mapas se representaron mediante el array de LaTeX y los
circuitos mediante la generacin de cdigo LaTeX para dibujar circuitos a partir de las macros m4
escrito por Dwight Aplevich (Aplevich, 2009). La representacin de los clsteres en los mapas de
Karnaugh se realiza a partir de escribir superndices (*, \dag, \ddag, \S, etc.) en los elementos de
las celdas del mapa y su coloreado para identificar rpidamente las agrupaciones o clsteres
(Goossens, y otros, 1997).

Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC

Fig. 6. Dos maneras de simplificar un mismo Mapa de Karnaugh generado por el sistema a partir de la Tabla 1.
El cuarto bloque permite interactuar con los restantes dejando que el usuario establezca la
cantidad de variables, el nmero de ejercicios a generar, si desea resolver un ejercicio en
particular, le da la posibilidad al usuario de organizar el orden o la existencia de determinadas
representaciones, por ejemplo: ver la tabla de la verdad primero que la expresin simplificada, o
ver slo la expresin simplificada, le permite al usuario escribir encabezados de los ejercicios, y
decidir si ser un solo texto con ejercicios y soluciones intercalados (en un esquema ejercicio
1
-
solucin
1
, ...,ejercicio
m
-solucin
m
) o diferenciados (en un esquema ejercico
1
-...-ejercicio
m
,
solucin
1
-...-solucin
m
), provechoso para la escritura de gua de ejercicios o libros, o dos
separados donde uno contenga los ejercicios en diferentes variantes y el otro sus soluciones, til
para evaluar a los estudiantes entregando la primera y conservando la otra el evaluador.
El sistema est realizado en PHP 5, usando el IDE Zend Studio version 5.5.0, tambin se utiliz
JavaScript. Se prob en una PC como servidor con sistema operativo Debian que tiene instalado
m4, las Macros M4 para circuitos elctricos, apache2 y latex.

Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC

Fig. 7. El usuario puede seleccionar y ordenar que ser escrito en el documento final.



Fig. 8. Dos expresiones simplificadas equivalentes a partir de las dos vas de simplificacin representadas en la
Figura 6.
Resultados y discusin
El sistema se ha probado en la creacin de 27 ejercicios asignando uno a cada estudiante de un
aula. El pdf generado luego fue enviado por correo a la lista de distribucin del grupo. Los
estudiantes cumplieron la tarea asignada enviando las simplificaciones de los mapas, las
expresiones finales y los circuitos que pudieron ser comprobados rpidamente con el fichero
solucin en poder del profesor.
En otro grupo se efectu una comprobacin donde el profesor gener slo las formas disyuntivas
normales abreviadas de 4 variables. Distribuy el material impreso en el aula, uno por estudiante,
con la orden de simplificar el Mapa de Karnaugh. Los resultados se pudieron dar a medida que
entregaban porque el profesor contaba con las dos variantes de respuestas para cada ejercicio.
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
Usando esta herramienta se garantiza que cada estudiante tenga un ejercicio independiente del
resto de los examinados y que el profesor pueda reconocer fcilmente un error en la solucin
ofrecida, an teniendo un nmero alto de ejercicios diferentes que revisar.
Conclusiones
El sistema posee la potencialidad de poder generar varios ejercicios que luego el profesor puede
descartar si descubre que la solucin es trivial con slo ver la parte de la solucin al ejercicio,
esto promueve la velocidad a la hora de escoger uno o varios ejercicios para determinada
evaluacin, y brinda la facilidad que podemos pedir al programa que nos brinde las dos vas
posibles de solucin optima del ejercicio. Podremos imprimir directamente bateras a aplicarle al
estudiante de este tema, o conformar un fichero fuente base en LaTeX que podremos usar en
futuras publicaciones o presentaciones, sin necesidad de acudir a software especficos para
diseo de circuitos. Y esto sin preocuparnos de nada excepto de cual es la tabla de la verdad
origen del circuito a dibujar. La principal ventaja est en que no necesita fotografiar esta zona de
la pantalla ni exportarla como imagen, porque ya est lista para ser usada en un pdf o para
imprimir.
Tambin pudiera usarse como auto-examen, donde el estudiante genere sus preguntas en fichero
aparte de las respuestas, las responda y compruebe.
Referencias
APLEVICH, DWIGHT. M4 Macros for Electric Circuit Diagrams in LATEX Documents.
[Documento] Massachusetts: MIT Press, 2009. ISBN 0-201-71993-3.
BAKKEN, STIG STHER, et al. Manual de PHP. Madrid: MediaFormacin, 2001. ISBN: 4-201-
150520-1.
BIGNELL, JAMES W. Y DONOVAN, ROBERT L. Electrnica digital. Azcapotzalco: Continental
S.A., 1997. ISBN: 968-26-1307-8.
CLEMENTS, ALAN. Principles of Computer Hardware 4
th
edition. New York: Oxford University
Press Inc., 2006. ISBN: 0-19-927313-8.
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
CONVERSE, TIM, PARK, JOYCE Y MORGAN, CLARK. PHP5 and MySQL Bible. Indianapolis:
Wiley Publishing, Inc., 2004. ISBN: 0-7645-5746-7.
CORMEN, THOMAS H., et al. 2003. Introduction to Algorithms. Massachusetts: MIT Press, 2003.
ISBN: 0-262-03293-7.
G. HARTKE, STEPHEN. A Survey of Free Math Fonts for TEX and LATEX. [en lnea] 5 de Mayo
de 2006. [Consultado el: 10 de julio de 2010]. Disponible en: [http://ctan.tug.org/tex-
archive/info/Free_Math_Font_Survey. ISBN: 6-9001-668903-8].
GOODMAN, DANNY. JavaScript Bible. Indianapolis: Hungry Minds, 2001. ISBN: 0-7645-4718-6.
GOOSSENS, MICHEL, RAHTZ, SEBASTIAN Y MITTELBACH, FRANK. The LATEX Graphics
Companion. Menlo Park: Addison-Wesley, 1997. ISBN 0-201-85469-4.
GRAHAM, RONALD L., KNUTH, DONALD E. Y PATASHNIK, OREN. Concrete Mathematics.
Massachusetts: Addison-Wesley, 1989. FGHIJK-HA-943210.
ISSI CAMY, LZARO. JavaScript. Madrid: Anaya Multimedia, 2002. ISBN: 84-415-1384-8.
KNUTH, DONALD E. 1998. The Art Of Computer Programming 3
rd
ed Vol. 2. California : Addison-
Wesley, 1998. ISBN: 0-201-89684-2.
KNUTH, DONALD ERVIN. The TEXbook. New York: Addison-Wesley, 1991. ISBN 0-201-13448-9.
LAMPORT, LESLIE. LATEX A Document Preparation System. California: Addison-Wesley, 1994. 2
3 4 5 6 7 8 9 10-CRW-97969594.
SEDGEWICK, ROBERT. Permutation Generation Methods. New York: ACM, 1977, ACM Comput.
Surv., Vol. 9, p. 137-164. ISSN: 0360-0300.
PETERSEN, RICHARD. Fundamentos de programacin en Linux. Bogot: McGraw-Hill/Osborne,
2001. ISBN: 958-41-0230-3.
RAMOS MONSO, MARTIN. Programacin PHP Sitios web dinmicos e interactivos. Ciudad de
Buenos Aires: MP Ediciones S.A., 2000. ISBN: 4-3330-5782-5.
SEDGEWICK, ROBERT. Algorithhms. Massachusetts: Addison-Wesley, 1983. ISBN: O-201-
06672-6.
SKIENA, STEVEN S. The Algorithm design manual. New York: Springer Verlag, 1998. ISBN: 0-
387-94860-0.
Grupo Editorial Ediciones Futuro
Serie Cientfica de la Universidad de las Ciencias Informticas (SC-UCI)
Vol.: 3, No. 9, Ao 2010
http://publicaciones.uci.cu/index.php/SC
VASWANI, VIKRAM. How to Do Everything with PHP & MySQL. New York: McGraw-Hill/Osborne,
2005. DOI: 10.1036/0071466541.
VEERARAGHAVAN, SRIRANGA. Sams Teach Yourself Shell Programming in 24 Hours. New
Delhi: Macmillan Computer Publishing, 1999. ISBN: 0672314819.
WELLING, LUKE Y THOMPSON, LAURA. Desarrollo web con PHP y MySQL. Madrid: Anaya
Multimedia, 2002. ISBN: 84-415-1578-7.

Você também pode gostar