48
TEMA 2. usqueda en Espacios de Estados Francisco Jos´ e Ribadas Pena INTELIGENCIA ARTIFICIAL 5 Inform´ atica [email protected] 4 de octubre de 2004 c FJRP 2004 ccia ia –

Tema2

Embed Size (px)

Citation preview

Page 1: Tema2

TEMA 2.Busqueda en Espacios de Estados

Francisco Jose Ribadas Pena

INTELIGENCIA ARTIFICIAL

5 Informatica

[email protected]

4 de octubre de 2004

– c©FJRP 2004 ccia ia –

Page 2: Tema2

2.1 Concepto de Espacio de estados.

Espacio de Estados: Formalimo para representar problemas.

ideas clave:

Abstraer problemas reduciendolos a un conjunto de estados y oper-

adores.

Resolver problema revisando posibles alternativas (¿todas?).

• analogıa con forma de actuar humanos

Estado:

• Representacion completa de la situacion del mundo/problema en

un momento dado

• Contiene toda la info. relevante (y nada mas)

Operador:

• Se suponen deterministas

◦ se sabe de antemano como sera el estado del mundo/problema

despues de aplicarlos

• Se suponen discretos

◦ no es relvante lo que “pasa” mientras se ejecutan

– c©FJRP 2004 ccia ia – 1

Page 3: Tema2

2.1.1 Caracterizacion de un ProblemaPROBLEMA = Terna de 3 componentes (I, O, M)

1. Estado/s inicial (I):

Descripcion de la situacion de partida

2. Conjunto de operadores pertinentes (O):

Descripcion de los medios de los que disponemos para lograr el

fin deseado

Acciones que se pueden emprender, dado un estado, para alcanzar

otro distino.

Tienen 2 componentes:

• precondiciones: condicion que debe cumplir un estado para que

pueda aplicarse el operador sobre el.

• postcondiciones: descripcion de las caracterısticas del nuevo

estado al que se transita.

Pueden ser interpretados como reglas”: (patron + accion)

3. Conjunto de estados meta (M):

Estados del problema que satisfacen los requisitos para ser con-

siderados como soluciones.

Pueden expresarse en forma de lista de estados o como una fun-

cion booleana (prueba de meta) que basandose en las propiedades

de un estado indica si es meta o no.

(I) y (O) determinan el espacio de estados del problema.

• Conjunto de todos los posibles estados admisibles del problema.

BUSQUEDA DE SOLUCIONESsolucion: Secuencia ordenada de operadores (S ∈ O∗) que posibilita

transito desde estados iniciales (I) a finales (O).

Conseguir un ”plan de accion”que permita pasar de (I) a (M)

Objetivo: Encontrar la ”mejor”solucion (o una aceptable)

– c©FJRP 2004 ccia ia – 2

Page 4: Tema2

ESTRATEGIAS DE BUSQUEDA

Tambien estrategias de control o ”mecanismo de inferencia”

Secuencia de pasos a seguir para encontrar el conjunto de operadores

deseado.

• Estrategia es independiente del conocimiento.

• Estrategia debe de ser:

◦ sistematica y facilmente reproducible

◦ producir movimientos validos en el espacio de estados

◦ producir nuevos estados (para poder avanzar)

• Necesidad de estructuras adicionales.

◦ indicar cuando es aplicable un operador

◦ indicar cuando se ha utilizado un operador

◦ indicar cuando un operador produce un estado final

◦ indicar cuando un operador produce un estado no nuevo

◦ indicar si la solucion es aceptable

EJEMPLO: Representacion de problemas

Problema de las 2 jarras

– c©FJRP 2004 ccia ia – 3

Page 5: Tema2

2.1.2 Caracterısticas Generales Procesos de Busqueda

1. Direccion del proceso de busqueda: (2 opciones)

a) I −→M : de estados iniciales a finales

datos −→ objetivos

proceso dirigido por los datos (progresivo)

razonamiento hacia adelante

b) I ←−M : de estados finales a iniciales

hipotesis de trabajo −→ datos

proceso dirigido por los objetivos (evocativo)

razonamiento hacia atras

nota: necesidad definicion operadores inversos (si es posible)

Tambien es posible realizare busquedas bidireccionales.

Criterios de Seleccion:

Tamano relativo de conjuntos I y M .

• avazar de menos a mas estados

Factor de ramificacion

• def.: Promedio de estados que podemos alcanzar directamente

desde un estado previo.

• avanzar en la direccion con menor factor ramificacion

Justificacion del razonamiento/solucion

• Si se exige justificacion del resultado→ usar misma direccion

que usarıa experto humano

• Criterio mas importante en sistemas practicos.

– c©FJRP 2004 ccia ia – 4

Page 6: Tema2

2. Topologıa del Proceso de Busqueda

Dependiendo de la estructura que definan los operadores el

espacio de estados puede ser:

• Un arbol:

◦ mas sencillo de manejar

◦ mayor consumo memoria (estados duplicados, etc)

• Un grafo (con o sin ciclos):

◦ ahorro de memoria

◦ generacion mas compleja (comprobar existencia de estados)

Se iran construyendo a medida que el proceso de busqueda avanza

Ejemplos: Problema 2 jarras

3. Representacion del Problema

Tres aspectos a decidir (de cara a la implementacion)

• Representacion de los hechos, objetos y entidades que rele-

vantes en el dominio considerado

→ Representacion de Estados

• Representacion de las relaciones entre hechos, objetos y enti-

dades relevantes

→ Representacion de Operadores

• Representacion de las secuencias de estados surgidas durante

la busqueda

→ Representacion de Estrategias

Modulo Represent. del Conocimiento

representacion estadosrepresentacion operadores

+

Modulo de Control del Sistema

representacion estrategias

– c©FJRP 2004 ccia ia – 5

Page 7: Tema2

4. Criterios de Seleccion de Operadores Relevantes

a) Proceso de emparejamiento: decidir que operadores son aplicables

sobre un estado dado.

Determinar operadores cuyas precondiciones sean compatibles

con caracterısticas del estado considerado

Problema de correspondencia de patrones complejo

• pueden incluirse variables

Principal causa de la ”lentitud”de los sistemas de I.A.

b) Resolucion de conflictos de operadores.

def.: Conjunto Conflicto: Conjunto de operadores aplicables

resultantes del proceso de emparejamiento.

Resolucion de conflictos: eleccion del operador/es a aplicar

→ depende de/determina la estrategia de busqueda

Posibilidades:

• aplicar todos los operadores disponibles

• aplicar solo los operadores aun no utilizados

• aplicar solo operadores que emparejen con estados incorpo-

rados recientemente

• aplicar el operador mas especıfico (retrasar uso de los +

generales)

• aplicar un operador aleatorio

– c©FJRP 2004 ccia ia – 6

Page 8: Tema2

5. Optimizacion de Busqueda con Funciones Heurısticas

Uso de funciones (numericas) que indican lo buena o mala que

la eleccion de un nuevo operador.

Finalidad: ”dirigir”el proceso de busqueda

Se basan en conocimiento heurıstico, especıfico del problema,

derivado de la experiencia, difıcil de formalizar y explicar.

Estrategias ciegas:

• No usan info heurıstica

• Aplicables en cualquier dominio

• En general, menos eficientes (explosion combinatoria)

• Ejemplos:

◦ generar y comprobar

◦ busqueda en anchura

◦ busqueda en profundidad (prof. acotada y prof. iterativa)

Estrategias heurısticas o informadas:

• Usan informacion heurıstica especıfica del dominio.

• Disenados para problemas concretos

• Limitan explosion combinatoria

• No aseguran soluciones optimas (si ”aceptables”)

• Elemplos:

◦ ascenso a colinas

◦ mejor nodo

◦ A∗ y variantes

– c©FJRP 2004 ccia ia – 7

Page 9: Tema2

6. Criterios de Evaluacion

completitud : ¿Se garantiza o no que se va a encontrar una

solucion?

optimalidad : En caso de que existan varias soluciones, ¿se

encuentra la mejor (optima) o no?

complejidad :

• espacial : memoria necesaria para efectuar la busqueda

• temporal : tiempo necesario para efectuar la busqueda

• Estimaciones en el peor de los casos

• Especificadas en funcion de algun parametro del problema,

notacion O().

– c©FJRP 2004 ccia ia – 8

Page 10: Tema2

2.2 Busqueda No Informada

2.2.1 Generar y Comprobar

1. Generar caminos al azar, partiendo del estado inicial hasta agotarlos

2. Comprobar si son solucion

Poco util en la practica

Aplicable si

• espacio de estados en muy pequeno

• hay muchos estados objetivo

→ es posible encontrar alguno al azar

2.2.2 Busqueda en Anchura(a) FUNCIONAMIENTO

Recorrer arbol/grafo de busqueda en anchura

• expandir estado raız

• expandir todos sus sucesores

• expandir todos los sucesores de los sucesores .....

Realiza un ordenamiento de los estados a estudiar en base a su

profundidad

• todos los nodos de profundidad d se estudiran antes que cualquier

nodo a profundidad d + 1

– c©FJRP 2004 ccia ia – 9

Page 11: Tema2

(b) ALGORITMOabiertos: Lista ordenada de nodos generados aun no expandidos (no

se han generado sus sucesores)

→ almacena nodos ”frontera”, en espera de ser expandidos

anadir estado inicial a abiertos

resuelto := falsewhile (abiertos no vacio and no resuelto) do

actual := primer nodo de abiertos

if actual es estado final thenresuelto := true

else/* expandir actual */for all (operador aplicable a actual) do

generar nuevo estado aplicando operador

anadir nuevo estado al final de abiertos

end forend if

end while

abiertos: Funciona como una cola (fifo)

→ mayor profundidad al final de la lista

– c©FJRP 2004 ccia ia – 10

Page 12: Tema2

MEJORA: En espacios de estados con estructura de grafo evitar

examinar un estado en multiples ocasiones

Lista cerrados: Almacena estados ya examinados

Expandir solo estados que no parezcan en abiertos (ya generados)

ni en cerrados (ya examinados)

Tipos de estados

No generados: no aparecen en abiertos ni en cerrados

Generados no Examinados: en abiertos

Examinados no Expandidos: el estado actualExaminados: en cerrados

anadir estado inicial a abiertos

inicializar cerrados a vacio

resuelto := falsewhile (abiertos no vacio and no resuelto) do

actual := primer nodo de abiertos

if actual es estado final thenresuelto := true

elseanadir actual a cerrados

/* expandir actual */for all (operador aplicable a actual) do

generar nuevo estado aplicando operador

if (nuevo estado no en abiertos ni en cerrados) thenanadir nuevo estado al final de abiertos

end ifend for

end ifend while

Incrementa el coste computacional

gestion de las listas

comprobacion pertenencia (inspeccionar abiertos y cerrados)

– c©FJRP 2004 ccia ia – 11

Page 13: Tema2

(c) CARACTERISTICAS BUSQUEDA EN ANCHURA

Es completa: Garantiza que se encuentra la solucion

• si esta existe

• si el espacio de busqueda es finito (sin ciclos)

Es optima: Siempre encuentra la solucion mas corta

• Se asegura que la solucion encontrada es la de menor profundidad

• nota: Si los operadores tienen asociado un coste, la solucion

menos profunda puede no ser la menos costosa.

Complejidad

• Dos factores

◦ b, factor de ramificacion: no promedio de estados generados

desde un estado dado

◦ p, profundidad estado objetivo: no mınimo de operadores nece-

sarios para alcanzar la solucion encontrada

• Complejidad espacial: O(bp)

• Complejidad temporal: O(bp)

• En el peor de los casos examina todos los nodos posible

• Complejidad exponencial: se saca 1 de abiertos y se anaden b

de media

Muy ineficaz (explosion combinatoria), sobre todo en requisitos de

espacio.

– c©FJRP 2004 ccia ia – 12

Page 14: Tema2

2.2.3 Busqueda en Profundidad(a) FUNCIONAMIENTO

Expandir un camino hasta llegar al final

Si no es solucion y no tiene expansion posible, volver a un nodo no

expandido del nivel anterior

Menor exigencia de memoria

• basta con almacenar los nodos de la ruta que se esta expandiendo

(b) ALGORITMO

anadir estado inicial a abiertos

inicializar cerrados a vacio

resuelto := falsewhile (abiertos no vacio and no resuelto) do

actual := primer nodo de abiertos

if actual es estado final thenresuelto := true

elseanadir actual a cerrados

/* expandir actual */for all (operador aplicable a actual) do

generar nuevo estado aplicando operador

if (nuevo estado no en abiertos ni en cerrados) thenanadir nuevo estado al principio de abiertos

end ifend for

end ifend while

abiertos: Funciona como una pila (lifo)

→ nodos con mayor profundidad al principio

nota: este algoritmo almacena, ademas del camino explorado, el inicio de los caminos

sin explorar

– c©FJRP 2004 ccia ia – 13

Page 15: Tema2

(c) CARACTERISTICAS BUSQUEDA EN PROFUNDIDAD

No es completa: Puede no acabar nunca si encuentra una rama sin

fin en el espacio de estados

• En ciertos casos nunca se volverıa atras

◦ si hay ciclos⇒ bucle infinito

◦ si espacio de estados es infinito

• Muy dependiente del orden de aplicacion de los operadores

No es optima: Encuentra una solucion (la primera que aparezca)

que no tiene por que ser la mejor (la mas cercana)

Complejidad

• Complejidad espacial: O(b×m)

◦ b, factor de ramificacion

◦ m, profundidad maxima de cualquier solucion

• Complejidad temporal: O(bm)

◦ si no hay solucion (o es el ultimo estado) examinara todos los

estados (como en anchura)

• En general, suele ser mas rapida que busqueda en anchura

◦ es cuestion de suerte”

◦ puede funcionar bien si hay muchos estados finales

• ventajas:

◦ Menores requisitos de memoria

◦ Mayor rapidez (en promedio)

• inconvenientes:

◦ Posibilidad de que se estanque

◦ No asegura solucion optima

– c©FJRP 2004 ccia ia – 14

Page 16: Tema2

(d) VARIANTES

Profundidad Acotada

• Fijar un lımite maximo de profundidad (cota c)

◦ cuando un camino alcanza la profundidad c sin ser solucion,

desecharlo

• Es completo◦ Asegura encontrar solucion si c es mayor que la profundidad

de la solucion

• No asegura solucion optima• Complejidad: espacial (O(b× c)), temporal (O(bc))

• problema: eleccion cota c

◦ Pequena:

{ahorra tiempo y espacio

puede impedir encontrar solucion

◦ Grande:

{desperdicio tiempo y espacio

aumenta posibilidades de encontrar solucion◦ En general, no hay suficiente info. para elegir cota adecuada

• Ejemplo

– c©FJRP 2004 ccia ia – 15

Page 17: Tema2

Profundidad Iterativa

• Secuencia de busquedas por profundidad acotada, incrementando

el valor de la cota hasta encontrar solucion

• ventajas:

◦ Evita problema eleccion de la cota

◦ Es completa y optima� Siempre da una solucion (si la hay)

� Encuentra la mejor (a menor profundidad)

→ Agota todos los nodos bajo la cota c antes

de incrementarla

◦ Funcionamiento intermedio (anchura-profundidad)

◦ Uso de memoria reducido (como busqueda profundidad)

• inconvenientes:

◦ Repeticion de calculos

� No excesivamente importante (afecta principalmente a es-

tados en niveles superiores)

� Mayoria de nodos situados en niveles inferiores

– c©FJRP 2004 ccia ia – 16

Page 18: Tema2

2.3 Busqueda Heurıstica

2.3.1 Generalidades

Busqueda ciega: ineficaz en la practica (explosion combinatoria)

Busqueda heurıstica:

objetivo: guiar el proceso de busqueda

• ”Podar”el espacio de estados

Usar info. sobre la cercanıa de un estado dado a uno de los estados

objetivo

→ explorar primero caminos mas prometedores

caracterısticas :

• No garantiza que se vaya a encontrar la solucion

• Si la encuentra, no asegura que sea optima (mınimo coste)

• En ocasiones, encuentra solucion buena en tiempo aceptable

◦ pierden completitud y/o optimalidad

◦ aumentan eficiencia

FUNCIONES DE EVALUACION HEURISTICAS

Aglutinan el conocimiento del dominio sobre el que se apoyara la

decision

Asocian a cada estado, e, un numero, h(e), que indica lo promete-

dor, o no, que es ese nodo e de cara a alcanzar un estado objetivo

optimo.

Dos interpretaciones:

• Estiman la calidad”del estado e

⇒ buscar nodos con mayor valor heurıstico

• Estiman la ”prosimidad.a un estado final

⇒ buscar nodos con menor valor heurıstico

– c©FJRP 2004 ccia ia – 17

Page 19: Tema2

Ejemplos:

• 8-puzzle: no casillas bien colocadas (2o tipo)

• cubos: |cantidad en 8 l. - cantidad en 4 l.| (2o tipo)

• ajedrez: no piezas de ventaja (1er tipo)

Clasificacion:

• Heurısticas generales: adecuadas para multiples dominios

→ vecino mas proximo (”medir distancias”)

• Heurısticas de proposito especial: usan conocimiento exclusivo de

un dominio

heurısticas bien fundadas

1. Si estiman la calidad”:

h(e) esta bien fundada si los estados finales tienen el

valor maximo posible. (estado inicial suele tener valor 0)

2. Si estiman la ”distancia”:

h(e) esta bien fundada si los estados finales tienen el valor 0

– c©FJRP 2004 ccia ia – 18

Page 20: Tema2

2.3.2 Metodos de escalada o ascenso a colinas(a) FUNCIONAMIENTOFamilia de metodos de mejora iterativa.

idea: Elegir, en cada paso, uno de los descendientes del estado actual

que mejore el valor heurıstico de su padre

mejor = mas alto⇒ ascenso a colinas

mejor = mas bajo⇒ descenso de gradiente

Dos variantes:

1. Escalada simple:

Generar hijos 1 a 1, calculando su valor heurıstico

El primer hijo que sea mejor que estado actual pasa a ser

nuevo estado estado actual

2. Escalada por maxima pendiente:

Generar todos los hijos y calcular su valor heurıstico

Tomar al mejor hijo

• Si es mejor o igual que estado actual⇒ pasa a ser nuevo

estado actual

• Si no, detener algoritmo

Ejemplos:

Espacio de estados Escalada Simple Maxima Pendiente

– c©FJRP 2004 ccia ia – 19

Page 21: Tema2

ventajas

• Muy poco consumo de espacio

• Complejidad espacial: O(1) (basta guardar 1 estado)

inconvenientes

• Complejidad temporal: exponencial en peor caso (revisa todos)

• No son optimos ni completos

◦ pueden no encontrar solucion aunque exista (ver problemas)

◦ no garantizan el camino mas corto

problemas: Puntos en los que el algoritmo se estanca

Maximos locales: todos los hijos de un estado son peores que el y

no es un estado objetivo

• def.: Un maximo local es un estado mejor que cualquier otro

estado vecino, pro peor que otros mas lejanos

• El algoritmo para sin dar solucion

Mesetas: todos los hijos tienen mismo valor heurıstico que padre

• def.: Una meseta es una region del espacio de estados donde

todos los estados tienen el mismo valor heurıstico

• El algoritmo para sin dar solucion

• Si sigue, la heurıstica no informa⇒ busqueda ciega

– c©FJRP 2004 ccia ia – 20

Page 22: Tema2

Crestas: mezcla de los anteriores, se llega a un conjunto maximos

locales contiguos

• def.: Region del espacio de estados que tiene algunos estados

con mejor valor heurıstico que los colindantes, pero a los que

no se puede llegar por transiciones simples (usando un unico

operador)

soluciones :

Reiniciar toda o parte de la buqueda

Dar un paso mas→ generar sucesores de sucesores y ”ver que pasa”

Max. locales: Volver a un nodo anterior y provar direccion distinta

Mesetas: Hacer un ”salto”grande, para ”salir”de la meseta

– c©FJRP 2004 ccia ia – 21

Page 23: Tema2

2.3.3 Metodo del mejor nodo (primero el mejor)(a) FUNCIONAMIENTOidea: Considerar todos los estados frontera, no solo los sucesores del

estado actual

Mantener lista abiertos (nodos no expandidos) ordenada por los

valores de la heurıstica de los estado

Intenta combinar anchura y profundidad, guiado por la heurıstica

• Seguir un camino, pasando a otro cuando deje de ser prometedor

Diferencia con escalada: los descendientes del estado actual

compiten con todos los demas nodos no expandidos

(b) ALGORITMOanadir estado inicial a abiertos

inicializar cerrados a vacio

resuelto := falsewhile (abiertos no vacio and no resuelto) do

actual := primer nodo de abiertos

if actual es estado final thenresuelto := true

elseanadir actual a cerrados

/* expandir actual */for all (operador aplicable a actual) do

generar nuevo estado aplicando operador

calcular su heurıstica h(nuevo estado)

if (nuevo estado no en abiertos o cerrados)

or (esta con peor heurıtica) thenanadir nuevo estado en abiertos

ordenar abiertos por valor heurıstico

end ifend for

end ifend while

– c©FJRP 2004 ccia ia – 22

Page 24: Tema2

Ejemplo:

(c) CARACTERISTICAS BUSQUEDA MEJOR NODO

Complejidad

• Temporal: O(bm)

• Espacial: O(bm)

• m= profundidad de la solucion mas lejana

• En el peor de los casos hay que recorrer todos los estados

Es completo: si hay solucion la encuentra, siempre que la heurıstica

funcione bien

No es optimo: puede no dar la solucion mas cercana (ejemplo

anterior)

• En esencia, sigue siendo un procedimento de busqueda en pro-

fundidad

• Da la primera solucion que encuentra

– c©FJRP 2004 ccia ia – 23

Page 25: Tema2

2.3.4 Algoritmo A∗(a) FUNCIONAMIENTOFamilia de algoritmos (Hart, Nilsson, Raphael (1968))

objetivo: Mejorar metodo del mejor nodo para asegurar completitud

y optimalidad.

Incorpora la longitud del camino desde la raız hasta el estado actual en

la funcion de evaluacion h.

considerar no solo lo bueno que es un estado

tener en cuenta como es el camino usado para alcanzarlo

Funcion de evaluacion A∗

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

g(e): costo del mejor camino desde estado inicial al estado e

h(e): estimacion (heurıstica) del coste desde e hasta un estado final

optimo

f(e): costo estimado de la mejor solucion que pasa por el estado e

h∗(e)

g∗(e) = g(e)

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

costes reales

conocidos cuando termina

el algoritmo

– c©FJRP 2004 ccia ia – 24

Page 26: Tema2

(b) ALGORITMO

Version Ampliada

para manejar grafos

con traza de los caminos (enlace al padre)

abiertos ordenada por el valor de f(e)

anadir estado inicial a abiertos

inicializar cerrados a vacio

resuelto := falsewhile (abiertos no vacio and no resuelto) do

actual := primer nodo de abiertos /*mejor valor f(e)*/

if actual es estado final thenresuelto := true

elseanadir actual a cerrados

for all (operador aplicable a actual) dogenerar sucesor aplicando operador (1)

if (sucesor en abiertos con peor g(e)) thencambiar padre del nodo en abiertos

establecer sus nuevas g(e) y f(e)

end ifif (sucesor en cerrados con peor g(e)) then

cambiar padre del nodo en cerrados

establecer sus nuevas g(e) y f(e)

propagar nueva g(e) a sus

descendientes en abiertos y cerrados

end ifif (sucesor no en abiertos ni en cerrados) then

insertar sucesor en abiertos

end ifreordenar abiertos si es necesario

end forend if

end while

– c©FJRP 2004 ccia ia – 25

Page 27: Tema2

(1) Generar sucesor():

sucesor.estado := aplicar operador

sucesor.padre := actual

sucesor.g := actual.g + coste(operador[actual→ sucesor])

sucesor.f := sucesor.g + h(sucesor.estado)

nota:

Si

{h(e) = 0

g(e) = profundidad(e)

}⇒ Busqueda en anchura

Si

{h(e) = 0

g(e) = 0)

}⇒ Busqueda aleatoria

– c©FJRP 2004 ccia ia – 26

Page 28: Tema2

CARACTERISTICAS BUSQUEDA A*Es optimo y completo si:

todo nodo tiene un no finito de sucesores

coste de cada arco/operador > 0

la funcion h(e) es una heurıstica admisible

Heurıstica Admisible:

Diremos que h(e) es una heurıstica admisible si nunca sobrees-

tima el coste real desde e hasta un estado meta optimo.

Es decir, h(e) ≤ h∗(e) ∀e

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

coste real de la mejor solucion que pase por el estado e.

f(e) ≤ f ∗ (e)

Complejidad

{espacial: O(bp)

temporal: O(bp)

b = factor ramificacion, p = profundidad solucion

En el peor de los casos (h(e) = 0) sigue siendo necesario recorrer

todo el arbol

En caso promedio:

• El consumo de memoria sigue siendo alto

◦ almacenamiento de todos los estados visitados y los pendientes

de visitar

• Tiempo promedio aceptable (mejora busqueda en profundidad)

– c©FJRP 2004 ccia ia – 27

Page 29: Tema2

(d) VARIANTES

RTA*: Real Time A∗

• Aplicacion en tareas de tiempo real

◦ no pueden esperar a encontrar solucion optima

• Obliga a tomar una decision cada periodo de tiempo k × t

• Periodo de tiempo determina profundidad alcanzada en busqueda

◦ busca hasta donde le da tiempo

◦ indica la operacion sobre el estado actual que inicia el camino

que lleva al mejor estado encontrado

A*PI: A∗ con profundizacion iterativa

• Busqueda por profundizacion iterativa controlada por la funcion

de evaluacion A∗◦ f(e) = g(e) + h(e)

◦ nota: en principio, no comprueba estados repetidos

• objetivo: reducir necesidades de memoria

• Lımite de coste k, no de profundidad

• Expandir solo estados e con coste dentro de la cota (f(e) ≤ k)

• El resultado de cada iteracion se usa para establecer cota de la

siguiente

A*SRM: A∗ acotado por memoria

• Trabajo con memoria limitada

• idea: limitar la cantidad de memoria disponible

◦ Usa toda la meoria de la que se dispone

◦ Mientras hay memoria funcionamiento normal, evitando esta-

dos repetidos

◦ Si al generar un sucesor falta memoria, libera el espacio de los

estados menos prometedores

◦ Sigue manteniendo traza de la ”bondad”de esos estados

desechados

– c©FJRP 2004 ccia ia – 28

Page 30: Tema2

2.3.4 Heurısticas

(1) CONSTRUCCION DE HEURISTICAS

Dependen del problema

Influyen en el rendimiento

Tecnicas generales

1. Relajacion de operadores

• Reducir algunas restricciones sobre los operadores del problema

original

• Operadores simplificados facilitan calculo de coste en problema

relajado”

• Usar coste de la solucion del problema relajadocomo heurıstica

del problema original

• Suele generar heurısticas admisible

• Ejemplo: 8-puzzle

◦ h1: no de placas en lugar correcto

� no de pasos si se permite mover el hueco a cualquier lugar

◦ h2: ”distancia manhatan” (suma distancia vertical y hori-

zontal entre posicion actual de cada placa y la deseada)

� no de pasos si se permite mover placas en cualquier direccion indepen-

dientemente del hueco

– c©FJRP 2004 ccia ia – 29

Page 31: Tema2

2. Ponderacion de rasgos

• Tomar un conjunto de caracterısticas del estado que se puedan

representar numericamente

• Combinarlas asignandoles diferentes pesos

• Muy usadas juegos

• Posibilidad de aprendizaje de pesos (juego de damas de

Samuel)

• Ejemplo: ajedrez

3. Uso estudio estadıstico previo

• Partir de una heurıstica preliminar h(e) y realizar busquedas

de entrenamiento

• Relacionar los valores de h(e) con los costes reales obtenidos

en cada caso

◦ corregir cada valor de h(e) usando el valor real obtenido

con mas frecuencia en el ”entrenamiento”

4. Combinacion de heurısticas

• Combinar heurısticas distintas que funcionen bien solo en

ciertas circunstancias

◦ aprovechar heurısticas ”parcialmente”utiles

• Ponderandolas: h′(e) = w1 × h1(e) + w2 × h2(e) + ... +

wn × hn(e)

• Agregandolas:

h′(e) = max{h1(e), h2(e), ...,×hn(e)}h′(e) = min{h1(e), h2(e), ...,×hn(e)}h′(e) = media{h1(e), h2(e), ...,×hn(e)}

◦ Si todas son admisibles, la agregada tambien lo es

– c©FJRP 2004 ccia ia – 30

Page 32: Tema2

(2) EVALUACION Y COMPARACION DE HEURISTICAS

En general:

Si h2(e) ≥ h1(e) ∀e (al reves si se maximiza h(e)) se dice que

h2(e) domina a h1(e)

• con h2(e) se generaran menos estados

→ aproxima mas h∗(e) (h∗(e) ≥ h2(e) ≥ h1(e))

• peor no asegura ofrecer una solucion mejor

Criterios de comparacion

1. No de estados generados (tamano arbol/grafo)

• depende del problema de busqueda concreto

• varıan con las entradas (estados inicial y finales)

2. Factor de ramificacion efectivo (b)

• Metrica artificial

◦ depende solo de la heurıstica

◦ relativamente constante en distintas busquedas

◦ interesa que este proximo a 1

N : no de nodos expandidos

p: profundidad de la solucion encontrada

b: factor de ramificacion de un arbol uniforme (no de hijos

constante) de profundidad p que contenga N nodos

Se cumple:

N = 1 + b + b2+ +b

3+ ... + b

p

¿despejar b?

– c©FJRP 2004 ccia ia – 31

Page 33: Tema2

2.4 Busqueda en Juegos

2.4.1 GeneralidadesINTERES DE LOS JUEGOS

Faciles de formalizar

• Facil representacion de estados

• Acciones restringidas (reglas precisas)

• Evaluacion de eficacia directa

Mayor complejidad

• Existe oponente

◦ elemento externo que interactua

◦ introduce incertidumbre

• Futuro no predecible

• Alto factor de ramificacion

MODELIZACION: Juegos de 2 jugadores con informacion completa

Contrincantes conocen la situacion del juego y su oponente

• posibles movimientos + movimiento efectuado

• resultado del movimiento

• no se conoce estrategia del contrincante

No interviene el azar

Se puede determinar en todo momento:

victoria

derrota

empate

Problemas de suma nula: lo que “gana” un jugador es lo que

“pierde” el otro

Ejemplos: ajedrez, 3 en raya

NO LO SON: juegos con cartas(mus) o dados(backgamon)

– c©FJRP 2004 ccia ia – 32

Page 34: Tema2

FORMALIZACION.

estado (posicion) incial : posicion inicial del tablero + quien inicia

el juego

operadores (movimientos): definen que jugadas les estan permitidas

a los jugadores

prueba de finalizacion: indica el fin del juego (estados/posiciones fi-

nales)

• victoria, empate, derrota

funcion de utilidad : asigna valor numerico a resultado del juego

• si no aplicada sobre posiciones finales: funcion de evaluacion

TECNICA DE REPRESENTACION: Arboles alternados

Representacion explıcita de todas las secuencias de jugadas posibles,

para ambos jugadores

nodos: representan posiciones (estados)

sucesores: posiciones a las que se puede acceder aplicando los

movimientos permitidos

Cada nivel representa, alternativamente, las acciones posibles de

cada jugador

Objetivo: Encontrar un buen primer movimiento

Esquema basico:

1. Generar arbol alternado para tablero actual

2. Buscar mejor primer movimiento (inicio camino victorioso)

3. Ejecutar movimiento

4. ”Percibir”que hace el contrincante

En la practica: Inabordable construir arbol completo

• 3 en raya: 9! 360000 nodos

• damas: ≈ 1040 nodos

• ajedrez: ≈ 10120 nodos (factor ramific. medio ≈ 25)

• Si es posible

{en juegos pequenos

en secuencias finales

– c©FJRP 2004 ccia ia – 33

Page 35: Tema2

APROXIMACION PRACTICA

Limitar profundidad de la busqueda (fijar horizonte limitado)

Aplicar funcion evaluacion (heurıstica) sobre nodos hoja resultantes

• Convencion :

{valores altos(positivos)→ posiciones favorables

valores bajos(negativos)→ posiciones desfavorables

– c©FJRP 2004 ccia ia – 34

Page 36: Tema2

2.4.2 Procedimiento MINIMAX

Tecnica mixta: combina busqueda + evaluacion

Jugador max: maximiza valores de evaluacion de sus sucesores

Jugador min: minimiza valores de evaluacion de sus sucesores

Objetivo: que max sea el ganador

max hace primer movimiento

• nodos en niveles pares: turno max

• nodos en niveles impares: turno min

nota:

capa = jugada (1 nivel del arbol)

profundidad = pares de capas (grupos de 2 movtos. [min+max])• nodos de prof. k = nodos max en capa 2k + nodos min en capa 2k + 1

nodo raiz (max) en capa 0 y prof. 0

Metodo MINIMAX

Busqueda recursiva en profundidad acotada (p = profund. maxima)

• Raız: nodo max

• Sucesores nodo max: nodos min

• Sucesores nodo min: nodos max

Final recursividad:

gana algun jugador

alcanza posicion de empate

se han expandido 2p capas

Funcionamiento:

• Nodo raız: se corresponde con la posicion actual del juego

• Aplica funcion evaluacion sobre nodos hoja y propaga valores

hasta nodo raız

• Devuelve un ”buen”primer movimiento para max

◦ Selecciona movimiento que genera el sucesor mas prometedor

– c©FJRP 2004 ccia ia – 35

Page 37: Tema2

Suposicion de partida: Estrategia conservadora

• min elegira siempre la mejor jugada para el (peor para max)

◦ min es, al menos, tan inteligente como max

◦ Sabe evaluar tan bien como max→ usan misma func. evaluac.

Valor minimax: evaluacion de la bondad de una posicion

• en hojas: funcion de evaluacion estatica

• nodos intermedios: calculado a partir de los valores de sus suce-

sores

Funcion evaluacion hojas:

valor positivo: favorable a max

(+∞ si posicion ganadora)

valor negativo: favorable a min

(+∞ si posicion ganadora)

empate: devuelve 0

PASOS:

1. Expandir en profundidad hasta nivel maximo (o no expansion posible)

2. Evaluar nodos hoja (aplicar func. evaluacion)

3. En cada nivel se propagan evaluaciones hacia atras

Si es nodo max: tomar maximo valor de sus sucesores

Si es nodo min: tomar mınimo valor de sus sucesores

4. En nodo raız: ejecutar movto. que lleve al sucesor con mejor valor

5. Esperar respuesta adversario y volver a (1) con nueva posicion actual

mejor accion: Accion con evaluacion mas alta, suponiendo que

adversario elegira en el futuro las mejores opciones para el.

Mas precisa la evaluacion propagada usando minimax que la obteni-

da aplicando la funcion de evaluacion estatica sobre los nodos

sucesores de la posicion actual

• Tiene en cuenta la secuencia de futuras respuestas del oponente

Todo lo que se sabe de min es que elige la opcion que mas le

conviene (la de menor valor)

• Se supone tan inteligenete como max

– c©FJRP 2004 ccia ia – 36

Page 38: Tema2

Punto clave: Definir una buena funcion de evaluacion

Ejemplo: juego de damas de Samuel

• funcion ponderada de 16 caracterısticas

• aprendizaje automatico de los pesos

ALGORITMO RECURSIVO

MINIMAX(posicion, nivel)

/* casos base */if (esGanador(posicion)) then

devolver +∞else if (esPerdedor(posicion)) then

devolver −∞else if (esEmpate(posicion)) then

devolver 0

else if (nivel = limite) thendevolver evaluacion(posicion)

else/* caso recursivo */for all sucesor i de posicion do

valores[i] := MINIMAX(sucesor i, nivel+1)

if (esNodoMAX(nivel)) thendevolver maximo(valores)

end ifif (esNodoMIN(nivel)) then

devolver minimo(valores)

end ifend for

end if

Llamada inicial: MINIMAX(posionActual, 0)

– c©FJRP 2004 ccia ia – 37

Page 39: Tema2

Ejemplo: TIC-TAC-TOE

max: ”X”, min: .O”

Funcion evaluacion:

+∞ si gana max

−∞ si gana min

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

• abiertos(A) = no filas/columnas/diagonales donde A puede ganar

→ no lıneas sin ficha del contrario

abiertos(A) = 8−no filas/colums./diags. ocupadas por contrario

Expansion hasta prof. 1 (2 niveles)

→ no se muestran posiciones simetricas

– c©FJRP 2004 ccia ia – 38

Page 40: Tema2

2.4.3 Poda ALFA-BETA

minimax separa generacion de nodos y evaluacion de posiciones

1o genera todo el arbol, despues evalua y propaga

muy ineficiente

Idea: Evitar generar todas las alternativas, “cortando” aquellas que

sepamos que no van a mejorar los valores que ya hemos obtenido hasta

el momento.

Generacion y evaluacion simultaneas

Necesidad de ”arrastrar” informacion adicional

Poda α− β

idea: Arrastrar una ventana (2 valores) indicando a que intervalo debe

de pertener los valores de evaluacion para ser considerados

Evita expandir posiciones que no mejoraran los resultados actuales

En cada nodo n:

• valor α: cota inferior (al menos se han conseguido α puntos)

• valor β: cota superior (como mucho se han conseguido β puntos)

Inicialmente:

{α = −∞β = +∞

Cada nodo recibe los mejores valores de α y β obtenidos hasta el

momento y los actualiza con los que le devuelvan sus hijos

• En determinados casos, podra decidir dejar de evaluar sus hijos

(poda )

– c©FJRP 2004 ccia ia – 39

Page 41: Tema2

Actualizacion de valores α y β hacia atras

• Nodos min: actualizan valor de β◦ Toman el menor valor de sus sucesores y actualizan β si los

sucesores lo mejoran

Si α− βsucesor < β ⇒ β = α− βsucesor

◦ Valores β en nodos min nunca crecen

• Nodos max: actualizan valor de α◦ Toman el mayor valor de sus sucesores y actualizan α si los

sucesores lo mejoran

Si α− βsucesor > α⇒ α = α− βsucesor

◦ Valores α en nodos max nunca decrecen

CORTESSe suspende la expansion de los sucesores de un nodo en los siguientes

casos:

1. Corte α (en nodos min)

Si nodo min alcanza un valor β menor o igual que el valor

α que llego de un nodo max anterior ⇒ No es necesario

seguir estudiando sus sucesores.

condicion: β ≤ αpadre

Ejemplo:

2. Corte β (en nodos max)

Si nodo max alcanza un valor α mayor o igual que el

valor β que llego de un nodo min anterior⇒ No es necesario

seguir estudiando sus sucesores.

condicion: α ≥ βpadre

Ejemplo:

– c©FJRP 2004 ccia ia – 40

Page 42: Tema2

ALPHA BETA(posicion, α, β, nivel)

if (esGanador(posicion)) then devolver +∞ thenelse if (esPerdedor(posicion)) then devolver −∞ thenelse if (esEmpate(posicion)) then devolver 0 thenelse if (nivel = limite) then devolver evaluacion(posicion) thenelse/* caso recursivo */if (esNodoMAX(nivel)) then

αactual := α

for all sucesor i de posicion doif (αactual ≥ β) then

PARAR /* poda BETA */else

aux := ALFA BETA(sucesor i, αactual, β, nivel+1)

αactual := maximo(αactual, aux)

end ifend fordevolver αactual

else if (esNodoMIN(nivel)) thenβactual := β

for all sucesor i de posicion doif (βactual ≤ α) then

PARAR /* poda ALFA */else

aux := ALFA BETA(sucesor i, α, βactual, nivel+1)

βactual := minimo(βactual, aux)

end ifend fordevolver βactual

end ifend if

Llamada inicial: ALFA BETA(posionActual, −∞, +∞, 0)

– c©FJRP 2004 ccia ia – 41

Page 43: Tema2

PROPIEDADES

Algoritmo α − β generara el mismo movimiento que miimax ex-

pandiendo menos nodos

• Mismo resultado, obtenido de forma mas eficiente

Efectividad de α−β depende mucho del orden en que se examinan

los descendientes

• Si se examinan primero los peores caminos, nunca habra cortes

• Interesa ordenar a los sucesores

Situacion ideal:

• En nodos min: examinar primero sucesores con menor valor

• En nodos max: examinar primero sucesores con mayor valor

En la practica no es posible ordenacion perfecta

→ usar una func. evaluacion simple para preordenar sucesores

En el caso ideal (ordenacion perfecta)

• minimax explora O(bd) nodos

• α− β explora O(bd/2) nodos

Con b=factor de ramificacion y d= prof. busqueda maxima

• Es decir, suponiendo ordenacion perfecta, α−β permitirıa alcan-

zar el doble de profundidad que minimax empleando el mismo

espacio y tiempo

– c©FJRP 2004 ccia ia – 42

Page 44: Tema2

2.4.4 Mejoras minimax y alfa beta

1. Efecto horizonte

Provocado por limitar el estudio hasta profundidad fija

• No se ”ve”mas alla del horizonte

• Un sucesor devuelve un valor (muy alto/bajo) que explorando

mas niveles serıa corregido en sentido contrario

◦ a corto plazo: buen movimiento

◦ a largo plazo: pesimo

• Ejemplo: Capturar dama en ajedrez

◦ Parece muy bueno, pero dependiendo del movimiento del

contrincante (que no veremos) puede ser nefasto si el rey

queda descubierto.

Solucion: Busqueda en profundidad variable

• No parar siempre a la misma profundidad

• Intentar llegar a posiciones ”en equilibrio”

a) Seguir profundizando si la hoja ofrece un valor extermo

b) Profundizar por sucesores hasta que valor estatico y dinami-

co no varıen mucho

2. Uso movimientos de libro

Consultar posicion actual en un catalogo construido previamente

y recuperar el movimiento guardado.

Imposible construir y manejar para juegos completos

Razonable en ciertas fases del juego: apertura y final

– c©FJRP 2004 ccia ia – 43

Page 45: Tema2

3. Profundizacion iterativa

Usado en juegos con restricciones de tiempo

• Ej.: ajedrez, elegir jugada antes de agotar tiempo

Idea:

a) Estudiar hasta profundiad p

b) Seleccionar mejor movimiento

c) Si hay tiempo, estudiar k niveles mas (prof. p + k)

d) Al final del tiempo ejecutar el movimiento identificado en la

busqueda completada mas profunda

Consumo de tempo y espacio ligeramente mayor

→ se reevalua el arbol en cada iteracion

Puede ser util para mejorar la poda α− β

• Usar resultados de la iteracion anterior para ordenar sucesores

adecuadamente

4. Aumento podas en α− β

a) Uso movimientos asesinos

Identificar tipos de jugadas muy buenas

Comenzar la evaluacion de sucesores empleando esos

movimientos

b) Reduccion ventana inicial

Comenzar busqueda con ventana mas pequena (no [−∞, +∞])

Aumenta podas en los niveles superiores

→ afectan a un mayor no de nodos

Problema: difıcil ajustar ventana inicial

→ posibilidad “cortar” el buen camino

– c©FJRP 2004 ccia ia – 44

Page 46: Tema2

2.4.5 Juegos con Elementos de Azar

Ejemplos: backgamon, juegos de cartas, juegos con dados

Idea: Incluir una capa adicional representando al elemento aleatorio

Funciona como un ”jugador”mas

EJEMPLO: Inclusion de un dado

• El movimiento del jugador depende del resultado de la tirada del

dado

→ ejemplo: parchis

• Incluir jugador ”dado ”

• Se supone resultados del lanzamiento equiprobables

• Sucesores de dado

◦ Se corresponden con las opciones del elemento aleatorio

◦ Se asocia una probabilidad de aparicion a cada uno

– c©FJRP 2004 ccia ia – 45

Page 47: Tema2

• La propagacion ascendente de valores tiene en cuenta esas prob-

abilidades

• Nodos aleatorios: propagan un valor esperado (no real) de sus

sucesores

• Alternativas:

◦ Propagar peor valor (opcion conservadora)

◦ Propagar mejor valor (opcion optimista)

◦ Propagar media ponderada de acuerdo probabilidades

Nodo aleatorio padre de nodos max

expectimax(A) =∑6

i=1 probi ×maximo{sucesoresdadoi}

(sucesores son max )

Nodo aleatorio padre de nodos min

expectimin(A) =∑6

i=1 probi ×minimo{sucesoresdadoi}

(sucesores son min )

Inconvenientes: introducir movimientos de azar incrementa espacio

de busqueda

• anadir una capa adicional en cada jugada

• con un alto factor de ramificacion

– c©FJRP 2004 ccia ia – 46

Page 48: Tema2

Bibliografıa

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

Capıtulos 3, 4, 5.

Nilsson N.:Inteligencia artificial. Una nueva sıntesis

Capıtulos 7, 8, 9, 12

Enlaces

AI-Search Algorithm Animation Project (RMIT University)Applet que demuestra el funcionamiento de los algoritmos de busque-

da estudiados en clase.

http://www.cs.rmit.edu.au/AI-Search/

– c©FJRP 2004 ccia ia – 47