32
Semana 4: Métodos de Búsqueda No informados Prof. Oscar Benito Pacheco.

Semana 4: Métodos de Búsqueda No informados · Semana 4: Métodos de ... Ejercicio 1 Determine el orden en que un agente basado en metas ... Si la implementación es recursiva el

Embed Size (px)

Citation preview

Semana 4: Métodos de Búsqueda No informados

Prof. Oscar Benito Pacheco.

Estrategias de Búsqueda Búsqueda No Informada

(Ciega)

1. Búsqueda preferente por

amplitud

2. Búsqueda de costo

uniforme

3. Búsqueda preferente por

profundidad

4. Búsqueda limitada por

profundidad

5. Búsqueda por

profundización iterativa

6. Búsqueda bidireccional

Búsqueda Informada

(Heurística)

1. Búsqueda avara

2. Búsqueda A*

3. Búsqueda A*PI

4. Búsqueda A*SRM

Búsqueda en el Espacio de

Estados La resolución de un problema con esta

representación pasa por explorar el espacio de estados

Partimos del estado inicial evaluando cada paso hasta encontrar un estado final

En el caso peor exploraremos todos los posibles caminos entre el estado inicial del problema hasta llegar al estado final

Definiremos una representación del espacio de estados para poder implementar algoritmos que busquen soluciones.

Estructura del espacio de

estados

Estructuras de datos: Árboles y Grafos

Estados = Nodos

Operadores = Arcos entre nodos (dirigidos)

Árboles: Solo un camino lleva a un nodo

Grafos: Varios caminos pueden llevar a un

nodo

Algoritmo Básico

Basado en búsqueda y recorrido en árboles y grafos.

La estructura la construimos a medida que hacemos la búsqueda.

Algoritmo para una solución:

– Seleccionar el primer estado como el estado actual

– mientras el estado actual no es el estado final hacer

Generar y guardar sucesores del estado actual (expansión)

Escoger el siguiente estado entre los pendientes (selección)

– fin-mientras

La selección del siguiente nodo determinará el tipo de búsqueda (orden de selección o expansión).

Es necesario definir un orden entre los sucesores de un nodo (orden de generación).

Evaluación de las Estrategias

Las estrategias se evalúan de acuerdo a su:

Completitud. ¿La estrategia garantiza encontrar una solución, si ésta existe?

Complejidad temporal. ¿Cuánto tiempo se necesitará para encontrar una solución?

Complejidad espacial. ¿Cuánta memoria se necesita para efectuar la búsqueda?

Optimización. ¿Con esta estrategia se encontrará una solución de la más alta calidad, si hay varias soluciones?

Las complejidades temporal y espacial se miden en términos de:

b máximo factor de ramificación del árbol de búsqueda (branching factor)

d profundidad de la solución de menor coste

m profundidad máxima del espacio de estados (puede ser ∞)

Conceptos - Eficiencia de una búsqueda

Coste de un arco : Indica el tiempo requerido para aplicar

un operador a un estado en el proceso de búsqueda.

Costo de un nodo: medida del tiempo consumido en

alcanzar un nodo a lo largo del mejor camino encontrado

hasta un momento dado.

Factor de ramificación: número medio de descendientes

de un nodo ó número medio de operadores que pueden

aplicarse a un estado.

Longitud de una trayectoria: número de nodos

generados en un camino, ed, número de operadores

aplicados en dicho número,

Profundidad : Longitud del camino más corto desde el

estado inicial a un un nodo determinado.

Estrategias de búsqueda no

informada

No existe información sobre la cantidad de estados intermedios o el costo de ruta para pasar del estado actual a la meta. Es decir, realiza una búsqueda exhaustiva.

Sólo se sabe distinguir si estamos en el estado meta o no.

A esta búsqueda se le conoce también como búsqueda ciega ó fuerza bruta.

BUSQUEDA POR AMPLITUD

(BFS)

S

F M

O L

Q P

F F N

F

Búsqueda preferente por amplitud En este caso, primero se expande el nodo raíz y

luego todos los nodos generados por éste, luego sus

sucesores y así sucesivamente.

Todos los nodos que están a profundidad d se

expanden antes que los nodos con profundidad d+1.

0

0

LV

LE

0

3 2 1 1 2 3

0

LE

LV

0

c b a 3 2 1 2 3

a b c

0 1 LV

LE

0

1 2 3

a b c d e f

f e d c b a 3

0 1 2

LE

LV

0

i h g f e d c b a 1 2 3

a b c d e f g h i

0 1 2 3 LV

LE

γ β α i h g f e d c b

0

1 2 3

a b c d e f g h i

α β γ

0 1 2 3 a

LE

LV

0 1 2 b a 3

γ β α i h g f e d c ζ ε δ

0

1 2 3

a b c d e f g h i

α β γ δ ε ζ

LV

LE

Búsqueda preferente por amplitud

1. Crear una lista de nodos e inicializarla con el nodo raíz

(estado inicial). Esta lista se maneja como una cola FIFO.

2. Lazo:

– Si la lista está vacía. Terminar.

– Quitar el primer nodo de la lista.

– Si la lista contiene el nodo meta, salir.

La solución es el primer nodo de la lista

– Expandir el nodo actual y añadir todos sus hijos como nuevos

nodos al final de la cola.

H

A B C

D E F G J

K L

Estado de la cola Iteracción

H

A B C Extraer H+Hijos de H

B C D E Extraer A+Hijos de A

C D E F Extraer B+Hijos de B

D E F G J Extraer C+Hijos de C

E F G J K L Extraer D+Hijos de D

F G J K L Extraer E

G J K L Extraer F

Nodo Inicial : H nodo raíz

Nodos Objetivos : Nodos L y G

Nodos recorridos :

HABCDEFGJKL

Búsqueda preferente por amplitud Si hay solución, es seguro que se encontrará

mediante la búsqueda preferente por amplitud.

Si son varias soluciones, siempre encontrará primero el estado de meta más próximo (menos profundidad, más a la izquierda).

La búsqueda preferente por amplitud es completa y óptima siempre y cuando el costo de ruta sea una función que no disminuya al aumentar la profundidad del nodo.

Completitud, Complejidad Temporal, Complejidad Espacial,

Optimización.

Complejidad Temporal

Si b es el factor de ramificación de los

estados, y la solución está a una

profundidad d, entonces la cantidad

máxima de nodos expandidos antes de

encontrar la solución es:

1+ b + b2 + b3 + ... + bd + (bd+1 – b)

La complejidad de este algoritmo es

O(bd+1).

Resumen (BFS)

Los nodos se visitan y generan por niveles

La estructura para los nodos abiertos es una cola (FIFO)

Un nodo es visitado cuando todos los nodos de los niveles

superiores y sus hermanos precedentes han sido visitados

Características:

– Completitud: El algoritmo siempre encuentra una solución

– Complejidad temporal: Exponencial respecto al factor de

ramificación y la profundidad de la solución O(bd+1).

– Complejidad espacial: Exponencial respecto al factor de

ramificación y la profundidad de la solución O(bd+1).

– Optimización: La solución que se encuentra es óptima en

número de niveles desde la raíz

Ejercicio 1

Determine el orden en que un

agente basado en metas

busca el objetivo F

A

ED

CB

GF

I JH

K

A

ED

CB

GF

I JH

K

Búsqueda preferente por

profundidad (DFS)

S

F M

O L

Q P

F F N

F

Búsqueda preferente por profundidad

En esta búsqueda siempre se expande uno de los nodos que se encuentre en lo más profundo del árbol.

Sólo si la búsqueda conduce a un callejón sin salida (un nodo que no es meta y que no tiene expansión), se revierte la búsqueda y se expanden los nodos de niveles menos profundos.

Lo anterior se logra mediante el algoritmo de Búsqueda-General, con una función de lista de espera que ponga los estados recién generados al principio de la lista.

Búsqueda preferente por

profundidad NOTA: Se supone que el factor de ramificación es b = 2 y que los nodos de nivel m = 3 no tienen sucesores.

Búsqueda preferente por

profundidad

1. Crear una lista de nodos e inicializarla con el nodo raíz

(estado inicial). Esta lista se maneja como una pila LIFO.

2. Lazo:

Si la lista está vacía. Salir .

Extraer el primer nodo de la lista

Si la lista contiene el nodo meta, salir.

La solución es el primer nodo de la lista

Para cada hijo del nodo actual, expandirlo y añadir todos

sus hijos como nuevos nodos al principio de la cola.

H

A B C

D E F G J

K L

Nodo Inicial : H nodo raíz

Nodos Objetivos : Nodos L y G

Nodos recorridos :

HADKLEBFCGJ

Estado de la cola Iteracción

H

A B C Extraer H+Hijos de H

D E B C Extraer A+Hijos de A

K L E B C Extraer D+Hijos de D

L E B C Extraer K

E B C Extraer L

B C Extraer E

F C Extraer B+Hijos de B

C Extraer F

G J Extraer C+Hijos de C

Búsqueda preferente por profundidad

Sólo es necesario guardar la ruta que va del nodo raíz al nodo hoja, junto con los nodos restantes no expandidos, por cada nodo de la ruta.

Si un espacio de estados tiene factor de ramificación b y profundidad máxima m, se requieren almacenar bm nodos.

La complejidad temporal es de O(bm).

Búsqueda preferente por profundidad

Si la cantidad de soluciones en un problema es grande, se recomienda esta búsqueda (BFS) sobre la búsqueda preferente por amplitud (DFS).

La desventaja de esta búsqueda es que se puede quedar estancada al avanzar por una ruta equivocada, ya que muchos árboles de búsqueda pueden ser muy profundos o infinitos. Por lo tanto, la BPPP no es ni la mas completa ni la más óptima.

Resumen (DFS) Los nodos se visitan y generan buscando los nodos a mayor

profundidad y retrocediendo cuando no se encuentran nodos sucesores

La estructura para los nodos abiertos es una pila (LIFO)

Para garantizar que el algoritmo acaba debe imponerse un límite en la profundidad de exploración

Características

– Completidud: El algoritmo encuentra una solución si se impone un límite de profundidad y existe una solución dentro de ese límite

– Complejidad temporal: Exponencial respecto al factor de ramificación y la profundidad del límite de exploración O(bm).

– Complejidad espacial: Si no se controlan los nodos repetidos el coste es lineal respecto al factor de ramificación y el límite de profundidad O(bm). Si tratamos repetidos el coste es igual que en anchura. Si la implementación es recursiva el coste es O(m).

– Optimización: No se garantiza que la solución sea óptima

Ejercicio 2

Diga para el siguiente árbol el

orden en que se visitan los

nodos cuyo nodo objetivo es :

M

A

B C D

G IH J K L

O

E F

M N

A

B C D

G IH J K L

O

E F

M N