Búsqueda A*

3,642 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,642
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
120
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Búsqueda A*

  1. 1. Búsqueda A*(A Star)Algoritmo:1.Crear una lista con el nodo raíz.2.Hasta que la lista esté vacía o sea alcance la meta:Si el primer elemento es la meta, ir al paso 3.Sino, eliminar el primer elemento de la lista y agregar sus hijos sumandog + h(heurística 1).Ordenar los elementos de acuerdo al costo y eliminar los repetidos decosto mayor (heurística 2).3.Expandir todos los nodos con costo menor que el nodo meta.
  2. 2. Búsqueda A*(A Star)• Definiremos una función heurística f como la suma de dos funcionesg y h:• Función g: es una medida del coste para ir desde el estado inicial hasta elnodo actual (suma de los costes o valores heurísticos de todos los nodos).• Función h: es una estimación del coste adicional necesario para alcanzar unnodo objetivo a partir del nodo actual, es decir, es una estimación de lo queme queda por recorrer hasta la meta.• La función combinada f una estimación del coste necesario para alcanzar unestado objetivo por el camino que se ha seguido para generar el nodo actual(si se puede generar por varios caminos el algoritmo se queda con el mejor).NOTA: los nodos buenos deben poseer valores bajos
  3. 3. Búsqueda A*(A Star)• Usaremos dos listas de nodos (ABIERTA Y CERRADA)• Abierta: nodos que se han generado y a los que se les ha aplicado lafunción heurística, pero que aún no han sido examinados (es decir, nose han generado sus sucesores). Es decir, es una cola con prioridaden la que los elementos con mayor prioridad son aquellos que tienenun valor más prometedor de la función heurística.• Cerrada: nodos que ya se han examinado. Es necesaria para ver sicuando se genera un nuevo nodo ya ha sido generado conanterioridad.
  4. 4. Ejemplo• Un sistema puede encontrarse en un conjunto de estados {S0, …., S8}.Su estado inicial es S0 y los estados meta, S7y S8. Considérense lossiguientes operadores y costes asociados a cada operador:OP1: S3→S8(coste 5) OP2: S2→S3(coste 25) OP3: S5→S3(coste 20)OP4: S1→S2(coste 100) OP5: S4→S2(coste 80) OP6: S6→S7(coste 100)OP7: S0→S1(coste 10) OP8: S0→S4(coste 10) OP9: S0→S5(coste 20)OP10: S0→S6(coste 20)• Considérense también los siguientes valores de la función heurísticah, que estima el menor coste desde cada nodo a un nodo meta:h(S0) = 40 h(S3) = 10 h(S6) = 110h(S1) = 20 h(S4) = 40 h(S7) = 0h(S2) = 20 h(S5) = 100 h(S8) = 0
  5. 5. • Se tiene a S0 como nodoinicial y a S1, S4, S5 y S6como los nodosdirectamente conectadosa el.
  6. 6. • Se agregan al recorridolos nodos directamenteconectados a S0 juntocon sus costes (funcióng(s) y con los valores dela función heurística h(s).• Se obtienen los valorespara la función f(s)sumando los valores deg(s) y h(s) que en estecaso serian: f(s1) =30, f(s4) = 50, f(s5) = 120y f(s6) = 130.
  7. 7. • El recorrido se continuapor el nodo cuya funciónf(s) haya sido la menor.En este caso es el nodoS1 con función f(s) = 30.• Se agregan los nodosdirectamente conectadosa S1.• El nodo agregado fue S2.Se evalúa la función f(s)que da como resultadof(S2) = 120.
  8. 8. • Es necesario evaluar siexiste una mejor forma dehacer el recorrido hasta elnodo S2. para esto esnecesario saber si existenotros nodos conectadoscon S2, en este casoexiste uno el cual es S4.• Se evalúa la función f(s)para el recorrido desdeS4 hasta S2 calculando lasuma de g(s) + h(s). Elresultado de la operaciónes 80 + 20 = f(S2) = 100.
  9. 9. • Se comprueba que elrecorrido entre S4 y S2es mejor y se descarta elrecorrido de S1 a S2.• Se agregan los nodosdirectamente conectadosa S2. Para este caso setiene que S3 estadirectamente conectado.• Se evalúa la función f(S3)que resulta tener un valorde 35.
  10. 10. • Como en el caso anteriores necesario evaluar siexisten rutas alternaspara llegar a S3. Existeuna ruta que va desde S5hasta S3.• Se calcula el valor paraf(s) en el recorrido de S5a S3. el resultado es f(S3)= 30.
  11. 11. • Al existir una mejor rutapara llegar a S3 sedescarta la que fueanteriormente encontraday se sigue la nueva ruta.• Se agregan los nodosconectados a S3 y seencuentra el nodo S8 elcual es una meta convalor h(S8) = 8 y cuyorecorrido desde S3 dacomo resultado 5 para lafunción f(s).• El algoritmo terminacuando se encuentra unameta. El coste total delrecorrido es de 20 + 20 +5 = 45.
  12. 12. • El algoritmo terminacuando se encuentra unameta. El coste total delrecorrido es de 20 + 20 +5 = 45.

×