You are on page 1of 6

2013

Tcnicas de IA

Integrantes: Andros,
Miguel, Ismael,
Stephanie y Tomas

[PROBLEMA DE LAS TRES
JARRAS]
IMPLEMENTACION DE UN PROGRAMA QUE HALLE LA SOLUCION AL PROBLEMA MEDIANTE LOS
METODOS DE BUSQUEDA CIEGA
PROBLEMA DE LAS TRES JARRAS

Disponemos de tres jarras de capacidades 8, 5 y 3 litros, respectivamente, y queremos conseguir 4
litros en una de ellas, vaciando y llenando adecuadamente el lquido.


Se representan los estados con (x,y,z) con x en {0,1,2,3}, y en {0,1,2,3,4,5}, z en {0,1,2,3,4,5,6,7,8}
Diseo
Dados los requerimiento del problema es necesario hacer uso de estructuras de datos que nos
permitan ofrecer una solucin.
Las estructuras de datos empleadas son
rbol
Cola
Pila

La estructura de dato bsica es un rbol, donde cada nodo representa un estado, la raz representa
el estado inicial, los hijos son los estados resultantes que se obtienen al aplicar operaciones sobre
los estados.
Dada la naturaleza da la bsqueda a ciegas el rbol se construye explorando y aplicando
operadores, esto se hace mediante los recorrido vistos en clase. Para este propsito se usa la pila
para el recorrido en profundidad y la cola para el recorrido en anchura, as mismo es necesario
usar una cola para almacenar los nodos visitados y as evitar repetirlos
Por ltimo el lenguaje que decidimos usar fue java, la razn es que dominamos mejor java que
otros lenguajes.


Resultados
EL programa tiene la siguiente secuencia de operaciones

Primera secuencia
Estado inicial (0, 0 ,0)
Vaciar jarra 1
Vaciar jarra 2
Vaciar jarra 3
Llenar jarra 1
Llenar jarra 2
Llenar jarra 3
Vaciar jarra 1 en 2
Vaciar jarra 1 en 3
Vaciar jarra 2 en 1
Vaciar jarra 2 en 3
Vaciar jarra 3 en 1
Vaciar jarra 3 en 2



Segunda secuencia

Estado inicial (0, 0, 0)
Vaciar jarra 1 en 3
Vaciar jarra 3
Llenar jarra 1
Llenar jarra 2
Vaciar jarra 1
Llenar jarra 3
Vaciar jarra 3 en 1
Vaciar jarra 1 en 2
Vaciar jarra 2 en 1
Vaciar jarra 2 en 3
Vaciar jarra 3 en 2
Vaciar jarra 2


Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:320

0:13 0:805
Espacio 85 10 405 9 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (000)(300)(030)
(330)(150)(051)
(351)(054)
(000)(008)(053)
(323)(026)(206)
(251)(341)(044)
(000)(008)(053)
(323)(026)(206)
(251)(341)(044)
Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:334 0:17 1:134
Espacio 83 12 492 9 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (000)(300)(003)
(303)(006)(306)
(036)(054)
(000)(008)(053)
(003)(030)(038)
(056)(006)(051)
(001)(010)(018)
(054)
(000)(008)(053)
(323)(026)(206)
(251)(341)(044)
Tercera secuencia

Estado inicial (0, 0, 0)

Vaciar jarra 1 en 3
Vaciar jarra 3
Vaciar jarra 3 en 2
Vaciar jarra 1 en 2
Llenar jarra 2
Vaciar jarra 1
Llenar jarra 3
Vaciar jarra 3 en 1
Vaciar jarra 2 en 3
Vaciar jarra 2 en 1
Vaciar jarra 2
Llenar jarra 1


Cuarta secuencia

Estado inicial (0, 0, 0)
Vaciar jarra 3 en 2
Vaciar jarra 1 en 2
Vaciar jarra 2
Vaciar jarra 3
Llenar jarra 3
Vaciar jarra3 en 1
Vaciar jarra 1 en 3
Llenar jarra 2
Vaciar jarra 2 en 3
Vaciar jarra 2 en 1
Llenar jarra 1
Vaciar jarra 1








Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:334 0:17 0:696
Espacio 83 10 421 9 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (000)(050)(005)
(055)(352)(052)
(007)(304)
(000)(300)(308)
(358)(058)(328)
(028)(208)(307)
(007)(304)
(000)(300)(308)
(038)(338)(158)
(108)(018)(054)
Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:336 0:222 1:18
Espacio 91 32 470
11 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (000)(050)(005)
(302)(352)(307)
(037)(334)
(000)(300)(350)(305)
(005)(055)(325)(025)
(205)(255)(345)(045)
(315)(015)(105)(155)
(335)(038)(338)(158)
(108)(153)(333)(036)
(336)(138)(130)(031)
(331)(034)
(000)(300)(350)
(305)(005)(055)
(325)(025)(205)
(304)

Quinta Secuencia
Estado inicial (2, 4, 7)
Vaciar jarra 1
Vaciar jarra 2
Vaciar jarra 3
Llenar jarra 1
Llenar jarra 2
Llenar jarra 3
Vaciar jarra 1 en 2
Vaciar jarra 1 en 3
Vaciar jarra 2 en 1
Vaciar jarra 2 en 3
Vaciar jarra 3 en 1
Vaciar jarra 3 en 2





Estado inicial (3, 1 ,5)

Vaciar jarra 1
Vaciar jarra 2
Vaciar jarra 3
Llenar jarra 1
Llenar jarra 2
Llenar jarra 3
Vaciar jarra 1 en 2
Vaciar jarra 1 en 3
Vaciar jarra 2 en 1
Vaciar jarra 2 en 3
Vaciar jarra 3 en 1
Vaciar jarra 3 en 2








Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:141 0:140 0:15
Espacio 15 20 48 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (247)(047)(344) (247)(256)(355)
(328)(320)(302)
(005)(000)(008)
(053)(323)(026)
(326)(128)(155)
(335)(330)(033)
(051)(321)(024)
(247)(240)(204)
Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:140

0:001 0:001
Espacio 25 2 10 4 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (315)(045)(054) (315)(351)(054) (315)(351)(054)
Estado inicial (1, 1, 1)
Vaciar jarra 3 en 2
Vaciar jarra 1 en 2
Vaciar jarra 2
Vaciar jarra 3
Llenar jarra 3
Vaciar jarra3 en 1
Vaciar jarra 1 en 3
Llenar jarra 2
Vaciar jarra 2 en 3
Vaciar jarra 2 en 1
Llenar jarra 1
Vaciar jarra 1










Observaciones

La primera secuencia de operadores tiene un orden de procesar segn el tipo de operacin llenar
vaciar o vaciar en desde la jarra de menor capacidad hasta la de mayor capacidad, esta fue la que
mejores resultados nos arroj.

Como se puede observar el tiempo vara entre un mtodo y otro, as como el camino solucin que
nos arrojan las funciones. Denotamos que la funcin de bsqueda en profundidad siempre resulto
ser mas rpida, mientras que el recorrido a lo ancho a pesar de no ser el ms rpido siempre nos
entreg el camino ms eficiente para resolver el problema.

Cuando cambiamos los estados iniciales los tiempos en nuestros casos de prueba se redujeron en
un 50%, esto es lo nosotros hemos experimentado a menudo al tratar de destapar la mermelada
sin xito (solo aflojarla) para que alguien ms destape el frasco sin mayor esfuerzo.

Conclusin

La bsqueda sin informacin requiere un mayor esfuerzo que en ocasiones solo conduce a
callejones sin salida, la implementacin de la solucin fue relativamente fcil, sin embargo hallar la
solucin exige un gran costo, podemos decir que entre los tres mtodos a pesar de las desventajas
que tienen el mtodo de recorrido en profundidad, fue este el que nos entreg mejores resultados
minimizando los costos operacionales. Por esta razn si nos pidieran elegir entre los mtodos nos
aventuraramos a elegir recorrido en profundidad o alguna de sus versiones modificadas.
Anchura Profundidad Profundidad
acotada iterativa
Tiempo
Seg:Milisegundos
0:156 0:842 0:141
Espacio 43 53 69
6 iteraciones
Completa SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
SE ENCONTRO LA
SOLUCION
Camino (111)(021)(321)(024)

(111)(011)(311)
(302)(352)(052)
(322)(022)(202)
(252)(342)(042)(312)
(303)(003)(053)(323)
(023)(203)(253)(343)
(043)(313)(013)(103)
(153)(333)(036)(336)
(318)(308)(038)(335)
(035)(332)(152)(107)
(157)(057)(327)(027)
(324)
(111)(011)(311)
(014)

You might also like