jueves, 18 de noviembre de 2010

Lenguajes lógicos

El problema que elegí es Knights and Knaves 2.
There are three people (Alex, Brook and Cody), one of whom is a knight, one a knave, and one a spy. 
The knight always tells the truth, the knave always lies, and the spy can either lie or tell the truth. 
They are brought before a judge who wants to identify the spy. 
Alex says: "I am not a spy." 
Brook says: "I am a spy." 
Now Cody is in fact the spy. The judge asks him: "Is Brook really a spy?" 
Can Cody give an answer so that he doesn't convict himself as a spy?

Cosas que sabemos:
  • Uno siempre miente.
  • Otro siempre dice la verdad.
  • El restante miente o dice la verdad.
Tendremos que analizar dos situaciones, una en la que Cody responde si y otra en el que responde no, además de revisar cada combinación posible de lo que podría ser cada uno de los sospechosos.

Suponemos primero que Alex es un Knave, miente y lo que dice debe ser lo opuesto, "I am a spy", pero como no puede ser dos cosas al mismo tiempo, es imposible que sea Knave.

Ahora hay menos cosas que probar, en el primer caso suponemos que Alex es Knight y concuerda con lo que dice, y que Brook es Knave y también concuerda con lo que dice, es decir, no se contradicen, Cody es espía, ya no importa lo que diga Cody.

Si Cody responde al juez que Brook es un espía se presentan los siguientes acontecimientos, el juez puede pensar que efectivamente Brook es espía pero Cody estaría diciendo la verdad y lo convertiría en Knight y como Alex no puede ser Knave es imposible catalogarlos de esta manera.

En el segundo caso el juez puede pensar que Alex es el espía por lo que Cody miente al decir que Brook es espía, entonces Cody es Knave.

Tercer caso, el juez podría pensar que Cody mismo es el espía, y Alex podría ser Knight mientras Brook no se contradice quedándose como Knave, otra vez Cody se queda atrás.

De otra manera si Cody responde que Brook no es espía se presentan los siguientes casos.

El juez sigue pensando, si Alex es espía Cody dice la verdad al decir que Brooks no es espía y Brook queda como Knave y no se contradice, si Brook es espía, Cody sería Knave ya que mintió y Alex está otra vez como Knight. Ahora Alex o Brook pueden ser espía.

Cody dirá que  Brook no es espía.

Y Cody se ha salvado?

2 comentarios:

  1. Bien. . . me quede sin palabras.
    Muy buenas deducciones compañero, parece que estos problemas son muy simples pero en realidad es todo lo contrario, o no?

    Seria de gran ayuda que pusieras el problema original en Español, como la Doctora dijo en clase, aunque ya muchos de nosotros sabemos por lo menos un poco de Inglés.
    Yo también ya hice mi problema lógico, puedes pasarte por mi blog para que le des una revisada si gustas.
    Saludos.

    ResponderEliminar