Está en la página 1de 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 Artificial]

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 operadores.
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 Artificial]

2.1.1 Caracterizaci
on de un Problema
PROBLEMA = Terna de 3 componentes (I, O, M )
1. Estado/s inicial (I):
Descripcion de la situaci
on de partida
2. Conjunto de operadores pertinentes (O):
Descripcion de los medios de los que disponemos para lograr el
fin deseado
Acciones que se pueden emprender, dado un estado, para alcanzar
otro distino.
Tienen 2 componentes:
precondiciones: condicion que debe cumplir un estado para que pueda
aplicarse el operador sobre el.
postcondiciones: descripcion de las caractersticas del nuevo estado al que
se transita.

Pueden ser interpretados como reglas: (patr


on acci
on)
3. Conjunto de estados meta (M ):
Estados del problema que satisfacen los requisitos para ser considerados como soluciones.
Pueden expresarse en forma de lista de estados
o como una funcion 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 SOLUCIONES
n: Secuencia ordenada de operadores (S O ) que posibilita
solucio
el transito desde estados iniciales (I ) a finales (O ).
Conseguir un plan de acci
on que permita pasar de (I) a (M )
Objetivo: Encontrar la mejor soluci
on (o una aceptable)
Nota: en ocasiones basta con conocer las caractersticas de un estado final (no el
camino para alcanzarlo)
b
usqueda sirve para saber c
omo sera ese estado meta

FJRP ccia [Inteligencia Artificial]


ESTRATEGIAS DE BUSQUEDA
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 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

FJRP ccia [Inteligencia Artificial]

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 finales
datos objetivos
proceso dirigido por los datos (progresivo)
razonamiento hacia adelante
emparejar descripcion del estado con las precondiciones

b) I M : de estados finales a iniciales


tesis de trabajo datos
hipo
proceso dirigido por los objetivos (evocativo)
razonamiento hacia atras
emparejar descripcion del estado con las postcondiciones

nota: necesario definir operadores inversos (si es posible)


Tambien es posible realizar b
usquedas bidireccionales.
Criterios de Selecci
on:
Tama
no relativo de conjuntos I y M .
s estados
avazar de menos a ma
Factor de ramificacion
def.: Promedio de estados que podemos alcanzar directamente
desde un estado previo.
avanzar en la direccion con menor factor ramificacion (menos
alternativas)

Justificacion del razonamiento/soluci


on
Si se exige justificacion del resultado usar misma direccion
que usara experto humano (naturalidad)
Criterio mas importante en sistemas practicos.

FJRP ccia [Inteligencia Artificial]

2. Topologa del Proceso de B


usqueda
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 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] 6= estado [representacion del problema]

3. Representacion del Problema


Tres aspectos a decidir (de cara a la implementaci
on)
Representacion de los hechos, objetos y entidades que relevantes en el dominio considerado
Representacion de Estados

Representacion de las relaciones entre hechos, objetos y entidades relevantes


Representacion de Operadores

Representacion de las secuencias de estados surgidas durante


la b
usqueda
Representacion de Estrategias (info. de control que es usada)

M
o
dulo
Represent.
Conocimiento

representacion estados
representacion operadores

FJRP ccia [Inteligencia Artificial]

Modulo
de
Control
del
Sistema

representacion estrategias

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 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) Resoluci
on de conflictos de operadores.
def.: Conjunto Conflicto: Conjunto de operadores aplicables
resultantes del proceso de emparejamiento.
Resolucion de conflictos: elecci
on 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 incorporados recientemente
aplicar el operador mas especfico (retrasar uso de los +
generales)
mas especfico con mas condiciones
reduce el factor e ramificacion

aplicar un operador aleatorio

FJRP ccia [Inteligencia Artificial]

5. Optimizacion de B
usqueda con Funciones Heursticas
Uso de funciones (numericas) que indican lo buena o mala que
la eleccion de un nuevo operador.
Finalidad: dirigir el proceso de b
usqueda
Se basan en conocimiento heurstico, especfico del problema,
derivado de la experiencia, difcil de formalizar y explicar.
Estrategias ciegas:
No usan info heurstica (deciden sin usar conocimiento del problema)
Aplicables en cualquier dominio
En general, menos eficientes (explosion combinatoria)
Ejemplos:
generar y comprobar
b
usqueda en anchura
b
usqueda en profundidad (prof. acotada y prof. iterativa)
Estrategias informadas (o heursticas):
Usan informacion heurstica especfica del dominio.
Dise
nados para problemas concretos
Limitan explosion combinatoria
No aseguran soluciones optimas (si aceptables)
Elemplos:
ascenso a colinas
mejor nodo (primero el mejor)
A y variantes

FJRP ccia [Inteligencia Artificial]

6. Criterios de Evaluacion
completitud : Se garantiza o no que se va a encontrar una
solucion? (el algoritmo acaba)
optimalidad : En caso de que existan varias soluciones, se
encuentra la mejor (optima) o no? (menor no operandos / menor coste)
complejidad :
espacial : memoria necesaria para efectuar la b
usqueda
temporal : tiempo necesario para efectuar la b
usqueda
Estimaciones en el peor de los casos
Especificadas en funcion de alg
un parametro del problema,
notacion O().

FJRP ccia [Inteligencia Artificial]

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 u
til 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 1a 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 Artificial]

(b) ALGORITMO
abiertos: Lista ordenada de nodos generados a
un no expandidos (a
un
no se ha comprobado si son soluci
on, ni se han generado sus sucesores)
almacena nodos frontera, en espera de ser expandidos
a
nadir estado inicial a abiertos
resuelto := false
while (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos
if actual es estado final then
resuelto := true
else
/* expandir actual */
for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
a
nadir nuevo estado al final de abiertos
end for
end if
end while
abiertos: Funciona como una cola (fifo)
mayor profundidad al final de la lista

FJRP ccia [Inteligencia Artificial]

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)

No generados: no aparecen en abiertos ni en cerrados

Generados no Examinados: en abiertos


Tipos de estados
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 final de abiertos
end if
end for
end if
end while
Incrementa el coste computacional
gesti
on de las listas
comprobaci
on pertenencia (inspeccionar abiertos y cerrados)
CERRADOS puede implementarse como una tabla Hash (acceso directo)

Inconveniente: coste de espacio (CERRADOS crece exponencialmente)

FJRP ccia [Inteligencia Artificial]

11


(c) CARACTERISTICAS BUSQUEDA
EN ANCHURA
Es completa: Garantiza que se encuentra la soluci
on (si esta existe)
tanto en arboles como en grafos (incluso con ciclos)
Es
optima: Siempre encuentra la soluci
on mas corta
Se asegura que la solucion encontrada es la de menor profundidad
no se salta nodos agota capa k antes de ver nodos de la capa k + 1

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 mnimo de operadores necesarios para alcanzar la soluci
on encontrada
p
Complejidad espacial: O(b ) ( tamano lista ABIERTOS)
Complejidad temporal: O(bp) ( no iteraciones bucle / comprobaciones
si es estado final)

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 ineficaz (explosion combinatoria), sobre todo en requisitos de
espacio.

FJRP ccia [Inteligencia Artificial]

12

2.2.3 B
usqueda en Profundidad
(a) FUNCIONAMIENTO
Expandir un camino hasta llegar al final (no hay sucecores)
Si no es solucion y no tiene expansi
on posible, volver a un nodo no
expandido del nivel anterior
da preferencia a los nodos/esatdos mas profundos

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 pseudoc
odigo almacena, ademas del camino explorado, el inicio de los
caminos sin explorar

FJRP ccia [Inteligencia Artificial]

13


(c) CARACTERISTICAS BUSQUEDA
EN PROFUNDIDAD
No es completa: Puede no acabar nunca si encuentra una rama sin
fin en el espacio de estados
En ciertos casos nunca se volvera atras
si hay ciclos bucle infinito [si no se usa CERRADOS]
si espacio de estados es infinito (ramas con no sucesores infinito)
Muy dependiente del orden de aplicacion de los operadores
No es
optima: Encuentra una soluci
on (la primera que aparezca)
que no tiene por que ser la mejor (la mas cercana)

Complejidad
Complejidad espacial: O(b m) [sin usar CERRADOS]
b, factor de ramificacion
m, profundidad maxima de cualquier solucion
Complejidad temporal: O(bm) (en el peor caso)
si no hay solucion (o es el u
ltimo estado) examinara todos los
estados (como en anchura)
En general, suele ser mas rapida que b
usqueda en anchura
es cuestion de suerte
puede funcionar bien si hay muchos estados finales
ventajas:
Menores requisitos de memoria
Mayor rapidez (en promedio)
inconvenientes:
Posibilidad de que se estanque y no termine
No asegura solucion optima

FJRP ccia [Inteligencia Artificial]

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(bc))


problema: 
eleccion cota c
ahorra tiempo y espacio
Peque
na:
puede impedir encontrar soluci
on

desperdicio tiempo y espacio
Grande:
aumenta posibilidades de encontrar soluci
on
En general, no hay suficiente info. para elegir cota adecuada
Ejemplo

FJRP ccia [Inteligencia Artificial]

15

Profundidad Iterativa
Secuencia de b
usquedas por profundidad acotada, incrementando
el valor de la cota hasta encontrar soluci
on
ventajas:
Evita problema eleccion de la cota
Es completa y
optima
 Siempre da una solucion (si la hay)
 Encuentra la mejor (a menor profundidad) [si los incrementos
son de 1 en 1]

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 estados en niveles superiores)
 Mayoria de nodos situados en niveles inferiores

FJRP ccia [Inteligencia Artificial]

16

2.3 B
usqueda Heurstica

2.3.1 Generalidades
B
usqueda ciega: ineficaz en la practica (explosi
on combinatoria)
B
usqueda heurstica:
objetivo: guiar el proceso de b
usqueda
Podar el espacio de estados
Usar informacion sobre la bondad o cercana de un estado dado
respecto a uno de los estados objetivo
optimos
explorar primero caminos mas prometedores
caractersticas :
No garantiza que se vaya a encontrar la solucion
Si la encuentra, no asegura que sea optima (mnimo coste)
En ocasiones, encuentra solucion buena en tiempo aceptable
pierden completitud y/o optimalidad
aumentan eficiencia
HEURISTICAS
FUNCIONES DE EVALUACION
Aglutinan el conocimiento del dominio sobre el que se apoyara la
decision
Asocian a cada estado, e, un n
umero, h(e), que indica lo prometedor, o no, que es ese nodo e de cara a alcanzar un estado objetivo
optimo.
Dos interpretaciones:
Estiman la calidad del estado e
buscar primero por nodos con mayor valor heurstico
Estiman la proximidad a un estado final
buscar primero por nodos con menor valor heurstico

FJRP ccia [Inteligencia Artificial]

17

Ejemplos:
8-puzzle: no casillas mal colocadas (2o tipo)
cubos: |cantidad en 8 l. - 4 | (2o tipo)
ajedrez: no piezas de ventaja (1er tipo)
Clasificacion:
Heursticas generales: adecuadas para m
ultiples dominios
vecino mas proximo (medir distancias)
Heursticas de proposito especial: usan conocimiento exclusivo de
un dominio particular
heursticas bien fundadas
1. Si estiman la calidad:
h(e) esta bien fundada si los estados finales tienen el
valor maximo posible. (estado inicial suele tener valor 0)
2. Si estiman la distancia:
h(e) esta bien fundada si los estados finales tienen el valor 0

FJRP ccia [Inteligencia Artificial]

18

2.3.2 M
etodos de escalada o ascenso a colinas
(a) FUNCIONAMIENTO
Familia de metodos de mejora iterativa (tambien hill climbing )
idea: Elegir, en cada paso, uno de los descendientes del estado actual
que mejore el valor heurstico de su padre
mejor = mas alto ascenso a colinas
mejor = mas bajo descenso de gradiente

Elecci
on local: solo toma en consideraci
on los sucesores del estado
actual
Dos variantes:
1. Escalada simple:
Generar hijos 1 a 1, calculando su valor heurstico
El primer hijo que sea mejor que estado actual pasa a ser
nuevo estado estado actual
estudia los sucesores secuencialmente

xima pendiente:
2. Escalada por ma
Generar todos los hijos y calcular su valor heurstico
Tomar al mejor hijo
Si es mejor o igual que estado actual pasa a ser nuevo
estado actual
Si no, detener el algoritmo
estudia los sucesores secuencialmente

Ejemplos:
Espacio de estados

FJRP ccia [Inteligencia Artificial]

Escalada Simple

M
axima Pendiente

19

ventajas
Muy poco consumo de espacio
Complejidad espacial: O(1) (basta guardar 1 estado)
inconvenientes
Complejidad temporal: exponencial en peor caso (revisa todos)
No son optimos ni completos
pueden no encontrar solucion aunque exista (ver problemas)
no garantizan el camino mas corto
problemas: Puntos en los que el algoritmo se estanca
Maximos locales: todos los hijos de un estado son peores que el y
no es un estado objetivo
def.: Un m
aximo local es un estado mejor que cualquier otro
estado vecino, pero peor que otros mas lejanos
El algoritmo para sin dar solucion
Mesetas: todos los hijos tienen mismo valor heurstico que padre
def.: Una meseta es una region del espacio de estados donde
todos los estados tienen el mismo valor heurstico
El algoritmo para sin dar solucion
Si sigue, la heurstica no informa b
usqueda ciega
Crestas: mezcla de los anteriores, se llega a un conjunto maximos
locales contiguos
def.: Region del espacio de estados que tiene algunos estados
con mejor valor heurstico que los colindantes, pero a los que
no se puede llegar por transiciones simples (usando un u
nico
operador)
soluciones :
Reiniciar toda o parte de la b
usqueda (vuelta atras, backtracking )
Dar un paso mas generar sucesores de sucesores y ver que pasa
Max. locales: Volver a un nodo anterior y probar direcci
on distinta
Mesetas: Hacer un salto grande, para salir de la meseta
FJRP ccia [Inteligencia Artificial]

20

2.3.3 M
etodo del mejor nodo (primero el mejor)
(a) FUNCIONAMIENTO
idea: Considerar todos los estados frontera, no s
olo los sucesores del
estado actual
Mantener lista abiertos (nodos no expandidos) ordenada por los valores de la
heurstica de los estado
Intenta combinar anchura y profundidad, guiado por la heurstica
Seguir un camino, pasando a otro cuando deje de ser prometedor
Diferencia con escalada: los descendientes del estado actual compiten con
todos los demas nodos no expandidos

(b) ALGORITMO
a
nadir estado inicial a abiertos
inicializar cerrados a vacio
resuelto := false
while (abiertos no vacio and no resuelto) do
actual := primer nodo de abiertos /* mejor h(e) */
if actual es estado final then
resuelto := true
else
a
nadir actual a cerrados
/* expandir actual */
for all (operador aplicable a actual) do
generar nuevo estado aplicando operador
calcular su heurstica h(nuevo estado)
if (nuevo estado no en abiertos o cerrados)
or (esta con peor heurtica) then
a
nadir nuevo estado en abiertos
ordenar abiertos por valor heurstico [h(e)]
end if
end for
end if
end while

FJRP ccia [Inteligencia Artificial]

21

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 (h(e) = constante, no informa) hay
que recorrer todos los estados
No es completo: mismas debilidades que profundidad (vulnerable a
bucles y ramas infinitas)
No es optimo: puede no dar la soluci
on mas cercana (ejemplo
anterior)
En esencia, sigue siendo un procedimento de b
usqueda en profundidad
Da la primera solucion que encuentra
Normalmente suele dar buenas soluciones (aceptables)

FJRP ccia [Inteligencia Artificial]

22

2.3.4 Algoritmo A
(a) FUNCIONAMIENTO
Familia de algoritmos (Hart, Nilsson, Raphael (1968))
objetivo: Mejorar metodo del mejor nodo para asegurar completitud
y optimalidad ( coste mnimo).
Incorpora la longitud del camino desde la raz hasta el estado actual en
la funcion de evaluacion h.
considerar no solo lo bueno que es un estado
tener en cuenta como es el camino usado para alcanzarlo
contempla el coste de los operadores empleados

Funci
on de evaluaci
on A

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 final
optimo
f (e): coste estimado de la mejor solucion que pasa por el estado e

h(e)
- costes reales
g (e) = g(e)
- conocidos cuando termina

f (e) = g (e) + h (e)


el algoritmo de b
usqueda

FJRP ccia [Inteligencia Artificial]

23

(b) ALGORITMO

para manejar grafos


Version Ampliada
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 Artificial]

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:

h(e)
Si
g(e)

h(e)
Si
g(e)


= 0
B
usqueda en anchura
= profundidad(e)

= 0
B
usqueda aleatoria
= 0

[depende del orden de insercion]

h(e) = 0
Si
g(e) = prof
fundidad


maxima

FJRP ccia [Inteligencia Artificial]

profundidad(e)

B
usqueda en pro-

25


CARACTERISTICAS BUSQUEDA
A*
Es
optimo y completo si:
todo nodo tiene un no finito de sucesores
coste de cada arco/operador > 0
la funcion h(e) es una heurstica admisible
Heurstica Admisible:
Diremos que h(e) es una heurstica admisible si nunca sobreestima el coste real desde e hasta un estado meta
optimo.
Es decir, h(e) h(e) e [estimacion coste real]
para algoritmos que maximizan f (e) : h(e) h (e) e

n: Si h(e) es admisible f (e) tampoco sobreestima el


conclusio
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:
temporal:

O(bp)
O(bp)

b = factor ramificacion, 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 Artificial]

26

(d) VARIANTES
RTA*: Real Time A
Aplicacion en tareas de tiempo real
no pueden esperar a encontrar solucion optima
Obliga a tomar una decision cada periodo de tiempo k t
Periodo de tiempo determina profundidad alcanzada en b
usqueda
busca hasta donde le da tiempo
indica la operacion sobre el estado actual que inicia el camino
que lleva al mejor estado encontrado
A*PI: A con profundizaci
on iterativa (IDA*)
B
usqueda por profundizaci
on iterativa controlada por la funci
on
de evaluacion A
f (e) = g(e) + h(e)
nota: en principio, no comprueba estados repetidos
objetivo: reducir necesidades de memoria
Lmite de coste k, no de profundidad
Expandir solo estados e con coste dentro de la cota (f (e) k)
El resultado de cada iteracion se usa para establecer cota de la
siguiente
la amplitud de la b
usqueda se ampla en cada iteracion

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 estados 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 Artificial]

27

2.3.4 Heursticas
DE HEURISTICAS
(1) CONSTRUCCION
Dependen del problema
Influyen en el rendimiento
Tecnicas generales
1. Relajacion de operadores
Reducir algunas restricciones sobre los operadores del problema
original
Operadores simplificados facilitan calculo del coste real en el
problema relajado
Usar coste real de la solucion al problema relajado como
heurstica del problema original
Suele generar heursticas admisibles
Ejemplo: 8-puzzle
h1: (no de placas (incluido hueco) en lugar correcto -1)
 Problema relajado: se permite intercambiar cualquier par de casilla
 h1 calcula el no exacto de pasos necesarios en el problema relajado

h2: distancia manhatan (suma distancia vertical y horizontal entre posici


on 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)
h2 calcula el no exacto de pasos necesarios en el problema relajado

FJRP ccia [Inteligencia Artificial]

28

2. Ponderacion de rasgos
Tomar un conjunto de caractersticas del estado que se puedan
representar numericamente
Combinarlas asignandoles diferentes pesos
Muy usadas juegos
Posibilidad de aprendizaje de pesos (juego de damas de
Samuel)
Ejemplo: ajedrez
3. Uso estudio estadstico previo
Partir de una heurstica preliminar h(e) y realizar b
usquedas
de entrenamiento
Relacionar los valores de h(e) con los costes reales obtenidos
en cada uno de esos casos de entrenamiento
corregir cada valor de h(e) usando el valor real obtenido
con mas frecuencia en el entrenamiento
4. Combinacion de heursticas
Combinar heursticas distintas que funcionen bien solo en
ciertas circunstancias
aprovechar heursticas parcialmente u
tiles
Ponderandolas:
h0 (e) = w1 h1 (e)+w2 h2 (e)+...+wn hn (e)
0
h (e) = max{h1(e), h2(e), ..., hn(e)}
Agregandolas:
h0(e) = min{h1(e), h2(e), ..., hn(e)}
0
h (e) = media{h1(e), h2(e), ..., hn(e)}
Si todas son admisibles, la agregada tambien lo es

FJRP ccia [Inteligencia Artificial]

29

Y COMPARACION
DE HEURISTICAS
(2) EVALUACION
En general: [para heursticas a minimizar]
Si h2(e) h1(e) e [al reves si se maximiza h(e)] se dice que
h2(e) domina a h1(e)

con h2(e) se generaran menos estados


aproxima mas h (e) [h (e) h2 (e) h1 (e)]
heurstica menos informada

peor no asegura ofrecer una solucion mejor


Criterios de comparacion
1. No de estados generados (tama
no arbol/grafo)
depende del problema de b
usqueda concreto
varan con las entradas (estados inicial y finales)
n: tama
otra opcio
no medio o maximo de la lista abiertos
2. Factor de ramificacion efectivo (
b)
Metrica artificial
depende solo de la heurstica (no del tamano del problema)
relativamente constante en distintas b
usquedas
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:
2
3
p
N = 1+
b+
b + +
b + ... +
b

despejar
b?

FJRP ccia [Inteligencia Artificial]

30

2.4 B
usqueda en Juegos

2.4.1 Generalidades
DE LOS JUEGOS
INTERES
Faciles de formalizar
Facil representacion de estados
En el juego de damas: situacion del tablero + poseedor del turno

Acciones restringidas (reglas precisas)


Evaluacion de eficacia directa
Mayor complejidad
Existe oponente
elemento externo con el que se interact
ua
introduce incertidumbre
Futuro no predecible
Alto factor de ramificacion
MODELIZACION: Juegos de 2 jugadores con informaci
on completa
Contrincantes conocen la situaci
on del juego y su oponente
posibles movimientos + movimiento efectuado
resultado del movimiento
no se conoce estrategia del contrincante
No interviene el azar

victoria
Se puede determinar en todo momento:
derrota

empate
Problemas de suma nula: lo que gana un jugador es lo que
pierde el otro
Ejemplos: ajedrez, 3 en raya
NO LO SON: juegos con cartas(mus) o dados(backgamon)

FJRP ccia [Inteligencia Artificial]

31


FORMALIZACION.
estado (posicion) inicial: posici
on inicial del tablero + quien inicia
el juego
operadores (movimientos): definen que jugadas les estan permitidas
a los jugadores
prueba de finalizacion: indica el fin del juego (estados/posiciones finales)
victoria, empate, derrota
funcion de utilidad: (sobr e posciones finales) asigna valor numerico
al resultado del juego
si no aplicada sobre posiciones finales: funci
on de evaluaci
on

Arboles

TECNICA
DE REPRESENTACION:
alternados
Representacion explcita de todas las secuencias de jugadas posibles,
para ambos jugadores
nodos: representan posiciones (estados)
sucesores: posiciones a las que se puede acceder aplicando los
movimientos permitidos
Cada nivel representa, alternativamente, las acciones posibles de
cada jugador
Objetivo: Encontrar un buen primer movimiento
Esquema b
asico:
1.
2.
3.
4.
5.

Generar arbol alternado completo para el tablero actual


Aplicar la funci
on de evaluacion sobre las hojas (posiciones finales)
Buscar mejor primer movimiento (inicio camino victorioso)
Ejecutar movimiento
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)
en juegos pequenos
Si es posible
en secuencias finales

FJRP ccia [Inteligencia Artificial]

32

PRACTICA

APROXIMACION
Limitar profundidad de la b
usqueda (fijar horizonte limitado)
Aplicar funci
on evaluaci
on (heurstica) sobre nodos hoja resultantes

valores altos(positivos) posiciones favorables
Convencion :
valores bajos(negativos) posiciones desfavorables

FJRP ccia [Inteligencia Artificial]

33

2.4.2 Procedimiento MINIMAX


Objetivo: encontar el mejor primer movimiento
Tecnica mixta: combina b
usqueda + evaluaci
on
Jugador max: maximiza valores de evaluaci
on de sus sucesores
Jugador min: minimiza valores de evaluaci
on 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
un jugador
gana alg
Final recursividad:
alcanza posici
on 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 Artificial]

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 posici
on
en hojas: funcion de evaluacion est
atica
en nodos intermedios: calculado a partir de los valores de sus
sucesores (evaluacion din
amica)
tiene el cuenta el tipo de
jugador

valor positivo: favorable a max

(+ si posici
on ganadora)

Funci
on evaluaci
on hojas:
valor negativo: favorable a min



desde el punto

( si posici
on perdedora)

de vista de MAX

empate: devuelve 0
PASOS:
1. Expandir en profundidad hasta nivel maximo (o no expansi
on posible)
2. Evaluar nodos hoja (aplicar func. evaluaci
on)
3. En cada nivel se propagan evaluaciones hacia atras
Si es nodo max: tomar maximo valor de sus sucesores
Si es nodo min: tomar mnimo valor de sus sucesores
4. En nodo raz: ejecutar movto. que lleve al sucesor con mejor valor
5. Esperar respuesta adversario y volver a (1) con nueva posici
on actual
n: Accion con evaluaci
mejor accio
on mas alta, suponiendo que
adversario elegira en el futuro las mejores opciones para el.
Mas precisa la evaluacion propagada usando minimax que la obtenida aplicando la funcion de evaluaci
on estatica sobre los nodos
sucesores de la posicion actual
Tiene en cuenta la secuencia de futuras respuestas del oponente
Todo lo que se sabe de min es que elige la opci
on que mas le
conviene (la de menor valor)
Se supone a min tan inteligente como max
FJRP ccia [Inteligencia Artificial]

35

Punto clave: Definir una buena funci


on de evaluaci
on
Ejemplo: juego de damas de Samuel
funcion ponderada de 16 caractersticas
aprendizaje automatico de los pesos

ALGORITMO RECURSIVO
MINIMAX(posicion, nivel)
/* casos base (evaluacion estatica) */
if (esGanador (posicion)) then
devolver +
else if (esPerdedor (posicion)) then
devolver
else if (esEmpate(posicion)) then
devolver 0
else if (nivel = limite) then
devolver evaluacion(posicion)
else
/* caso recursivo (evaluacion dinamica) */
for all sucesor i de posicion do
valores[i] := MINIMAX(sucesor i, nivel+1)
end for
if (esNodoMAX(nivel)) then
devolver maximo(valores)
end if
if (esNodoMIN(nivel)) then
devolver minimo(valores)
end if
end if
Llamada inicial: MINIMAX(posionActual, 0)

FJRP ccia [Inteligencia Artificial]

36

Ejemplo: TIC-TAC-TOE
max: X, min: O

+ si gana max
Funcion evaluacion:
si gana min

(abiertos(max) abiertos(min)) en otro caso


abiertos(A) = no filas/columnas/diagonales que A podra llegar
a completar
no lneas sin ficha del contrario
C
alculo:
abiertos(A)

= 8 no filas/colums./diags. ocupadas por contrario

Expansion hasta prof. 1 (2 niveles)


no se muestran posiciones simetricas

FJRP ccia [Inteligencia Artificial]

37

2.4.3 Poda ALFA-BETA

minimax separa generacion de nodos y evaluaci


on de posiciones
1o genera todos los sucesores (y sus descendientes)
despues eval
ua 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 (sucesor a sucesor)
Necesidad de arrastrar informaci
on adicional
Poda
idea: Arrastrar una ventana (2 valores) indicando a que intervalo debe
de pertener los valores de evaluaci
on para ser considerados
Evita expandir posiciones que no mejoraran los resultados actuales
su evaluacion se sale del intervalo [, ]

En cada nodo n:
valor : cota inferior (al menos ya se han conseguido puntos)
valor : cota superior (como mucho se conseguiran puntos)

=
Inicialmente:
= +
Cada nodo recibe los mejores valores de y obtenidos hasta el
momento y los va actualiza con las evaluaciones que recibe de sus
hijos
En determinados casos, podra decidir dejar de evaluar sus hijos
(poda)

FJRP ccia [Inteligencia Artificial]

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.
n: padre
condicio
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.
n: padre
condicio
Ejemplo:
Llamada inicial: ALFA BETA(posionActual, , +, 0)
FJRP ccia [Inteligencia Artificial]

39

ALPHA BETA(posicion, , , nivel)


tica) */
/* casos base (evaluaci
on esta
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
mica) */
/* caso recursivo (evaluaci
on dina
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 Artificial]

40

PROPIEDADES
Algoritmo generara el mismo movimiento que miimax expandiendo menos nodos
Genera la misma evaluacion dinamica para el nodo raz
Mismo resultado, obtenido de forma mas eficiente

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
Situaci
on 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 ordenaci


on perfecta
usar una func. evaluacion estatica simple para preordenar sucesores

En el caso ideal (ordenacion perfecta)


minimax explora O(bd) nodos
explora O(bd/2) nodos
Con b=factor de ramificaci
on y d= prof. b
usqueda maxima
Es decir, suponiendo ordenacion perfecta, permitira alcanzar el doble de profundidad que minimax empleando el mismo
espacio y tiempo

FJRP ccia [Inteligencia Artificial]

41

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 sera corregido en sentido contrario
a corto plazo: buen movimiento
a largo plazo: pesimo
Ejemplo: Capturar dama en ajedrez
Parece muy bueno, pero dependiendo del movimiento del
contrincante (que no veremos) puede ser nefasto si el rey
queda descubierto.
Solucion: B
usqueda en profundidad variable
No parar siempre a la misma profundidad
Intentar llegar a posiciones en equilibrio
a) Seguir profundizando si la hoja ofrece un valor extermo
b) Profundizar por sucesores hasta que valor estatico y dinamico no varen mucho
dejar de profundizar cuando eval. dinamica ecal. estatica

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

FJRP ccia [Inteligencia Artificial]

42

3. Profundizaci
on iterativa
Usado en juegos con restricciones de tiempo
Ej.: ajedrez, elegir jugada antes de agotar tiempo
Idea:
a) Estudiar hasta profundiad p
b) Seleccionar mejor movimiento
c) Si hay tiempo, estudiar k niveles mas (prof. p + k)
d) Al final del tiempo ejecutar el movimiento identificado en la
b
usqueda completada mas profunda
Consumo de tempo y espacio ligeramente mayor
se reeval
ua el arbol en cada iteraci
on
Puede ser u
til para mejorar la poda
Usar resultados de la iteracion anterior para ordenar sucesores
adecuadamente
4. Aumento podas en
a) Uso movimientos asesinos (heurstica para ordenar sucesores)
Identificar tipos de jugadas muy buenas
Comenzar la evaluaci
on de sucesores empleando esos
movimientos
b) Reduccion ventana inicial
Comenzar b
usqueda con ventana mas peque
na (no [, +])
Aumenta podas en los niveles superiores
afectan a un mayor no de nodos
Problema: difcil ajustar ventana inicial
posibilidad de cortar el buen camino
en b
usq. iterativa, fijarla en base a resultados previos

FJRP ccia [Inteligencia Artificial]

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 Artificial]

44

La propagacion ascendente de valores tiene en cuenta esas probabilidades


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
expectiM AX(A) =

P6

i=1 probi maximo{sucesores(dadoi )}

(sucesores(dadoi ) son nodos min )

Nodo min
expectiM IN (A) =

P6

i=1 probi minimo{sucesores(dadoi )}

(sucesores(dadoi ) 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 ramificacion

FJRP ccia [Inteligencia Artificial]

45

Bibliografa

Russell S., Norvig P.:Inteligencia artificial. Un enfoque moderno


Captulos 3, 4, 5.
Nilsson N.:Inteligencia artificial. 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 busqueda estudiados en clase.
http://www.cs.rmit.edu.au/AI-Search/

FJRP ccia [Inteligencia Artificial]

46

También podría gustarte