Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Algoritmos de Búsqueda No Informada

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 18

Inteligencia Computacional Solución de Problemas en IA

ALGORITMOS DE BÚSQUEDA NO
INFORMADA

❖Búsqueda en anchura
❖Búsqueda en profundidad
Inteligencia Computacional Solución de Problemas en IA

BÚSQUEDA EN ANCHURA

❖ Forma ordenada de recorrer los posibles caminos


desde el estado inicial
❖ Utiliza una lista Abierta, representada por la
estructura de datos cola, que representa el conjunto
de nodos generados en el árbol de búsqueda, pero
que no se les ha generado sus sucesores.
❖ La estructura de datos cola se distingue porque los
primeros nodos generados son los primeros en salir
(FIFO, first-in-first-out)
Inteligencia Computacional Solución de Problemas en IA

Ventajas de la búsqueda en anchura

❖ Si existe una solución y el espacio es finito, la


encontrará
❖ Si todos los arcos tienen igual coste, amplitud
encuentra la solución óptima, si la hubiera.
❖ Es útil cuando las metas del problema son escasas y
están cerca del estado inicial. En este caso, como
anchura busca en la vecindad del estado inicial, la
encontraría pronto.
Inteligencia Computacional Solución de Problemas en IA

Desventajas de la búsqueda en anchura

❖ Ocupa mucha memoria, ya que en cada caso


almacena todos los sucesores de los nodos en cada
nivel, con lo que si está en el nivel de profundidad p, y
el factor de ramificación en fr, se tendría almacenados
frp nodos
Inteligencia Computacional Solución de Problemas en IA

Funcionamiento de la Búsqueda en anchura

Recorre todos los nodos accesibles directamente desde


el estado inicial, atravesando solo un arco, que
constituyen los sucesores del primer nivel. Si ninguno de
ellos es la solución, se estudian, por orden, los nodos
accesibles desde los nodos sucesores del primer nivel,
siendo estos los nodos que configuran el segundo nivel.
Así se irá creando el árbol de búsqueda por niveles. No se
estudiará un nodo de un determinado nivel hasta que no
se estudien los nodos de niveles anteriores.
Inteligencia Computacional Solución de Problemas en IA

Algoritmo de la Búsqueda en anchura


PROCEDIMIENTO ANCHURA (estado_inicial SI Exito ENTONCES
estado_final) Solucion = caminos desde I a N por los
Crear lista Abierta con el nodo inicial; punteros;
Exito=falso; SI NO
MIENTRAS QUE (REPETIR HASTA QUE LA LISTA Solucion=fracaso;
NO SEA VACÍA O NO SE ENCUENTRE LA FIN
SOLUCIÓN)
Quitar de Abierta primer nodo;
N=primer nodo;
SI N tiene sucesores ENTONCES
Generar sucesores de N;
Crear punteros desde los sucesores hacia N;
Añadir los sucesores al final de abierta;
SI primer nodo de Abierta = Estado_Final
ENTONCES Exito=Verdadero;
FIN MIENTRAS
Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle (mediante búsqueda en


anchura Estado Inicial
❖Espacio de estados: Todas las
1 2 3
combinaciones posibles de números en
casilla 5 6
❖Operadores: op1 = mover abajo, op2 = 4 7 8
mover arriba, op3 = mover derecha, op4 =
Estado Final
mover izquierda
❖Condiciones: El movimiento está dentro 1 2 3
del tablero 4 5 6
❖Transformación: Intercambio entre el 7 8
espacio en blanco (S) y la ficha en la
posición del movimiento
❖Solución: Que pasos + El menor número
Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle, árbol en anchura


Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle, solución mediante búsqueda


en anchura
1 2 3
1 5 6 Estado Inicial
4 7 8

1 2 3
2 4 5 6
7 8

1 2 3
6 4 5 6
7 8

1 2 3
14 4 5 6 Estado Final
7 8
Inteligencia Computacional Solución de Problemas en IA

Actividad

❖ Aplicar el algoritmo de búsqueda en anchura para


solucionar los problemas de:
▪ Las vasijas
▪ El granjero
▪ Misioneros y caníbales
▪ Torres de Hanoi
Inteligencia Computacional Solución de Problemas en IA

BÚSQUEDA EN PROFUNDIDAD

❖ El algoritmo de búsqueda en profundidad elige el


primer camino siempre, en lugar de expandir todos los
sucesores en cada nivel.
❖ Utiliza una lista Abierta, representada por la
estructura de datos pila, donde los últimos nodos
generados serán los primeros en ser estudiados (LIFO-
Last-in-First-Out)
Inteligencia Computacional Solución de Problemas en IA

Ventajas de la búsqueda en profundidad

❖ Utiliza poca memoria, dado que almacena unicamente


los nodos del camino desde el nodo raíz hasta el
último generado (fr*p).
❖ Es útil cuando las metas del problema son numerosas
y están lejos del estado inicial. En Profundidad va
directo hacia la zona donde están las metas.
Inteligencia Computacional Solución de Problemas en IA

Funcionamiento de la Búsqueda en
Profundidad
El algoritmo en profundidad explora el primer sucesor de
cada nodo, realizando una búsqueda primero por la rama
izquierda del árbol. Como podría generar indefinidamente
nodos por la rama izquierda, se suele colocar un límite de
profundidad del cual no se sigue estudiando. Cuando la
búsqueda llega a un nodo con la profundidad máxima
prefijada y no se ha llegado a la solución, se da marcha
atrás, volviendo al nodo padre e intentando la búsqueda
por otro camino (técnica de retroceso).
Inteligencia Computacional Solución de Problemas en IA

Algoritmo de la Búsqueda en Profundidad


PROCEDIMIENTO PROFUNDIDAD SI algun sucesor = Estado_Final
(estado_inicial estado_final) ENTONCES Exito=Verdadero;
Crear lista Abierta con el nodo inicial; FIN MIENTRAS
Profundidad=0; Exito=falso;
MIENTRAS QUE (REPETIR HASTA QUE LA LISTA SI Exito ENTONCES
NO SEA VACÍA O NO SE ENCUENTRE LA Solucion = caminos desde I a N por los
SOLUCIÓN) punteros;
Quitar de Abierta primer nodo; SI NO
N=primer nodo; Solucion=fracaso;
SI Profundidad<Profundiad-maxima Y N tiene FIN
sucesores ENTONCES
Generar sucesores de N;
Crear punteros desde los sucesores hacia N;
Añadir los sucesores al principio de abierta;
profundidad=profundidad+1;
Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle (mediante búsqueda en


profundidad)
Estado Inicial
❖Espacio de estados: Todas las
1 2 3
combinaciones posibles de números en
casilla 5 6
❖Operadores: op1 = mover abajo, op2 = 4 7 8
mover arriba, op3 = mover derecha, op4 =
Estado Final
mover izquierda
❖Condiciones: El movimiento está dentro 1 2 3
del tablero 4 5 6
❖Transformación: Intercambio entre el 7 8
espacio en blanco (S) y la ficha en la
posición del movimiento
❖Solución: Que pasos + El menor número
FUJDC /ING. SISTEMAS MSc. John A. Bohada II/2011 15
Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle, árbol en profundidad


Inteligencia Computacional Solución de Problemas en IA

Ejemplo: 8 puzzle, solución mediante búsqueda


en profundidad
1 2 3
1 5 6 Estado Inicial
4 7 8

1 2 3
2 4 5 6
7 8

1 2 3
6 4 5 6
7 8

1 2 3
8 4 5 6 Estado Final
7 8
Inteligencia Computacional Solución de Problemas en IA

Actividad

❖ Aplicar el algoritmo de búsqueda en profundidad para


solucionar los problemas de:
▪ Las vasijas
▪ El granjero
▪ Los misioneros y los caníbales
▪ Las torres de Hanoi

También podría gustarte