Está en la página 1de 9

PROBLEMA DE LAS JARRAS CON EL ALGORITMO BÚSQUEDA EN

PROFUNDIDAD

Importancia
Al resolver este problema, no solo implica obtener el resultado, sino comprender la
importancia de usar La Teoría de Grafos y el algoritmo de Recorrido en
Profundidad en la solución de los problemas lógicos y algoritmos actuales, ya que
nos permite hacerlo de forma ordenada y se pueden usar técnicas como el Back
tracking

Planteamiento del Problema


En mediciones existen distintos tipos de medidas, metro, grados, litros, etc. este
trabajo se basará en obtener medidas en litros, pero no exactamente medir litros
de la forma habitual con medidas en el recipiente, sino que a partir de dos jarras
obtener una cantidad de litros de agua en la jarra más grande, partiendo de dos
jarras las cuales iniciarán vacías y se irán midiendo y vaciando hasta obtener el
resultado. Para el estudio de este trabajo se realizará un solo caso de todas las
variantes que existen.

-
-
-
-
-
-
-
- .

PROBLEMA
Se tienen dos jarras, una de 4 litros de capacidad y otra de 3. Ninguna de ellas
tiene marcas de medición. Se tiene una bomba que permite llenar las jarras de
agua. Averiguar cómo se puede lograr tener exactamente 2 litros de agua en la
jarra de 4 litros de capacidad.
Tenemos las operaciones válidas las cuales son:
- Llenar las jarras
- Tirar agua de las jarras
- Pasar agua de una jarra a otra
El espacio de estados se define como:

{(X, Y) /X son los litros en las jarras de 4L con 0 <= x <= 4 AND Y son los litris de
la jarra de 3L con 0 <= Y <= 3}

Los estados son:


El estado inicial es {0,0}
El estado final es {2,0}
Entonces nos piden resolver este problema y también hacerlo en cualquier
lenguaje de programación
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=>84, 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).

La aplicación debe encontrar un conjunto de estados para ir del estado (0,0) al


estado (2,0).

SOLUCION
ESTADO INICIAL: (0,0)
ESTADO INICIAL: (2,0)
OPERADORES POSIBLES: (0,0), (0,3), (4,0)
Y el algoritmo que nos habla el problema es de búsqueda en profundidad

ALGORITMO DE BUSQUEDA EN PROFUNDIDAD:


La búsqueda en profundidad, llamada DepthFirstSearch en inglés, es un algoritmo
usado para recorrer o buscar elementos en un árbol o un grafo y pertenece al
grupo de las búsquedas no informadas (sin heurísticas). Su procedimiento
consiste en visitar todos los nodos de forma ordenada pero no uniforme en un
camino concreto, dejando caminos sin visitar en su proceso. Una vez llega al final
del camino vuelve atrás hasta que encuentra una bifurcación que no ha explorado,
y repite el proceso
Entonces como este algoritmo no tiene heurísticas y como el problema tiene
reglas entonces aplicamos la búsqueda heurística es decir que este no tiene
información adicional acerca de los estados más allá de lo que menciona el
problema entonces aquí lo que hacemos con esta búsqueda heurística es
basarnos en las reglas y solucionar el problema porque la verdad si nos vamos por
otro lado que es utilizar un algoritmo para solucionar no nos proporciona los
suficientes estados para hacer todo el recorrido

BUSQUEDA HEURISTICA
Este es un proceso de búsqueda basado en reglas como nos dan anterior mente
en el problema para poder solucionarlo cada regla permite establecer una orden la
cual permite realizar movimientos para llegar una solución más óptima se utilizan
para guiar todo el proceso haciendo que cada momento se seleccione el estado o
las operaciones más prometedoras es decir tenemos que escoger la mejor opción
o los diferentes caminos para determinar cuál es el camino y llegar a la mejor
opción.

las heurísticas se pueden incorporar en un proceso de búsqueda basados en


reglas.
 Dentro de las mismas reglas, las reglas pueden describir los movimientos
permitidos.

 Esta función evalúa aspectos del problema dando pasos a aspectos


individuales, de manera que el valor que devuelva es una estimación de
que el nodo pertenece a la ruta que conduce a la mejor solución.
Buenos ahora vamos ver el recorrido que va a tener desde el nodo inicial (0,0)
hasta el nodo final cumpliendo unas series de reglas ya propuestas anterior mente
en el problema entonces vamos a aplicar las regla 2, 8, 2, 6, 3 y 8 para conseguir
el estado objetivo.

Búsqueda en profundidad
El problema 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.
(0,0)->(0,3)->(3,0)->(3,3)->(4,2)->(0,2)->(2,0)
En la cual a partir de la regla del estado inicial se aplicaron las reglas 2, 8, 2, 6, 3 y
8 hasta conseguir el estado objetivo.

4L 3L

Tenemos uan jarra de 3L y una de 4L


ESTADO INICIAL: (0,0)
ESTADO FINAL: (2,0)
El primer nodo es el estado inicial que es (0,0)
Aplicamos la regla 2
Inicialización
Estado de inicio: (0,0)
Aplicar la regla 2:
(X, Y | Y <3) -> (X, 3)
Llene la jarra de 3L
Ahora el estado es (0,3)

Pasamos aquí a inicialización donde tenemos el Estado de inicio aplicando la regla


dos con las condiciones que es llenar la jarra de 3L y tenesmos estas condiciones
Y <3) de que Y es menor que 3 entonces (X,3) en este caso quedaría el estado X
que es el la jarra de 4L y el estado Y que es la jarra 3L entonces nos quedaría
(0,3) como se muestra en el grafo de arriba.
Iteración 1:
Estado actual: (0,3)
Aplicar la regla 8:
(X, Y | X + Y <= 4, Y> 0 -> (X + Y, 0)
Vierta toda el agua de una jarra de 3L en una jarra de 4L
Ahora el estado es (3,0)

En la iteración 1 tenemos el estado actual que es (0,3) entonces aplicamos la


regla 8 que es verter todo el agua de una jarra de 3L en una jarra de 4L
cumpliendo estas condiciones (X, Y | X + Y <= 4, Y> 0 -> (X + Y, 0) que si Y es
mayor que 0 y X +Y tiene que ser menor igual a 4 entonces X + Y que serían X +
Y que seria 3 sumando 0 + 3 daría 3 y en el 0 lo pasaríamos igual y nos daría el
estado (3,0).

Iteración 2:
Estado actual (3,0)
Aplicar la regla 2:
(X, Y | Y <3) => (X, 3)
(3,3)
Llene la jarra de 3L
Ahora el estado es (3,3)

Continuando con la iteración 2 donde ya tenesmos el estado actual que esta en


(3,0) aplicando la regla 2 nuevamente que es llenar la jarra de 3L cumpliendo con
estas condiciones (X, Y | Y <3) => (X, 3) donde X y Y donde Y es menor que 3 y
entonces X, 3 en este caso como Y es menor que 3 pasaria el 3 quedando pasaría
Y menor que 3 entonces (X, 3) que daria el 3 y como X es menor que 3 entonces
queda (3,3)
Iteración 3:
Estado actual (3, 3)
Aplicar la regla 6:
(X, Y | X + Y> = 4, Y> 0) => (4, Y –(4-X))
Vierta agua de una jarra de 3L en una jarra de 4L hasta que la jarra de 4L esté
llena
Ahora el estado es (4,2)

En la iteración 3 donde tenemos el estado actual en (3,3) aplicando la regla 6 que


es verter el agua de una jarra de 3L en una jarra de 4L hasta que la jarra de 4L
esté llena nuevamente cumpliendo con estas series de condiciones (X, Y | X + Y>
= 4, Y> 0) => (4, Y –(4-X)) donde Y tiene que ser mayor que 0 X + Y tiene que ser
mayor igual a 4 entonces 4, Y – 4 – X entonces pasaría X que es 3 – 4 que daría 1
y Y seria 3, (3-1 daría 2 y pasaría el (4,2) que tenemos con resultado

Iteración 4:
Estado actual: (4,2)
Aplicar la regla 3
(X, Y | X> 0) => (0, Y)
Jarra vacía de 4L
Ahora el estado es (0,2)

Continuando con las iteraciones ahora la numero 4 tenemos el estado actual (4,2)
aplicando la regla 3 que es vaciar la jarra de 4L entonces cumpliendo con estas
condiciones (X, Y | X> 0) => (0, Y) que es X debe der mayor que 0 si cumple
entonces 0, Y entonces como X es mayor que 0 pasa el 0 y en Y bajaría el 2 ahora
el estado serio (0,2) que se muestra en el grafo.
Iteración 5:
Estado actual: (0, 2)
Aplicar la regla 8:
(X, Y | X + Y <= 4, Y> 0 -> (x + y, 0)
Viera toda el agua de una jarra de 3L en una jarra de 4L
Ahora el estado es (2,0)

Y finalmente la iteración 5 podemos ver que el estado es (2,0) aplicando la regla


número 8 que es verter el agua de una jarra de 3L en una jarra de 4L cumpliendo
esta seria de condiciones donde Y es mayor que 0 y X + Y debe ser menor igual a
4 entonces X + Y seria ( 0, 2 )

ESTADO DE LA SOLUCION
{(2,0) (0, 2) (4,2) (3,3) (3,0) (0,3) (0,0)}

También podría gustarte