Upload
luis-fisher
View
244
Download
0
Embed Size (px)
Citation preview
TEMA 2.Busqueda en Espacios de Estados
Francisco Jose Ribadas Pena
INTELIGENCIA ARTIFICIAL
5 Informatica
4 de octubre de 2004
– c©FJRP 2004 ccia ia –
2.1 Concepto de Espacio de estados.
Espacio de Estados: Formalimo para representar problemas.
ideas clave:
Abstraer problemas reduciendolos a un conjunto de estados y oper-
adores.
Resolver problema revisando posibles alternativas (¿todas?).
• analogıa con forma de actuar humanos
Estado:
• Representacion completa de la situacion del mundo/problema en
un momento dado
• Contiene toda la info. relevante (y nada mas)
Operador:
• Se suponen deterministas
◦ se sabe de antemano como sera el estado del mundo/problema
despues de aplicarlos
• Se suponen discretos
◦ no es relvante lo que “pasa” mientras se ejecutan
– c©FJRP 2004 ccia ia – 1
2.1.1 Caracterizacion de un ProblemaPROBLEMA = Terna de 3 componentes (I, O, M)
1. Estado/s inicial (I):
Descripcion de la situacion 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 caracterısticas del nuevo
estado al que se transita.
Pueden ser interpretados como reglas”: (patron + accion)
3. Conjunto de estados meta (M):
Estados del problema que satisfacen los requisitos para ser con-
siderados como soluciones.
Pueden expresarse en forma de lista de estados o como una fun-
cion booleana (prueba de meta) que basandose en las propiedades
de un estado indica si es meta o no.
(I) y (O) determinan el espacio de estados del problema.
• Conjunto de todos los posibles estados admisibles del problema.
BUSQUEDA DE SOLUCIONESsolucion: Secuencia ordenada de operadores (S ∈ O∗) que posibilita
transito desde estados iniciales (I) a finales (O).
Conseguir un ”plan de accion”que permita pasar de (I) a (M)
Objetivo: Encontrar la ”mejor”solucion (o una aceptable)
– c©FJRP 2004 ccia ia – 2
ESTRATEGIAS DE BUSQUEDA
Tambien estrategias de control o ”mecanismo de inferencia”
Secuencia de pasos a seguir para encontrar el conjunto de operadores
deseado.
• Estrategia es independiente del conocimiento.
• Estrategia debe de ser:
◦ sistematica y facilmente reproducible
◦ producir movimientos validos en el espacio de estados
◦ producir nuevos estados (para poder avanzar)
• Necesidad de estructuras adicionales.
◦ indicar cuando es aplicable un operador
◦ indicar cuando se ha utilizado un operador
◦ indicar cuando un operador produce un estado final
◦ indicar cuando un operador produce un estado no nuevo
◦ indicar si la solucion es aceptable
EJEMPLO: Representacion de problemas
Problema de las 2 jarras
– c©FJRP 2004 ccia ia – 3
2.1.2 Caracterısticas Generales Procesos de Busqueda
1. Direccion del proceso de busqueda: (2 opciones)
a) I −→M : de estados iniciales a finales
datos −→ objetivos
proceso dirigido por los datos (progresivo)
razonamiento hacia adelante
b) I ←−M : de estados finales a iniciales
hipotesis de trabajo −→ datos
proceso dirigido por los objetivos (evocativo)
razonamiento hacia atras
nota: necesidad definicion operadores inversos (si es posible)
Tambien es posible realizare busquedas bidireccionales.
Criterios de Seleccion:
Tamano relativo de conjuntos I y M .
• avazar de menos a mas estados
Factor de ramificacion
• def.: Promedio de estados que podemos alcanzar directamente
desde un estado previo.
• avanzar en la direccion con menor factor ramificacion
Justificacion del razonamiento/solucion
• Si se exige justificacion del resultado→ usar misma direccion
que usarıa experto humano
• Criterio mas importante en sistemas practicos.
– c©FJRP 2004 ccia ia – 4
2. Topologıa del Proceso de Busqueda
Dependiendo de la estructura que definan los operadores el
espacio de estados puede ser:
• Un arbol:
◦ mas sencillo de manejar
◦ mayor consumo memoria (estados duplicados, etc)
• Un grafo (con o sin ciclos):
◦ ahorro de memoria
◦ generacion mas compleja (comprobar existencia de estados)
Se iran construyendo a medida que el proceso de busqueda avanza
Ejemplos: Problema 2 jarras
3. Representacion del Problema
Tres aspectos a decidir (de cara a la implementacion)
• Representacion de los hechos, objetos y entidades que rele-
vantes en el dominio considerado
→ Representacion de Estados
• Representacion de las relaciones entre hechos, objetos y enti-
dades relevantes
→ Representacion de Operadores
• Representacion de las secuencias de estados surgidas durante
la busqueda
→ Representacion de Estrategias
Modulo Represent. del Conocimiento
representacion estadosrepresentacion operadores
+
Modulo de Control del Sistema
representacion estrategias
– c©FJRP 2004 ccia ia – 5
4. Criterios de Seleccion de Operadores Relevantes
a) Proceso de emparejamiento: decidir que operadores son aplicables
sobre un estado dado.
Determinar operadores cuyas precondiciones sean compatibles
con caracterısticas del estado considerado
Problema de correspondencia de patrones complejo
• pueden incluirse variables
Principal causa de la ”lentitud”de los sistemas de I.A.
b) Resolucion de conflictos de operadores.
def.: Conjunto Conflicto: Conjunto de operadores aplicables
resultantes del proceso de emparejamiento.
Resolucion de conflictos: eleccion del operador/es a aplicar
→ depende de/determina la estrategia de busqueda
Posibilidades:
• aplicar todos los operadores disponibles
• aplicar solo los operadores aun no utilizados
• aplicar solo operadores que emparejen con estados incorpo-
rados recientemente
• aplicar el operador mas especıfico (retrasar uso de los +
generales)
• aplicar un operador aleatorio
– c©FJRP 2004 ccia ia – 6
5. Optimizacion de Busqueda con Funciones Heurısticas
Uso de funciones (numericas) que indican lo buena o mala que
la eleccion de un nuevo operador.
Finalidad: ”dirigir”el proceso de busqueda
Se basan en conocimiento heurıstico, especıfico del problema,
derivado de la experiencia, difıcil de formalizar y explicar.
Estrategias ciegas:
• No usan info heurıstica
• Aplicables en cualquier dominio
• En general, menos eficientes (explosion combinatoria)
• Ejemplos:
◦ generar y comprobar
◦ busqueda en anchura
◦ busqueda en profundidad (prof. acotada y prof. iterativa)
Estrategias heurısticas o informadas:
• Usan informacion heurıstica especıfica del dominio.
• Disenados para problemas concretos
• Limitan explosion combinatoria
• No aseguran soluciones optimas (si ”aceptables”)
• Elemplos:
◦ ascenso a colinas
◦ mejor nodo
◦ A∗ y variantes
– c©FJRP 2004 ccia ia – 7
6. Criterios de Evaluacion
completitud : ¿Se garantiza o no que se va a encontrar una
solucion?
optimalidad : En caso de que existan varias soluciones, ¿se
encuentra la mejor (optima) o no?
complejidad :
• espacial : memoria necesaria para efectuar la busqueda
• temporal : tiempo necesario para efectuar la busqueda
• Estimaciones en el peor de los casos
• Especificadas en funcion de algun parametro del problema,
notacion O().
– c©FJRP 2004 ccia ia – 8
2.2 Busqueda No Informada
2.2.1 Generar y Comprobar
1. Generar caminos al azar, partiendo del estado inicial hasta agotarlos
2. Comprobar si son solucion
Poco util en la practica
Aplicable si
• espacio de estados en muy pequeno
• hay muchos estados objetivo
→ es posible encontrar alguno al azar
2.2.2 Busqueda en Anchura(a) FUNCIONAMIENTO
Recorrer arbol/grafo de busqueda en anchura
• expandir estado raız
• expandir todos sus sucesores
• expandir todos los sucesores de los sucesores .....
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
– c©FJRP 2004 ccia ia – 9
(b) ALGORITMOabiertos: Lista ordenada de nodos generados aun no expandidos (no
se han generado sus sucesores)
→ almacena nodos ”frontera”, en espera de ser expandidos
anadir estado inicial a abiertos
resuelto := falsewhile (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final thenresuelto := true
else/* expandir actual */for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
anadir nuevo estado al final de abiertos
end forend if
end while
abiertos: Funciona como una cola (fifo)
→ mayor profundidad al final de la lista
– c©FJRP 2004 ccia ia – 10
MEJORA: En espacios de estados con estructura de grafo evitar
examinar un estado en multiples ocasiones
Lista cerrados: Almacena estados ya examinados
Expandir solo estados que no parezcan en abiertos (ya generados)
ni en cerrados (ya examinados)
Tipos de estados
No generados: no aparecen en abiertos ni en cerrados
Generados no Examinados: en abiertos
Examinados no Expandidos: el estado actualExaminados: en cerrados
anadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := falsewhile (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final thenresuelto := true
elseanadir 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) thenanadir nuevo estado al final de abiertos
end ifend for
end ifend while
Incrementa el coste computacional
gestion de las listas
comprobacion pertenencia (inspeccionar abiertos y cerrados)
– c©FJRP 2004 ccia ia – 11
(c) CARACTERISTICAS BUSQUEDA EN ANCHURA
Es completa: Garantiza que se encuentra la solucion
• si esta existe
• si el espacio de busqueda es finito (sin ciclos)
Es optima: Siempre encuentra la solucion mas corta
• Se asegura que la solucion encontrada es la de menor profundidad
• nota: Si los operadores tienen asociado un coste, la solucion
menos profunda puede no ser la menos costosa.
Complejidad
• Dos factores
◦ b, factor de ramificacion: no promedio de estados generados
desde un estado dado
◦ p, profundidad estado objetivo: no mınimo de operadores nece-
sarios para alcanzar la solucion encontrada
• Complejidad espacial: O(bp)
• Complejidad temporal: O(bp)
• En el peor de los casos examina todos los nodos posible
• Complejidad exponencial: se saca 1 de abiertos y se anaden b
de media
Muy ineficaz (explosion combinatoria), sobre todo en requisitos de
espacio.
– c©FJRP 2004 ccia ia – 12
2.2.3 Busqueda en Profundidad(a) FUNCIONAMIENTO
Expandir un camino hasta llegar al final
Si no es solucion y no tiene expansion posible, volver a un nodo no
expandido del nivel anterior
Menor exigencia de memoria
• basta con almacenar los nodos de la ruta que se esta expandiendo
(b) ALGORITMO
anadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := falsewhile (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final thenresuelto := true
elseanadir 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) thenanadir nuevo estado al principio de abiertos
end ifend for
end ifend while
abiertos: Funciona como una pila (lifo)
→ nodos con mayor profundidad al principio
nota: este algoritmo almacena, ademas del camino explorado, el inicio de los caminos
sin explorar
– c©FJRP 2004 ccia ia – 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 volverıa atras
◦ si hay ciclos⇒ bucle infinito
◦ si espacio de estados es infinito
• Muy dependiente del orden de aplicacion de los operadores
No es optima: Encuentra una solucion (la primera que aparezca)
que no tiene por que ser la mejor (la mas cercana)
Complejidad
• Complejidad espacial: O(b×m)
◦ b, factor de ramificacion
◦ m, profundidad maxima de cualquier solucion
• Complejidad temporal: O(bm)
◦ si no hay solucion (o es el ultimo estado) examinara todos los
estados (como en anchura)
• En general, suele ser mas rapida que busqueda 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
◦ No asegura solucion optima
– c©FJRP 2004 ccia ia – 14
(d) VARIANTES
Profundidad Acotada
• Fijar un lımite maximo de profundidad (cota c)
◦ cuando un camino alcanza la profundidad c sin ser solucion,
desecharlo
• Es completo◦ Asegura encontrar solucion si c es mayor que la profundidad
de la solucion
• No asegura solucion optima• Complejidad: espacial (O(b× c)), temporal (O(bc))
• problema: eleccion cota c
◦ Pequena:
{ahorra tiempo y espacio
puede impedir encontrar solucion
◦ Grande:
{desperdicio tiempo y espacio
aumenta posibilidades de encontrar solucion◦ En general, no hay suficiente info. para elegir cota adecuada
• Ejemplo
– c©FJRP 2004 ccia ia – 15
Profundidad Iterativa
• Secuencia de busquedas por profundidad acotada, incrementando
el valor de la cota hasta encontrar solucion
• ventajas:
◦ Evita problema eleccion de la cota
◦ Es completa y optima� Siempre da una solucion (si la hay)
� Encuentra la mejor (a menor profundidad)
→ Agota todos los nodos bajo la cota c antes
de incrementarla
◦ Funcionamiento intermedio (anchura-profundidad)
◦ Uso de memoria reducido (como busqueda profundidad)
• inconvenientes:
◦ Repeticion de calculos
� No excesivamente importante (afecta principalmente a es-
tados en niveles superiores)
� Mayoria de nodos situados en niveles inferiores
– c©FJRP 2004 ccia ia – 16
2.3 Busqueda Heurıstica
2.3.1 Generalidades
Busqueda ciega: ineficaz en la practica (explosion combinatoria)
Busqueda heurıstica:
objetivo: guiar el proceso de busqueda
• ”Podar”el espacio de estados
Usar info. sobre la cercanıa de un estado dado a uno de los estados
objetivo
→ explorar primero caminos mas prometedores
caracterısticas :
• No garantiza que se vaya a encontrar la solucion
• Si la encuentra, no asegura que sea optima (mınimo coste)
• En ocasiones, encuentra solucion buena en tiempo aceptable
◦ pierden completitud y/o optimalidad
◦ aumentan eficiencia
FUNCIONES DE EVALUACION HEURISTICAS
Aglutinan el conocimiento del dominio sobre el que se apoyara la
decision
Asocian a cada estado, e, un numero, h(e), que indica lo promete-
dor, o no, que es ese nodo e de cara a alcanzar un estado objetivo
optimo.
Dos interpretaciones:
• Estiman la calidad”del estado e
⇒ buscar nodos con mayor valor heurıstico
• Estiman la ”prosimidad.a un estado final
⇒ buscar nodos con menor valor heurıstico
– c©FJRP 2004 ccia ia – 17
Ejemplos:
• 8-puzzle: no casillas bien colocadas (2o tipo)
• cubos: |cantidad en 8 l. - cantidad en 4 l.| (2o tipo)
• ajedrez: no piezas de ventaja (1er tipo)
Clasificacion:
• Heurısticas generales: adecuadas para multiples dominios
→ vecino mas proximo (”medir distancias”)
• Heurısticas de proposito especial: usan conocimiento exclusivo de
un dominio
heurısticas 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
– c©FJRP 2004 ccia ia – 18
2.3.2 Metodos de escalada o ascenso a colinas(a) FUNCIONAMIENTOFamilia de metodos de mejora iterativa.
idea: Elegir, en cada paso, uno de los descendientes del estado actual
que mejore el valor heurıstico de su padre
mejor = mas alto⇒ ascenso a colinas
mejor = mas bajo⇒ descenso de gradiente
Dos variantes:
1. Escalada simple:
Generar hijos 1 a 1, calculando su valor heurıstico
El primer hijo que sea mejor que estado actual pasa a ser
nuevo estado estado actual
2. Escalada por maxima pendiente:
Generar todos los hijos y calcular su valor heurıstico
Tomar al mejor hijo
• Si es mejor o igual que estado actual⇒ pasa a ser nuevo
estado actual
• Si no, detener algoritmo
Ejemplos:
Espacio de estados Escalada Simple Maxima Pendiente
– c©FJRP 2004 ccia ia – 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 maximo local es un estado mejor que cualquier otro
estado vecino, pro peor que otros mas lejanos
• El algoritmo para sin dar solucion
Mesetas: todos los hijos tienen mismo valor heurıstico que padre
• def.: Una meseta es una region del espacio de estados donde
todos los estados tienen el mismo valor heurıstico
• El algoritmo para sin dar solucion
• Si sigue, la heurıstica no informa⇒ busqueda ciega
– c©FJRP 2004 ccia ia – 20
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 heurıstico que los colindantes, pero a los que
no se puede llegar por transiciones simples (usando un unico
operador)
soluciones :
Reiniciar toda o parte de la buqueda
Dar un paso mas→ generar sucesores de sucesores y ”ver que pasa”
Max. locales: Volver a un nodo anterior y provar direccion distinta
Mesetas: Hacer un ”salto”grande, para ”salir”de la meseta
– c©FJRP 2004 ccia ia – 21
2.3.3 Metodo del mejor nodo (primero el mejor)(a) FUNCIONAMIENTOidea: Considerar todos los estados frontera, no solo los sucesores del
estado actual
Mantener lista abiertos (nodos no expandidos) ordenada por los
valores de la heurıstica de los estado
Intenta combinar anchura y profundidad, guiado por la heurıstica
• 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) ALGORITMOanadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := falsewhile (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final thenresuelto := true
elseanadir actual a cerrados
/* expandir actual */for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
calcular su heurıstica h(nuevo estado)
if (nuevo estado no en abiertos o cerrados)
or (esta con peor heurıtica) thenanadir nuevo estado en abiertos
ordenar abiertos por valor heurıstico
end ifend for
end ifend while
– c©FJRP 2004 ccia ia – 22
Ejemplo:
(c) CARACTERISTICAS BUSQUEDA MEJOR NODO
Complejidad
• Temporal: O(bm)
• Espacial: O(bm)
• m= profundidad de la solucion mas lejana
• En el peor de los casos hay que recorrer todos los estados
Es completo: si hay solucion la encuentra, siempre que la heurıstica
funcione bien
No es optimo: puede no dar la solucion mas cercana (ejemplo
anterior)
• En esencia, sigue siendo un procedimento de busqueda en pro-
fundidad
• Da la primera solucion que encuentra
– c©FJRP 2004 ccia ia – 23
2.3.4 Algoritmo A∗(a) FUNCIONAMIENTOFamilia de algoritmos (Hart, Nilsson, Raphael (1968))
objetivo: Mejorar metodo del mejor nodo para asegurar completitud
y optimalidad.
Incorpora la longitud del camino desde la raız 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
Funcion de evaluacion A∗
f(e) = g(e) + h(e)
g(e): costo del mejor camino desde estado inicial al estado e
h(e): estimacion (heurıstica) del coste desde e hasta un estado final
optimo
f(e): costo estimado de la mejor solucion que pasa por el estado e
h∗(e)
g∗(e) = g(e)
f∗(e) = g∗(e) + h∗(e)
costes reales
conocidos cuando termina
el algoritmo
– c©FJRP 2004 ccia ia – 24
(b) ALGORITMO
Version Ampliada
para manejar grafos
con traza de los caminos (enlace al padre)
abiertos ordenada por el valor de f(e)
anadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := falsewhile (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos /*mejor valor f(e)*/
if actual es estado final thenresuelto := true
elseanadir actual a cerrados
for all (operador aplicable a actual) dogenerar sucesor aplicando operador (1)
if (sucesor en abiertos con peor g(e)) thencambiar padre del nodo en abiertos
establecer sus nuevas g(e) y f(e)
end ifif (sucesor en cerrados con peor g(e)) then
cambiar padre del nodo en cerrados
establecer sus nuevas g(e) y f(e)
propagar nueva g(e) a sus
descendientes en abiertos y cerrados
end ifif (sucesor no en abiertos ni en cerrados) then
insertar sucesor en abiertos
end ifreordenar abiertos si es necesario
end forend if
end while
– c©FJRP 2004 ccia ia – 25
(1) Generar sucesor():
sucesor.estado := aplicar operador
sucesor.padre := actual
sucesor.g := actual.g + coste(operador[actual→ sucesor])
sucesor.f := sucesor.g + h(sucesor.estado)
nota:
Si
{h(e) = 0
g(e) = profundidad(e)
}⇒ Busqueda en anchura
Si
{h(e) = 0
g(e) = 0)
}⇒ Busqueda aleatoria
– c©FJRP 2004 ccia ia – 26
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 heurıstica admisible
Heurıstica Admisible:
Diremos que h(e) es una heurıstica admisible si nunca sobrees-
tima el coste real desde e hasta un estado meta optimo.
Es decir, h(e) ≤ h∗(e) ∀e
conclusion: Si h(e) es admisible ⇒ f(e) tampoco sobreestima el
coste real de la mejor solucion que pase por el estado e.
f(e) ≤ f ∗ (e)
Complejidad
{espacial: O(bp)
temporal: O(bp)
b = factor ramificacion, p = profundidad solucion
En el peor de los casos (h(e) = 0) sigue siendo necesario recorrer
todo el arbol
En caso promedio:
• El consumo de memoria sigue siendo alto
◦ almacenamiento de todos los estados visitados y los pendientes
de visitar
• Tiempo promedio aceptable (mejora busqueda en profundidad)
– c©FJRP 2004 ccia ia – 27
(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 busqueda
◦ 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 profundizacion iterativa
• Busqueda por profundizacion iterativa controlada por la funcion
de evaluacion A∗◦ f(e) = g(e) + h(e)
◦ nota: en principio, no comprueba estados repetidos
• objetivo: reducir necesidades de memoria
• Lımite 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
A*SRM: A∗ acotado por memoria
• Trabajo con memoria limitada
• idea: limitar la cantidad de memoria disponible
◦ Usa toda la meoria de la que se dispone
◦ Mientras hay memoria funcionamiento normal, evitando esta-
dos repetidos
◦ Si al generar un sucesor falta memoria, libera el espacio de los
estados menos prometedores
◦ Sigue manteniendo traza de la ”bondad”de esos estados
desechados
– c©FJRP 2004 ccia ia – 28
2.3.4 Heurısticas
(1) CONSTRUCCION DE HEURISTICAS
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 de coste en problema
relajado”
• Usar coste de la solucion del problema relajadocomo heurıstica
del problema original
• Suele generar heurısticas admisible
• Ejemplo: 8-puzzle
◦ h1: no de placas en lugar correcto
� no de pasos si se permite mover el hueco a cualquier lugar
◦ h2: ”distancia manhatan” (suma distancia vertical y hori-
zontal entre posicion actual de cada placa y la deseada)
� no de pasos si se permite mover placas en cualquier direccion indepen-
dientemente del hueco
– c©FJRP 2004 ccia ia – 29
2. Ponderacion de rasgos
• Tomar un conjunto de caracterısticas 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 estadıstico previo
• Partir de una heurıstica preliminar h(e) y realizar busquedas
de entrenamiento
• Relacionar los valores de h(e) con los costes reales obtenidos
en cada caso
◦ corregir cada valor de h(e) usando el valor real obtenido
con mas frecuencia en el ”entrenamiento”
4. Combinacion de heurısticas
• Combinar heurısticas distintas que funcionen bien solo en
ciertas circunstancias
◦ aprovechar heurısticas ”parcialmente”utiles
• Ponderandolas: h′(e) = w1 × h1(e) + w2 × h2(e) + ... +
wn × hn(e)
• Agregandolas:
h′(e) = max{h1(e), h2(e), ...,×hn(e)}h′(e) = min{h1(e), h2(e), ...,×hn(e)}h′(e) = media{h1(e), h2(e), ...,×hn(e)}
◦ Si todas son admisibles, la agregada tambien lo es
– c©FJRP 2004 ccia ia – 30
(2) EVALUACION Y COMPARACION DE HEURISTICAS
En general:
Si h2(e) ≥ h1(e) ∀e (al reves si se maximiza h(e)) se dice que
h2(e) domina a h1(e)
• con h2(e) se generaran menos estados
→ aproxima mas h∗(e) (h∗(e) ≥ h2(e) ≥ h1(e))
• peor no asegura ofrecer una solucion mejor
Criterios de comparacion
1. No de estados generados (tamano arbol/grafo)
• depende del problema de busqueda concreto
• varıan con las entradas (estados inicial y finales)
2. Factor de ramificacion efectivo (b)
• Metrica artificial
◦ depende solo de la heurıstica
◦ relativamente constante en distintas busquedas
◦ interesa que este proximo a 1
N : no de nodos expandidos
p: profundidad de la solucion encontrada
b: factor de ramificacion de un arbol uniforme (no de hijos
constante) de profundidad p que contenga N nodos
Se cumple:
N = 1 + b + b2+ +b
3+ ... + b
p
¿despejar b?
– c©FJRP 2004 ccia ia – 31
2.4 Busqueda en Juegos
2.4.1 GeneralidadesINTERES DE LOS JUEGOS
Faciles de formalizar
• Facil representacion de estados
• Acciones restringidas (reglas precisas)
• Evaluacion de eficacia directa
Mayor complejidad
• Existe oponente
◦ elemento externo que interactua
◦ introduce incertidumbre
• Futuro no predecible
• Alto factor de ramificacion
MODELIZACION: Juegos de 2 jugadores con informacion completa
Contrincantes conocen la situacion del juego y su oponente
• posibles movimientos + movimiento efectuado
• resultado del movimiento
• no se conoce estrategia del contrincante
No interviene el azar
Se puede determinar en todo momento:
victoria
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)
– c©FJRP 2004 ccia ia – 32
FORMALIZACION.
estado (posicion) incial : posicion 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 fi-
nales)
• victoria, empate, derrota
funcion de utilidad : asigna valor numerico a resultado del juego
• si no aplicada sobre posiciones finales: funcion de evaluacion
TECNICA DE REPRESENTACION: Arboles alternados
Representacion explıcita 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 basico:
1. Generar arbol alternado para tablero actual
2. Buscar mejor primer movimiento (inicio camino victorioso)
3. Ejecutar movimiento
4. ”Percibir”que hace el contrincante
En la practica: Inabordable construir arbol completo
• 3 en raya: 9! 360000 nodos
• damas: ≈ 1040 nodos
• ajedrez: ≈ 10120 nodos (factor ramific. medio ≈ 25)
• Si es posible
{en juegos pequenos
en secuencias finales
– c©FJRP 2004 ccia ia – 33
APROXIMACION PRACTICA
Limitar profundidad de la busqueda (fijar horizonte limitado)
Aplicar funcion evaluacion (heurıstica) sobre nodos hoja resultantes
• Convencion :
{valores altos(positivos)→ posiciones favorables
valores bajos(negativos)→ posiciones desfavorables
– c©FJRP 2004 ccia ia – 34
2.4.2 Procedimiento MINIMAX
Tecnica mixta: combina busqueda + evaluacion
Jugador max: maximiza valores de evaluacion de sus sucesores
Jugador min: minimiza valores de evaluacion de sus sucesores
Objetivo: que max sea el ganador
max hace primer movimiento
• nodos en niveles pares: turno max
• nodos en niveles impares: turno min
nota:
capa = jugada (1 nivel del arbol)
profundidad = pares de capas (grupos de 2 movtos. [min+max])• nodos de prof. k = nodos max en capa 2k + nodos min en capa 2k + 1
nodo raiz (max) en capa 0 y prof. 0
Metodo MINIMAX
Busqueda recursiva en profundidad acotada (p = profund. maxima)
• Raız: nodo max
• Sucesores nodo max: nodos min
• Sucesores nodo min: nodos max
Final recursividad:
gana algun jugador
alcanza posicion de empate
se han expandido 2p capas
Funcionamiento:
• Nodo raız: se corresponde con la posicion actual del juego
• Aplica funcion evaluacion sobre nodos hoja y propaga valores
hasta nodo raız
• Devuelve un ”buen”primer movimiento para max
◦ Selecciona movimiento que genera el sucesor mas prometedor
– c©FJRP 2004 ccia ia – 35
Suposicion de partida: Estrategia conservadora
• min elegira siempre la mejor jugada para el (peor para max)
◦ min es, al menos, tan inteligente como max
◦ Sabe evaluar tan bien como max→ usan misma func. evaluac.
Valor minimax: evaluacion de la bondad de una posicion
• en hojas: funcion de evaluacion estatica
• nodos intermedios: calculado a partir de los valores de sus suce-
sores
Funcion evaluacion hojas:
valor positivo: favorable a max
(+∞ si posicion ganadora)
valor negativo: favorable a min
(+∞ si posicion ganadora)
empate: devuelve 0
PASOS:
1. Expandir en profundidad hasta nivel maximo (o no expansion posible)
2. Evaluar nodos hoja (aplicar func. evaluacion)
3. En cada nivel se propagan evaluaciones hacia atras
Si es nodo max: tomar maximo valor de sus sucesores
Si es nodo min: tomar mınimo valor de sus sucesores
4. En nodo raız: ejecutar movto. que lleve al sucesor con mejor valor
5. Esperar respuesta adversario y volver a (1) con nueva posicion actual
mejor accion: Accion con evaluacion mas alta, suponiendo que
adversario elegira en el futuro las mejores opciones para el.
Mas precisa la evaluacion propagada usando minimax que la obteni-
da aplicando la funcion de evaluacion 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 opcion que mas le
conviene (la de menor valor)
• Se supone tan inteligenete como max
– c©FJRP 2004 ccia ia – 36
Punto clave: Definir una buena funcion de evaluacion
Ejemplo: juego de damas de Samuel
• funcion ponderada de 16 caracterısticas
• aprendizaje automatico de los pesos
ALGORITMO RECURSIVO
MINIMAX(posicion, nivel)
/* casos base */if (esGanador(posicion)) then
devolver +∞else if (esPerdedor(posicion)) then
devolver −∞else if (esEmpate(posicion)) then
devolver 0
else if (nivel = limite) thendevolver evaluacion(posicion)
else/* caso recursivo */for all sucesor i de posicion do
valores[i] := MINIMAX(sucesor i, nivel+1)
if (esNodoMAX(nivel)) thendevolver maximo(valores)
end ifif (esNodoMIN(nivel)) then
devolver minimo(valores)
end ifend for
end if
Llamada inicial: MINIMAX(posionActual, 0)
– c©FJRP 2004 ccia ia – 37
Ejemplo: TIC-TAC-TOE
max: ”X”, min: .O”
Funcion evaluacion:
+∞ si gana max
−∞ si gana min
(abiertos(max)− abiertos(min)) en otro caso
• abiertos(A) = no filas/columnas/diagonales donde A puede ganar
→ no lıneas sin ficha del contrario
abiertos(A) = 8−no filas/colums./diags. ocupadas por contrario
Expansion hasta prof. 1 (2 niveles)
→ no se muestran posiciones simetricas
– c©FJRP 2004 ccia ia – 38
2.4.3 Poda ALFA-BETA
minimax separa generacion de nodos y evaluacion de posiciones
1o genera todo el arbol, despues evalua y propaga
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
Necesidad de ”arrastrar” informacion adicional
Poda α− β
idea: Arrastrar una ventana (2 valores) indicando a que intervalo debe
de pertener los valores de evaluacion para ser considerados
Evita expandir posiciones que no mejoraran los resultados actuales
En cada nodo n:
• valor α: cota inferior (al menos se han conseguido α puntos)
• valor β: cota superior (como mucho se han conseguido β puntos)
Inicialmente:
{α = −∞β = +∞
Cada nodo recibe los mejores valores de α y β obtenidos hasta el
momento y los actualiza con los que le devuelvan sus hijos
• En determinados casos, podra decidir dejar de evaluar sus hijos
(poda )
– c©FJRP 2004 ccia ia – 39
Actualizacion de valores α y β hacia atras
• Nodos min: actualizan valor de β◦ Toman el menor valor de sus sucesores y actualizan β si los
sucesores lo mejoran
Si α− βsucesor < β ⇒ β = α− βsucesor
◦ Valores β en nodos min nunca crecen
• Nodos max: actualizan valor de α◦ Toman el mayor valor de sus sucesores y actualizan α si los
sucesores lo mejoran
Si α− βsucesor > α⇒ α = α− βsucesor
◦ Valores α en nodos max nunca decrecen
CORTESSe suspende la expansion de los sucesores de un nodo en los siguientes
casos:
1. Corte α (en nodos min)
Si nodo min alcanza un valor β menor o igual que el valor
α que llego de un nodo max anterior ⇒ No es necesario
seguir estudiando sus sucesores.
condicion: β ≤ αpadre
Ejemplo:
2. Corte β (en nodos max)
Si nodo max alcanza un valor α mayor o igual que el
valor β que llego de un nodo min anterior⇒ No es necesario
seguir estudiando sus sucesores.
condicion: α ≥ βpadre
Ejemplo:
– c©FJRP 2004 ccia ia – 40
ALPHA BETA(posicion, α, β, nivel)
if (esGanador(posicion)) then devolver +∞ thenelse if (esPerdedor(posicion)) then devolver −∞ thenelse if (esEmpate(posicion)) then devolver 0 thenelse if (nivel = limite) then devolver evaluacion(posicion) thenelse/* caso recursivo */if (esNodoMAX(nivel)) then
αactual := α
for all sucesor i de posicion doif (αactual ≥ β) then
PARAR /* poda BETA */else
aux := ALFA BETA(sucesor i, αactual, β, nivel+1)
αactual := maximo(αactual, aux)
end ifend fordevolver αactual
else if (esNodoMIN(nivel)) thenβactual := β
for all sucesor i de posicion doif (βactual ≤ α) then
PARAR /* poda ALFA */else
aux := ALFA BETA(sucesor i, α, βactual, nivel+1)
βactual := minimo(βactual, aux)
end ifend fordevolver βactual
end ifend if
Llamada inicial: ALFA BETA(posionActual, −∞, +∞, 0)
– c©FJRP 2004 ccia ia – 41
PROPIEDADES
Algoritmo α − β generara el mismo movimiento que miimax ex-
pandiendo menos nodos
• Mismo resultado, obtenido de forma mas eficiente
Efectividad de α−β depende mucho del orden en que se examinan
los descendientes
• Si se examinan primero los peores caminos, nunca habra cortes
• Interesa ordenar a los sucesores
Situacion ideal:
• En nodos min: examinar primero sucesores con menor valor
• En nodos max: examinar primero sucesores con mayor valor
En la practica no es posible ordenacion perfecta
→ usar una func. evaluacion simple para preordenar sucesores
En el caso ideal (ordenacion perfecta)
• minimax explora O(bd) nodos
• α− β explora O(bd/2) nodos
Con b=factor de ramificacion y d= prof. busqueda maxima
• Es decir, suponiendo ordenacion perfecta, α−β permitirıa alcan-
zar el doble de profundidad que minimax empleando el mismo
espacio y tiempo
– c©FJRP 2004 ccia ia – 42
2.4.4 Mejoras minimax y alfa beta
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 serıa 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: Busqueda 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 dinami-
co no varıen mucho
2. Uso movimientos de libro
Consultar posicion actual en un catalogo construido previamente
y recuperar el movimiento guardado.
Imposible construir y manejar para juegos completos
Razonable en ciertas fases del juego: apertura y final
– c©FJRP 2004 ccia ia – 43
3. Profundizacion 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
busqueda completada mas profunda
Consumo de tempo y espacio ligeramente mayor
→ se reevalua el arbol en cada iteracion
Puede ser util para mejorar la poda α− β
• Usar resultados de la iteracion anterior para ordenar sucesores
adecuadamente
4. Aumento podas en α− β
a) Uso movimientos asesinos
Identificar tipos de jugadas muy buenas
Comenzar la evaluacion de sucesores empleando esos
movimientos
b) Reduccion ventana inicial
Comenzar busqueda con ventana mas pequena (no [−∞, +∞])
Aumenta podas en los niveles superiores
→ afectan a un mayor no de nodos
Problema: difıcil ajustar ventana inicial
→ posibilidad “cortar” el buen camino
– c©FJRP 2004 ccia ia – 44
2.4.5 Juegos con Elementos de Azar
Ejemplos: backgamon, juegos de cartas, juegos con dados
Idea: Incluir una capa adicional representando al elemento aleatorio
Funciona como un ”jugador”mas
EJEMPLO: Inclusion de un dado
• El movimiento del jugador depende del resultado de la tirada del
dado
→ ejemplo: parchis
• Incluir jugador ”dado ”
• Se supone resultados del lanzamiento equiprobables
• Sucesores de dado
◦ Se corresponden con las opciones del elemento aleatorio
◦ Se asocia una probabilidad de aparicion a cada uno
– c©FJRP 2004 ccia ia – 45
• La propagacion ascendente de valores tiene en cuenta esas prob-
abilidades
• Nodos aleatorios: propagan un valor esperado (no real) de sus
sucesores
• Alternativas:
◦ Propagar peor valor (opcion conservadora)
◦ Propagar mejor valor (opcion optimista)
◦ Propagar media ponderada de acuerdo probabilidades
Nodo aleatorio padre de nodos max
expectimax(A) =∑6
i=1 probi ×maximo{sucesoresdadoi}
(sucesores son max )
Nodo aleatorio padre de nodos min
expectimin(A) =∑6
i=1 probi ×minimo{sucesoresdadoi}
(sucesores son min )
Inconvenientes: introducir movimientos de azar incrementa espacio
de busqueda
• anadir una capa adicional en cada jugada
• con un alto factor de ramificacion
– c©FJRP 2004 ccia ia – 46
Bibliografıa
Russell S., Norvig P.:Inteligencia artificial. Un enfoque moderno
Capıtulos 3, 4, 5.
Nilsson N.:Inteligencia artificial. Una nueva sıntesis
Capıtulos 7, 8, 9, 12
Enlaces
AI-Search Algorithm Animation Project (RMIT University)Applet que demuestra el funcionamiento de los algoritmos de busque-
da estudiados en clase.
http://www.cs.rmit.edu.au/AI-Search/
– c©FJRP 2004 ccia ia – 47