KARMA 
Tutorial de minimizacin de funciones booleanas binarias mediante mapas de Karnaugh. 
Pablo Fernndez Fraga 1999                                            		Ayuda 

	1.DESCRIPCIN 

   Karma es un tutorial de minimizacin de funciones booleanas mediante mapas de Karnaugh, 
programado en Java, por tanto multiplataforma y con un entorno GUI amigable. Permite realizar 
la seleccin de implicantes grficamente sobre los mapas, asistiendo al usuario durante todo el 
proceso, as como en la seleccin de una cobertura mnima. Permite cargar funciones de disco 
o generarlas aleatoriamente. Puede trabajar en modo tutorial con funciones de hasta 5 variables 
de entrada y 16 de salida aunque minimiza de forma automtica funciones de hasta 16 variables 
de entrada. 

    Karma permite dos modos distintos de ejecucin: 

	1.1.Ejecucin como aplicacin independiente 

   		Es el modo de ejecucin multiplataforma, requiere un intrprete de cdigo 
	Java instalado y se realiza mediante la ejecucin de la clase Karma.class 
	mediante dicho intrprete. Esta clase y todas las dems clases de la aplicacin 
	se encuentran en el fichero Karma.jar que debe ser introducido en el path del 
	intrprete. 

		A modo de ejemplo se incluyen dos ficheros que realizan la ejecucin en este 
	modo: KarmaW.bat, para entornos Microsoft Windows y KarmaX para entornos X11. Ambos
	requieren se encuentre instalado en el sistema el JDK de Sun. Tambin se incluye
	en la distribuicin un fichero ejecutable de Microsoft Windows (Karma.exe) para
	ejecucin de la aplicacin en entornos de este tipo con la mquina virtual Java
	instalada.


	1.2.Ejecucin como Applet Java 

		Tambin existe la posibilidad de ejecutar Karma desde una pgina HTML 
	mediante un navegador Web que soporte Java. Este mtodo de ejecucin 
	permite ejecutar Karma en cualquier plataforma e incluso en modo remoto, 
	aunque con ciertas restricciones debidas a la seguridad, por lo que en este 
	modo no pueden leerse ni escribirse ficheros en disco ni realizar impresiones.
		
		Para ejecutar Karma en este modo basta abrir el fichero Karma.htm con un
	navegador que soporte Java. 
 

	2.MENS 

	2.1.Funcin

	2.1.1.Nueva 
		
		Genera una nueva funcin aleatoria con nmero de variables de entrada, nmero
	de variables de salida, nmero de minterms y nmero de indeterminaciones especificados.
	Los datos de la minimizacin en uso se pierden al crear una funcin nueva.

	2.1.2.Cargar 
		
		Lee una funcin de disco reemplazando los datos de la minimizacin en uso.

	2.1.3.Grabar 

		Guarda en disco la funcin en uso.

	2.1.4.Grabar resultado 

		Guarda en disco los resultados de la minimizacin en uso.

	2.1.5.Minimizacin automtica 

		Realiza la minimizacin automtica de la funcin en uso.

	2.1.6.Minimizacin tutorial 

		Comienza la minimizacin tutorial de la funcin en uso.

	2.1.7.Propiedades 
		
		Muestra el dilogo de propiedades de la aplicacin, a saber: 

	2.1.7.1.Minimizacin 

		Establece si la minimizacin debe realizarse sobre minterms o sobre maxterms.
	Si ya existe una minimizacin en uso la modificacin de esta propiedad no se har
	efectiva hasta la prxima minimizacin.
	
	2.1.7.2.Seleccin de implicantes 
  
	2.1.7.2.1.Marcar todos los implicantes 
		
		Establece si se deben seleccionar todos los implicantes primos antes de
	proceder a la seleccin de una cobertura.

	2.1.7.2.2.Marcar implicantes por orden 

		Establece si la seleccin de implicantes debe ser realizada de modo ordenado,
	seleccionando antes los implicantes de mayor orden. Esta opcin solo se aplica en caso
	de que haya que marcar todos los implicantes.

	2.1.7.3.Seleccin de coberturas 

	2.1.7.3.1.Buscar todas las coberturas mnimas

		Indica si se deben buscar todas las posibles coberturas mnimas durante la
	minimizacin. Slo afecta a las funciones de cinco variables o menos.

	2.1.7.3.2.Anticipar nmero de coberturas mnimas

		Si esta opcin est activada se mostrar un mensaje en la parte superior de los
	mapas especificando el nmero de minimizaciones posibles para cada variable. Slo afecta
	a funciones de cinco variables o menos y siempre que est activada la opcin de buscar
	todas las coberturas mnimas.

	2.1.7.4.Funciones de ms de cinco variables

		Indica el tipo de seleccin de cobertura que se realizar. El mtodo de
	seleccin de una cobertura exhaustiva devolver siempre una cobertura mnima. El mtodo
	de seleccin de cobertura COBVIDA devolver una cobertura sin garantizar que sea una
	cobertura mnima. Sin embargo este mtodo es de	gran fiabilidad, si no devuelve una
	cobertura mnima ser una buena aproximacin y mucho ms rpidamente que el exhaustivo
	por lo que se recomienda su uso particularmente en funciones de tamao considerable.

	2.1.7.5.Correccin de impresin en X11
	
		La impresin de mapas en entronos X11 puede no funcionar correctamente,
	en ese caso debe activarse esta opcin.

	2.1.8.Salir 
		
		Finaliza el programa.

	2.2.Tutorial 

	2.2.1.Dos variables 

		Muestra implicantes y adyacencias tpicos de un mapa de Karnaugh de 
	dos variables.

	2.2.2.Tres variables 
		
		Muestra implicantes y adyacencias tpicos de un mapa de Karnaugh de 
	tres variables.

	2.2.3.Cuatro variables 
	
		Muestra implicantes y adyacencias tpicos de un mapa de Karnaugh de 
	cuatro variables.
	
	2.2.4.Cinco variables 

		Muestra implicantes y adyacencias tpicos de un mapa de Karnaugh de 
	cinco variables.

	2.3.Imprimir 
		
	2.3.1.Pgina actual 

		Imprime la pgina que se est visualizando. 

	2.3.2.Todas las pginas 

		Imprime todas las pginas. 

	2.4.Ayuda 

	2.4.1.Contenido 
	
		Muestra este fichero de ayuda.

	2.4.2.Acerca de... 
	
		Muestra el dilogo acerca de...


	3.UTILIZACIN

	3.1.Creando una funcin 

		El punto de partida para cualquier minimizacin es obtener una funcin, esto
	puede hacerse de tres formas:

		a.Especificando el nombre de un fichero .k en lnea de comandos, lo cual cargar
		automticamente la funcin. 

		b.Mediante la opcin cargar en el men de funcin, que mostrar un dilogo donde
		podremos seleccionar el fichero .k que contiene la funcin a cargar.

		c.Mediante la opcin generar en el men de funcin, que mostrar un dilogo donde
		podremos especificar el nmero de variables de entrada, salida y si lo deseamos 
		nmero de minterms e indeterminaciones de la funcin. 
	
		Despus de obtener una funcin mediante cualquiera de los pasos anteriores
	aparecer la tabla de dicha funcin. En cualquier momento podremos editarla pinchando
	con el ratn sobre la celda cuyo valor deseamos cambiar. Al editar la funcin cualquier
	tipo de minimizacin que hayamos realizado pasa a ser invlida y por lo tanto
	desaparecer.

	3.2.Minimizando una funcin 
	
		Una vez que hemos obtenido la funcin deseada podemos minimizarla de dos maneras,
	automticamente o manualmente, mediante las opciones minimizacin automtica y
	minimizacin manual del men de funcin. Al seleccionar una de estas opciones se
	realizar la minimizacin de la funcin, lo cual puede llevar un tiempo dependiendo del
	tamao de la funcin y sobre todo del nmero de minterms (o maxterms si se minimizan
	estos) e indeterminaciones. 

		Si la minimizacin es automtica aparecern en pantalla el mapa o mapas
	correspondientes con los implicantes primos marcados en negro y los que forman parte de
	la cobertura mnima en rojo. Si la minimizacin es manual aparecern los mapas sin ningn
	implicante marcado. En ambos casos aparecer adems una nueva solapa con los resultados,
	que se irn mostrando a medida que se minimicen variables en caso de una minimizacin
	manual y automticamente en caso de una minimizacin automtica.

		Si se ha especificado la opcion de anticipar el numero de coberturas aparecer
	en la parte superior del mapa un mensaje indicando el nmero de coberturas mnimas
	encontradas para la variable en cuestin.
  
	3.2.1.Seleccin de implicantes 
		
		Al iniciar la minimizacin manual de una funcin aparecer en pantalla el mapa
	de la primera variable y una solapa para cada una de las variables de la funcin. Para 
	seleccionar un implicante en el mapa se debe pinchar con el ratn cada una de las celdas
	que lo forman y luego pulsar el botn marcar implicante. En caso de que no se sepa qu 
	implicante marcar pulsando el botn ayuda implicante aparecer un cuadro de dilogo 
	donde se sugiere el siguiente implicante a marcar. 

		Si se ha seleccionado la opcin de marcar implicantes por orden en el dilogo de
	propiedades habr que marcar primero los implicantes de mayor orden. 
  
	3.2.2.Seleccin de una cobertura 
	
		Si hemos seleccionado la opcin marcar todos los implicantes tendremos que
	hacerlo as antes de proceder a la seleccin de una cobertura. En caso contrario en
	cualquier momento podemos proponer una cobertura con solo pinchar sobre la lista de 
	implicantes que aparece a la derecha del mapa sobre aquellos implicantes que 
	queramos seleccionar y pulsar el boton de botn marcar cobertura. Si se ha seleccionado
	la opcin de coberturas mltiples ser necesario marcarlas todas para dar por terminada
	la minimizacin, en caso contrario finalizar al seleccionar una cobertura mnima de
	entre las posibles.
	
		En caso de duda marcando el boton ayuda cobertura aparecer un dilogo donde se
	sugiere una cobertura a marcar.
