La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Branch-and-bound Search

Presentaciones similares


Presentación del tema: "Branch-and-bound Search"— Transcripción de la presentación:

1 Branch-and-bound Search
Una forma de encontrar una ruta óptima con menos esfuerzo, es utilizar la búsqueda Branch-and-Bound. La idea básica es simple: a cada paso elige siempre la ruta que menos distancia haya recorrido.

2 Branch-and-bound Search
Algoritmo Ruta  Raiz Pon_en_cola (Ruta , 0) Éxito  fracaso  falso Mientras not (existo or fracaso) has Si toma_de_cola (Ruta,Costo) entonces fracaso verdadero Sino si gol in Ruta entonces éxito verdadero Sino: +Remueve [Ruta, costo] de la cola +Expande ultimo (ruta) y genera una nueva ruta con cada uno de sus hijos. +Coloca las nuevas rutas a la cola +Ordena la cola por costo acumulado poniendo las rutas con menos costo al frente. Fin Fin-ciclo Fin Brach-and-Bound Nota: Es mejor terminar cuando la ruta incompleta mas corta es mayor que la ruta completa mas corta.

3 Algoritmo A* Un procedimiento muy interesante para obtener la ruta de menor costo entre el nodo s y el nodo objetivo t, consiste en analizar la función de evaluación que nos permite obtener una idea aproximada acerca del siguiente nodo que tomamos para expander.

4 Algoritmo A* Esta función se ha llegado a definir de la siguiente manera: F(n)= g(n) + h(n) En la cual: g(n): es el costo de la ruta con costo mínimo que va del nodo S al nodo n. h(n): es una función leuristica que estima la distancia mínima entre el nodo n y algún nodo objetivo. Así: f(n): estima el costo de una ruta óptima de S al objetivo, restringida a pasar a través del nodo n. Nota : La función g(n) en el caso más simple se puede suponer igual a la profundidad del nodo n en elárbol de búsqueda.

5 Algoritmo A* Algoritmo del A*
Forma una cola de rutas parciales e inserta la ruta inicial: Longitud 0, profundidad 0, a partir del nodo inicial. Fracaso éxito falso Mientras not (fracaso or éxito) haz Si toma_ruta_de_cola(Ruta) entonces Fracaso verdadero Si no: si ruta contiene gol entonces Éxito verdadero Si no: +Remueve Ruta de la cola +Forma nuevas rutas extendiendo ruta en un paso para cada uno de sus hijos. +Aplica la función F a cada ruta nueva y agregala a la cola. + ordena la cola colocando las rutas de menor costo al frente. + Si dos o más rutas terminan en el mismo nodo, selecciona la de menor costo y elimina de la cola las demas. fin fin_ciclo Fin Algoritmo A*

6 Algoritmo A* El Algoritmo A* aquí presentado, tiene algunas propiedades muy importantes: Terminación: El Algoritmo A* siempre termina en gráficas finitas. Completitud: Se dice que el algoritmo A* es completo, es decir que si alguna ruta existe entre el nodo s y el nodo gol, el algoritmo A* siempre la encontrará. Esta propiedad se aplica tanto a gráficas finitas como a gráficas infinitas. (El algoritmo del depth-first no es completo para gráficas infinitas). Admisibilidad: Se dice que el algoritmo A* es admisible, es decir que si existe alguna ruta entre el nodo S y el nodo gol, el algoritmo A* siempre terminara con la ruta óptima.


Descargar ppt "Branch-and-bound Search"

Presentaciones similares


Anuncios Google