La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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.

Presentaciones similares


Presentación del tema: "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."— Transcripción de la presentación:

1 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. Branch-and-bound Search

2 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. Branch-and-bound Search

3 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. Algoritmo A*

4 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. Algoritmo A*

5 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* Algoritmo A*

6 El Algoritmo A* aquí presentado, tiene algunas propiedades muy importantes: 1. Terminación: El Algoritmo A* siempre termina en gráficas finitas. 2. 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). 3. 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. Algoritmo A*


Descargar ppt "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."

Presentaciones similares


Anuncios Google