Visual Prolog
Enviado por unasam • 18 de Octubre de 2011 • 770 Palabras (4 Páginas) • 1.145 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.
...