El siguiente programa le será muy útil para comprender la parte más complicada de los diagramas de Karnaugh. Se propone resolver el siguiente caso: Con el botón "a" se pretende que la mesa gire 180º y se pare. Con el botón de enclavamiento "b" se pretende que la mesa se pare inmediatamente (en cualquier posición). Cuando "b" se desconecte, la mesa buscará inmediatamente la posición de reposo que es detectada por el captador "c".
¿Dificultades?
Si no ha conseguido resolver el problema planteado intentaremos comenzar de nuevo: Ponga ceros en todas las casillas del diagrama y lleve a la mesa a la posición de reposo, con "c" accionado (pulse con el ratón en las casillas que sea necesario para conseguirlo). Si pulsa el botón "a" se marcará la casilla que identifica ese estado, en dicha casilla ponga un 1, ya que se pretende que la mesa gire pulsando "a". Si ahora pulsa "a", la mesa comenzará a girar y en cuanto se desconecte "c" se marcará una nueva casilla, en la que también deberá poner un 1 para que la mesa siga girando. Cuando suelta el botón "a" tendrá marcada la siguiente casilla, ponga otro 1 en ella para que la mesa gire aunque se haya soltado el botón. La mesa completará entonces los 180º y se parará, estando activa la casilla en la que comenzó el ciclo. Pruebe ahora de nuevo a pulsar "a", el ciclo se ejecutará solo. Compruebe si al pulsar "b" en diversos momentos del ciclo, la mesa se para y si al desconectarlo se mueve de nuevo hasta la posición de reposo. ¿Funciona, no? Pues... ¡resuelto!
PASOS PARA LA RESOLUCIÓN
Construcción del diagrama: Cuando solo hay una variable (b en la figura) solo puede tener dos estados (una casilla sin trazo para el estado falso y otra con trazo para el estado verdadero). Al añadir una variable más (p en la figura), el número de combinaciones se duplica y el diagrama se puede obtener como un abatimiento del anterior. Así se ha llegado a representar en la figura un diagrama con 5 variables. Para el problema que estamos resolviendo solo se necesita uno de 3 variables.
Agrupamiento de casillas con unos: Una vez que el diagrama tiene la distribución correcta de ceros y unos, la función debe obtenerse con las combinaciones en las que sea verdadera (cogiendo los unos, nunca ceros). La ventaja del diagrama es que permite obtener la función ya simplificada, para lo que se cogen los unos en grupos en lugar de coger cada uno individualmente.
Comenzamos por cualquier uno, por ejemplo el marcado en la figura A. El grupo solo se puede ampliar con casillas adyacentes (un solo cambio de variable), por lo que ampliamos activando "a" según figura B. Si intentamos ampliar conectando "b" (figura C) o conectando "c" (figura D) se coge algún cero, que no es válido. Continuando con el uno que queda suelto (figura E), lo ampliamos desconectando "c" (figura F) y habremos terminado por no existir más unos. Es importante darse cuenta de que al ampliar un grupo se duplica el número de casillas, luego los grupos podrán tener 1, 2, 4, 8... casillas. Fíjese también que es imposible agrupar casillas en diagonal (exige más de un cambio de variale) y que se pueden agrupar casillas que están en los extremos del diagrama. Por supuesto, al ampliar un grupo con al cambio de una variable, las nuevas casillas que se incluyen se obtienen de las anteriores (una por una) por el cambio de la misma variable.
Obtener las funciones sumando los grupos de unos: Cada grupo será el producto de todas las variables teniendo en cuenta su estado (negadas las que no tienen trazo por valer 0 y sin negar las que están marcadas con trazo por valer 1). Comenzando por el grupo 1 según se indica a continuación, es imposible decidir si la variable "a" vale 0 o vale 1, es decir, en una casilla del grupo es 0 y en la otra casilla es 1. Las variables para las que no se puede definir su estado,son eliminadas, por lo tanto, en el grupo 1 no aparece la variable "a", mientras que "b" y "c", por valer 0 en todo el grupo (no hay trazo), aparecen negadas. Para el segundo grupo, no se puede definir el estado de la variable "c" y también se suprime.
Por último, faltaría el esquema cableado o la programación de las funciones, que suponemos conocido por haberlo explicado en apartados anteriores.
Intente resolver el siguiente problema:
Según la simulación de la mesa giratoria, cuando "b" no esté accionado, al pulsar "a" girará la mesa pero se parará en cuanto se desconecte "a". Por el contrario, cuando "b" se mantenga accionado y se pulse "a" la mesa girará igualmente pero al desconectar "a" solo se parará en una posición de reposo (con "c" accionado).
Aunque no es este el caso, en ciertos problemas es más facil agrupar ceros en lugar de unos. Agrupando ceros se obtiene la función inversa a la buscada, de forma que si negamos toda la función inversa encontraremos la función que queremos resolver. Vea esto a continuación: