Está en la página 1de 24

Universidad Nacional de

Trujillo
E.A.P. Ing.De Sistemas

METODO DE BUSQUEDA A*

Inteligencia Artificial

Ing. Julio Luis Tenorio Cabrera

 Hernández Gomez,Joyse.
 Pretel Ruiz Katherine.
 Uriol Cerquin Jazmín.
 Villalobos Estela Karen.
BUSQUEDA A*
BUSQUEDA A*
Definición:

El algoritmo A estrella es un algoritmo de búsqueda para


grafos que encuentra el camino de menor coste entre un nodo
inicial y un nodo meta.

Representación:

f (n) = g (n) + h (n)


.
Ejemplo:

Una familia cuando se dirige de vacaciones, y uno pregunta al padre que esta
al volante, "¿Cuánto más falta para llegar?", a lo cual el Papa dirá supongo
"Otras 300 millas”, si la familia ya había conducido 100 millas en ese punto,
que representan g (n), el total de distancia recorrida hasta el momento. La
estimación de 300 millas se h '(n), el adivinar en cuánto más sería. Por lo
tanto, el f '(n) sería de 100 + 300 = 400 millas.
Como Funciona A*:
Vamos a tomar como ejemplo la siguiente imagen.

El nodo inicial es el nodo (2,4) o el que esta de


color azul, el nodo final es el nodo (3,2) o nodo
rojo, los nodos de color verde son nodos
sólidos y no pueden ser traspasados.
1. Si el nodo inicial es igual al nodo final, se retorna el nodo inicial como solución.
2. Si no, se adiciona el nodo inicial a la lista abierta.
3. Mientras la lista abierta no esté vacía, se recorre cada nodo que haya en la lista abierta y se toma el que
tenga el costo total más bajo.
4. Si el nodo obtenido es igual al nodo final, se retornan todos los nodos sucesores al nodo encontrado.
5. Si no , se toma el nodo y se elimina de la lista abierta para guardarse en la lista cerrada y se buscan todos
los nodos adyacentes al nodo obtenido y se adicionan a la lista abierta a menos que el nodo se encuentre
en la lista cerrada o que el nodo sea sólido.
6. Si el nodo adyacente ya se encuentra en la lista abierta se verifica que el costo sea menor, si es menor se
cambian los valores de costo, sino se ignora.
7. Se vuelve al paso 3 y se repite hasta que el punto 4 sea verdadero o que la lista abierta quede vacía.
La heurística que se ha usado es la distancia de Manhattan:
H = Math.Abs(nodoActual.X – nodoFinal.X) + Math.Abs(nodoActual.Y – nodoFinal.Y). Como ejemplo
tomamos el cuadrado B (1,4) hasta el nodo final (3,2)
H = (1 – 3) + (4 – 2)
H= 2+2
H=4

Como el costo no es menor que el que tienen en la lista abierta, se descartan y se vuelve a tomar el menor
valor de la lista abierta, lo que da un empate entre B y E, pero si tomamos el nodo E, volveríamos a
descartar los demás nodos, volviendo a tomar el valor B porque el E es enviado a la lista cerrada.
Si se sigue con el algoritmo va a dar lo siguiente:
Características:

Realiza la búsqueda informada teniendo en cuenta dos factores


fundamentales, el valor heurístico de los nodos y el coste real del
recorrido.

Se utiliza en la búsqueda de un camino más corto.

El Algoritmo no desarrolla un camino por interacción, sino que


desarrolla varios caminos y elige los más prometedores.
Optimalidad de A*

Teorema:
Sea h*(n) el costo real desde n hasta la meta. Si h(n) < h*(n)
para todo nodo n, entonces A* siempre va a encontrar un nodo
meta óptimo.

Conducta de la búsqueda A*

 A lo largo de cualquier ruta a partir del inicio, el costo de f nunca


decae - esto es casi la regla general de las heurísticas admisibles
 Una heurística que cumple con esa regla se dice que exhibe
MONOTONICIDAD
Completitud de A*

o A* expande nodos en el orden de un creciente f, con lo cual


eventualmente expandirá hasta llegar al estado meta
o Salvo que haya una cantidad infinita de nodos con f(n)< f*

Ejemplo 1:
 A* usa una heurística
admisible
Ejemplo 2:
Problema del laberinto

En el siguiente laberinto, se puede pasar desde una casilla a otra de las posibles
adyacentes (arriba, abajo, izquierda, derecha), salvo si existe una barrera entre
ellas.
Solución encontrada: I-W-K-M-F

 Optima (heurıstica admisible)


 Nodos analizados: 8
 Aunque en este caso se analizan m´as nodos (se ha explorado parcialmente un camino
equivocado), la solucion ´optima esta asegurada
 Notese que se generan dos nodos distintos con el mismo estado K (pero distinto
camino)
Ejemplo 4:
Un vendedor desea ir de Piura a Ayacucho vendiendo sus frazadas por las ciudades
señaladas como nodos del recorrido. Realice el recorrido de la búsqueda que maximice
sus utilidades. Usted asigne los datos y las heurísticas necesarias para solucionar el
problema
Sabemos que: Utilidades = Ventas – Costos

Para maximizar las utilidades se debe maximizar las ventas y minimizar los costos.

Con respecto a los costos se tienen las siguientes consideraciones: En un día el


vendedor gasta en alimentación y estadía:

 Desayuno: S/. 5.00


 Almuerzo: S/. 5.00
 Cena: S/. 5.00
 Extra: S/. 5.00
 Estadía: S/. 20.00
 El vendedor se queda un día en cada Departamento visitado. Por lo tanto, el
gasto diario por alimentación y estadía es S/. 40.
GRAFO DE PRECIOS (COSTOS ENTRE CIUDADES
Previamente se realizó un análisis para obtener esos valores:
Se llamó al teléfono 3115050 de la Empresa Cruz del Sur y solamente tenían
información sobre el pasaje de Lima a Huaraz cuyo monto es S/. 85.00 en el
primer piso del bus.
A continuación calcularemos los demás montos mediante regla de tres simple
considerando:
Distancia entre Lima a Huaraz = 287 Km.
Costo de pasaje Lima a Huaraz = S/. 85.00
Costo por kilómetro en Cruz del Sur = 296 soles/km.

RUTA DE CAMINOS PIURA-AYACUCHO


CIUDADES DISTANCIA
PIURA-ANCASH 589
PIURA-UCAYALI 760
ANCASH-UCAYALI 351
ANCASH-LIMA 287
ANCASH- JUNIN 243
UCAYALI-MADRE DE DIOS 748
JUNIN-MADRE DE DIOS 758
JUNIN-AYACUCHO 294
LIMA-AYACUCHO 326
MADRE DE DIOS-AYACUCHO 542
UCAYALI-AYACUCHO 533

CIUDAD ORIGEN PIURA


CIUDAD DESTINO AYACUCHO
DISTANCIA LINEA RECTA

CIUDAD DISTANCIA (KM)


El precio de costo de una frazada en Piura es S/. 125.00
PIURA 1123
(Fuente: Mercado Libre).
ANCASH 538
UCAYALI 528
LIMA 326
JUNIN 294
MADRE DE DIOS 542
AYACUCHO 0

Con respecto a las ventas se tienen las siguientes consideraciones:

Precio de venta: S/. 200.00.

Letra Ciudad Cantidad vendida Venta


por ciudad
A Piura 3 600
B Ucayali 3 600
C Ancash 5 1000
D Junín 5 1000
E Lima 3 600
F Madre de Dios 3 600
G Ayacucho 5 1000
La heurística es Uij=Ventas – Costos.

De acuerdo a la Programación Dinámica:

Etapas: Cada tramo en que avanza desde A para alcanzar G.

Variables de decisión: xn (n = 1,2,3 ) representan el destino inmediato en la etapa n.

Variables de estado: yn, estado en el que se encuentra el vendedor. yn ={A, B,...,G}.

Función de transformación: Pasar de una etapa a otra: yn+1 = yn − xn.


Función de Recursión: fn( yn) = máx{Uij + fn+1( yn+1)}.

En la etapa 3:
y3 x3= G x3* f(y3)
F 1000-161-40 G 799
B 1000-158-40 G 802
D 1000-87-40 G 873
E 1000-97-40 G 863

En la etapa 2:
y2 x2=F x2=B x2=D x2=E x2* f(y2)
B 600+799-262 ---- ---- ---- F 1137
C ---- 600+802-104-40 1000+873-72-40 600+863-85-40 D 1761
D 600+873-224-40 ---- ---- ---- F 1209
En la etapa 1:
y1 x1=B x1=C x1* f(y1)
A 1000-174-40+1137 600-225-40+1761 C 2096

∴El recorrido de la búsqueda que maximiza las utilidades es:


A → C → D → G

Piura → Ancash → Junín → Ayacucho


Aplicaciones

 Minería de datos, búsqueda de comportamiento en los datos.


 Procesamiento de imágenes.
 Medicina humana, software médicos, control de tumores, problemas
cancerígenos.
 En la aeronavegación y transporte, el pilotaje automático, búsquedas
de rutas más próximas.
 Video juegos de estrategia, camino más corto
Ejemplo:
Pacman: Los fantasmas que persiguen a Pacman buscan el camino
más corto, en lugar de aparecer en forma aleatoria en el Mapa del
Juego.
Aplicaciones

También podría gustarte