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.