Caso 02
En la línea del anterior caso, resolvemos un nuevo problema a partir de sus ecuaciones implementadas mediante puertas lógicas en un circuito digital.
Los recursos utilizados son:
- La placa con FPGA IceZUM Alhambra
- El editor de circuitos digitales Icestudio 0.3
En la isla de los escuderos y los caballeros (los caballeros siempre dicen la verdad, y los escuderos siempre mienten) se encuentran dos habitantes: A y B.
Y A dice: "Al menos uno de nosotros es escudero".
A continuación extraemos las ecuaciones lógicas derivadas del problema.
En la isla de los escuderos y los caballeros (los caballeros siempre dicen la verdad y los escuderos siempre mienten)
Los caballeros (1) siempre dicen la verdad (1) y los escuderos (0) siempre mienten (0).
se encuentran dos habitantes: A y B.
Sabemos que tenemos dos "parámetros de entrada" A y B
Y A dice: "Al menos uno de nosotros es escudero".
En este caso sólo habla A y dice la sentencia P igual a "Al menos uno de nosotros es escudero". Podemos simplificar P con la siguiente equivalencia trivial P': "No hay dos caballeros".
P = P'
La frase P' se expresa a partir de A y B, ya que sólo será cierta si no se da el caso de que A y B sean caballeros (1) simultáneamente, es decir, si no se da (A & B). Por lo tanto:
P' = ¬(A & B)
Con estas ecuaciones vamos a representar el circuito digital correspondiente.
La puerta XNOR representa el comparador de igualdad. Como en el caso anterior se utilizará para verificar que el personaje es coherente con su frase, es decir que un caballero (1) sólo dirá frases verdaderas (1) y un escudero (0) sólo dirá frases falsas (0).
Como sólo aparece una frase se utiliza una puerta XNOR para (A,P).
En las ecuaciones se utiliza el AND negado para representar que A y B no pueden ser 1 al mismo tiempo por lo que la puerta no se activará. En cualquier caso alternativo la salida se activa a 1. Sólo se desactiva si ambas entradas son 1.
Las entradas y salidas son las mismas que en el caso anterior: los parámetros A y B conectados a los botones y a los LEDs, LED0 y LED1 respectivamente, y la señal S conectada al LED7 que indica si la solución es válida.
Finalmente queda representar las ecuaciones mediante conexiones:
P = P' = ¬(A & B)
Descargar circuito Final en Icestudio
Se utilizará el mismo circuito de pruebas que en el caso anterior.
Descargar circuito de pruebas en Icestudio
Al sintetizar y descargar el circuito en la FPGA, se para automáticamente en la siguiente solución:
A (LED0) | B (LED1) | S (LED7) |
---|---|---|
1 | 0 | 1 |
Al pulsar el botón Next llega al final sin obtener una nueva solución:
A (LED0) | B (LED1) | S (LED7) |
---|---|---|
1 | 1 | 0 |
Por lo tanto la solución (1, 0) es la única que existe y eso significa que A es un caballero y B es un escudero.
En este segundo caso se ha analizado un problema en el que sólo uno de los habitantes dice una frase, pero ésta es suficiente para identificar a A y a B.
Para optimizar la lógica del problema se ha buscado una equivalencia trivial de P que reduce el número de puertas lógicas necesarias.
GPL 2.0 and Creative Commons Attribution-ShareAlike 4.0 International License.