Sunteți pe pagina 1din 13

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


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.


Problema: NO siempre óptimo!

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

El principio Branch-and-Bound
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;

Ejemplo:
Propiedades de costo uniforme extendido :

• Camino óptimo:

 If existe un número δ > 0, tal que todo arco tiene costo ≥ δ, 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:

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:

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

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;

S-ar putea să vă placă și