martes, 9 de noviembre de 2010

Reporte #5: Lenguajes Logicos!


El problema logico que me toco resolver se llama Sombreros Blancos y Negros y es el siguiente:

Loa Caníbales emboscan a un safari en la selva y capturan a tres hombres. Los caníbales dan a los hombres una oportunidad única para escapar sin ser comidos.

Los cautivos se alinean en orden de altura, y están atados a estacas. El hombre en la parte trasera puede ver las espaldas de sus dos amigos, el hombre en el medio se puede ver la espalda del hombre en el frente, y el hombre en el frente no puede ver a nadie. Los caníbales muestran a los hombres cinco sombreros. Tres de los sombreros son de color negro y dos de los sombreros son de color blanco.

Se les colocan vendas sobre los ojos de cada hombre y un sombrero se coloca en la cabeza de cada hombre. Los dos sombreros sobrantes están ocultos. Las vendas se retiran y se dice a los hombres que si uno de ellos se puede adivinar qué color de sombrero que lleva puesto que todos pueden salir ileso.

El hombre en la parte trasera que puede ver los dos sombreros de sus amigos, pero no la suya, dice, "no sé". El hombre de mediana que puede ver el sombrero del hombre en el frente, pero no la suya, dice, "no sé". El hombre frente a quien no puede ver el sombrero de nadie dice "¡Lo sé!"

¿Cómo sabía el color de su sombrero y de qué color era?


SOLUCION

El color del sombrero del hombre es negro porque sabía que el primer hombre no vio dos sombreros blancos ( si ubiera visto los dos sombreros blancos sabria que el color del sombrero seria negro puesto que solamente hay dos blancos) y el segundo hombre no vio un sombrero blanco, porque si él vio un sombrero blanco, el segundo hombre hubiera sabido que su sombrero era negro.

Programa en Prolog:

Este es un pequeño programa en Prolog:

domains
      palabra=symbol

predicates
      animales(palabra)
      utiles_escolares(palabra)
      personas(palabra)

clauses
      animales(leon).
      animales(pato).
      utiles_escolares(colores).
      personas(juan).

----------------------------------------------------

predicates
       animal_domestico(X) :- mascota(X), ladra(X)
       animal_domestico(X) :- mascota(X), maulla(X)

clauses
      mascota(pita).
      mascota(fibi).
      mascota(coby).

      ladra(pita)
      maulla(fibi)
      ruge(coby)


----------------------------------------------------

predicates
      comida(alimento)

clauses
      alimento(cereal).
      alimento(verduras).
      alimento(leche).
      alimento(huevo).
      alimento(pollo).
      alimento(carne).
      alimento(helado).



Espero que este reporte cumpla con lo requerido.

Paola Cantú 1429400

8 comentarios:

  1. hola!!

    la solucion del problema me parecio muy buena..pero en relacion al programa ...me parece algo raro que se relacione animales, utiles y personas .. pero aun asi creo que la estructura es correcta ..

    =)

    ResponderEliminar
  2. :)
    hola como estas
    la forma en que resolviste tu problema esta muy bien explicada, y tu programa en prolog tambien se ve que esta bien, pues que bueno que pudiste con este problema logico, nos vemos!!!
    bye!

    ResponderEliminar
  3. hola, que bien esta esta explicado tu problema y esta bien entendible, saludos..

    ResponderEliminar
  4. esta entendible tu problema solo la imagen en prolog, fue lo que falto, pero aun asi se entiende

    ResponderEliminar
  5. muy bien redactaste muy bien tu problema logico y pues despues lo pudiste redactar en prolog :D aunque creo que falto imprimir la pantalla de prolog

    ResponderEliminar
  6. muy bien hecho la solucion del problema logico aunque falto la ejecucion en prolog

    ResponderEliminar
  7. Hola amiga, me parecio muy bueno el planteamiento del problema al igual que su solucion, el codigo del programa esta bien pero al menos lo hubieras corrido.
    Saludos

    ResponderEliminar