Académique Documents
Professionnel Documents
Culture Documents
Resumen:
2. Problemas bsicos (un jugador) 2.1. Actuar en entornos conocidos 2.2. Actuar en entornos desconocidos
Problema
En determinados problemas es imposible/impracticable buscar el plan de acciones completo. Las razones pueden ser: Limitacin de recursos computacionales:
el espacio de bsqueda es demasiado grande para buscar hasta la solucin (no pueden emplear las tcnicas anteriores) Ejemplo: Ajedrez, 24-Puzzle, ...
2. Guiar la bsqueda:
explorar ramas prometedoras del rbol antes que otras/ expandir determinados nodos antes que otras Qu nodos hay que expandir primero? 4
Heursticas
Aplicacin fuerte:
la aplicacin de la heurstica reduce el problema se deja de analizar soluciones posibles pero improbables Objetivo:
encontrar soluciones buenas (no necesariamente ptimas) minimizar el ndice competitivo:
Coste del camino real del agente Coste del camino ptimo
Aplicacin dbil:
mtodo de bsqueda + informacin heurstica la informacin heurstica no reduce el problema sino gua la bsqueda Informacin heurstica puede mejorar el rendimiento medio de un mtodo, pero no asegura una mejora en el peor caso
Funciones heursticas
Funciones heursticas en la bsqueda en el espacio de estados: estiman la cercana de un estado a un estado meta Posibles funciones heursticas:
distancia: coste estimado del camino de un estado al estado meta h :N mide el coste real desde el nodo n hasta el nodo meta ms cercano h*:N es una funcin heurstica que estima el valor de h(n)
Ejemplos de funciones heursticas: Laberinto: distancia en lnea recta hasta la salida Ajedrez: nmero de piezas de un jugador Encontrar una ruta de Madrid a Bilbao en un mapa de capitales de provincias: Sevilla no; Burgos si; Soria quizas;
Estado meta 1 8 7 6 2 3 4 5
Ejercicio
Bsqueda voraz: 8-Puzzle a) Aplica la bsqueda voraz al problema presentado en el ejemplo 1. Utiliza en este caso la funcin heurstica hc*. b) Compara la solucin encontrada y el rbol expandido con la del ejemplo 1. Qu funcin heurstica es mejor? Por qu?
Ejercicio
Problema de las 5 reinas: 5 reinas en un tablero 5x5 estados: casillas de las 5 reinas meta?: ninguna reina amenazada op.: mover una reina a otra casilla de su misma fila coste: el coste de cada op. es cero estado inicial:
Ntese: dado que el coste de cada operador es 0, el camino por el cual se llega a un nodo no importa, siempre que al final se encuentre un nodo meta (ninguna reina esta amenazada)
a) encuentre una heurstica h* para el problema de las 5 reinas b) resuelve el problema aplicando la bsqueda voraz con dicha heurstica h*
Bsqueda A*
Idea: emplear informacin heurstica para guiar la bsqueda (heurstica dbil) minimizar el coste estimado total de un camino en el rbol de bsqueda combinar
el coste para llegar al nodo n (se conoce exactamente: g), y el coste aproximado para llegar a un nodo meta desde el nodo n (estimado por la funcin heurstica h* )
Estrategia A* : entre las hojas del rbol de bsqueda, elegir el nodo de valor f * mnimo
10
Inteligencia Artificial HB/AFG: 2007/2008
El Algoritmo A*
{bsqueda A*} abierta s0 Repetir Si vaca?(abierta) entonces devolver(negativo) nodo primero(abierta) Si meta?(nodo) entonces devolver(nodo) sucesores expandir(nodo) Para cada nsucesores hacer n.padre nodo ordInsertar(n,abierta, f *) Fin {repetir}
Algoritmo A* : se basa en la bsqueda general almacenar el valor g de cada nodo expandido mantener la lista abierta ordenada por valores crecientes de f * insertar nuevos nodos en abierta segn sus valores f *
11
f* = 0+4=4
1 3 7 2 4 6 8 5
f* =1+5=6
1 3 7 2 4 6 8 5
f* =1+5=6
f* =2+3=5 f* =3+3=6
f* =2+4=6
f* =2+3=5
1 2 3 7 8 4 6 5
1 2 3 6 7 4 8 5 1 2 3 6 7 4 8 5 1 2 3 6 4 8 7 5 1 2 3 6 4 8 7 5
f* =3+4=7
f* =3+2=5
f* =3+4=7
f* =4+1=5
2 3 1 8 4 7 6 5
f* =5+0=5
1 2 3 4 8 7 6 5
f* =5+2=7
...
1 2 3 8 4 7 6 5
S f*=1+2=3 S
A A A
f*=2+3=5 S
f* =3+2=5 AS
f* =3+4=7
A S f*=4+1=5 S A S
f*=4+1=5 A S f*=5+2=7
f*=5+2=7
f*=5+2=7
13
Optimalidad y completitud de A*
A* es optimo y completo si:
h* es optimista: para todos los nodos ni: h*(ni) h(ni) para todos los nodos ni: h*(ni) 0 El coste de todas las acciones es mayor que 0 (para todos los nodos hijos ni de cualquier nodo nj: c(nj, ni)>0)
f* f *(nm2) Nodo meta no ptimo: g(nm2)>g(nm1)
f *(nm1)
15
Complejidad de A*
El nmero de nodos expandidos por A* depende de la calidad de h*: Para dos funciones heursticas h1* y h2* :
Si h1* es ms informada que h2*, entones A*(h1* ) expande el mismo nmero o menos nodos que A*(h2* )
16
Resultados experimentales
Comparacin experimental:
nmero de nodos expandidos en el problema del 8-puzzle varias profundidades d de la solucin media sobre 100 instancias del problema
d
2 4 6 8 10 12 14 16 18 20 22 24
prof. iterativa
10 112 680 6.384 47.127 3.644.035
17
A*(ha)
6 13 20 39 93 227 539 1.301 3.056 7.276 18.094 39.135
A*(hc)
6 12 18 25 39 73 113 211 363 676 1.219 1.641
Inteligencia Artificial HB/AFG: 2007/2008
Ejercicio
Algoritmo A* : Suponga el juego de las torres de Hanoi con el estado inicial que se presenta al lado. El objetivo consiste en pasar la torre bien a la aguja B o bien a la aguja C. Se filtren todos los estados repetidos y equivalentes (dos estados se consideran equivalentes, si estn los mismos discos en la aguja A mientras que los discos de las agujas B y C estn intercambiadas).
a)Defina una funcin heurstica para este problema. b)Desarrolle el rbol de bsqueda que genera el algoritmo A*, incluyendo los valores de g, h *, y f * de cada nodo. Indique el orden en que se expanden los nodos. c)Su funcin heurstica es optimista? Argumente su respuesta.
18
Inteligencia Artificial HB/AFG: 2007/2008
Expandir el rbol hasta un nivel k (horizonte) y realizar la accin haca el mejor nodo en el nivel k Repetir el ciclo percepcin/accin de forma continua
Algoritmo general:
Percibir el estado actual s Aplicar un mtodo de bsqueda no informado hasta el nivel k y nodos metas. Sea H el conjunto de nodos hoja hasta el nivel k: * * Utilizar h* para determinar el mejor nodo hoja n*H: n arg min[h (n)] nH Ejecutar la primera accin a* en el camino que lleva a n* Repetir hasta que el agente se encuentra en un estado meta
19
1 2 3 7 4 6 8 5 2 3 1 7 4 6 8 5 1 2 3 6 7 4 8 5
1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5 1 2 3 7 8 4 6 5
1 2 3 7 4 6 8 5 1 2 7 4 3 6 8 5 1 2 3 7 4 5 6 8
7 1 3 2 4 6 8 5
1 3 4 7 2 6 8 5
7 1 3 2 4 6 8 5
7 1 3 6 2 4 8 5
1 3 4 7 2 6 8 5
1 3 4 7 2 5 6 8
k=3 h *=4 a
ha*=3
ha*=4
ha*=2
ha*=6
ha*=5
ha*=5
ha*=5
ha*=6
ha*=7
20
10
1 2 3 7 4 6 8 5
1 2 3 7 8 4 6 5
1 2 3 7 4 6 8 5 1 2 7 4 3 6 8 5 1 2 3 7 4 5 6 8
3 1 7 2 4 6 8 5 1 3 7 2 4 6 8 5 1 3 7 2 4 6 8 5
1 2 3 7 8 4 6 5
1 2 3 7 8 4 6 5
3 2 1 7 4 6 8 5
1 2 3 6 7 4 8 5
1 2 3 7 8 6 5 4
1 2 3 8 4 7 6 5
2 1 7 4 3 6 8 5
1 2 3 7 4 5 6 8
7 1 3 2 4 6 8 5
1 3 4 7 2 6 8 5
k=3
ha*=5
ha*=3
ha*=5
ha*=1
ha*=6
ha*=5
ha*=6
ha*=5
21
1 2 3 7 8 4 6 5
1 2 3 7 4 6 8 5
1 2 3 8 4 7 6 5 1 2 3 8 4 7 6 5 2 3 1 8 4 7 6 5
1 2 3 7 8 6 5 4
1 2 7 8 3 6 5 4
k=3
ha*=5
ha*=6
ha*=0
22
11
Complejidad en tiempo:
el encontrar un nodo meta y su profundidad depende de la funcin heurstica hay que contar la complejidad de calcular h*
23
24
12
Si h* es ideal (h*=h), entonces es ptimo y completo La bsqueda por ascenso de colinas es un caso especial de la bsqueda con horizonte (horizonte = 1) Aumentar el horizonte k:
permite evitar ciclos de longitud k o menor se trata mejor el caso en los que varias acciones tienen el mismo valor heurstico (ver ejemplo)
25
26
13
27
Estado inicial: (0,[6,2,5,25]) Estado meta: (x,y) tal que x es lo ms cerca posible de 420 Operadores: aplicar la suma/multiplicacin Coste de un operador: 0 Tipo de solucin: estado
Se puede resolver el problema con un mtodo de bsqueda no informado usando como estado meta (420,y), pero Que pasa si no hay ninguna solucin exacta? Mejor utilizar la bsqueda online:
Funcin heurstica: h*((x,y))=|420-x|
mide la similitud del estado al objetivo, no mide el coste del camino restante
14
h*=420
(25,[6,2,5,25]) (31,[5,2]) (25+6) (27,[6,5]) (25+2)
(5,[6,2,25])
(8,[5,25]) (2+6)
(7,[6,25]) (12,[5,25]) (7,[6,25]) (30,[2,25]) (2+5) (2*6) (5+2) (5*6) (50,[6,5]) (10,[6,25]) (125,[6,2]) (10,[6,25]) (2*25) (2*5) (5*25) (5*2)
h*=270
k=2
29
h*=414
(150,[2,5]) (152,[5]) (150+2) (300,[5]) (150*2) (155,[2]) (150+5) (750,[2]) (150*5) (30,[2,25]) (55,[2]) (30+25) (750,[2]) (30*25) (32,[25]) (30+2) (60,[25]) (30*2)
h*=120
k=2
30
Inteligencia Artificial HB/AFG: 2007/2008
15
h*=408
(17,[25]) (425,[]) (17*25) (42,[]) (17+25) (60,[25]) (1500,[]) (60*25) (85,[]) (60+25)
h*=5
k=2
31
Inteligencia Artificial HB/AFG: 2007/2008
h*=403
( 425,[])
h*=5
k=2
32
Inteligencia Artificial HB/AFG: 2007/2008
16
k=2
33
Inteligencia Artificial HB/AFG: 2007/2008
Ejercicio
Bsqueda online para optimizacin: Juego de las cifras
La bsqueda online para optimizacin (parando cuando no se obtiene ninguna mejora) es muy til en problemas de optimizacin con un nmero infinito de estados. Aplica la bsqueda por ascenso de colinas a la siguiente instanciacin del juego de las cifras: CIFRAS: 2, 3, 5, 7, 8 EXACTO: 163 En este caso, se usan los operadores suma, resta, multiplicacin y divisin. Solo se puede aplicar un operador si el resultado es entero positivo. Cada cifra se puede utilizar varias veces.
34
17
Resumen:
2. Problemas bsicos (un jugador) 2.1. Actuar en entornos conocidos 2.2. Actuar en entornos desconocidos
35
Agente:
Es capaz de percibir el estado en el que se encuentra Conoce las acciones que puede aplicar en el estado actual
Pero no conoce los estados sucesores de un estado hasta que no ha probado las acciones correspondientes (no puede prever los estados resultantes de las acciones)
18
c: (si, a, sj ) a v, v
n 1
)
37
Coste de un plan
Instanciacin:
Estado inicial
Acciones:
el agente (A) se puede mover a una posicin adyacente si no hay un obstculo
Coste:
La aplicacin de cada operador vale una unidad
Estado meta
Solucin:
se busca un camino (ms corto) a la salida (S)
A S
Suposicin:
el agente no conoce el laberinto es capaz de recordar estados visitados anteriormente
38
Inteligencia Artificial HB/AFG: 2007/2008
19
39
20
grafo G
A
ha
ar
A S
ab A
AS
de
ar
A S
iz ab
AS A A
S S
ab
S
ab
ar
iz
A
vuelta atrs
A
ar
S A S
AS S S A S S S A
ab ar
S A
ab iz
A
ar
S
de
de
A A
Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha
41
Inteligencia Artificial HB/AFG: 2007/2008
grafo G
A
ha
S
ar
A S
ab A
AS
de
ar
A S
iz ab
AS
S A
A S A A S
ab
S S
ab
ar
S A ar S A
ab ar ar
S A S
iz
A
de
de
ar
S A
AS S S A A A S S S A
ab ar
S A
ab iz
A
ab ar
S
iz
ar
S A
de
de
Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha
42
Inteligencia Artificial HB/AFG: 2007/2008
21
rbol expandido:
A S A S A A AS S S S
A S A S A S A S A
S A
43
AS
S A
ab 6
A S
5 ar
ab
12 ar
S A
ab 2
S A
1 ab 7 ar 8 iz de 3 9
A
4 ar
S
ab iz
S A
11 ar
de 10
44
22
45
Optimalidad:
Ningn algoritmo puede evitar callejones sin salida en todos los espacios de estados
46
23
Ejercicio
Bsqueda en profundidad en tiempo real:
Considera el laberinto dibujado abajo. A es el agente cuyo objetivo es llegar a S. M es un monstruo que come el agente si llega a el. a) Realiza la bsqueda por profundidad en tiempo real. Si en un estado hay varios acciones sin explorar, elige las acciones en el siguiente orden: izquierda, arriba, derecha, abajo. Dibuja el grafo que genera el agente e indica sus movimientos. b) Realiza la bsqueda por profundidad en tiempo real. Si en un estado hay varios acciones sin explorar, elige las acciones en el siguiente orden: derecha, arriba, izquierda, abajo. Dibuja el grafo que genera el agente e indica sus movimientos. c) Suponiendo un coste de cada movimiento de 1, calcula el ndice competitivo del agente para ambos casos y compralos.
M
A
47
24
{bsqueda con aprendizaje en TR} sa=null Repetir s percibir(entorno) Si nuevo?(s) entonces aade(s,G) Si sa no es nulo entonces conecta(sa,a,s,G) h*[sa]
bacciones(s a )
min
Si meta?(s) entonces devolver(parar) a accin b de acciones(s) que minimiza costo(s,estado[s,b],b) entorno realizar(a) sa s Fin {repetir}
49
Inteligencia Artificial HB/AFG: 2007/2008
s1
h*=1
s4
h*=2
s
coste=3
coste=6
s1
h*=1
s
coste=3
s3
h*=3
s2
h*(s)0
coste=6
s3 s4
h*=3
s2
h*(s)5
h*=2
s1
h*=1
h*=2
coste=? coste=3
s
coste=3
coste=6
s1
h*=1
s
coste=3
s3
h*=3
s2
s3
50
h*=3
s2
h*=2
25
grafo G
0 iz 0 ab 01
A S
ar e=0
S S
ab A e=0
de e=0
AS
AS
ar e=0
A S
iz e=0
S A
ab e=0
ab e=0
ar e=0
ar
A S
00 1
ab
ab
ar
S
iz
A
ar
S
Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha e es el costo estimado de la accin para ir a la meta
001
de
00 0
de
grafo G
iz0 0 12 movimientos ab 01
A S
ar e=0
S S
ab A e=0
de e=0
AS
AS
S A
ar e=0
A S
ab ar
A S
iz e=0
S A
ab e=0
S
ab e=0
ar e=0
ar
S A
00 1 ab
00
ab
S A ar S A S A
ab
de A de e=0 e=1
e=0
ar e=0
S A
ar de
iz
A
ar
S
iz 00
ar
S A
Orden de realizar los movimientos si hay varias posibilidades: - arriba, abajo, izquierda, derecha e es el costo estimado de la accin para ir a la meta
001 1
00 01
de
26
despus de un nmero suficiente de bsquedas sucesivas con el mismo estado meta, h* converge a h
se convierte en una estimacin exacta del coste de un nodo a la meta
Problemas: En situaciones donde el estado meta puede cambiar, los valores de h* aprendidos no sirven para nuevas bsquedas
53
Nueva bsqueda (con h* aprendido; mismo estado meta /otro estado inicial)
Movimientos del agente
AS A S AS A S
grafo G
ab e=2
A S
de e=0
S
iz e=0
ar e=1
02
A S
iz0 1 2 de ab
AS
S A
ab ar ar
S A
S A iz A
ab A de e=1 e=2
S A S
e=0
S A S
iz A e=2 ar
13
A S A S
e=2
ar e=1
A de
1 12 ab
011
e=2
de A e=3
ab e=3
ab
ab
ab e=0
S A ar S A S A A
ar
S
iz
A
ar
S
iz
ar
S A
e=2
ar e=1
123
de
1 12 2
de
01 12 16 movimientos
Inteligencia Artificial HB/AFG: 2007/2008
27
Nueva bsqueda (con h* aprendido; mismo estado meta / estado inicial que antes)
Movimientos del agente
AS A S AS A S
grafo G
ab e=4
A S
de e=4
S
iz e=3
ar e=3
24
A S
iz2 3 4 de ab
AS
S A
ab ar ar
S A
ab A de e=3 e=3
S A ar
S A
S A
e=2
ar e=1
3
A S A S
233 ab
11
ab 8 movimientos
S A
ab
ar de
iz
A
ar
S
iz 22
ar
S A
23
de
grafo G
4
A S
iz4 de ab
ar e=4
S A
ab A e=5
de e=4
S A
AS
S A
de e=3
S A
ab ar ar
S A
ab e=1
ar e=2
35
A S A S
3 ab
11
ab
ab
ar
S A
iz
A
ar
S
iz 22
ar
S A
de
33
de
28
Completitud:
es completo: en espacios finitos y si de todos los nodos a que se puede llegar existe un camino al nodo meta No se es ptimo Se convierte en ptimo, cuando h*(n)=h(n) para todos los nodos n Los requerimientos de espacio son importantes, especialmente para problemas con un nmero grande de estados distintos Ejemplo: el 8-Puzzle tiene 9!/2=181440 estados (15-Puzzle: 1013estados)
57
Inteligencia Artificial HB/AFG: 2007/2008
Optimalidad:
Problemas:
Ejercicio
Bsqueda A* con aprendizaje en tiempo real:
Imagnate el siguiente escenario. Un agente tiene que realizar una carrera de la ciudad A a la ciudad B (ver mapa de carreteras con ciudades y kilmetros). La peculiaridad de la carrera consiste en que el agente no conoce el mapa. Una vez que el agente llega a una ciudad, se le dice el nombre de esta ciudad, las carreteras que salen y la longitud de la carretera que acaba de recorrer. 55 G
O a) Aplique el algoritmo de bsqueda A* con Z 71 aprendizaje en tiempo real a este problema. Si 75 151 no hay ningun criterio mejor, el agente prefiere A S carreteras que van al norte y luego 99 140 F sucesivamente los que van al este, sur y oeste. 118 80 R b) Repite la misma bsqueda con los valores de la T 97 211 funcin heuristica aprendido anteriormente. 181 P c) Que cambiara si, al llegar a una ciudad nueva, 101 146 no slo se le dice al agente las carreteras que M salen, sino tambin los kilmetros que hay 138 75 hasta la siguiente ciudad para cada una de estas 120 D C carreteras (pero no a que ciudades se llegan).
58
Inteligencia Artificial HB/AFG: 2007/2008
29
Ejercicio
Aprendizaje de la funcin heurstica en problemas con informacin completa: El mecanismo de aprendizaje puede aplicarse igual si se conoce el grafo de antemano (problemas con informacin completa). De hecho, una vez que se haya obtenido el grafo completo, se hace eso. Adems, en vez de inicializar los valores de la funcin heurstica a 0, se puede utilizar como valores iniciales los de una funcin heurstica conocida.
a) Implemente el algoritmo de aprendizaje para el 8-puzzle. Para inicializar los valores de la funcin heurstica para cada estado utiliza la funcin hc*. b) Genere 100 estados iniciales aleatorios y busque una solucin con el algoritmo implementado, y aprendiendo (mejorando) la funcin heurstica a lo largo de estas 100 bsquedas. Utilice como estado meta el estado meta utilizado en los ejemplos. c) Genera un grfico que indica el nmero de movimientos realizados en cada bsqueda en funcin del nmero de bsquedas realizados anteriormente. Comenta este grfico.
59
Inteligencia Artificial HB/AFG: 2007/2008
30