¡Descarga Búsqueda Heurística 2da Parte y más Diapositivas en PDF de Inteligencia Artificial solo en Docsity!
Inteligencia Artificial
Inteligencia Artificial
Ingeniería Informática, 4º
Curso académico: 2011/
Profesores: Ramón Hermoso y Matteo Vasirani
Búsqueda Heurística (2ª parte)
Inteligencia Artificial
Tema 2: Agentes basados en Búsqueda
2. Agentes basados en búsqueda
2.1. Búsqueda en espacios de estados
2.2 Búsqueda no-informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
2.5. Búsqueda con espacios estructurados
Resumen:
Inteligencia Artificial
Cota de f
con función heurística optimista
Lema 2 : Sea camino_a(nm ) el conjunto de nodos en el camino desde la raíz a un un nodo meta nm cualquiera. Si h *^ es optimista, entonces para todos los
nodos nj ∈ camino_a (nm ) se verifica que
f
( nj ) ≤ f
( nm ) Prueba : _f
(nm) = g(nm)+h
(nm) = g(nm)_ (dado que h * es optimista) = c(ni,n 2 )+...+c(nj-1,nj)+c(nj,nj+1)+...+c(nm-1,nm) (definición de g ) _f
(nm)_ ≥ c(n 1 ,n 2 )+...+c(nj-1,nj)+h(nj) (definición de h ) _f
(nm)_ ≥ _c(n 1 ,n 2 )+...+c(nj-1,nj)+h
(nj)_ (dado que h * es optimista) _f
(nm)_ ≥ _g(nj)+h
(nj)_ (definición de g y f * ) _f
(nm)_ ≥ _f
(nj)._
Inteligencia Artificial
Valores de f
en árboles de búsqueda A
f *( nj ) f * n 1 nj f *( nm ) f * n 1 nj f *( nj ) f * n 1 nj (a) variable (b) acotado por f *( nm ) (c) monótono creciente
h
consistente
h
optimista
(nodos meta)
Corolario 2 : Sea nm el mejor nodo meta, y camino_a(ni ) el conjunto de nodos
nj en el camino desde la raíz a un nodo ni cualquiera ( ni incluido). Si h
*
es
optimista , entonces el algoritmo A
expande todos los nodos ni tal que
∀ nj ∈ camino_a (ni ). f
( nj ) ≤ f
( nm )
h
optimista
(nodos cualesquiera)
Inteligencia Artificial
Completitud de A
Teorema 2 : El método A
es completo
Prueba:
- sea nm un nodo meta y camino_a ( nm ) el conjunto de nodos en el camino de
la raíz a nm. Suponga que nm no es encontrado por el método A
- ya que el número de sucesores de un nodo es finito, debe haber un camino infinito p , tal que se expanden todos los nodos ni de p antes de nm
- la secuencia de valores de g a lo largo de p aumenta estrictamente (el coste de los operadores es > 0) y dado que por definición h *( n ) ≥ 0, existe algún nk en p con
- el algoritmo expande los nodos sucesivamente por valores de f
- crecientes, por lo que todos los nodos en el camino a nm (incluido nm ) son expandidos antes que el nodo nk
- contradicción; en consecuencia, el método A
encuentra el nodo meta ng
( ) ( ) ( ) max [ ( )]
min _ ( )
f nk g nk h n k n ca o a n f n j j ∈ m = + >
Inteligencia Artificial
Encontrar Funciones Heurísticas: Aprendizaje
Idea : generar información heurística sobre la marcha
- realizar varias búsquedas (ligeramente diferentes) en el mismo dominio (p.e. siempre a Bucarest, pero desde diferentes ciudades iniciales)
- En cada paso de una búsqueda, usar el coste real de un paso parar mejorar el valor de h
- En la próxima búsqueda se utilizan los valores de h
Método :
- Inicialmente, se realiza una búsqueda con h *( n ) = 0 para todos los nodos n
- En cada paso de ni a nj :
- Al visitar un nodo por segunda vez, se utilizan los valores de h *^ actualizadas
( ) min [ ( ) ( , )]
( )
j i j n expandir n
h n i h n c n n
j i
∈
Problema :
- Hay que almacenar los valores h *^ de todos los nodos en una tabla (memoria!)
Inteligencia Artificial
Z S
fL *=
= fL *=
= 71 151 fL *=
=
Ejemplo: A* con Aprendizaje de una Función Heurística
Ejemplo: ir de Z a L Inicialmente hL*(n) aprendido anteriormente 220 99 111 213 n A B C D E F G H I L M N O P R S T U V Z hL ***** 146 0 0 0 0 0 0 0 0 0 0 0 142 0 97 80 111 0 0 71
Z
fL * = 0+ = 71 231
A fL^ * = 75+
= 221
O fL^ * = 71+
= 213 71 75
S
fL * = 150+ = 363 fL * = 215+ = 295 fL * = 193+
= 304 Z
140 118 75
R A O F
fL *=295+
fL *= 355
= 575 fL * = 314+ = 314 fL *= 366
= 597 80 140 151 99
L A
fL *=304+
fL *=311+
111 118
Inteligencia Artificial
Ejemplo: A* con Aprendizaje de una Función Heurística
A fL^ * = 0+
= 220 Ejemplo: ir de A a L Inicialmente hL*(n) aprendido anteriormente 229 111 n A B C D E F G H I L M N O P R S T U V Z hL ***** 220 0 0 0 0 0 0 0 0 0 0 0 231 0 97 99 111 0 0 213
S
fL * = 75+ = 288 fL * = 140+ = 239 fL * = 118+
= 229 Z
140 118 75
L A
fL *=229+
fL *=236+
118 111
Inteligencia Artificial
Encontrar de Funciones Heurísticas: Diseño
- Problemas relajados :
- menos restricciones para cada operador
- h
- : distancia h exacta en el problema relajado
- 8 Puzzle : una pieza puede moverse de A a B... a) siempre b) si B está vació c) si A es adyacente a B
- Funciones heurísticas : a) número de piezas descolocadas - h a( s 0 ) = 5 b) suma de saltos necesarios - h b( s 0 ) = 5 c) suma de las distancias de Manhattan - h c*( s 0 ) = 1+1+1+3+1=
Estado inicial 1 2 3 4 7 6 5
Estado meta
Inteligencia Artificial
Ejemplo:
es más informada que ha
- las piezas bien colocadas no cuenta en h a^ ni en h c
- la distancia Manhattan de cada pieza descolocada es al menos 1
- en consecuencia, en toda posible configuración n del 8-puzzle la suma de las distancias es igual o mayor que la suma de piezas descolocadas
- para todas las configuraciones n se cumple h c
Calidad de las Funciones Heurísticas
Definición :
Sean h 1
y h 2
dos funciones heurísticas optimistas.
h 1
es más informada que h 2
, si para todo nodo n se cumple que
h 1
( n ) ≥ h 2
( n )
Inteligencia Artificial
Complejidad de A
El número de nodos expandidos por A
depende de la precisión de h
( n ) = h ( n ) para todos los nodos n :
- información completa: complejidad lineal (sin contar la complejidad de computar h *!)
- calcular h *( n ) suele equivaler a resolver el problema completo
- si h
( n ) = 0 para todos los nodos n :
- A*^ degenera a la búsqueda de coste uniforme
- resultados generales (véase [Russell y Norvig, 2003]):
- en el peor caso, A*^ es lineal sólo si para todos los nodos n , | h ( n ) – h
( n ) | ≤ O ( c )
- en el peor caso, A*^ es polinomial sólo si para todos los nodos n , | h ( n ) – h
( n ) | ≤ O ( log h ( n ))
- en escenarios reales, el error heurístico | h ( n ) – h *( n ) | crece, al menos, de forma proporcional al coste h ( n )
- aún así, suele haber una mejora notable en comparación con métodos no informados
Inteligencia Artificial
Resultados experimentales
Comparación experimental:
- número de nodos expandidos en el problema del 8-puzzle
- varias profundidades d de la solución
- media sobre 100 instancias del problema d prof. iterativa A * ( h a) A * ( h c) 2 10 6 6 4 112 13 12 6 680 20 18 8 6.384 39 25 10 47.127 93 39 12 3. 644. 035 227 73 14 — 539 113 16 — 1.301 211 18 — 3.056 363 20 — 7.276 676 22 — 18.094 1. 24 — 39.135 1.
Inteligencia Artificial
Mejoras de A
Mejoras usando heurísticas fuertes :
- idea: acotar el espacio de búsqueda con información heurística
- búsqueda guiada por subobjetivos ( island-driven search ):
- elegir estados (subobjetivos, islas ) i 1 ,…, in por los que se supone que una solución ha de pasar (p.e. puertos)
- realizar búsquedas A*^ del estado inicial n 0 a i 1 , de i 1 a i 2 ,…, y de in a la meta ng
- búsqueda jerárquica:
- macro-operadores representan acciones complejas y ficticias (p.e. ir de puerto a puerto )
- realizar búsqueda A* a meta-nivel con macro-operadores: los estados de la solución son los subobjetivos
- refinar la solución anterior en base a la búsqueda guiada por subobjetivos
Inteligencia Artificial
Búsqueda en línea
Búsqueda en línea ( online search ):
- engranar búsqueda (elección de acciones) y acción/percepción
- necesario cuando:
- el espacio de búsqueda es demasiado grande para buscar hasta la solución (y no se puede aplicar las técnicas anteriores)
- no es realista usar un modelo determinista de los efectos de acciones
- por frecuentes contingencias (p.e.: a veces el brazo deja caer un bloque)
- porque no se dispone de un modelo del entorno (p.e.: un mapa )
- medida de eficiencia:
- en general, no se puede asegurar optimalidad ni completitud
- minimizar el índice competitivo =
- el índice competitivo puede ser infinito, particularmente cuando hay acciones que no son reversibles Coste del camino real del agente Coste del camino óptimo