Está en la página 1de 21

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FÍSICAS Y


MATEMÁTICAS
ESCUELA DE INFORMÁTICA

PROBLEMA DE LAS
JARRAS

MONOGRAFIA

ASIGNATURA: Programación Lógica

PROFESOR: Ing. José Arturo Díaz Pulido.

INTEGRANTES: Mendez Echevarria Alessia

Meza Sanchez Kathiuska

Reyes Mozo Lizeth

CICLO: VII

TRUJILLO-PERÚ
2014

PROBLEMA DE LAS JARRAS 1


A Dios,
por brindarnos la dicha de la
salud y bienestar físico
y espiritual

A nuestros padres,
como agradecimiento a su esfuerzo,
amor y apoyo incondicional, durante
nuestra formación tanto personal
como profesional.

A nuestros docentes,
por brindarnos su guía
y sabiduría en el desarrollo
de este trabajo.

PROBLEMA DE LAS JARRAS 2


CONTENIDO

INTRODUCCIÓN..................................................................................................................... 4

MARCO TEORICO .................................................................................................................. 5


1. CAPÍTULO I: TEORÍA DE TÉCNICAS DE BÚSQUEDA ............................................. 5
1.1. Búsqueda en Anchura ............................................................................................. 5
1.2. Búsqueda en Profundidad ....................................................................................... 6
2. CAPÍTULO II: PROBLEMA DE LAS JARRAS ............................................................. 8
2.1. Representación De Problemas: .............................................................................. 8
2.2. Planteamiento del problema de las Jarras ............................................................ 8
2.3. Formulación del problema de las Jarras ................................................................ 9
3. CAPITULO III: SOLUCION PROBLEMA DE LAS JARRAS ...................................... 11
3.1. PROBLEMA DE LAS JARRAS DE AGUA (PROFUNDIDAD) ........................... 11
3.2. PROBLEMA DE LAS JARRAS DE AGUA (ANCHURA) .................................... 13
4. CAPITULO IV: IMPLEMENTACION ............................................................................ 15
4.1. Código en Prolog ....................................................................................................... 15
4.2. ANIMACION DEL PROBLEMA EN JAVA (PASO A PASO) .............................. 17
CONCLUSIONES:................................................................................................................. 19

ANEXOS .................................................................................................................................. 20

BIBLIOGRAFÍA ..................................................................................................................... 21

PROBLEMA DE LAS JARRAS 3


INTRODUCCIÓN

La Ciencia de la Computación trata cada vez de plantear nuevos problemas que

sean difíciles de resolver mediante las técnicas computacionales existentes. Estos

problemas generalmente no tienen solución algorítmica conocida o esta es tan

compleja que no tiene una implementación práctica computacional.

Los problemas de decisión que normalmente se presentan en la vida empresarial

pueden caer en esta clase de problemas.

Por lo general existe una serie de recursos escasos (obreros, presupuesto,

tiempo, etc.), o bien requisitos mínimos que hay que condicionan la elección de la

estrategia más adecuada. Por lo general el objetivo al tomar la decisión es llevar a

cabo el plan propuesto de manera óptima (bien incurriendo en mínimos costes o

bien buscando el máximo beneficio).

El proceso de buscar una solución a un problema produce un espacio solución, o

sea, la parte del espacio problema que se examina realmente. A diferencia de las

estructuras de datos que están predefinidas y ya existen cuando comienza la

búsqueda, los espacios problema son generalmente definidos proceduralmente,

es decir, el espacio problema es creado a medida que es explorado. Se usan

procedimientos para definir los siguientes estados posibles en el espacio a través

de los cuales la búsqueda puede continuar desde el estado actual. Solamente los

caminos explorados tienen que estar definidos explícitamente.

PROBLEMA DE LAS JARRAS 4


MARCO TEORICO

1. CAPÍTULO I: TEORÍA DE TÉCNICAS DE BÚSQUEDA

1.1. Búsqueda en Anchura

La búsqueda en anchura (o búsqueda en amplitud), llamada Breadth

First Search en inglés, es un algoritmo usado para recorrer o buscar

elementos en una estructura de datos como los árboles y los grafos

(aunque nosotros nos centremos ahora mismo en los árboles).

Pertenece al grupo de las búsquedas no informadas (sin heurísticas).

Su procedimiento consiste en ir visitando todos los nodos de un nivel

antes de proceder con el siguiente nivel tal y como mostramos en la

siguiente figura (los números en naranja indican el orden de

exploración de los nodos):

PROBLEMA DE LAS JARRAS 5


Entonces, la búsqueda en anchura va a encontrar el elemento

de menor profundidad del árbol, si es que existe.

Ventajas de la búsqueda en Anchura:

- Es completo: siempre encuentra la solución si existe.

- Es óptimo si el coste de cada rama es constante: en Inteligencia Artificial

puede que cada nodo sea un estado de un problema, y que unas ramas

tengan un coste diferente a las demás.

Desventajas de la búsqueda en Anchura:

- Complejidad exponencial en espacio y tiempo (incluso peor la del espacio

que la del tiempo)

1.2. Búsqueda en Profundidad

La búsqueda en profundidad, llamada Depth First Search 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 hasta acabar el árbol

(esto se conoce como backtracking). En la siguiente figura mostramos el

orden de visita, siendo los números en naranja dicho orden:

PROBLEMA DE LAS JARRAS 6


Como vemos, la búsqueda en profundidad busca el elemento por el

camino de máxima profundidad y cuando éste se acaba, vuelve al último

nodo que había visitado con caminos posibles (caminos abiertos).

Ventajas de la búsqueda en Profundidad:

- Es completa si no existen ciclos repetidos.

- Tiene menor complejidad en espacio que la búsqueda en anchura,


porque solo mantenemos en memoria un camino simultáneamente.

Desventajas de la búsqueda en Profundidad:

- No es óptima.

- Puede no encontrar la solución aunque exista si hay caminos infinitos.

- No es completa.

PROBLEMA DE LAS JARRAS 7


2. CAPÍTULO II: PROBLEMA DE LAS JARRAS

2.1. Representación De Problemas:

Existen diferentes formas de representar problemas para resolverlos de

manera automática.

Representación General:

 Espacio de Estado: un problema se divide en un conjunto de

pasos de resolución desde el inicio hasta el objetivo.

 Reducción a Sub-Problemas: un problema se descompone en

una jerarquía de sub-problemas

Representaciones para problemas Específicos:

 Resolución de juegos

 Satisfacción de restricciones

2.2. Planteamiento del problema de las Jarras

Enunciado:

-Se tienen dos jarras de agua, una de 4 litros y otra de 3 litros sin escala
de medición. Se desea tener 2 litros de agua en la jarra de 4 litros. Las
siguientes operaciones son válidas: llenar las jarras, tirar agua de las
jarras, pasar agua de una jarra a otra.

Representación de estados:

- (x y) con x en {0,1,2,3,4} e y en {0,1,2,3}.

Número de estados: 20.

PROBLEMA DE LAS JARRAS 8


2.3. Formulación del problema de las Jarras

Estado inicial: (0 0).

Estados finales: todos los estados de la forma (2 y).

Operadores:

• Llenar la jarra de 4 litros con la bomba.

• Llenar la jarra de 3 litros con la bomba.

• Vaciar la jarra de 4 litros en el suelo.

• Vaciar la jarra de 3 litros en el suelo.

• Llenar la jarra de 4 litros con la jarra de 3 litros.

• Llenar la jarra de 3 litros con la jarra de 4 litros.

• Vaciar la jarra de 3 litros en la jarra de 4 litros.

• Vaciar la jarra de 4 litros en la jarra de 3 litros.

2.4. 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)

PROBLEMA DE LAS JARRAS 9


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

PROBLEMA DE LAS JARRAS 10


3. CAPITULO III: SOLUCION PROBLEMA DE LAS JARRAS

3.1. PROBLEMA DE LAS JARRAS DE AGUA (PROFUNDIDAD)

3.1.1. Grafo De Búsqueda En Profundidad

PROBLEMA DE LAS JARRAS 11


3.2.2 Tabla De Busqueda En Profundidad

3.2.3. Propiedades de la búsqueda en profundidad

Complejidad:

r: factor de ramificación.
m: máxima profundidad de la búsqueda.
Complejidad en tiempo: O(rm).
Complejidad en espacio: O(rm).
No es completa.
No es minimal.

PROBLEMA DE LAS JARRAS 12


3.2. PROBLEMA DE LAS JARRAS DE AGUA (ANCHURA)

3.2.1 Grafo de búsqueda en anchura

PROBLEMA DE LAS JARRAS 13


3.2.2. Tabla de búsqueda en anchura

3.2.3. Propiedades de la búsqueda en anchura

Complejidad:

r: factor de ramificación.
p: profundidad de la solución.
Complejidad en tiempo: O(rp).
Complejidad en espacio: O(rp).
Es completa.
Es minimal.

PROBLEMA DE LAS JARRAS 14


4. CAPITULO IV: IMPLEMENTACION

4.1. Código en Prolog

PROBLEMA DE LAS JARRAS 15


PROBLEMA DE LAS JARRAS 16
4.2. ANIMACION DEL PROBLEMA EN JAVA (PASO A PASO)

PROBLEMA DE LAS JARRAS 17


PROBLEMA DE LAS JARRAS 18
CONCLUSIONES:

El problema de las jarras nos ayudó a resolver problemas reales, actuando como

un armamento de ideas acerca de cómo representar y utilizar el conocimiento, y

de cómo ensamblar sistemas

Es explicar varios tipos de inteligencia. Determinar qué ideas acerca de la

representación del conocimiento, del uso que se le da a éste, y del ensamble de

sistemas explican distintas clases de inteligencia

PROBLEMA DE LAS JARRAS 19


ANEXOS

 Soluciones de los problemas


Los siguientes cuadros muestran un resumen de las estadísticas mediante
la técnica de búsqueda por anchura y por profundidad de algunos
problemas.

Estadística de búsqueda en anchura:

Estadística de búsqueda en profundidad:

PROBLEMA DE LAS JARRAS 20


BIBLIOGRAFÍA

http://www.cs.us.es/~jalonso/cursos/ia1-99/temas/tema-03.pdf

http://www.infcr.uclm.es/www/aadan/AIIA_Industriales2005_archivos/Manu

ales/tema1.pdf

-Juan Cruz Jiménez, A (2013), el problema de las jarras de agua con CLIPS-

búsqueda primero en profundidad

http://ccia.ei.uvigo.es/docencia/IA/1213/transparencias/Tema2.pdf

http://blog.vidasconcurrentes.com/programacion/busqueda-en-profundidad-y-

busqueda-en-anchura/

http://www.widget-101.com/codigo/algoritmos-de-busqueda-en-anchura-bfs-

y-busqueda-en-profundidad-dfs/

http://elvex.ugr.es/decsai/algorithms/slides/5%20Grafos.pdf

PROBLEMA DE LAS JARRAS 21

También podría gustarte