Вы находитесь на странице: 1из 47

TEMA 2.

B usqueda en Espacios de Estados


Francisco Jose Ribadas Pena
INTELIGENCIA ARTIFICIAL
5 Informatica
ribadas@uvigo.es
26 de septiembre de 2012
FJRP ccia [Inteligencia Articial]
2.1 Concepto de Espacio de estados.
Espacio de Estados: Formalimo para representar problemas.
ideas clave:
1. Abstraer problemas reduciendolos a un conjunto de estados y oper-
adores.
2. Resolver problema revisando posibles alternativas (todas?).
analoga con forma de actuar de los humanos
Estado:
Representacion completa de la situacion del mundo/problema en
un momento dado
Contiene toda la informacion relevante (y nada mas)
Operador:
Transforman un estado en otro
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
FJRP ccia [Inteligencia Articial] 1
2.1.1 Caracterizacion de un Problema
PROBLEMA = 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
n 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.
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.
B

USQUEDA DE SOLUCIONES
soluci

on: Secuencia ordenada de operadores (S O

) que posibilita
el transito desde estados iniciales (I) a nales (O).
Conseguir un plan de accion que permita pasar de (I) a (M)
Objetivo: Encontrar la mejor solucion (o una aceptable)
Nota: en ocasiones basta con conocer las caractersticas de un estado nal (no el
camino para alcanzarlo)
b usqueda sirve para saber como sera ese estado meta
FJRP ccia [Inteligencia Articial] 2
ESTRATEGIAS DE B

USQUEDA
Tambien estrategias de control o mecanismo de inferencia
Como recorrer el espacio de estados?
Secuencia de pasos a seguir para encontrar el conjunto de operadores
deseado.
Estrategia es independiente del conocimiento.
no dependende de la informacion en estados u operadores
Estrategia debe de ser:
sistematica y facilmente reproducible
producir movimientos validos en el espacio de estados
no debe salir del 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 nal
indicar cuando un operador produce un estado no nuevo
indicar si la solucion es aceptable
EJEMPLO: Representacion de problemas
Problema de las 2 jarras
FJRP ccia [Inteligencia Articial] 3
2.1.2 Caractersticas Generales Procesos de B usqueda
1. Direccion del proceso de b usqueda: (2 opciones)
a) I M: de estados iniciales a nales
datos objetivos
proceso dirigido por los datos (progresivo)
razonamiento hacia adelante
emparejar descripcion del estado con las precondiciones
b) I M: de estados nales a iniciales
hip

otesis de trabajo datos


proceso dirigido por los objetivos (evocativo)
razonamiento hacia atras
emparejar descripcion del estado con las postcondiciones
nota: necesario denir operadores inversos (si es posible)
Tambien es posible realizar b usquedas bidireccionales.
Criterios de Seleccion:
Tama no relativo de conjuntos I y M.
avazar de menos a m

as estados
Factor de ramicacion
def.: Promedio de estados que podemos alcanzar directamente
desde un estado previo.
avanzar en la direccion con menor factor ramicacion (menos
alternativas)
Justicacion del razonamiento/solucion
Si se exige justicacion del resultado usar misma direccion
que usara experto humano (naturalidad)
Criterio mas importante en sistemas practicos.
FJRP ccia [Inteligencia Articial] 4
2. Topologa del Proceso de B usqueda
Dependiendo de la estructura que denan 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 b usqueda avanza
nota: siempre se podra recorrer un grafo como si fuera un arbol, a costa de
repetir estados y procesamiento
Ejemplos: Problema 2 jarras
Importante: nodo [estructura de datos] = estado [representacion del problema]
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 b usqueda
Representacion de Estrategias (info. de control que es usada)

Modulo Represent. Conocimiento


representacion estados
representacion operadores

Modulo de Control del Sistema


representacion estrategias

FJRP ccia [Inteligencia Articial] 5


4. Criterios de Seleccion de Operadores Relevantes
a) Proceso de emparejamiento: decidir que operadores son aplica-
bles sobre un estado dado.
Determinar operadores cuyas precondiciones sean compatibles
con caractersticas del estado considerado [o postcondiciones en
estrategias I M]
Problema de correspondencia de patrones complejo
pueden incluirse variables
Principal causa de la lentitud de los sistemas de I.A.
b) Resolucion de conictos de operadores.
def.: Conjunto Conicto: Conjunto de operadores aplicables
resultantes del proceso de emparejamiento.
Resolucion de conictos: eleccion del operador/es a aplicar
depende de/determina la estrategia de b usqueda
Posibilidades:
aplicar todos los operadores disponibles ( anchura)
aplicar solo los operadores a un no utilizados
aplicar solo operadores que emparejen con estados incorpo-
rados recientemente
aplicar el operador mas especco (retrasar uso de los +
generales)
mas especco con mas condiciones
reduce el factor e ramicacion
aplicar un operador aleatorio
FJRP ccia [Inteligencia Articial] 6
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, especco 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 ecientes (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 especca 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
FJRP ccia [Inteligencia Articial] 7
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 n
o
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
Especicadas en funcion de alg un parametro del problema,
notacion O().
FJRP ccia [Inteligencia Articial] 8
2.2 B usqueda No Informada
2.2.1 Generar y Comprobar
1. Generar caminos al azar, partiendo del estado inicial hasta agotarlos
2. Comprobar si son solucion
si no son solucion, repetir
Poco util en la practica
Aplicable si
espacio de estados en muy peque no
hay muchos estados objetivo
es posible encontrar alguno al azar
Propiedades:
NO es COMPLETO (puede entrar en bucles [espacio de estados es un grafo])
NO es OPTIMO (da la 1
a
solucion que encuentra)
Complejidad Temporal: exponencial
Complejidad Espacial: O(1) (solo almacena el nodo/estado actual)
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
FJRP ccia [Inteligencia Articial] 9
(b) ALGORITMO
abiertos: Lista ordenada de nodos generados a un no expandidos (a un
no se ha comprobado si son solucion, 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 nal de abiertos
end for
end if
end while
abiertos: Funciona como una cola (fifo)
mayor profundidad al nal de la lista
FJRP ccia [Inteligencia Articial] 10
MEJORA: En espacios de estados con estructura de grafo, evitar
examinar un estado en m ultiples ocasiones
Lista cerrados: Almacena estados ya examinados y expandidos
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 actual
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 nal de abiertos
end if
end for
end if
end while
Incrementa el coste computacional
gestion de las listas
comprobacion pertenencia (inspeccionar abiertos y cerrados)
CERRADOS puede implementarse como una tabla Hash (acceso directo)
Inconveniente: coste de espacio (CERRADOS crece exponencialmente)
FJRP ccia [Inteligencia Articial] 11
(c) CARACTER

ISTICAS B

USQUEDA EN ANCHURA
Es completa: Garantiza que se encuentra la solucion (si esta existe)
tanto en arboles como en grafos (incluso con ciclos)
Es optima: Siempre encuentra la solucion 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
nota: Si los operadores tienen asociado un coste, la solucion
menos profunda puede no ser la menos costosa.
Complejidad
Dos factores
b, factor de ramicacion: n
o
promedio de estados generados
desde un estado dado
p, profundidad estado objetivo: n
o
mnimo de operadores nece-
sarios para alcanzar la solucion encontrada
Complejidad espacial: O(b
p
) ( tama no lista ABIERTOS)
Complejidad temporal: O(b
p
) (n
o
iteraciones bucle / comprobaciones
si es estado nal)
En el peor de los casos examina todos los nodos posible
Complejidad exponencial: se saca 1 de abiertos y se a naden b
de media
Muy inecaz (explosion combinatoria), sobre todo en requisitos de
espacio.
FJRP ccia [Inteligencia Articial] 12
2.2.3 B usqueda en Profundidad
(a) FUNCIONAMIENTO
Expandir un camino hasta llegar al nal (no hay sucecores)
Si no es solucion y no tiene expansion posible, volver a un nodo no
expandido del nivel anterior
da preferencia a los nodos/esatdos mas profundos
Menor exigencia de memoria
basta con almacenar los nodos de la ruta que se esta expandiendo
(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
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 principio de abiertos
end if
end for
end if
end while
abiertos: Funciona como una pila (lifo)
nodos con mayor profundidad al principio
nota: este pseudocodigo almacena, ademas del camino explorado, el inicio de los
caminos sin explorar
FJRP ccia [Inteligencia Articial] 13
(c) CARACTER

ISTICAS B

USQUEDA EN PROFUNDIDAD
No es completa: Puede no acabar nunca si encuentra una rama sin
n en el espacio de estados
En ciertos casos nunca se volvera atras
si hay ciclos bucle innito [si no se usa CERRADOS]
si espacio de estados es innito (ramas con n
o
sucesores innito)
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) [sin usar CERRADOS]
b, factor de ramicacion
m, profundidad maxima de cualquier solucion
Complejidad temporal: O(b
m
) (en el peor caso)
si no hay solucion (o es el ultimo 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 nales
ventajas:
Menores requisitos de memoria
Mayor rapidez (en promedio)
inconvenientes:
Posibilidad de que se estanque y no termine
No asegura solucion optima
FJRP ccia [Inteligencia Articial] 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
Complejidad: espacial (O(b c)), temporal (O(b
c
))
problema: eleccion cota c
Peque na:

ahorra tiempo y espacio


puede impedir encontrar solucion
Grande:

desperdicio tiempo y espacio


aumenta posibilidades de encontrar solucion
En general, no hay suciente info. para elegir cota adecuada
Ejemplo
FJRP ccia [Inteligencia Articial] 15
Profundidad Iterativa
Secuencia de b usquedas 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) [si los incrementos
son de 1 en 1]
siempre que la cota c se incremente de 1 en 1
agota todos los nodos bajo la cota c antes de incrementarla
Funcionamiento intermedio entre anchura y profundidad
como anchura: es completo y optimo
como profundidad: requisitos de memoria contenidos
Uso de memoria reducido (como b usqueda profundidad)
inconvenientes:
Repeticion de calculos
No excesivamente importante (afecta principalmente a es-
tados en niveles superiores)
Mayoria de nodos situados en niveles inferiores
FJRP ccia [Inteligencia Articial] 16
2.3 B usqueda Heurstica
2.3.1 Generalidades
B usqueda ciega: inecaz en la practica (explosion 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
caracter

sticas :
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 eciencia
FUNCIONES DE EVALUACI

ON HEUR

ISTICAS
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 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 primero por nodos con mayor valor heurstico
Estiman la proximidad a un estado nal
buscar primero por nodos con menor valor heurstico
FJRP ccia [Inteligencia Articial] 17
Ejemplos:
8-puzzle: n
o
casillas mal colocadas (2
o
tipo)
cubos: |cantidad en 8 l. - 4 | (2
o
tipo)
ajedrez: n
o
piezas de ventaja (1
er
tipo)
Clasicacion:
Heursticas generales: adecuadas para m ultiples dominios
vecino mas proximo (medir distancias)
Heursticas de proposito especial: usan conocimiento exclusivo de
un dominio particular
heur

sticas bien fundadas


1. Si estiman la calidad:
h(e) esta bien fundada si los estados nales tienen el
valor maximo posible. (estado inicial suele tener valor 0)
2. Si estiman la distancia:
h(e) esta bien fundada si los estados nales tienen el valor 0
FJRP ccia [Inteligencia Articial] 18
2.3.2 Metodos 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
Eleccion local: solo toma en consideracion 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
2. Escalada por m

axima pendiente:
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 Maxima Pendiente
FJRP ccia [Inteligencia Articial] 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, 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 unico
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 direccion distinta
Mesetas: Hacer un salto grande, para salir de la meseta
FJRP ccia [Inteligencia Articial] 20
2.3.3 Metodo del mejor nodo (primero el mejor)
(a) FUNCIONAMIENTO
idea: Considerar todos los estados frontera, no solo 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
FJRP ccia [Inteligencia Articial] 21
Ejemplo:
(c) CARACTER

ISTICAS B

USQUEDA MEJOR NODO


Complejidad
Temporal: O(b
m
)
Espacial: O(b
m
)
m= profundidad de la solucion mas lejana
En el peor de los casos (h(e) = constante, no informa) hay
que recorrer todos los estados
No es completo: mismas debilidades que profundidad (vulnerable a
bucles y ramas innitas)
No es optimo: puede no dar la solucion mas cercana (ejemplo
anterior)
En esencia, sigue siendo un procedimento de b usqueda en pro-
fundidad
Da la primera solucion que encuentra
Normalmente suele dar buenas soluciones (aceptables)
FJRP ccia [Inteligencia Articial] 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
Funcion de evaluacion A
f(e) = g(e) + h(e)
g(e): coste real del mejor camino desde estado inicial al estado e
h(e): estimacion (heurstica) del coste desde e hasta un estado nal
optimo
f(e): coste 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 de b usqueda
FJRP ccia [Inteligencia Articial] 23
(b) ALGORITMO
Version Ampliada

para manejar grafos


con traza de los caminos (enlace al padre)
abiertos ordenada por el valor de f(e) [ g(e) + h(e)]
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 valor f(e)*/
if actual.estado es estado final then
resuelto := true
else
a nadir actual a cerrados
for all (operador aplicable a actual) do
generar sucesor aplicando operador (1)
if (sucesor en abiertos con peor g(e)) then
cambiar padre del nodo en abiertos
establecer sus nuevas g(e) y f(e)
end if
if (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 if
if (sucesor no en abiertos ni en cerrados) then
insertar sucesor en abiertos
end if
end for
reordenar abiertos si es necesario
end if
end while
FJRP ccia [Inteligencia Articial] 24
(1) Generar sucesor(): [crea un nodo sucesor]
sucesor.estado := aplicar operador sobre actual.estado
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)

B usqueda en anchura
Si

h(e) = 0
g(e) = 0

B usqueda aleatoria
[depende del orden de insercion]
Si

h(e) = 0
g(e) = prof maxima profundidad(e)

B usqueda en pro-
fundidad
FJRP ccia [Inteligencia Articial] 25
CARACTER

ISTICAS B

USQUEDA A*
Es optimo y completo si:
todo nodo tiene un n
o
nito 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 sobrees-
tima 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
conclusi

on: 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) [es decir: g(e) + h(e) g(e) + h

(e)]
Complejidad (en el peor caso)

espacial: O(b
p
)
temporal: O(b
p
)
b = factor ramicacion, p = profundidad solucion
En el peor de los casos (h(e) = 0) sigue siendo necesario recorrer
todo el arbol [h(e) no informa]
En caso promedio:
El consumo de memoria sigue siendo alto
almacenamiento de todos los estados visitados (cerrados) y
los pendientes de visitar (abiertos)
Tiempo promedio aceptable (mejora b usqueda en profundidad)
FJRP ccia [Inteligencia Articial] 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 profundizacion iterativa (IDA*)


B usqueda 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
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
SMA*: A

acotado por memoria


Trabajo con memoria limitada
idea: limitar la cantidad de memoria disponible
Usa toda la memoria 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
Devuelve la mejor solucion que se puede encontrar con la cantidad
e memoria disponible
FJRP ccia [Inteligencia Articial] 27
2.3.4 Heursticas
(1) CONSTRUCCI

ON DE HEUR

ISTICAS
Dependen del problema
Inuyen en el rendimiento
Tecnicas generales
1. Relajacion de operadores
Reducir algunas restricciones sobre los operadores del problema
original
Operadores simplicados 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
h
1
: (n
o
de placas (incluido hueco) en lugar correcto -1)
Problema relajado: se permite intercambiar cualquier par de casilla
h
1
calcula el n
o
exacto de pasos necesarios en el problema relajado
h
2
: distancia manhatan (suma distancia vertical y hori-
zontal entre posicion actual de cada placa y la deseada)
Problema relajado: cualquier casilla puede moverse a una posicion
adyacente independientemente de las otras casillas
(las casillas se mueven a su posicion una a una, pasando por encima de las otras)
h
2
calcula el n
o
exacto de pasos necesarios en el problema relajado
FJRP ccia [Inteligencia Articial] 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 s olo en
ciertas circunstancias
aprovechar heursticas parcialmente utiles
Ponderandolas: h

(e) = w
1
h
1
(e)+w
2
h
2
(e)+...+w
n
h
n
(e)
Agregandolas:

(e) = max{h
1
(e), h
2
(e), ..., h
n
(e)}
h

(e) = min{h
1
(e), h
2
(e), ..., h
n
(e)}
h

(e) = media{h
1
(e), h
2
(e), ..., h
n
(e)}
Si todas son admisibles, la agregada tambien lo es
FJRP ccia [Inteligencia Articial] 29
(2) EVALUACI

ON Y COMPARACI

ON DE HEUR

ISTICAS
En general: [para heursticas a minimizar]
Si h
2
(e) h
1
(e) e [al reves si se maximiza h(e)] se dice que
h
2
(e) domina a h
1
(e)
con h
2
(e) se generaran menos estados
aproxima mas h

(e) [h

(e) h
2
(e) h
1
(e)]
heurstica menos informada
peor no asegura ofrecer una solucion mejor
Criterios de comparacion
1. N
o
de estados generados (tama no arbol/grafo)
depende del problema de b usqueda concreto
varan con las entradas (estados inicial y nales)
otra opci

on: tama no medio o maximo de la lista abiertos


2. Factor de ramicacion efectivo (

b)
Metrica articial
depende solo de la heurstica (no del tama no del problema)
relativamente constante en distintas b usquedas
interesa que este proximo a 1
N: n
o
de nodos expandidos
p: profundidad de la solucion encontrada

b: factor de ramicacion de un arbol uniforme (n


o
de hijos
constante) de profundidad p que contenga N nodos
Se cumple:
N = 1 +

b +

b
2
+ +

b
3
+ ... +

b
p
despejar

b?
FJRP ccia [Inteligencia Articial] 30
2.4 B usqueda en Juegos
2.4.1 Generalidades
INTER

ES DE LOS JUEGOS
Faciles de formalizar
Facil representacion de estados
En el juego de damas: situacion del tablero + poseedor del turno
Acciones restringidas (reglas precisas)
Evaluacion de ecacia directa
Mayor complejidad
Existe oponente
elemento externo con el que se interact ua
introduce incertidumbre
Futuro no predecible
Alto factor de ramicacion
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)
FJRP ccia [Inteligencia Articial] 31
FORMALIZACI

ON.
estado (posicion) inicial : posicion inicial del tablero + quien inicia
el juego
operadores (movimientos): denen que jugadas les estan permitidas
a los jugadores
prueba de nalizacion: indica el n del juego (estados/posiciones nales)
victoria, empate, derrota
funcion de utilidad: (sobr e posciones nales) asigna valor numerico
al resultado del juego
si no aplicada sobre posiciones nales: funcion de evaluacion
T

ECNICA DE REPRESENTACI

ON:

Arboles 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 basico:
1. Generar arbol alternado completo para el tablero actual
2. Aplicar la funcion de evaluacion sobre las hojas (posiciones nales)
3. Buscar mejor primer movimiento (inicio camino victorioso)
4. Ejecutar movimiento
5. Percibir que hace el contrincante
En la practica: Inabordable construir arbol completo
3 en raya: 9! 360000 nodos
damas: 10
40
nodos
ajedrez: 10
120
nodos (factor ramic. medio 25)
Si es posible

en juegos pequenos
en secuencias nales
FJRP ccia [Inteligencia Articial] 32
APROXIMACI

ON PR

ACTICA
Limitar profundidad de la b usqueda (jar horizonte limitado)
Aplicar funcion evaluacion (heurstica) sobre nodos hoja resultantes
Convencion :

valores altos(positivos) posiciones favorables


valores bajos(negativos) posiciones desfavorables
FJRP ccia [Inteligencia Articial] 33
2.4.2 Procedimiento MINIMAX
Objetivo: encontar el mejor primer movimiento
Tecnica mixta: combina b usqueda + 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 es quien debe realizar el movimiento actual [posee el turno]
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
B usqueda recursiva en profundidad acotada (p = profund. maxima)
Raz: nodo max
Sucesores nodo max: nodos min
Sucesores nodo min: nodos max
Final recursividad:

gana alg un jugador


alcanza posicion de empate
se han expandido 2p capas
Funcionamiento:
Nodo raz: se corresponde con la posicion actual del juego
Aplica funcion evaluacion sobre nodos hoja y propaga valores
hasta nodo raz
Devuelve un buen primer movimiento para max
Selecciona movimiento que genera el sucesor mas prometedor
FJRP ccia [Inteligencia Articial] 34
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
en nodos intermedios: calculado a partir de los valores de sus
sucesores (evaluacion dinamica)
tiene el cuenta el tipo de jugador
Funcion evaluacion hojas:

valor positivo: favorable a max


(+ si posicion ganadora)
valor negativo: favorable a min
( si posicion perdedora)
empate: devuelve 0

desde el punto
de vista de MAX

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 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 posicion actual
mejor acci

on: 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 a min tan inteligente como max
FJRP ccia [Inteligencia Articial] 35
Punto clave: Denir una buena funcion de evaluacion
Ejemplo: juego de damas de Samuel
funcion ponderada de 16 caractersticas
aprendizaje automatico de los pesos
ALGORITMO RECURSIVO
MINIMAX(posicion, nivel)
/* casos base (evaluacion est

atica) */
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 din

amica) */
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)
FJRP ccia [Inteligencia Articial] 36
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) = n
o
las/columnas/diagonales que A podra llegar
a completar
n
o
lneas sin cha del contrario
Calculo:
abiertos(A) = 8n
o
las/colums./diags. ocupadas por contrario
Expansion hasta prof. 1 (2 niveles)
no se muestran posiciones simetricas
FJRP ccia [Inteligencia Articial] 37
2.4.3 Poda ALFA-BETA
minimax separa generacion de nodos y evaluacion de posiciones
1
o
genera todos los sucesores (y sus descendientes)
despues eval ua y propaga
muy ineciente
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 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
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)
FJRP ccia [Inteligencia Articial] 38
Actualizacion de valores y hacia atras
Nodos min: actualizan valor de [minimizan cota superior, ]
Toman el menor valor de sus sucesores y actualizan si los
sucesores lo mejoran
Si evaluacion(sucesor) < = = evaluacion(sucesor)
Valores en nodos min nunca crecen
Nodos max: actualizan valor de [maximizan cota inferior, ]
Toman el mayor valor de sus sucesores y actualizan si los
sucesores lo mejoran
Si evaluacion(sucesor) > = = evaluacion(sucesor)
Valores en nodos max nunca decrecen
CORTES
Se suspende expansion de 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.
condici

on:
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.
condici

on:
padre
Ejemplo:
Llamada inicial: ALFA BETA(posionActual, , +, 0)
FJRP ccia [Inteligencia Articial] 39
ALPHA BETA(posicion, , , nivel)
/* casos base (evaluacion est

atica) */
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 din

amica) */
if (esNodoMAX(nivel)) then

actual
:=
aux :=
for all sucesor i de posicion do
if (
actual
) then
PARAR [salida del bucle FOR] /* poda BETA */
else
aux := maximo(aux, ALFA BETA(sucesor i,
actual
, , nivel+1)

actual
:= maximo(
actual
, aux)
end if
end for
else if (esNodoMIN(nivel)) then

actual
:=
aux := +
for all sucesor i de posicion do
if (
actual
) then
PARAR [salida del bucle FOR] /* poda ALFA */
else
aux := minimo(aux, ALFA BETA(sucesor i, ,
actual
, nivel+1)

actual
:= minimo(
actual
, aux)
end if
end for
end if
devolver aux
end if
Llamada inicial: ALFA BETA(posicionActual, , +, 0)
FJRP ccia [Inteligencia Articial] 40
PROPIEDADES
Algoritmo generara el mismo movimiento que miimax ex-
pandiendo menos nodos
Genera la misma evaluacion dinamica para el nodo raz
Mismo resultado, obtenido de forma mas eciente
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: (maximiza podas)
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 estatica simple para preordenar sucesores
En el caso ideal (ordenacion perfecta)
minimax explora O(b
d
) nodos
explora O(b
d/2
) nodos
Con b=factor de ramicacion y d= prof. b usqueda maxima
Es decir, suponiendo ordenacion perfecta, permitira alcan-
zar el doble de profundidad que minimax empleando el mismo
espacio y tiempo
FJRP ccia [Inteligencia Articial] 41
2.4.4 Mejoras minimax y alfa beta
1. Efecto horizonte
Provocado por limitar el estudio hasta profundidad ja
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 dinami-
co no varen mucho
dejar de profundizar cuando eval. dinamica ecal. estatica
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 nal
FJRP ccia [Inteligencia Articial] 42
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 nal del tiempo ejecutar el movimiento identicado en la
b usqueda completada mas profunda
Consumo de tempo y espacio ligeramente mayor
se reeval ua 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 (heurstica para ordenar sucesores)
Identicar tipos de jugadas muy buenas
Comenzar la evaluacion 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 n
o
de nodos
Problema: difcil ajustar ventana inicial
posibilidad de cortar el buen camino
en b usq. iterativa, jarla en base a resultados previos
FJRP ccia [Inteligencia Articial] 43
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 suponen resultados del lanzamiento equiprobables
Nodos dado son sucesores de nodos max y min
Se corresponden con las diferentes opciones del elemento
aleatorio (resultado de la tirada del dado)
Se asocia una probabilidad de aparicion a cada uno
max o min determinaran sus posibles movimientos en base a
la posicion del juego y al nodo dado previo
FJRP ccia [Inteligencia Articial] 44
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 a probabilidades
Nodo max
expectiMAX(A) =

6
i=1
prob
i
maximo{sucesores(dado
i
)}
(sucesores(dado
i
) son nodos min )
Nodo min
expectiMIN(A) =

6
i=1
prob
i
minimo{sucesores(dado
i
)}
(sucesores(dado
i
) son nodos max )
Inconvenientes: introducir movimientos de azar incrementa espacio
de b usqueda
a nadir una capa adicional en cada jugada
con un alto factor de ramicacion
FJRP ccia [Inteligencia Articial] 45
Bibliografa
Russell S., Norvig P.:Inteligencia articial. Un enfoque moderno
Captulos 3, 4, 5.
Nilsson N.:Inteligencia articial. Una nueva sntesis
Captulos 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/
FJRP ccia [Inteligencia Articial] 46

Вам также может понравиться