Inteligencia Artificial Inteligencia Artificial Algoritmo A Introduccin El

  • Slides: 30
Download presentation
Inteligencia Artificial

Inteligencia Artificial

Inteligencia Artificial Algoritmo A* IntroducciÓn El algoritmo de búsqueda A* (A Estrella) se clasifica

Inteligencia Artificial Algoritmo A* IntroducciÓn El algoritmo de búsqueda A* (A Estrella) se clasifica dentro de los algoritmos de busqueda en grafos. Presentado por primera vez en 1968 por Peter E. Hart, Nils J. Nilsson y Bertram Raphael, el algoritmo encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor costo entre un nodo origen y uno objetivo. En donde se vera que el contar con información sobre un espacio de estados evita a los algoritmos emprender búsquedas a ciegas.

Inteligencia Artificial Algoritmo A* Que es A*? Es un algoritmo de busqueda inteligente o

Inteligencia Artificial Algoritmo A* Que es A*? Es un algoritmo de busqueda inteligente o respaldado por informacion que busca el camino mas corto desde un estado inicial al estado meta atraves de un espacio de problema usando una heuristica optima. Pertenece al metodo de busqueda preferente por lo mejor (Best First Search ).

Inteligencia Artificial Algoritmo A* El algoritmo A* es usualmente utilizado en los problemas para

Inteligencia Artificial Algoritmo A* El algoritmo A* es usualmente utilizado en los problemas para encontrar la mejor ruta o camino, lo que realiza el algoritmo es construir todas las rutas desde un punto inicial hasta encontrar alguna que llegue al nodo final o meta. De éste modo solamente construye aquellas rutas que son candidatas a formar una solución o camino desde el inicio hasta el nodo final.

Inteligencia Artificial Algoritmo A* Para poder determinar que rutas son las que tienen mayor

Inteligencia Artificial Algoritmo A* Para poder determinar que rutas son las que tienen mayor probabilidad de llegar al nodo meta, el algoritmo utiliza una heurística basada en la distancia de cualquier punto dado hacía la meta. Donde se diferencia el algoritmo A* de otros algoritmos avaros de “best-first search” es el hecho de que va tomando en cuenta la distancia que ya ha recorrido hasta el momento, haciendo de este modo una respuesta mucho más completa y óptima.

Inteligencia Artificial Algoritmo A* A* es una combinación entre los algoritmos de búsqueda de

Inteligencia Artificial Algoritmo A* A* es una combinación entre los algoritmos de búsqueda de anchura con algoritmos de profundidad, esto debido a la función que utiliza f(n)= g(n)+h(n), dónde h(n) [que tiende primero a profundidad] representa el valor heurístico del nodo a evaluar y g(n) [que tiende a primero en anchura] representa el costo real del camino recorrido para poder llegar al nodo. Lo anterior lo posibilita a cambiar de camino de búsqueda cuando se encuentra un camino que pareciera ser más óptimo.

Inteligencia Artificial Algoritmo A* Función de Evaluación La forma general de la función de

Inteligencia Artificial Algoritmo A* Función de Evaluación La forma general de la función de evaluación es: f(n) = g(n) + h(n) donde g(n) es costo de llegar hasta el nodo n desde el nodo de salida s y h(n) es el costo estimado para llegar al nodo meta. Entonces f(n) es el costo estimado total restringido a pasar por el nodo n.

Inteligencia Artificial Algoritmo A* g(n) inicio h(n) destino f(n) = costo estimado de la

Inteligencia Artificial Algoritmo A* g(n) inicio h(n) destino f(n) = costo estimado de la solución mas barata, pasando por n.

Inteligencia Artificial Algoritmo A* h(n) g(n)

Inteligencia Artificial Algoritmo A* h(n) g(n)

Inteligencia Artificial Algoritmo A* Ventajas Elige el nodo de menor costo, es decir, el

Inteligencia Artificial Algoritmo A* Ventajas Elige el nodo de menor costo, es decir, el camino mas corto. Desventajas El tiempo de cómputo. Espacio de memoria Requiere demasiada informacion

Inteligencia Artificial Algoritmo A* Aplicaciones Trazar Rutas. Los usos que se le pueden dar

Inteligencia Artificial Algoritmo A* Aplicaciones Trazar Rutas. Los usos que se le pueden dar a éste algoritmo son el de trazar las rutas para llegar de una ciudad a otra, algo como lo que tiene la Secretaría de Comunicaciones y Transportes para trazar la ruta de una ciudad a otra sacando el menor costo y recorrido posible. La aplicación se llama “Traza Tú Ruta”. Es muy popular en la planificacion de rutas y ha sido exitoso en areas como la Robotica en Inteligencia Artificial.

Inteligencia Artificial Algoritmo A* Caracteristicas v. Informado v. Completo v. Heuristico v. Optimo global

Inteligencia Artificial Algoritmo A* Caracteristicas v. Informado v. Completo v. Heuristico v. Optimo global v. Lento

Inteligencia Artificial Algoritmo A* Como funciona? Incorpora la longitud del camino desde la raíz

Inteligencia Artificial Algoritmo A* Como funciona? Incorpora la longitud del camino desde la raíz hasta el estado actual en la función de evaluación h. üConsidera si el estado es bueno üToma en cuenta cómo es el camino usado para alcanzarlo

Inteligencia Artificial Algoritmo A* inicio destino

Inteligencia Artificial Algoritmo A* inicio destino

Inteligencia Artificial Algoritmo A* Estructuras: Lista abierta: contiene los nodos que podrían formar parte

Inteligencia Artificial Algoritmo A* Estructuras: Lista abierta: contiene los nodos que podrían formar parte del camino (nodos en espera de ser analizados) Lista cerrada: contiene los nodos que ya han sido examinados y que no hace falta volver a examinar.

RUMANIA Distancias entre ciudades

RUMANIA Distancias entre ciudades

Inteligencia Artificial Algoritmo A* ejemplo: Distancias en linea recta hacia Bucharest 6 Arad Bucharest

Inteligencia Artificial Algoritmo A* ejemplo: Distancias en linea recta hacia Bucharest 6 Arad Bucharest Craiova Fagaras Oradea Pitesti Rimnicu Vilcea Sibiu Timisoara Zerind 75 99 140 118 80 97 146 101 366 0 160 178 380 98 193 253 329 374

Arad 118 es la distancia de Arad a Timisoara y 329 la distancia en

Arad 118 es la distancia de Arad a Timisoara y 329 la distancia en linea recta de Timisoara a Bucharest (destino) f(n)=0+366 = 366 75 118 Timisoara 140 Sibiu Zerind f(n)=118+329 f(n)=140+253 f(n)=75+374 = 447 = 393 = 449 Escogemos la menor heuristica

Arad f(n)=0+366 = 366 Sibiu f(n)=140+253 = 393 99 Arad Oradea De Arad a

Arad f(n)=0+366 = 366 Sibiu f(n)=140+253 = 393 99 Arad Oradea De Arad a Sibiu son 140 + 99 de Sibiu a Fagaras son 239 (g(n)) +178 que es la distancia en linea recta de fagras a Bucharest. Rimnicu Vilcea Fagaras f(n)=280+366 f(n)=146+380 f(n)=220+193 f(n)=239+178 = 646 = 526 = 413 = 417 Escogemos Rimmicu ya que es el mas cercano al destino

Arad f(n)=0+366 = 366 Sibiu f(n)=140+253 = 393 Rimmicu Vilcea f(n)=220+193 = 413 Craiova

Arad f(n)=0+366 = 366 Sibiu f(n)=140+253 = 393 Rimmicu Vilcea f(n)=220+193 = 413 Craiova Pitesti Sibiu f(n)=366+160 f(n)=317+98 f(n)=300+253 = 526 = 415 = 553

f(n)=0+366 Arad = 366 Sibiu f(n)=140+253 = 393 Rimmicu Vilcea f(n)=220+193 = 413 Pitesti

f(n)=0+366 Arad = 366 Sibiu f(n)=140+253 = 393 Rimmicu Vilcea f(n)=220+193 = 413 Pitesti f(n)=317+98 = 415 Bucharest f(n)=418+0 = 418

Arad f(n) = g(n) + h(n) f(n)=0+366 = 366 Timisoara Sibiu f(n)=118+329 = 393

Arad f(n) = g(n) + h(n) f(n)=0+366 = 366 Timisoara Sibiu f(n)=118+329 = 393 = 447 Arad f(n)=140+253 Oradea f(n)=280+366 f(n)=291+380 = 646 = 671 Sibiu Zerind f(n)=75+374 = 449 Rimnicu Vilcea Fagaras f(n)=220+193 f(n)=239+178 = 413 Craiova = 417 Pitesti f(n)=300+253 f(n)=366+160 f(n)=317+98 = 553 = 526 = 415 Bucharest f(n)=418+0 = 418

Inteligencia Artificial Algoritmo A* Búsqueda limitada por la capacidad de la memoria

Inteligencia Artificial Algoritmo A* Búsqueda limitada por la capacidad de la memoria

Inteligencia Artificial Algoritmo A* Algoritmos diseñados para conservar la memoria: BUSQUEDA A* por PROFUNDIZACION

Inteligencia Artificial Algoritmo A* Algoritmos diseñados para conservar la memoria: BUSQUEDA A* por PROFUNDIZACION ITERATIVA (A*PI) BUSQUEDA A* SRM

Búsqueda A*SRM Emplea toda la capacidad de memoria disponible para efectuar una búsqueda. El

Búsqueda A*SRM Emplea toda la capacidad de memoria disponible para efectuar una búsqueda. El empleo de mas memoria permite mejorar la eficiencia en la búsqueda

A*SRM se Caracteriza por: Hará uso de toda la memoria que pueda disponer En

A*SRM se Caracteriza por: Hará uso de toda la memoria que pueda disponer En la medida que se lo facilite la memoria, evitara los estados repetidos Es completo si la memoria disponible tienen capacidad suficiente para guardar la ruta solución mas cercana

 Es optima si dispone de suficiente memoria para guardar la ruta de solución

Es optima si dispone de suficiente memoria para guardar la ruta de solución optima mas cercana. De lo contrario, produce la mejor solución que sea posible obtener con la memoria disponible Si se dispone de suficiente memoria para todo el árbol de búsqueda, ésta resultara óptimamente eficiente

Ejemplo de A*SRM Nodos meta 10 0+12=12 A Valor para c/nodo G+H=F 8 10+5=15

Ejemplo de A*SRM Nodos meta 10 0+12=12 A Valor para c/nodo G+H=F 8 10+5=15 B 10 C 10 30+5=35 E 8+5=13 G 10 20+0=20 20+5=25 D 8 16 24+0=24 16+2=18 H I 10 8 30+0=30 F 24+0=24 J 8 24+5=29 K

1 3 2 A 4 A A 13 13(15) A 12 12 B 5

1 3 2 A 4 A A 13 13(15) A 12 12 B 5 15(15) A G 24 7 A 15 I 15(24) 15 24(∞) B 15 13 15 6 G 24 13 B G 15 A B C 25(∞) G H 18 8 20(24) B 20 A 20(∞) D

Inteligencia Artificial Algoritmo A* Realizado por: Roxana Nidia Cisneros Silva Jesus Ambrocio Medina Hernández

Inteligencia Artificial Algoritmo A* Realizado por: Roxana Nidia Cisneros Silva Jesus Ambrocio Medina Hernández