Visual Prolog
unasam18 de Octubre de 2011
770 Palabras (4 Páginas)1.182 Visitas
INTELIGENCIA ARTIFICIAL LOGICA
Un pastor tiene que pasar un lobo, una cabra y una lechuga a la otra orilla de un río. Dispone de una barca en la que sólo caben él y otra de las cosas.
Si el lobo se queda sólo con la cabra se la come, si la cabra se queda sola con la lechuga se la come.
¿Cómo debe hacerlo?
Solución:
1. primero el pastor pasa la cabra y lo deja
2. el pastor vuelve solo
3. luego pasa al lobo
4. regresa con la cabra la deja
5. lleva la lechuga la deja al lado del lobo
6. el pastor vuelve
7. lleva a la cabra y ya todos están al otro lado.
Se tiene 3 jarras de 8, 5 y 3 litros, se dispone también solamente de 8 litros de agua en la jarra de 8 y se debe lograr dejar 4 litros en la jarra de 8.
Esta es una de tantas soluciones posibles:
Cada columna es una jarra indicada como 8, 5 y 3, los números debajo son los litros de agua que tengo y que voy pasando:
8 - 5 - 3 ----> Jarras
8 - 0 - 0 ----> Estado inicial, jarra de 8 litros llena
5 - 0 - 3 ----> Lleno jarra de 3, me quedan 5 litros en la de 8
5 - 3 - 0 ----> Paso los 3 litros a la de 5
2 - 3 - 3 ----> Lleno jarra de 3, me quedan 2 en la de 8
2 - 5 - 1 ----> Lleno jarra de 5 con la de 3, me sobra 1 litro en la de 3
7 - 0 - 1 ----> Paso los 5 litros a la de 8
7 - 1 - 0 ----> Paso el litro de la jarra de 3 a la de 5
4 - 1 - 3 ----> Lleno la jarra de 3 litros, la de 8 me queda con 4 litros, el resultado esperado.
Se tienen dos jarras de agua, una de 4l y otra de 3l sin escala de medición.
Se desea tener 2l de agua en la jarra de 4l. Las siguientes operaciones son válidas: llenar las jarras, tirar agua de las jarras, pasar agua de una jarra a otra.
Solución:
* El espacio de estados se define como
{ (X,Y)/ X son los litros en la jarra de 4l con 0<=X<=4 AND Y son los litros de la jarra de 3l con 0<=Y<=3 }
* El estado inicial es (0,0)
* El estado final es (2,0). El estado final podría ser (2,N) en caso de que no importen los litros de la segunda jarra.
* Las reglas que se pueden aplicar son:
1. Llenar la jarra de 4l: Si (X,Y) AND X<4 => (4,Y)
2. Llenar la jarra de 3l: Si (X,Y) AND Y<3 => (X,3)
3. Vaciar la jarra de 4l: Si (X,Y) AND X>0 => (0, Y)
4. Vaciar la jarra de 3l: Si (X,Y) AND Y>0 => (X, 0)
5. Pasar agua de la jarra de 4l a la jarra de 3l hasta llenarla: Si (X,Y) AND X>0 AND X+Y>=3 => (X-(3-Y),3)
6. Pasar agua de la jarra de 3l a la jarra de 4l hasta llenarla: Si (X,Y) AND Y>0 AND X+Y>=4 => (4, Y-(4-X))
7. Pasar toda el agua de la jarra de 4l a la jarra de 3l: Si (X,Y) AND X>0 AND X+Y<3 => (0,X+Y)
8. Pasar toda el agua de la jarra de 3l a la jarra de 4l: Si (X,Y) AND Y>0 AND X+Y<4 => (X+Y,0)
El programa debería encontrar un pasaje de estados para ir del estado (0,0) al estado (2,0). Puede existir más de un pasaje de estados hacia la solución, por ejemplo:
(0,0) => (0,3) => (3,0) => (3,3) => (4,2) => (0,2) => (2,0)
en la cual, a partir del estado inicial, se aplicaron las reglas 2, 8, 2, 6, 3 y 8, hasta conseguir el estado objetivo.
Otro pasaje de estados hacia la solución es la siguiente
(0,0) => (4,0) => (1,3) => (1,0) => (0,1) => (4,1) => (2,3) => (2,0)
en la cual se aplicaron las reglas 1, 5, 4, 7, 1, 5 y 4
Tres misioneros y tres caníbales quieren cruzar un río. Solo hay una canoa que puede ser usada por una o dos
...