métodos óptimos de búsqueda

16
Métodos óptimos de búsqueda El costo de RECORRIDO del camino debe ser minimizado (aún a expensas de mec. de BÚSQUEDA más complicados): Costo Uniforme Branch and Bound Introducción de Subestimaciones Borrado de caminos A* Reintroducción de costos de arcos en la RED

Upload: api-3696448

Post on 07-Jun-2015

2.005 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Métodos óptimos de búsqueda

Métodos óptimos de búsqueda

El costo de RECORRIDO del camino debe ser minimizado (aún a expensas de mec. de BÚSQUEDA más complicados):

Costo Uniforme Branch and Bound Introducción de Subestimaciones Borrado de caminos A*

Reintroducción de costos de arcos en la RED

Page 2: Métodos óptimos de búsqueda

Algoritmo de costo uniforme = primero el mejor uniforme

Uniform-cost search (Búsqueda a costo uniforme) 

Es un algoritmo de búsqueda utilizado para recorrer o buscar en un árbol pesado o grafo. La búsqueda comienza en el nodo raíz (en el caso de árbol, en el caso de un grafo empieza por algún nodo inicial designado como comienzo). La búsqueda continúa visitando el nodo siguiente que tiene el costo total mínimo desde el nodo raíz. Este método es similar al breadth-first search.

El algoritmo expande los nodos agregando los nodos vecinos que están conectados por caminos dirigidos a una cola de prioridades. En la cola, cada nodo es asociado con el costo total del camino desde la raíz hacia el. Se le da mayor prioridad a los caminos con el menor costo. El nodo a la cabeza de la cola es expandido agregándolos al final de la cola de prioridades con sus correspondientes costos totales de camino. A diferencia de A* este algoritmo no utiliza función heurística. Solo tiene en cuenta el peso del arco actual. Además no posee información acerca de su dominio de búsqueda.

En cada paso, seleccionar el nodo con el costo acumulado más bajo.

Page 3: Métodos óptimos de búsqueda

Problema: NO siempre óptimo!

Costo uniforme devuelve el camino con costo 102, habiendo un camino con costo 25.

El principio Branch-and-Bound

Page 4: Métodos óptimos de búsqueda

Una integración débil de branch and bound en costo uniforme:

Versión de costo uniforme óptimo:

1. COLA <-- camino que sólo contiene la raiz;

2. WHILE COLA no vacía

AND el primer camino no ha alcanzado

el objetivo

remover el primer camino de la COLA;

crear nuevos caminos (a todos los hijos);

rechazar los nuevos caminos con ciclos;

agregar los nuevos caminos y ordenar la COLA;

3. IF objetivo alcanzado

THEN éxito;

ELSE falla;

Page 5: Métodos óptimos de búsqueda

Ejemplo:

Page 6: Métodos óptimos de búsqueda

Propiedades de costo uniforme extendido :

Camino óptimo:

If existe un número d > 0, tal que todo arco tiene costo ³ d, y si el factor de ramificación es finito,

Then costo uniforme extendido encuentra el camino óptimo (si existe).

Memoria y velocidad: En el peor caso, al menos tan malo como en primero en amplitud: ¡necesita pasos de ordenamiento adicional luego de la expansión de cada camino!

¿Cómo mejorarlo?

Extensión con estimaciones heurísticas:

Reemplazar el ‘costo acumulado’ en el algoritmo ‘costo uniforme extendido’ por una

función: f(camino) = costo(camino) + h(T)

where:

Page 7: Métodos óptimos de búsqueda

costo(camino) = el costo acumulado del camino parcial.

h(T) = una estimación heurística del costo desde T al objetivo + f(camino) = una estimación del costo de un camino que ex-tienda el camino actual para alcanzar el objetivo.

Ejemplo: Reconsiderar la distancia en linea recta:

h(T) = la distancia en linea recta desde T hasta G

Algoritmo de Estimación de costo uniforme extendido:

Page 8: Métodos óptimos de búsqueda

1. COLA <-- camino que sólo contiene la raiz;

2. WHILE COLA no vacía

AND el primer camino no alcanza el objet.

remover el primer camino de la COLA;

crear nuevos caminos (a todos los hijos);

rechazar los nuevos caminos con ciclos;

agregar los nuevos caminos y ordenar la COLA;

(por f = costo + h)

3. IF objetivo alcanzado

THEN éxito;

ELSE falla;

Óptimo

Con la misma condición en los costos de arcos y el factor de ramificación:

IF para todo T: h(T) es una SUBestimación del costo restante al nodo objetivo THEN estimate-extended uniform cost es óptimo.

Intuición:

Velocidad y memoria

En el peor caso: no hay mejora respecto de ‘branch and bounded extended uniform cost’

Tomando h = 0 en todas partes.

Page 9: Métodos óptimos de búsqueda

Para buenas funciones heurísticas: la búsqueda puede expandir mucho menos nodos!

Ver nuestro ejemplo.

PERO: el costo de computar estas funciones puede ser alto

Solución de compromiso

Una extensión ortogonal :borrado de camino

Descartar caminos redundantes: en el ‘branch and bound extended uniform cost’ :

Principio: la mínima distancia desde S a G via I = (min. dist. desde S a I) +

(min. dist. desde I a G)

Más precisamente:

IF la COLA contiene: un camino P que termina en I, con costo costo_P

un camino Q conteniendo I, con costo costo_Q

costo_P ³ costo_Q

THEN

borrar P

Page 10: Métodos óptimos de búsqueda

Notar como esta optimización reduce el número de expansiones MUCHO, comparada con ‘branch and bound extended uniform cost’.¡ 5 expansiones menos !

Búsqueda A*

ES: Branch and bound extended,

Heuristic Underestimate extended,

Redundant path deletion extended,

Uniform Cost Search.

Page 11: Métodos óptimos de búsqueda

Notar que el borrado de caminos redundantes se basa sólo en los costos acumulados, de tal manera que no hay problemas en combinarlo con subestima-ciones heurísticas.

algoritmo A* :

1. COLA <-- camino que sólo contiene la raiz;

2. WHILE COLA no vacía

AND el primer camino no alcanza el objet.

remover el primer camino de la COLA;

crear nuevos caminos (a todos los hijos);

rechazar los nuevos caminos con ciclos;

agregar los nuevos caminos y ordenar la COLA;

IF COLA contiene un camino P terminando en I, con costo costo_P, y camino Q conteniendo I, con costo costo_Q AND costo_P ³ costo_Q

THEN borrar P

3. IF objetivo alcanzado THEN éxito;

ELSE falla;

Page 12: Métodos óptimos de búsqueda