Академический Документы
Профессиональный Документы
Культура Документы
USQUEDA DE SOLUCIONES
soluci
) 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
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)
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
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:
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
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
(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
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
conclusi
(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
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
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 +
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 :
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
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