Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 2
Tema 2
B
usqueda en Espacios de Estados
Francisco Jose Ribadas Pena
INTELIGENCIA ARTIFICIAL
5 Informatica
ribadas@uvigo.es
26 de septiembre de 2012
2.1.1 Caracterizaci
on de un Problema
PROBLEMA = Terna de 3 componentes (I, O, M )
1. Estado/s inicial (I):
Descripcion de la situaci
on de partida
2. Conjunto de operadores pertinentes (O):
Descripcion de los medios de los que disponemos para lograr el
fin deseado
Acciones que se pueden emprender, dado un estado, para alcanzar
otro distino.
Tienen 2 componentes:
precondiciones: condicion que debe cumplir un estado para que pueda
aplicarse el operador sobre el.
postcondiciones: descripcion de las caractersticas del nuevo estado al que
se transita.
BUSQUEDA
DE SOLUCIONES
n: Secuencia ordenada de operadores (S O ) que posibilita
solucio
el transito desde estados iniciales (I ) a finales (O ).
Conseguir un plan de acci
on que permita pasar de (I) a (M )
Objetivo: Encontrar la mejor soluci
on (o una aceptable)
Nota: en ocasiones basta con conocer las caractersticas de un estado final (no el
camino para alcanzarlo)
b
usqueda sirve para saber c
omo sera ese estado meta
ESTRATEGIAS DE BUSQUEDA
Tambien estrategias de control o mecanismo de inferencia
Como recorrer el espacio de estados?
M
o
dulo
Represent.
Conocimiento
representacion estados
representacion operadores
Modulo
de
Control
del
Sistema
representacion estrategias
5. Optimizacion de B
usqueda con Funciones Heursticas
Uso de funciones (numericas) que indican lo buena o mala que
la eleccion de un nuevo operador.
Finalidad: dirigir el proceso de b
usqueda
Se basan en conocimiento heurstico, especfico del problema,
derivado de la experiencia, difcil de formalizar y explicar.
Estrategias ciegas:
No usan info heurstica (deciden sin usar conocimiento del problema)
Aplicables en cualquier dominio
En general, menos eficientes (explosion combinatoria)
Ejemplos:
generar y comprobar
b
usqueda en anchura
b
usqueda en profundidad (prof. acotada y prof. iterativa)
Estrategias informadas (o heursticas):
Usan informacion heurstica especfica del dominio.
Dise
nados para problemas concretos
Limitan explosion combinatoria
No aseguran soluciones optimas (si aceptables)
Elemplos:
ascenso a colinas
mejor nodo (primero el mejor)
A y variantes
6. Criterios de Evaluacion
completitud : Se garantiza o no que se va a encontrar una
solucion? (el algoritmo acaba)
optimalidad : En caso de que existan varias soluciones, se
encuentra la mejor (optima) o no? (menor no operandos / menor coste)
complejidad :
espacial : memoria necesaria para efectuar la b
usqueda
temporal : tiempo necesario para efectuar la b
usqueda
Estimaciones en el peor de los casos
Especificadas en funcion de alg
un parametro del problema,
notacion O().
2.2 B
usqueda No Informada
2.2.2 B
usqueda en Anchura
(a) FUNCIONAMIENTO
Recorrer arbol/grafo de b
usqueda en anchura
expandir estado raz
expandir todos sus sucesores
expandir todos los sucesores de los sucesores,
etc, .....
Realiza un ordenamiento de los estados a estudiar en base a su
profundidad
todos los nodos de profundidad d se estudiran antes que cualquier
nodo a profundidad d + 1
(b) ALGORITMO
abiertos: Lista ordenada de nodos generados a
un no expandidos (a
un
no se ha comprobado si son soluci
on, ni se han generado sus sucesores)
almacena nodos frontera, en espera de ser expandidos
a
nadir estado inicial a abiertos
resuelto := false
while (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final then
resuelto := true
else
/* expandir actual */
for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
a
nadir nuevo estado al final de abiertos
end for
end if
end while
abiertos: Funciona como una cola (fifo)
mayor profundidad al final de la lista
10
Expandidos: en cerrados
a
nadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := false
while (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final then
resuelto := true
else
a
nadir actual a cerrados
/* expandir actual */
for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
if (nuevo estado no en abiertos ni en cerrados) then
a
nadir nuevo estado al final de abiertos
end if
end for
end if
end while
Incrementa el coste computacional
gesti
on de las listas
comprobaci
on pertenencia (inspeccionar abiertos y cerrados)
CERRADOS puede implementarse como una tabla Hash (acceso directo)
11
(c) CARACTERISTICAS BUSQUEDA
EN ANCHURA
Es completa: Garantiza que se encuentra la soluci
on (si esta existe)
tanto en arboles como en grafos (incluso con ciclos)
Es
optima: Siempre encuentra la soluci
on mas corta
Se asegura que la solucion encontrada es la de menor profundidad
no se salta nodos agota capa k antes de ver nodos de la capa k + 1
12
2.2.3 B
usqueda en Profundidad
(a) FUNCIONAMIENTO
Expandir un camino hasta llegar al final (no hay sucecores)
Si no es solucion y no tiene expansi
on posible, volver a un nodo no
expandido del nivel anterior
da preferencia a los nodos/esatdos mas profundos
13
(c) CARACTERISTICAS BUSQUEDA
EN PROFUNDIDAD
No es completa: Puede no acabar nunca si encuentra una rama sin
fin en el espacio de estados
En ciertos casos nunca se volvera atras
si hay ciclos bucle infinito [si no se usa CERRADOS]
si espacio de estados es infinito (ramas con no sucesores infinito)
Muy dependiente del orden de aplicacion de los operadores
No es
optima: Encuentra una soluci
on (la primera que aparezca)
que no tiene por que ser la mejor (la mas cercana)
Complejidad
Complejidad espacial: O(b m) [sin usar CERRADOS]
b, factor de ramificacion
m, profundidad maxima de cualquier solucion
Complejidad temporal: O(bm) (en el peor caso)
si no hay solucion (o es el u
ltimo estado) examinara todos los
estados (como en anchura)
En general, suele ser mas rapida que b
usqueda en anchura
es cuestion de suerte
puede funcionar bien si hay muchos estados finales
ventajas:
Menores requisitos de memoria
Mayor rapidez (en promedio)
inconvenientes:
Posibilidad de que se estanque y no termine
No asegura solucion optima
14
(d) VARIANTES
Profundidad Acotada
Fijar un lmite maximo de profundidad (cota c)
cuando un camino alcanza la profundidad c sin ser solucion,
desecharlo
Es completo (acaba)
Asegura encontrar solucion si c es mayor que la profundidad
de la solucion
No asegura solucion
optima
no asegura encontrar la solucion a menor profundidad
15
Profundidad Iterativa
Secuencia de b
usquedas por profundidad acotada, incrementando
el valor de la cota hasta encontrar soluci
on
ventajas:
Evita problema eleccion de la cota
Es completa y
optima
Siempre da una solucion (si la hay)
Encuentra la mejor (a menor profundidad) [si los incrementos
son de 1 en 1]
16
2.3 B
usqueda Heurstica
2.3.1 Generalidades
B
usqueda ciega: ineficaz en la practica (explosi
on combinatoria)
B
usqueda heurstica:
objetivo: guiar el proceso de b
usqueda
Podar el espacio de estados
Usar informacion sobre la bondad o cercana de un estado dado
respecto a uno de los estados objetivo
optimos
explorar primero caminos mas prometedores
caractersticas :
No garantiza que se vaya a encontrar la solucion
Si la encuentra, no asegura que sea optima (mnimo coste)
En ocasiones, encuentra solucion buena en tiempo aceptable
pierden completitud y/o optimalidad
aumentan eficiencia
HEURISTICAS
FUNCIONES DE EVALUACION
Aglutinan el conocimiento del dominio sobre el que se apoyara la
decision
Asocian a cada estado, e, un n
umero, h(e), que indica lo prometedor, o no, que es ese nodo e de cara a alcanzar un estado objetivo
optimo.
Dos interpretaciones:
Estiman la calidad del estado e
buscar primero por nodos con mayor valor heurstico
Estiman la proximidad a un estado final
buscar primero por nodos con menor valor heurstico
17
Ejemplos:
8-puzzle: no casillas mal colocadas (2o tipo)
cubos: |cantidad en 8 l. - 4 | (2o tipo)
ajedrez: no piezas de ventaja (1er tipo)
Clasificacion:
Heursticas generales: adecuadas para m
ultiples dominios
vecino mas proximo (medir distancias)
Heursticas de proposito especial: usan conocimiento exclusivo de
un dominio particular
heursticas bien fundadas
1. Si estiman la calidad:
h(e) esta bien fundada si los estados finales tienen el
valor maximo posible. (estado inicial suele tener valor 0)
2. Si estiman la distancia:
h(e) esta bien fundada si los estados finales tienen el valor 0
18
2.3.2 M
etodos de escalada o ascenso a colinas
(a) FUNCIONAMIENTO
Familia de metodos de mejora iterativa (tambien hill climbing )
idea: Elegir, en cada paso, uno de los descendientes del estado actual
que mejore el valor heurstico de su padre
mejor = mas alto ascenso a colinas
mejor = mas bajo descenso de gradiente
Elecci
on local: solo toma en consideraci
on los sucesores del estado
actual
Dos variantes:
1. Escalada simple:
Generar hijos 1 a 1, calculando su valor heurstico
El primer hijo que sea mejor que estado actual pasa a ser
nuevo estado estado actual
estudia los sucesores secuencialmente
xima pendiente:
2. Escalada por ma
Generar todos los hijos y calcular su valor heurstico
Tomar al mejor hijo
Si es mejor o igual que estado actual pasa a ser nuevo
estado actual
Si no, detener el algoritmo
estudia los sucesores secuencialmente
Ejemplos:
Espacio de estados
Escalada Simple
M
axima Pendiente
19
ventajas
Muy poco consumo de espacio
Complejidad espacial: O(1) (basta guardar 1 estado)
inconvenientes
Complejidad temporal: exponencial en peor caso (revisa todos)
No son optimos ni completos
pueden no encontrar solucion aunque exista (ver problemas)
no garantizan el camino mas corto
problemas: Puntos en los que el algoritmo se estanca
Maximos locales: todos los hijos de un estado son peores que el y
no es un estado objetivo
def.: Un m
aximo local es un estado mejor que cualquier otro
estado vecino, pero peor que otros mas lejanos
El algoritmo para sin dar solucion
Mesetas: todos los hijos tienen mismo valor heurstico que padre
def.: Una meseta es una region del espacio de estados donde
todos los estados tienen el mismo valor heurstico
El algoritmo para sin dar solucion
Si sigue, la heurstica no informa b
usqueda ciega
Crestas: mezcla de los anteriores, se llega a un conjunto maximos
locales contiguos
def.: Region del espacio de estados que tiene algunos estados
con mejor valor heurstico que los colindantes, pero a los que
no se puede llegar por transiciones simples (usando un u
nico
operador)
soluciones :
Reiniciar toda o parte de la b
usqueda (vuelta atras, backtracking )
Dar un paso mas generar sucesores de sucesores y ver que pasa
Max. locales: Volver a un nodo anterior y probar direcci
on distinta
Mesetas: Hacer un salto grande, para salir de la meseta
FJRP ccia [Inteligencia Artificial]
20
2.3.3 M
etodo del mejor nodo (primero el mejor)
(a) FUNCIONAMIENTO
idea: Considerar todos los estados frontera, no s
olo los sucesores del
estado actual
Mantener lista abiertos (nodos no expandidos) ordenada por los valores de la
heurstica de los estado
Intenta combinar anchura y profundidad, guiado por la heurstica
Seguir un camino, pasando a otro cuando deje de ser prometedor
Diferencia con escalada: los descendientes del estado actual compiten con
todos los demas nodos no expandidos
(b) ALGORITMO
a
nadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := false
while (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos /* mejor h(e) */
if actual es estado final then
resuelto := true
else
a
nadir actual a cerrados
/* expandir actual */
for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
calcular su heurstica h(nuevo estado)
if (nuevo estado no en abiertos o cerrados)
or (esta con peor heurtica) then
a
nadir nuevo estado en abiertos
ordenar abiertos por valor heurstico [h(e)]
end if
end for
end if
end while
21
Ejemplo:
22
2.3.4 Algoritmo A
(a) FUNCIONAMIENTO
Familia de algoritmos (Hart, Nilsson, Raphael (1968))
objetivo: Mejorar metodo del mejor nodo para asegurar completitud
y optimalidad ( coste mnimo).
Incorpora la longitud del camino desde la raz hasta el estado actual en
la funcion de evaluacion h.
considerar no solo lo bueno que es un estado
tener en cuenta como es el camino usado para alcanzarlo
contempla el coste de los operadores empleados
Funci
on de evaluaci
on A
h(e)
- costes reales
g (e) = g(e)
- conocidos cuando termina
23
(b) ALGORITMO
24
sucesor])
= 0
B
usqueda en anchura
= profundidad(e)
= 0
B
usqueda aleatoria
= 0
h(e) = 0
Si
g(e) = prof
fundidad
maxima
profundidad(e)
B
usqueda en pro-
25
CARACTERISTICAS BUSQUEDA
A*
Es
optimo y completo si:
todo nodo tiene un no finito de sucesores
coste de cada arco/operador > 0
la funcion h(e) es una heurstica admisible
Heurstica Admisible:
Diremos que h(e) es una heurstica admisible si nunca sobreestima el coste real desde e hasta un estado meta
optimo.
Es decir, h(e) h(e) e [estimacion coste real]
para algoritmos que maximizan f (e) : h(e) h (e) e
f (e) f (e)
Complejidad (en el peor caso)
espacial:
temporal:
O(bp)
O(bp)
26
(d) VARIANTES
RTA*: Real Time A
Aplicacion en tareas de tiempo real
no pueden esperar a encontrar solucion optima
Obliga a tomar una decision cada periodo de tiempo k t
Periodo de tiempo determina profundidad alcanzada en b
usqueda
busca hasta donde le da tiempo
indica la operacion sobre el estado actual que inicia el camino
que lleva al mejor estado encontrado
A*PI: A con profundizaci
on iterativa (IDA*)
B
usqueda por profundizaci
on iterativa controlada por la funci
on
de evaluacion A
f (e) = g(e) + h(e)
nota: en principio, no comprueba estados repetidos
objetivo: reducir necesidades de memoria
Lmite de coste k, no de profundidad
Expandir solo estados e con coste dentro de la cota (f (e) k)
El resultado de cada iteracion se usa para establecer cota de la
siguiente
la amplitud de la b
usqueda se ampla en cada iteracion
27
2.3.4 Heursticas
DE HEURISTICAS
(1) CONSTRUCCION
Dependen del problema
Influyen en el rendimiento
Tecnicas generales
1. Relajacion de operadores
Reducir algunas restricciones sobre los operadores del problema
original
Operadores simplificados facilitan calculo del coste real en el
problema relajado
Usar coste real de la solucion al problema relajado como
heurstica del problema original
Suele generar heursticas admisibles
Ejemplo: 8-puzzle
h1: (no de placas (incluido hueco) en lugar correcto -1)
Problema relajado: se permite intercambiar cualquier par de casilla
h1 calcula el no exacto de pasos necesarios en el problema relajado
(las casillas se mueven a su posicion una a una, pasando por encima de las otras)
h2 calcula el no exacto de pasos necesarios en el problema relajado
28
2. Ponderacion de rasgos
Tomar un conjunto de caractersticas del estado que se puedan
representar numericamente
Combinarlas asignandoles diferentes pesos
Muy usadas juegos
Posibilidad de aprendizaje de pesos (juego de damas de
Samuel)
Ejemplo: ajedrez
3. Uso estudio estadstico previo
Partir de una heurstica preliminar h(e) y realizar b
usquedas
de entrenamiento
Relacionar los valores de h(e) con los costes reales obtenidos
en cada uno de esos casos de entrenamiento
corregir cada valor de h(e) usando el valor real obtenido
con mas frecuencia en el entrenamiento
4. Combinacion de heursticas
Combinar heursticas distintas que funcionen bien solo en
ciertas circunstancias
aprovechar heursticas parcialmente u
tiles
Ponderandolas:
h0 (e) = w1 h1 (e)+w2 h2 (e)+...+wn hn (e)
0
h (e) = max{h1(e), h2(e), ..., hn(e)}
Agregandolas:
h0(e) = min{h1(e), h2(e), ..., hn(e)}
0
h (e) = media{h1(e), h2(e), ..., hn(e)}
Si todas son admisibles, la agregada tambien lo es
29
Y COMPARACION
DE HEURISTICAS
(2) EVALUACION
En general: [para heursticas a minimizar]
Si h2(e) h1(e) e [al reves si se maximiza h(e)] se dice que
h2(e) domina a h1(e)
despejar
b?
30
2.4 B
usqueda en Juegos
2.4.1 Generalidades
DE LOS JUEGOS
INTERES
Faciles de formalizar
Facil representacion de estados
En el juego de damas: situacion del tablero + poseedor del turno
victoria
Se puede determinar en todo momento:
derrota
empate
Problemas de suma nula: lo que gana un jugador es lo que
pierde el otro
Ejemplos: ajedrez, 3 en raya
NO LO SON: juegos con cartas(mus) o dados(backgamon)
31
FORMALIZACION.
estado (posicion) inicial: posici
on inicial del tablero + quien inicia
el juego
operadores (movimientos): definen que jugadas les estan permitidas
a los jugadores
prueba de finalizacion: indica el fin del juego (estados/posiciones finales)
victoria, empate, derrota
funcion de utilidad: (sobr e posciones finales) asigna valor numerico
al resultado del juego
si no aplicada sobre posiciones finales: funci
on de evaluaci
on
Arboles
TECNICA
DE REPRESENTACION:
alternados
Representacion explcita de todas las secuencias de jugadas posibles,
para ambos jugadores
nodos: representan posiciones (estados)
sucesores: posiciones a las que se puede acceder aplicando los
movimientos permitidos
Cada nivel representa, alternativamente, las acciones posibles de
cada jugador
Objetivo: Encontrar un buen primer movimiento
Esquema b
asico:
1.
2.
3.
4.
5.
32
PRACTICA
APROXIMACION
Limitar profundidad de la b
usqueda (fijar horizonte limitado)
Aplicar funci
on evaluaci
on (heurstica) sobre nodos hoja resultantes
valores altos(positivos) posiciones favorables
Convencion :
valores bajos(negativos) posiciones desfavorables
33
Metodo MINIMAX
B
usqueda recursiva en profundidad acotada (p = profund. maxima)
Raz: nodo max
Sucesores nodo max: nodos min
Sucesores nodo
min: nodos max
un jugador
gana alg
Final recursividad:
alcanza posici
on de empate
34
(+ si posici
on ganadora)
Funci
on evaluaci
on hojas:
valor negativo: favorable a min
desde el punto
( si posici
on perdedora)
de vista de MAX
empate: devuelve 0
PASOS:
1. Expandir en profundidad hasta nivel maximo (o no expansi
on posible)
2. Evaluar nodos hoja (aplicar func. evaluaci
on)
3. En cada nivel se propagan evaluaciones hacia atras
Si es nodo max: tomar maximo valor de sus sucesores
Si es nodo min: tomar mnimo valor de sus sucesores
4. En nodo raz: ejecutar movto. que lleve al sucesor con mejor valor
5. Esperar respuesta adversario y volver a (1) con nueva posici
on actual
n: Accion con evaluaci
mejor accio
on mas alta, suponiendo que
adversario elegira en el futuro las mejores opciones para el.
Mas precisa la evaluacion propagada usando minimax que la obtenida aplicando la funcion de evaluaci
on estatica sobre los nodos
sucesores de la posicion actual
Tiene en cuenta la secuencia de futuras respuestas del oponente
Todo lo que se sabe de min es que elige la opci
on que mas le
conviene (la de menor valor)
Se supone a min tan inteligente como max
FJRP ccia [Inteligencia Artificial]
35
ALGORITMO RECURSIVO
MINIMAX(posicion, nivel)
/* casos base (evaluacion estatica) */
if (esGanador (posicion)) then
devolver +
else if (esPerdedor (posicion)) then
devolver
else if (esEmpate(posicion)) then
devolver 0
else if (nivel = limite) then
devolver evaluacion(posicion)
else
/* caso recursivo (evaluacion dinamica) */
for all sucesor i de posicion do
valores[i] := MINIMAX(sucesor i, nivel+1)
end for
if (esNodoMAX(nivel)) then
devolver maximo(valores)
end if
if (esNodoMIN(nivel)) then
devolver minimo(valores)
end if
end if
Llamada inicial: MINIMAX(posionActual, 0)
36
Ejemplo: TIC-TAC-TOE
max: X, min: O
+ si gana max
Funcion evaluacion:
si gana min
37
muy ineficiente
Idea: Evitar generar todas las alternativas, cortando aquellas que
sepamos que no van a mejorar los valores que ya hemos obtenido hasta
el momento.
Generacion y evaluacion simultaneas (sucesor a sucesor)
Necesidad de arrastrar informaci
on adicional
Poda
idea: Arrastrar una ventana (2 valores) indicando a que intervalo debe
de pertener los valores de evaluaci
on para ser considerados
Evita expandir posiciones que no mejoraran los resultados actuales
su evaluacion se sale del intervalo [, ]
En cada nodo n:
valor : cota inferior (al menos ya se han conseguido puntos)
valor : cota superior (como mucho se conseguiran puntos)
=
Inicialmente:
= +
Cada nodo recibe los mejores valores de y obtenidos hasta el
momento y los va actualiza con las evaluaciones que recibe de sus
hijos
En determinados casos, podra decidir dejar de evaluar sus hijos
(poda)
38
39
40
PROPIEDADES
Algoritmo generara el mismo movimiento que miimax expandiendo menos nodos
Genera la misma evaluacion dinamica para el nodo raz
Mismo resultado, obtenido de forma mas eficiente
41
1. Efecto horizonte
Provocado por limitar el estudio hasta profundidad fija
No se ve mas alla del horizonte
Un sucesor devuelve un valor (muy alto/bajo) que explorando
mas niveles sera corregido en sentido contrario
a corto plazo: buen movimiento
a largo plazo: pesimo
Ejemplo: Capturar dama en ajedrez
Parece muy bueno, pero dependiendo del movimiento del
contrincante (que no veremos) puede ser nefasto si el rey
queda descubierto.
Solucion: B
usqueda en profundidad variable
No parar siempre a la misma profundidad
Intentar llegar a posiciones en equilibrio
a) Seguir profundizando si la hoja ofrece un valor extermo
b) Profundizar por sucesores hasta que valor estatico y dinamico no varen mucho
dejar de profundizar cuando eval. dinamica ecal. estatica
42
3. Profundizaci
on iterativa
Usado en juegos con restricciones de tiempo
Ej.: ajedrez, elegir jugada antes de agotar tiempo
Idea:
a) Estudiar hasta profundiad p
b) Seleccionar mejor movimiento
c) Si hay tiempo, estudiar k niveles mas (prof. p + k)
d) Al final del tiempo ejecutar el movimiento identificado en la
b
usqueda completada mas profunda
Consumo de tempo y espacio ligeramente mayor
se reeval
ua el arbol en cada iteraci
on
Puede ser u
til para mejorar la poda
Usar resultados de la iteracion anterior para ordenar sucesores
adecuadamente
4. Aumento podas en
a) Uso movimientos asesinos (heurstica para ordenar sucesores)
Identificar tipos de jugadas muy buenas
Comenzar la evaluaci
on de sucesores empleando esos
movimientos
b) Reduccion ventana inicial
Comenzar b
usqueda con ventana mas peque
na (no [, +])
Aumenta podas en los niveles superiores
afectan a un mayor no de nodos
Problema: difcil ajustar ventana inicial
posibilidad de cortar el buen camino
en b
usq. iterativa, fijarla en base a resultados previos
43
44
P6
Nodo min
expectiM IN (A) =
P6
45
Bibliografa
Enlaces
AI-Search Algorithm Animation Project (RMIT University)
Applet que demuestra el funcionamiento de los algoritmos de busqueda estudiados en clase.
http://www.cs.rmit.edu.au/AI-Search/
46