Inteligencia Artificial I.T. en Informática de Sistemas, 3º Curso académico: 2010/2011

Anuncio
Inteligencia Artificial
I.T. en Informática de Sistemas, 3º
Curso académico: 2010/2011
Profesores: Ramón Hermoso y Roberto Centeno
Inteligencia Artificial 3º ITIS
2010/11
Tema 2: Búsqueda
2. Búsqueda
2.1. Agentes de resolución de problemas
2.2. Búsqueda no informada
2.3. Búsqueda heurística
2.4. Búsqueda multi-agente
Inteligencia Artificial 3º ITIS
2010/11
Entorno: problemas bien definidos
Problemas bien definidos:
discreto:
se puede concebir el mundo en estados
en cada estado hay conjunto finito de percepciones y acciones
accesible: el agente puede acceder a las características relevantes del mundo
puede determinar el estado actual del mundo
puede determinar el estado del mundo que le gustaría alcanzar
estático y determinista: el agente puede planificar todas sus acciones, ya que
el mundo cambia sólo cuando el agente actúa
el resultado de cada acción está totalmente definido y previsible
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: las Torres de Hanoi
Objetivo:
• Trasladar los discos
de la aguja A a C en el
mismo orden
Restricción:
• un disco mayor nunca
debe reposar sobre
uno de menor tamaño
A
A
B
B
C
C
¿Cómo escribir el programa de agente correspondiente?
Inteligencia Artificial 3º ITIS
2010/11
Solución 1: tablas de actuación
Tablas de actuación específicos del problema:
para cada situación hay una entrada en una tabla de
actuación;
dicha entrada compila la secuencia de acciones a emprender:
cuatro discos en A ⇒
disco
disco
disco
disco
disco
1 de A a C / disco
3 de A a C / disco
1 de A a C / disco
2 de C a A / disco
1 de A a C / disco
2 de A a B / disco
1 de B a A / disco
4 de A a B / disco
1 de B a A / disco
2 de A a B / disco
1 de C a B /
2 de B a C /
1 de C a B /
3 de C a B /
1 de C a B
problema: limitaciones de memoria
Inteligencia Artificial 3º ITIS
2010/11
Solución 2: algoritmo
Algoritmos específicos del problema:
• el diseñador del agente conoce un
método para resolver el problema
• codifica este método en un
algoritmos particular para el
problema
• mejorar la flexibilidad:
parametrizar el algoritmo
• problema: el diseñador ha de
anticipar todos los escenarios
posibles
• los entornos reales suelen ser
demasiado complejos como para
anticipar todas las posibilidades
PROCEDURE MoverDiscos(n:integer;
origen,destino,auxiliar:char);
{ Pre: n > 0
Post: output = [movimientos para pasar n
discos de la aguja origen
a la aguja destino] }
BEGIN
IF n = 0 THEN {Caso base}
writeln;
ELSE BEGIN
{Caso recurrente}
MoverDiscos(n-1,origen,auxiliar,destino);
write('Pasar disco',n,'de',origen,'a',destino);
MoverDiscos(n-1,auxiliar,destino,origen)
END; {fin ELSE}
END; {fin MoverDiscos}
Inteligencia Artificial 3º ITIS
2010/11
Solución 3: búsqueda
Métodos independientes del problema :
modelo declarativo del problema:
“inicialmente todos los discos reposan en A y su tamaño decrece de abajo
hasta arriba”
“queremos que todos los discos estén en C en el mismo orden”
“podemos mover un disco I a la aguja X, si no hay otro disco por encima de I
y, si actualmente hay discos en X, entonces dichos discos han de ser más
grandes que I”
“cuanto menos movimientos de discos hagamos mejor”
algoritmo de búsqueda genérico:
genera una solución a cualquier problema representado mediante el modelo
simbólico
mayor flexibilidad:
el diseñador no necesita conocer la solución de antemano
es más fácil adaptar el método a nuevas características del problema
Inteligencia Artificial 3º ITIS
2010/11
Solución 3: Modelo declarativo en
CLIPS
Escenario: 3 agujas (A, B, C) y 2 discos (uno, dos)
(deffacts nombre-agujas
"Lista con los nombres de las agujas"
(agujas A B C))
(deffacts situacion-inicial
"Lista describiendo la pos. inicial de los discos en las agujas"
(situacion (acciones ) (posicion A uno dos base B base C base)) )
(deffacts situacion-final
"Lista describiendo la pos. deseada de los discos en las agujas"
(meta A base B base C uno dos base ) )
(deffacts predicado-menor
"hechos que definen si un disco es menor que otro"
(menor uno dos)
(menor uno base)
(menor dos base))
Inteligencia Artificial 3º ITIS
2010/11
Solución 3: Modelo declarativo en
CLIPS
(defrule mover-x-a-y
(agujas $? ?x $?)
(agujas $? ?y $?)
(situacion (acciones $?acciones)
(posicion $?inicio ?x ?disco-x $?medio ?y ?disco-y $?final) )
(menor ?disco-x ?disco-y)
=>
(assert (situacion
(acciones $?acciones (format nil "%s-%s->%s" ?x ?disco-x ?y))
(posicion $?inicio ?x $?medio ?y ?disco-x ?disco-y $?final) ) )
)
(defrule meta
(situacion (acciones $?acciones)(posicion $?s-final) )
(meta $?s-final)
=>
(printout t crlf "Solución: " $?acciones crlf)
(halt)
)
Inteligencia Artificial 3º ITIS
2010/11
Solución 3: Ajustes del Modelo
Declarativo
Resultados de la búsqueda:
• 3 agujas 2 discos:
– ("A-uno->B" "A-dos->C" "B-uno->C")
• 3 agujas 3 discos:
– ("A-uno->C" "A-dos->B" "C-uno->B" "A-tres->C" "B-uno->A"
"B-dos->C" "A-uno->C")
• 3 agujas 4 discos:
– ("A-uno->B" "A-dos->C" "B-uno->C" "A-tres->B" "C-uno->A"
"C-dos->B" "A-uno->B" "A-cuatro->C" "B-uno->C" "B-dos->A"
"C-uno->A" "B-tres->C" "A-uno->B" "A-dos->C" "B-uno->C")
• 4 agujas 4 discos:
– ("A-uno->B" "A-dos->D" "A-tres->C" "D-dos->C" "A-cuatro->D"
"C-dos->A" "C-tres->D" "A-dos->D" "B-uno->D")
Inteligencia Artificial 3º ITIS
2010/11
Tema 2: Búsqueda
2. Búsqueda
2.1. Agentes de resolución de problemas
2.2. Búsqueda no informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
Inteligencia Artificial 3º ITIS
2010/11
Agentes de resolución de problemas
mantienen un modelo simbólico del mundo
desean modificar el estado del mundo de acuerdo con sus objetivos
con tal fin, anticipan los efectos esperados de sus acciones sobre el
modelo
A
A
B
B
C
D
E
C
D
E
Inteligencia Artificial 3º ITIS
2010/11
Agentes especializados
Ciclo de actuación:
1. Definir el modelo
2. Generar los objetivos
3. Percibir y clasificar la situación presente
4. Buscar un plan de actuación
5. Ejecutar el plan de actuación
Los agentes son especializados:
• el diseñador dota al agente a priori con conocimientos
específicos
– que definen el modelo
– que definen los objetivos
• se supone una percepción y una ejecución ideal
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en espacios de estados
Espacio de estados: modelo del mundo representado por un grafo
Problema de búsqueda: espacio de estados + actitud del agente
Objetivo: encontrar el plan más eficiente que lleve del estado inicial a un
estado meta
Inteligencia Artificial 3º ITIS
2010/11
El problema de los bloques
Estado:
• configuración de n bloques
Operadores:
• apilar(X,Y): poner X encima de Y
Estado inicial
C
A
B
– Prec.: bloques X e Y están libres
– Post.: bloque X está encima de Y
• quitar(Y): poner Y en la mesa
– Prec.: bloque Y está libre
– Post.: bloque Y está en la mesa
Coste:
• la aplicación de cada operador vale
una unidad
Estado meta
A
B
C
Inteligencia Artificial 3º ITIS
2010/11
Representación del problema
de
los
bloques
Ejemplo con 3 bloques
Plan óptimo: coste 3
A B C
A
B C
A
C B
C
B A
C
A B
B
C A
B
A C
C
A
B
B
A
C
A
C
B
B
C
A
A
B
C
C
B
A
Inteligencia Artificial 3º ITIS
2010/11
Conocimientos del agente
• Representación implícita del problema de búsqueda
• Conocimientos mínimos a priori de un agente:
• s0
Estado inicial
• expandir: s  {si , ..., si }
Conjunto finito de sucesores
un estado
• meta?: s  verdad | falso
Prueba de éxito en un estado
• c: (si, sj )  v, v ∈ ℵ
Coste de un operador
1
de
n
n−1
• c ( si1 si2 …sin ) = ∑ c ( sik ,sik+1
k=1
€
)
Coste de un plan
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 1
Problema de búsqueda / conocimiento del agente:
En una mesa se encuentran dos jarras, una con una capacidad de 3 litros
(llamada Tres), y la otra con una capacidad de 4 litros (llamada Cuatro).
Inicialmente, Tres y Cuatro están vacías. Cualquiera de ellas puede llenarse con
el agua de un grifo G. Asimismo, el contenido tanto de Tres como de Cuatro
puede vaciarse en una pila P. Es posible verter todo el agua de una jarra a la otra.
No se dispone de dispositivos de medición adicionales. Se trata de encontrar una
secuencia de operadores que deje exactamente dos litros de agua en Cuatro.
a) Modele este problema como un problema de búsqueda. Con tal fin, defina el
estado inicial, el conjunto de estados meta, los operadores (especificando sus
precondiciones y post-condiciones), así como el coste de cada operador.
b) Caracterice el conocimiento a priori del agente de resolución del problema
correspondiente? Facilite ejemplos de los resultados de la función expandir.
c) Encuentre una solución al problema.
Inteligencia Artificial 3º ITIS
2010/11
Método de búsqueda
Método de búsqueda:
• estrategia para explorar el
espacio de estados
• en cada paso se expande un
estado
• se desarrolla sucesivamente
un árbol de búsqueda
Método general de búsqueda:
1. seleccionar nodo hoja
2. comprobar si es nodo meta
3. expandir este nodo hoja
Arbol de búsqueda:
C
A B
B
C
A
C
B A
A
C
B
A B C
B
C A
A B C
B
A C
A
B
C
Inteligencia Artificial 3º ITIS
2010/11
Algoritmo de búsqueda
Elementos del algoritmo
• el árbol se representa en base
a un registro del tipo nodo
• abierta es una lista de nodos,
que reúne las hojas del árbol
{búsqueda general}
abierta ← s0
Repetir
Si vacía?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
• vacía? determina si una lista
es vacía
Si meta?(nodo) entonces
• primero quita el primer
elemento de una lista
sucesores ← expandir(nodo)
• ordInsertar añade un nodo a
una lista, clasificado según
una función de orden
devolver(nodo)
Para cada n∈sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta,<orden>)
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Estados repetidos
Problema:
• el mismo estado puede repetirse varias veces en el árbol de búsqueda
• puede generarse el mismo subárbol varias veces
Soluciones:
• ignorarlo
• evitar ciclos simples:
– no añadir el padre de un nodo al conjunto de sucesores
• evitar ciclos generales:
– no añadir un antecesor de un nodo al conjunto de sucesores
• evitar todos los estados repetidos:
– no añadir ningún nodo existente en el árbol al conjunto de sucesores
Inteligencia Artificial 3º ITIS
2010/11
Clasificación de métodos
Características:
• completitud: se encuentra una solución si existe
• optimalidad: se encuentra la mejor solución si hay varias
• complejidad en tiempo: ¿cuánto se tarda en encontrar la solución?
• complejidad en espacio: ¿cuánta memoria se utiliza en la búsqueda?
Tipos de métodos de búsqueda:
• no informados: utilizan sólo los conocimientos mínimos
• heurísticos: además utilizan información aproximada, y específica
del problema, para guiar la búsqueda
Inteligencia Artificial 3º ITIS
2010/11
Resumen de los métodos de búsqueda
(i)
búsqueda en
amplitud
(iv) búsqueda
de coste
uniforme
2.3 búsqueda
heurística
2.2 búsqueda
no informada
búsqueda
general
(vii) IDA*
(vi) A*
(iii) Búsqueda
profundidad
iterativa
(ii) búsqueda
en
profundidad
(v) búsqueda
avara
Inteligencia Artificial 3º ITIS
2010/11
Tema 2: Búsqueda
2. Búsqueda
2.1. Agentes de resolución de
problemas
2.2. Búsqueda no informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en amplitud
Búsqueda en amplitud:
• inglés: breadth first search
• Estrategia:
– generar el árbol por niveles de
profundidad
– expandir todos los nodos de nivel
i, antes de expandir nodos de
nivel i+1
• Resultado:
– considera primero todos los
caminos de longitud 1, después
los caminos de longitud 2, etc.
– Se encuentra el estado meta de
menor profundidad
Inteligencia Artificial 3º ITIS
2010/11
Árbol de búsqueda en amplitud
Búsqueda en amplitud:
C
A B
Nivel 1
Nivel 2
Nivel 3
B
C
A
C
B A
A
C
B
A B C
...
Nivel 4
A
B C
...
A B C
A
C B
...
B
C A
C
B A
B
C A
A
B
C
B
A C
Inteligencia Artificial 3º ITIS
2010/11
Algoritmo para búsqueda en amplitud
Algoritmo:
• usar el algoritmo general de
búsqueda
• añadir nuevos sucesores al final
de la lista abierta
• abierta funciona como cola
– inserción al final
– recuperación desde la cabeza
• estructura FIFO:
– siempre expandir primero el
nodo más antiguo (es decir:
menos profundo)
{búsqueda en amplitud}
abierta ← s0
Repetir
Si vacía?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores ← expandir(nodo)
Para cada n∈ sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta,final)
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Árbol de búsqueda en amplitud
Lista abierta:
C
A B
C
A B
B
C
A
C
B A
A
C
B
A
B
C
A
B C
A
A
B C
A
B C
A
C B
B
C A
C
B A
...
...
B
A C
A
A
B
A C
A
A
B C
A
B
C
B
C A
C
B A
C
B A
B
A C
B C
A
C
B
B C
A
C
B
B C
A
C
B
...
B
C
A
C
B A
A
B C
A
B C
...
B
A C
...
B C
A
C B
B
C A
C
B A
B
A C
...
B
A C
...
A
B
C
Inteligencia Artificial 3º ITIS
2010/11
Complejidad
Complejidad en tiempo y espacio:
• proporcional al número de nodos expandidos
Suponemos que en el árbol de búsqueda
• el factor de ramificación es b
• el mejor nodo meta tiene profundidad d
Mejor caso
Caso medio
1
...
d–2
d–1
d
1+b+...+bd-1 +1 ∈ O(bd)
0
0
0
1
Peor caso
1
...
d–2
d–2
d–1
d–1
d
d
1+b+...+bd-1 +bd/2 ∈ O(bd)
...
1+b+...+bd-1 +bd ∈ O(bd)
Inteligencia Artificial 3º ITIS
2010/11
Requerimientos de tiempo y memoria
Requerimientos de recursos de una búsqueda en amplitud exponencial
• factor de ramificación efectivo: 10
• tiempo: 1000 nodos/segundo
• memoria: 100 bytes/nodo
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en amplitud: análisis
Ventajas:
• completo:
• siempre se encuentra un nodo meta si existe
• óptimo (para operadores de coste uno):
• siempre se encuentra el nodo meta menos profundo
Problemas:
• complejidad
• exponencial incluso en el mejor caso
• los problemas de espacio son aún más graves que los
problemas de tiempo
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.2
Búsqueda en amplitud:
El grafo que se muestra al lado
determina un problema de búsqueda.
Cada nodo representa un estado; los
arcos modelan la aplicación de
operadores. Suponga que A es el
estado inicial y que K y E son
estados meta
a)
b)
c)
desarrolle el árbol de búsqueda
que genera la búsqueda en
amplitud. ¿Cuál de los nodos
meta se encuentra primero?
indique el orden en que se
expanden los nodos
ponga el estado de la lista abierta
en cada paso del algoritmo
A
D
F
H
C
B
K
G
E
Z
W
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en profundidad
Búsqueda en profundidad:
• inglés: depth first search
• Estrategia:
• expandir los nodos más
profundos primero
• si se llega a un nodo sin
sucesores, dar vuelta atrás y
expandir el siguiente nodo más
profundo
• Resultado:
• el método va explorando un
“camino actual”
• no siempre se encuentra el
nodo de profundidad mínima
Inteligencia Artificial 3º ITIS
2010/11
Árbol de búsqueda en profundidad
búsqueda en profundidad
(evitando ciclos simples):
C
A B
B
C
A
C
B A
A
C
B
A B C
A B C
B
C A
A
C B
A
B
C
B
A C
A
B C
C
B A
B
A C
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en profundidad
Algoritmo:
• usar el algoritmo general de
búsqueda
• añadir nuevos sucesores en la
cabeza de la lista abierta
• abierta funciona como pila
– inserción en la cabeza de la lista
– recuperación desde la cabeza
• estructura LIFO:
– siempre expandir primero el
nodo más reciente (es decir:
el más profundo)
• al guardar todos los sucesores de
un nodo expandido en abierta, se
permite la “vuelta atrás”
{búsqueda en profundidad}
abierta ← s0
Repetir
Si vacía?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores ← expandir(nodo)
Para cada n∈ sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta,cabeza)
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Árbol de búsqueda en profundidad
Lista abierta:
C
A B
C
A B
B
C
A
C
B A
A
C
B
A B C
C
B A
A B C
B
C A
A
B
C
A
C B
B
A C
A
B C
B
C
A
C
B A
B
A C
A
C
B
C
B A
A B C
A B C
A B C A B C
A B C A B C
B
C A
A
B
C
A
C B
B
A C
A
B C
A
C B
C
B A
A
B C
B
A C
A B C
C
B A
B
A C
A B C
Inteligencia Artificial 3º ITIS
2010/11
Límites de profundidad
Problema:
• la búsqueda en profundidad sólo es completa en el
caso de árboles de búsqueda finitos
• si existen caminos infinitos sin nodo meta, es posible
que la búsqueda en profundidad no termine
Solución:
• búsqueda en profundidad limitada:
– inglés: depth limited search
– búsqueda en profundidad con límite de profundidad d*
– expandir sólo nodos con profundidad d ≤ d*
• incompleto si la profundidad del mejor nodo meta es mayor
que d*
...
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en profundidad limitada:
complejidad
Complejidad en tiempo:
• proporcional al número de nodos expandidos
• factor de ramificación b / límite de profundidad d* /
nodo meta con profundidad d≤d*
• mejor caso: O(d) (se expanden sólo los nodos del camino meta)
• peor caso: O(bd*) (se expanden todos los nodos de prof. ≤ d*)
Complejidad en espacio:
• sólo los nodos del camino actual y sus “vecinos” (sucesores) necesitan
almacenarse en la memoria
• lineal en la profundidad del árbol de búsqueda
– mejor caso: O(b·d) / peor caso: O(b·d*)
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en profundidad limitada:
análisis
Ventajas:
• mejora significativa de la complejidad en espacio con respecto a
la búsqueda en amplitud (lineal frente a exponencial):
• completo para límites de profundidad d* adecuados
Problemas:
• no es óptima: el nodo meta que se encuentra puede no ser de
profundidad mínima
• es común que unos límites “buenos” de profundidad sólo pueden
establecerse cuando el problema ya haya sido resuelto
• en general, no se puede asegurar que la profundidad d de un nodo
meta sea d ≤ d*, es decir no se puede garantizar la completitud.
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.3
Búsqueda en profundidad:
El grafo que se muestra al lado determina un
problema de búsqueda. Cada nodo representa
un estado; los arcos modelan la aplicación de
operadores. Suponga que A es el estado inicial
y que K y E son estados meta
a)
b)
c)
d)
desarrolle el árbol de búsqueda que genera
la búsqueda en profundidad. ¿Cuál de los
nodos meta se encuentra primero?
indique el orden en que se expanden los
nodos
ponga el estado de la lista abierta en cada
paso del algoritmo
¿cómo cambiaría el proceso de búsqueda si
aplicamos límites de profundidad, p.ej.:
d*=2?
A
D
F
H
C
B
K
G
E
Z
W
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.4
Búsqueda en profundidad (limitada):
La búsqueda en profundidad puede
implementarse fácilmente con un programa
recursivo.
a)
Especifique una implementación recursiva de
la búsqueda en profundidad en pseudocódigo.
b)
Modifique el pseudocódigo del ejercicio a)
para incorporar límites de profundidad.
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de profundización iterativa
• Inglés: iterative deepening search
• Idea:
– esquivar el problema de elegir d*, al probar todos los posibles límites
de profundidad
• Estrategia:
– enumerar todos los límites de profundidad d´, empezando por 0
– realizar búsqueda de profundidad limitada hasta d´
• Algoritmo:
{búsqueda de profundización iterativa}
abierta ← s0
desde d´ ← 0 hasta ∝ hacer
si búsqueda-en-prof-limitada(problema, d´) = éxito entonces
devolver(nodo-meta)
fin {desde}
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de profundización iterativa
límite d*=1
límite d*=2
fallo
fallo
límite d*=3
éxito
...
...
...
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de profundización iterativa:
complejidad
Complejidad en espacio:
• igual que la búsqueda en profundidad: sólo se almacenan los nodos
vecinos del camino actual
• lineal en la profundidad del árbol de búsqueda: peor caso O(b·d)
Complejidad en tiempo:
• normalmente el coste adicional es relativamente pequeño
• argumento intuitivo:
– – – – – suponga un árbol de búsqueda de profundidad d
los nodos interiores (prof. <d) se expanden varias veces
los nodos hoja (prof. = d) se expanden sólo una vez
en un árbol de búsqueda exponencial “casi todos” los nodos son hojas
en consecuencia, para árboles de búsqueda grandes, la búsqueda de
profundización iterativa no expande “muchos más” nodos que la búsqueda en
profundidad limitada
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de prof. iterativa: complejidad en
tiempo
Complejidad en tiempo en el peor caso:
• nº de nodos expandidos por la búsqueda en prof. limitada hasta prof. d:
• nº de nodos expandidos por la búsqueda de prof. iterativa hasta prof. d:
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de prof. iterativa: complejidad en
tiempo
Coste adicional de tiempo de la búsqueda de profundización iterativa:
N
N
id
w
dl
w
(d )
=
(d )
b d +2 −2b −bd +d +1
( b −1) 2
b d +1 −1
b −1
b d +2 − 2b − bd + d +1 b −1
=
⋅ d +1
2
b −1
(b −1)
b d +2 − 2b − bd + d +1
=
b d +2 − b d +1 − b +1
=
=
(
b d +1 b − b2bd +1 − bbdd +1 + b dd +1 + b d1+1
b
d +1
(b −
b d +1
b d +1
− b db+1 + b d1+1
)
)
b − b2d − bdd + b dd +1 + b d1+1
b −1 − b1d + b d1+1
Inteligencia Artificial 3º ITIS
2010/11
€
Búsqueda en prof. iterativa: complejidad en
tiempo
Coste adicional de tiempo de la búsqueda de profundización iterativa:
• para d→∞ se obtiene:
• Ejemplo: b= 10
• para b=10 y nodos meta profundos, la búsqueda de profundización
iterativa expande sólo 11% más nodos que la búsqueda en
profundidad limitada
• complejidad en tiempo en el peor caso de la búsqueda de
profundización iterativa : O(bd)
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda no informada: resultados
Resultados del peor caso:
• factor de ramificación b / profundidad de la mejor solución d /
límite de profundidad d*
Método no
informado
preferido
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.5
Búsqueda de profundización iterativa:
El grafo que se muestra al lado determina un
problema de búsqueda. Cada nodo representa
un estado; los arcos modelan la aplicación de
operadores. Suponga que A es el estado inicial
y que K y E son estados meta
a)
b)
desarrolle la secuencia de árboles de
búsqueda generadas por la búsqueda de
profundización iterativa, indicando para
cada uno de ellos el orden en que se
expanden los nodos
A
D
F
H
C
B
K
G
E
Z
W
¿Cuál de los nodos meta se encuentra
primero?
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.6
Búsqueda de profundización iterativa:
Describa características relevantes de los
espacios de búsqueda en los que el
rendimiento de la búsqueda de
profundización iterativa es mucho peor
que el de la búsqueda en profundidad
estándar. Ponga un problema ejemplo que
ilustre dichas características.
Inteligencia Artificial 3º ITIS
2010/11
Problema de encontrar rutas
Estado: estancia en una ciudad
Operadores: ir a una ciudad vecina
Coste de un operador: distancia por
carretera a la ciudad vecina
Coste de un plan: suma de distancias
entre las ciudades visitadas
Oradea
Zerind
75
87
Iasi
151
Arad
118
Neamt
71
Sibiu 99
140
Rimnicu
Timisoara
111
80
75
Dobreta
Fagaras
97
Vaslui
142
211
Pitesti
Lugoj
70
92
101
146
Mehadia
120
85
138
Craiova
Bucarest
90
98
Urziceni
Hirsova
86
Eforie
Giurgiu
Inteligencia Artificial 3º ITIS
2010/11
Problema de encontrar rutas: ejemplo
O
N
71
Z
75
87
I
151
A
118
S
140
92
99
F
80
R
T
111
75
D
V
97
85
101
146
M
B
138
120
C
90
• p2 = A-S-R-P-B
c(p2) = 418
142
211
P
L
70
Ejemplo:
• p1 = A-S-F-B
c(p1) = 450
98
U
H
86
E
G
Problema:
• los métodos de búsqueda no informados encuentran el nodo meta de
menor profundidad; éste puede no ser el nodo meta de coste mínimo
• prof.(Bp1) = 3 < 4 = prof.(Bp2) / c(p1) = 450 > 418=c(p2)
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda de coste uniforme
Búsqueda de coste uniforme:
• Inglés: uniform cost search
• Idea:
• guiar la búsqueda por el coste de los
operadores
• Método:
• • g(n): coste mínimo para llegar
del nodo inicial al nodo n
expandir siempre el nodo de menor
coste g primero
• Algoritmo:
almacenar cada nodo con su valor g
• insertar los nuevos nodos en abierta
en orden ascendente según su valor g
• {búsqueda de coste uniforme}
abierta ← s0
Repetir
Si vacío?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores ← expandir(nodo)
Para cada n∈ sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta,g)
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: Búsqueda de coste uniforme
g=0
S
R
A
g=220
S
g=300
g=280
P
g=317
g=140
O
g=291
C
g= 118
F
g =239
g=366
T
Z
L
g=229
M
g = 340 g= 299
g =75
A
O
g=236
Z
S
g = 212 g= 292
O
B
g=146
S
g=283
...
A
g=290
A
g=287
g=150
Z
g=225
O
g=268
T
A
g=296
g=300
Inteligencia Artificial 3º ITIS
2010/11
Lógica de la búsqueda de coste uniforme
O
N
71
Z
75
87
I
151
A
118
S
140
92
99
F
80
R
T
111
97
75
M
g = 80
85
101
146
D
142
211
P
L
70
V
B
138
120
C
90
98
U
H
86
E
G
g = 120
g = 160
Inteligencia Artificial 3º ITIS
2010/11
Características de la búsqueda de coste
uniforme
Dinámica:
• la búsqueda de coste uniforme desarrolla sucesivamente todos los caminos por
orden de valor g creciente
• igual que la búsqueda en amplitud si g(n) = prof.(n) para todos los n
La búsqueda de coste uniforme es óptima:
• suponga que se encuentra un camino a un nodo meta ng con g(ng) = k
• los valores de g crecen de forma monótona la largo de todos los caminos del
árbol de búsqueda
• por tanto, la búsqueda de coste uniforme expande todos los nodos ng con g(n)
<k
• en particular, si hubiera un nodo meta ng' con g(ng') < k , éste se habría
expandido antes que ng
• contradicción; en consecuencia ng es el nodo meta de menor coste (valor de g)
Inteligencia Artificial 3º ITIS
2010/11
Características de la búsqueda de coste
uniforme
La búsqueda de coste uniforme es completa:
• sea ng un nodo meta con g(ng) = k
• suponga que no es encontrado por la búsqueda de coste uniforme
– debe haber un número infinito de nodos ni con g(ni) ≤ k
– ya que el número de sucesores de un nodo es finito, debe haber un camino
infinito p, tal que para todos los nodos ni de p se cumple que g(ni) ≤ k
– pero la función de coste c asigna un entero positivo a cada operador,
y todas las sucesiones crecientes de enteros no tienen límite
• contradicción; en consecuencia el nodo meta ng será encontrado
Complejidad en tiempo y espacio:
• exponencial, al igual que la búsqueda en amplitud
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.7
Búsqueda de coste uniforme:
Aplique la búsqueda de coste uniforme para encontrar
una ruta de Craiova (C) a Fagaras (F). Desarrolle el
árbol de búsqueda generado por dicho algoritmo,
asumiendo que se evitan ciclos simples. Indique el
valor g de cada nodo, así como el orden en el que se
expanden los nodos.
Inteligencia Artificial 3º ITIS
2010/11
Tema 2: Búsqueda
2. Búsqueda
2.1. Agentes de resolución
de problemas
2.2. Búsqueda no informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
Inteligencia Artificial 3º ITIS
2010/11
Heurísticas
Heurística (griego: heuriskein): “encontrar”, “descubrir”
Inteligencia Artificial:
• compila conocimiento “empírico” sobre un problema / un entorno
Interpretación “fuerte”:
• una heurística suele facilitar la resolución de un problema, pero no garantiza
que se resuelva
• una heurística es una “regla de tres” para un problema
• búsqueda: optimalidad o incluso completitud no garantizados
Interpretación “débil”:
• método riguroso + información heurística
• información heurística puede mejorar el rendimiento medio de un método de
resolución de problemas, pero no garantiza una mejora en el peor caso
• búsqueda: mejora de complejidad no garantizado
Inteligencia Artificial 3º ITIS
2010/11
Funciones heurísticas
Funciones heurísticas para búsqueda en el espacio de estados:
• estiman de adecuación de un nodo para ser expandido
• métodos de búsqueda “el mejor primero” eligen el nodo más
prometedor para expandir
Heurística usual: “distancia” hacia la meta
• h :N→ℵ mide el coste real desde el nodo n hasta el nodo meta más
cercano
• h*:N→ℵ es una función heurística que estima el valor de h(n)
• una función heurística h* es optimista, si h*(n) ≤ h(n) para todo nodo n
Ejemplos de funciones heurísticas optimistas:
• mundo de los bloques: número de bloques descolocados
• encontrar rutas: distancia en línea recta hasta un nodo meta
Inteligencia Artificial 3º ITIS
2010/11
Función heurística para encontrar rutas
O
N
71
Z
75
87
I
151
A
118
S
140
92
99
F
80
R
T
111
97
75
D
142
211
P
L
85
101
146
70
V
M
B
138
120
C
90
G
98
U
H
86
E
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
U
V
Z
h*
366
0
160
242
161
178
77
151
226
244
241
234
380
98
193
253
329
80
199
374
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda avara
Búsqueda avara:
Inglés: greedy search
Idea:
minimizar el coste estimado para
llegar a la meta
Estrategia:
Entre las hojas del árbol de
búsqueda, seleccionar el nodo que
minimice h*(n)
Algoritmo:
mantener la lista abierta ordenada
por valores crecientes de h*
insertar nuevos nodos en abierta
según sus valores h*
{búsqueda avara}
abierta ← s0
Repetir
Si vacía?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores ← expandir(nodo)
Para cada n∈sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta,h* )
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo 1: búsqueda avara
h* = 366
S
A
F
h* = 366 h* = 178
T h* = 329
h* = 253
O
R
h* = 380
S h* = 253
Z h* = 374
h* = 193
B h* =0
Solución subóptima:
• c(A-S-F-B) = 450
• c(A-S-R-P-B) = 418
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo 2: búsqueda avara
Ejemplo:
• Nodo inicial: I (Iasi)
• Nodo meta: F (Fagaras)
• hF* estima la distancia hasta F
hF*
F 0
I
226
N 201
V 246
...
hF* = 226
N hF* = 201
V hF* =246
hF* = 226
N hF* = 201
V hF* =246
hF* = 226
...
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda avara: análisis
Análisis:
• en general, la búsqueda avara sufre los mismos problemas que la búsqueda en
profundidad
• no es óptima (ejemplo 1)
• no es completa (ejemplo 2)
• sin embargo, suele encontrar una solución aceptable de forma rápida
Comentarios:
• problema fundamental de la búsqueda avara:
• sólo considera el coste para llegar al nodo actual
• no se fija en la distancia restante desde el nodo actual
• para asegurar la completitud habría que evitar todos los estados repetidos
• el método es óptimo sólo en aquellos espacios de estados en los que el coste de un
nodo n es independiente del camino por el que se llega hasta él
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.8
Problema de las 4 reinas:
• 4 reinas en un tablero 4x4
• estados: casillas de las 4 reinas
• metal?: ninguna reina amenazada
• op.: mover una reina a otra casilla
de su misma fila
• coste: el coste de cada op. es cero
• estado inicial:
Nótese:
• dado que el coste de cada operador es 0, el
camino por el cual se llega a un nodo no
importa, siempre que al final se encuentre
un nodo meta (ninguna reina esta
amenazada)
a) encuentre una heurística h* para el
problema de las 4 reinas
b) resuelve el problema aplicando la
búsqueda avara con dicho heurística h*
Comentario:
si concebimos cada fila como una
variable, podemos replantear el ejercicio
como un problema de satisfacción de
restricciones
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda A*
Idea:
• minimizar el coste estimado total de un camino en el árbol de búsqueda
• combinar
• el coste para llegar al nodo n (se conoce exactamente: g), y
• el coste aproximado para llegar a un nodo meta desde el nodo n
(estimado por la función heurística h* )
Función heurística de A*:
– f (n) = g(n) + h(n): coste real del plan de mínimo coste que pasa por n
– f *(n) = g(n) + h*(n): estimación de f
Estrategia A* :
• entre las hojas del árbol de búsqueda, elegir el nodo de valor f * mínimo
Inteligencia Artificial 3º ITIS
2010/11
El Algoritmo A*
Algoritmo A* :
• se basa en la búsqueda general
• almacenar el valor g de cada nodo
expandido
• mantener la lista abierta ordenada
por valores crecientes de f *
• insertar nuevos nodos en abierta
según sus valores f *
{A*}
abierta ← s0
Repetir
Si vacío?(abierta) entonces
devolver(negativo)
nodo ← primero(abierta)
Si meta?(nodo) entonces
devolver(nodo)
sucesores ← expandir(nodo)
Para cada n∈sucesores hacer
n.padre ← nodo
ordInsertar(n,abierta, f *)
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo 1: Búsqueda A*
f * = 0+366
= 366
S
A
F
f * = 280+366
= 646
S
f * = 140+253
= 393
O
T
R
f * = 239+178 f * = 291+380
= 417
= 671
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo 2: Búsqueda A*
hF*
B 180
F 0
I
226
N 201
U 151
V 246
...
Ejemplo:
• Nodo inicial: I (Iasi) / nodo meta: F (Fagaras)
• hF* estima la distancia hasta F
fF * = 0+226
= 226
N
V
fF * = 87+201
= 288
fF * = 174+226
= 400
U
fF * = 92+246
= 338
fF * = 234+151
= 385
I
f * = 376+246 f * = 319+180
V = 622 B = 499
...
fF * = 184+226
= 410
f * = 332+350
H = 682
Inteligencia Artificial 3º ITIS
2010/11
Valores de f * en árboles de búsqueda A*
Posibles “tipos” de variación de los valores de f * a lo largo de un
camino desde la raíz hasta un nodo nj
f*
f*
f *(nj)
f *(nj)
nj
n1
(a) variable
n1
nj
(b) monótono creciente
Inteligencia Artificial 3º ITIS
2010/11
Funciones heurísticas consistentes
Definición:
Si para todo nodo ni y todo sucesor nj de ni se cumple que
h*(ni ) – h*(nj ) ≤ c(ni,nj)
entonces h* es consistente
nj
Interpretación intuitiva:
• h* es consistente si cumple la
desigualdad triangular
h*(nj )
c(ni,nj)
ni
h*(ni )
ng
Nota: Si h* es consistente, entonces también es optimista
Inteligencia Artificial 3º ITIS
2010/11
Monotonía de f * con función
heurística consistente
Lema 1: Si h* es consistente, entonces f * crece de forma monótona en
todos los caminos del árbol de búsqueda, es decir: si nj es
sucesor de ni, entonces
f *(nj ) ≥ f *(ni )
Prueba:
h*(nj )
≥ h*(ni ) – c(ni,nj)
h*(nj ) + g(nj )
≥ h*(ni ) + g(nj ) – c(ni,nj)
h*(nj ) + g(nj )
≥ h*(ni ) + g(ni ) + c(ni,nj) – c(ni,nj)
f *(nj )
≥ f *(ni )
Inteligencia Artificial 3º ITIS
2010/11
Valores de f * en árboles de búsqueda A*
h* consistente
f*
f *(nj)
h* consistente
f*
f *(nj)
nj
n1
(a) variable
n1
nj
(b) monótono creciente
Corolario 1: Sea nm el mejor nodo meta. Si h* es consistente, entonces el
conjunto de nodos expandidos por el algoritmo A * es
{ni | f *(ni ) ≤ f *(nm ) }
Inteligencia Artificial 3º ITIS
2010/11
Lógica de la búsqueda A* con función
heurística consistente
O
N
71
Z
75
87
I
151
A
118
S
140
92
99
F
80
R
T
111
97
85
101
146
70
D
142
211
P
L
75
V
M
B
138
120
f * = 380
C
90
98
U
H
86
E
G
f * = 400
f * = 420
Inteligencia Artificial 3º ITIS
2010/11
Optimalidad de A*
Teorema 1:
Si h* es consistente, entonces el método A* es óptimo
Prueba:
1.
Debido a la consistencia de h*, la búsqueda se realiza por las “curvas de nivel” correspondientes a
f * (lema 1). Se expanden sucesivamente los nodos de menor a mayor valor de f *
2. Por tanto, el primer nodo meta encontrado n tendrá el valor mínimo de f *
(e.d. la misma argumentación que en el caso de la búsqueda de coste uniforme)
3.
Un nodo meta con valor mínimo de f * también tiene el valor mínimo de g.
• f *(n ) = g(n )+ h*(n )
• Si h* es consistente también es optimista, y entonces h*(n ) = 0
para todo nodo meta
4. En consecuencia, el camino en el árbol de búsqueda desde la raíz hasta el primer nodo meta n es
de coste mínimo, y A* es óptimo
Nota: se puede demostrar el siguiente teorema más general:
Si h* es optimista, entonces el método A* es óptimo
Inteligencia Artificial 3º ITIS
2010/11
Completitud de A*
Teorema 2:
Si h* es consistente, entonces el método A* es completo
Prueba:
• sea ng un nodo meta con f *(ng) = k. Suponga que ng no es encontrado por el método
A*
• ya que el número de sucesores de un nodo es finito, debe haber un camino infinito p
• debido al lema 1 (monotonía de f *) todos los nodos ni de p han de cumplir f *(ni) ≤ k
• pero la secuencia de valores de g a lo largo de p no tiene límite
(véase la prueba de completitud de la búsqueda de coste uniforme)
• por definición h *(n) ≥ 0, por lo que la secuencia de f *(ni) = g(ni) + h*(ni) tampoco tiene
límite para los nodos ni a lo largo de p
• contradicción; en consecuencia, el método A* encuentra el nodo meta ng
Nota: se puede demostrar que A* es completo para cualquier función heurística
positiva h*
Inteligencia Artificial 3º ITIS
2010/11
Encontrar Funciones Heurísticas: Aprendizaje
Idea: generar información heurística “sobre la marcha”
• realizar varias búsquedas (ligeramente diferentes) en el mismo dominio
(p.e. siempre a Bucarest, pero desde diferentes ciudades iniciales)
• En cada paso de una búsqueda, usar el coste real de un paso parar mejorar el valor de h*
• En la próxima búsqueda se utilizan los valores de h* actualizadas
Método:
• Inicialmente, se realiza una búsqueda con h*(n) = 0 para todos los nodos n
• En cada paso de ni a nj: h * (n i )←
min
[h (n ) + c(n ,n )]
n j ∈expandir(n i )
*
j
i
j
• Al visitar un nodo por segunda vez, se utilizan los valores de h* actualizados
Problema:
€
• Hay que almacenar los valores h* de todos los nodos en una tabla (memoria!)
Inteligencia Artificial
3º ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Función
Heurística
A
140
S
75
118
fL * = 140+0
= 140
fL * = 118+0
= 118
80
151
140
R
fL*=220+0
=220
80
S
L
97
fL*=300
+80
=380
n
hL*
A
+75 fL*= 291
+0
+142
= 355
= 433
291
F
fL* = 239+0
= 239
Z
fL * = 75+0
= 75
118
111
99
Af *= 280O
Ejemplo: ir de A a L
Inicialmente hL*(n) = 0 para todo nodo n
fL * = 0+0
=0
75
71
A
L
fL *=229+0 fL *=236+75
=229
=311
71
146
P
O
Z
fL*=317
fL*=366
+0 C
+0
=317
=366
fL*=217
+71
=288
fL*=146+0 fL * = 150+75
= 146 A
= 225
140
151
S
fL*=297
+80
=377
S
118
75
fL*=290
fL*=225
fL*=268
T
Z
+80
+71
+111
=370
=296
=379
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
U
V
Z
0
0
75
146
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
142
97 80 111
71
Inteligencia Artificial
3º ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Función
Heurística
Ejemplo: ir de Z a L
Inicialmente hL*(n) aprendido anteriormente
fL * = 0+71
= 71
Z
71
75
A
fL * = 75+146
= 221
140
S
80
R
fL*=295+97
=392
140
A
fL * = 71+142
= 213
75
118
fL * = 215+80
= 295
Z
151
F
fL*= 355 fL*= 366 fL* = 314+0
= 314
+220
+231
= 575
= 597
fL*=142
+213
=355
118
111
151
71
fL * = 193+111 Z fL * = 150+213
= 304
= 363
99
O
O
L
A
S
*=222
ffLL*=222
+99
+80
=321
=302
fL *=304+0 fL *=311+220
=304
=531
n
A
B C
D
E
F
G
H
I
L M N O
P R
S
hL*
146
220
0 0
0
0
0
0
0
0
0 0
0
80 111
99 111
0
142
231
97
T
U V Z
0 0
71
213
Inteligencia Artificial
3º ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Función
Heurística
Ejemplo: ir de A a L
Inicialmente hL*(n) aprendido anteriormente
A
fL * = 0+220
= 220
140
75
118
S
fL * = 140+99
= 239
fL * = 118+111 Z fL * = 75+213
= 229
= 288
118
111
A
L
fL *=229+0 fL *=236+229
=229
=465
n
A
B C
D
E
F
G
H
I
L M N O
P R
S
hL*
220
229
0 0
0
0
0
0
0
0
0 0
0
99 111
111
0
231
97
T
U V Z
0 0 213
Inteligencia Artificial
3º ITIS 2010/11
Encontrar de Funciones Heurísticas:
Diseño
El problema del 8-puzzle:
Estado inicial
• Estados:
• posición de cada una de las piezas
• Operadores:
• mover pieza adyacente a la posición
del “hueco”
• de 2 a 4 operadores aplicables,
según el estado
2
7
3
1
8
4
6
Estado meta
1
• Coste:
• La aplicación de cada operador vale
una unidad
5
2
8
7
3
4
6
5
Inteligencia Artificial 3º ITIS
2010/11
Encontrar de Funciones Heurísticas: Diseño
Estado inicial
2
7
3
1
8
4
6
5
Estado meta
1
2
8
7
3
4
6
5
• Problemas relajados:
• menos restricciones para cada operador
• h*: distancia h exacta en el problema relajado
• 8 Puzzle: una pieza puede moverse de A a B...
a) siempre
b) si B está vació
c) si A es adyacente a B
• Funciones heurísticas:
a) número de piezas descolocadas
– ha*(s0) = 5
b) suma de saltos necesarios
– hb*(s0) = 5
c) suma de las distancias de Manhattan
– hc*(s0) = 1+1+1+3+1=7
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.9
Estado inicial
1
2
6
4
8
7
3
5
Estado meta
1
2
8
7
3
4
6
5
Heurísticas A* :
Considere el 8-puzzle cuyo estado inicial y
estado meta se muestra al lado:
a) desarrolle el árbol de búsqueda del
algoritmo A* usando la heurística ha*
(número de piezas descolocadas)
b)desarrolle el árbol de búsqueda del
algoritmo A* usando la heurística hc*
(suma de distancias Manhattan)
c)¿Cuál de las heurística expande menos
nodos? ¿Por qué? ¿Puede sacar una
conclusión general con respecto a la
“calidad” de la funciones heurísticas?
Inteligencia Artificial 3º ITIS
2010/11
Calidad de las Funciones Heurísticas
Definición:
Sean h1* y h2* dos funciones heurísticas optimistas.
h1* es más informada que h2*, si para todo nodo n se cumple que
h1*(n ) ≥ h2*(n )
Ejemplo:
• en el 8-puzzle, hc* es más informada que ha*
– las piezas bien colocadas no cuenta en ha* ni en hc*
– la distancia Manhattan de cada pieza descolocada es al menos 1
– en consecuencia, en toda posible configuración n del 8-puzzle la suma de
las distancias distancias es igual o mayor que la suma de piezas
descolocadas
– para todas las configuraciones n se cumple hc*(n ) ≥ ha*(n )
Inteligencia Artificial 3º ITIS
2010/11
Calidad de las Funciones Heurísticas
Lema 2: Sean h1* y h2* dos funciones heurísticas consistentes. Si h1* es más
informada que h2*, entonces A*(h2* ) expande al menos tantos nodos
como A*(h1* )
Prueba:
1. Para el mejor nodo meta nm se cumple que f *(nm) = f1*(n!m) = f2*(nm)
2. Ya que h1* es más informada que h2*, para todos los nodos n se cumple que
h1*(n ) ≥ h2*(n ), y por tanto f1*(n ) ≥ f2*(n )
3. Por (1) y el Corolario 1 se sigue que
• • A*(h1* ) expande todos los nodos nj con f1*(nj ) ≤ f *(nm )
A*(h2* ) expande todos los nodos nj con f2*(nj ) ≤ f *(nm )
4. Por (2), se verifica que f1*(nj ) ≤ f *(nm ) → f2*(nj ) ≤ f *(nm )
5. Por (3) y (4) se concluye que cualquier nodo expandido por A*(h1*) también
será expandido por A*(h2* )
Inteligencia Artificial 3º ITIS
2010/11
Calidad de las Funciones Heurísticas
Nota:
• Se puede demostrar que el lema 2 también se cumple si se
asume sólo que h1* y h2* sean funciones heurísticas optimistas.
Conclusión:
• preferir grandes valores de h*, siempre que se mantenga
optimista
• si hay varias funciones heurísticas optimistas:
(
)
h * ( n ) = max h *1 ( n ),h2* ( n ),…,hm* ( n )
€
Inteligencia Artificial 3º ITIS
2010/11
Complejidad de A*
El número de nodos expandidos por A* depende de la precisión de h*:
• si h*(n) = h(n) para todos los nodos n:
• información completa: complejidad lineal (¡sin contar la complejidad de computar h*!)
• calcular h*(n) suele equivaler a resolver el problema completo
• si h*(n) = 0 para todos los nodos n:
• A* degenera a la búsqueda de coste uniforme
• resultados generales [Russell, pág. 101]:
• en el peor caso, A* es lineal sólo si para todos los nodos n,
| h (n) – h*(n) | ≤ O(c)
• en el peor caso, A* es polinomial sólo si para todos los nodos n,
| h (n) – h*(n) | ≤ O(log h(n))
• en escenarios reales, el error heurístico |h (n) – h*(n) | crece, al menos, de forma
proporcional al coste h (n)
• aún así, suele haber una mejora notable en comparación con métodos no informados
Inteligencia Artificial 3º ITIS
2010/11
Resultados experimentales
Comparación experimental:
• número de nodos expandidos en el problema del 8-puzzle
• varias profundidades d de la solución
• media sobre 100 instancias del problema
Inteligencia Artificial 3º ITIS
2010/11
Análisis de A*
Resultados acerca de A*:
• A* es completo y óptimo para funciones heurísticas consistentes (optimistas)
• la complejidad en espacio y tiempo de A* es proporcional al número de nodos
expandidos
• A* es de eficiencia óptima [véase Russell y Norvig]
• para todo heurística optimista h*, se verifica que no existe otro algoritmo que
asegure optimalidad y a la vez garantice expandir menos nodos
• sin embargo, al igual que en el caso de la búsqueda en amplitud (véase la tabla
correspondiente), en situaciones límite los problemas de espacio de A* son más
graves que los problemas de tiempo
Inteligencia Artificial 3º ITIS
2010/11
IDA*
IDA*: Iterative Deepening A* (Korf 1985)
Idea:
• aplicar búsqueda de profundización iterativa, pero en vez de usar sucesivos
límites de profundidad, usar sucesivos límites f *
Estrategia:
• usar inicialmente el valor f * de la raíz como limite f *
• realiza búsqueda en profundidad estándar hasta llegar al limite f * actual
(es decir: los valores f * no influyen en el orden de expandir los nodos)
• “curiosear” encima del límite f * por el nodo con el siguiente valor f * más
bajo
• repetir el proceso con dicho valor f * como nuevo limite f *
Características:
• al igual que la búsqueda en profundidad, IDA* desarrolla un “camino
actual”
• sólo los nodos vecinos de dicho camino actual se mantienen en le memoria
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (1)
f * = 0+366
= 366
límite f * = 366
S
A
F
f * = 280+366
= 646
S
f *= 140+253
= 393
O
T
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (2)
f * = 0+366
= 366
límite f * = 393
S
A
F
f * = 280+366
= 646
S
f* =
= 393
140+253
T
O
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (3)
f * = 0+366
= 366
límite f * = 413
S
A
F
f * = 280+366
= 646
S
f* =
= 393
140+253
T
O
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (4)
f * = 0+366
= 366
*
límite f = 415
S
A
F
f * = 280+366
= 646
S
f* =
= 393
140+253
T
O
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (5)
f * = 0+366
= 366
*
límite f = 417
S
A
F
f * = 280+366
= 646
S
f* =
= 393
140+253
T
O
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda IDA*: Ejemplo (6)
f * = 0+366
= 366
*
límite f = 418
S
A
F
f * = 280+366
= 646
S
f* =
= 393
140+253
T
O
R
f * = 239+178 f * = 146+380
= 417
= 526
B
f * = 338+253 f * = 450+0
= 591
= 450
C
f * = 366+160
= 526
R
f * = 118+329
= 447
Z
f * = 75+374
= 449
f * = 220+193
= 413
P
f * = 414+193
= 607
f * = 317+98
= 415
C
S
f * = 455+160
= 615
f * = 300+253
= 533
B
f * = 418+0
= 418
Inteligencia Artificial 3º ITIS
2010/11
Algoritmo IDA*
Algoritmo:
{bp-limite-f}
abierta ← s0
• un subprograma bp-limite-f que
f-siguiente ← ∞
realiza búsqueda en profundidad
Repetir
*
hasta un límite f dado
Si vacia?(abierta) entonces
*
• devuelve el siguiente f más bajo
devolver(f-siguiente)
{fallo}
nodo ← primero(abierta)
• un subprograma IDA* que actualiza
Si meta?(nodo) entonces
el límite f * y detecta éxito/fallo
devolver(nodo)
{éxito}
{IDA*}
sucesores ← expandir(nodo)
limite-f ← f*(s0 )
Para cada n∈ sucesores hacer
Repetir
Si f*(n )≤ límite-f entonces
limite-f ← bp-limite-f(limite-f)
n.padre ← nodo
Si éxito ent. devolver(solución)
ordInsertar(n,abierta,cabeza)
Si limite-f =∞ ent. devolver(fallo)
Sino
f-siguiente ← min(f-siguiente, f*(n ))
Fin {repetir}
Fin {repetir}
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.10
Algoritmo IDA* :
Aplique el algoritmo IDA* al problema del 8puzzle del ejercicio 2.8. Simule a mano el
proceso de búsqueda. ¿Cuántos diferentes límites
f * son explorados ?
Inteligencia Artificial 3º ITIS
2010/11
Análisis de IDA*
Algunos resultados sobre IDA*:
• completo y óptimo para funciones heurísticas optimistas, al igual que A*
• complejidad en espacio:
– δ : coste de un operador / m: mejor nodo meta / b: factor de ramificación /
d: profundidad de m
• complejidad en tiempo:
– muchos valores diferentes de f * (p.e. búsqueda de rutas):
puede elevar la complejidad en tiempo de A* al cuadrado
– pocos valores diferentes de f * (p.e. 8 puzzle):
proporcional a la complejidad en tiempo de A*
• mejoras: “equilibrar” expansión repetida y uso de memoria
– SMA* (Simplified Memory-bounded A*) [Russell 1992]
– RBFS (Recursive Best First Search) [Korf 1992]
Inteligencia Artificial 3º ITIS
2010/11
Resumen
Resultado clave:
• algoritmos A* e IDA* — la información heurística puede mejorar la
eficiencia de un método de búsqueda sin sacrificar su optimalidad
Extensiones:
• Búsqueda aproximada:
– acotar el espacio de búsqueda con información heurística fuerte (e.d. sacrificando
las garantías de optimalidad y completitud
– búsqueda guiada por subobjetivos (island-driven search), búsqueda jerárquica, …
• Búsqueda en línea:
– “engranar” búsqueda (elección de acciones) y acción/percepción ejemplos
– búsqueda de horizonte (limited-horizon search), A* en tiempo real (RTA*), …
Inteligencia Artificial 3º ITIS
2010/11
Tema 2: Búsqueda
2. Búsqueda
2.1. Agentes de resolución de problemas
2.2. Búsqueda no informada
2.3. Búsqueda heurística
2.4. Búsqueda multiagente
Inteligencia Artificial 3º ITIS
2010/11
Resolución de problemas con múltiples
agentes
Inteligencia Artificial 3º ITIS
2010/11
Agentes especializados
Situación:
• Múltiples agentes de resolución de problemas actúan en el mismo entorno
• Las acciones de los demás agentes influyen en la medida de rendimiento
de cada agente
• Ningún agente puede controlar las acciones de los demás agentes
• Hasta cierto punto, un agente puede predecir las acciones de los demás
Tipos de problemas multiagente :
• Escenarios cooperativos: metas compartidas
• Escenarios parcialmente cooperativos: algunas metas compartidas,
otras opuestas
• Escenarios antagónicos: metas opuestas
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: el mundo síncrono de los bloques
Dos agentes “conviven” en el mundo de los bloques:
• cada agente tiene sus propia situación meta
• los agentes evalúan la situación actual respecto a su “distancia” a su meta
• dicha distancia viene dada por el plan más corto que lleva a la meta del agente
α1 situación inicial α2
1
4
2
3
α1
:
1
4
3
2
distancia 2
metas α2
1
4
3
2
distancia 4
Actuación simultánea:
• los agentes pueden actuar en paralelo (de modo síncrono)
• las acciones (planes) pueden ejecutarse simultáneamente, siempre que no accedan
al mismo bloque a la vez
• el coste de un plan viene dado por el “tiempo” necesario para ejecutarlo
Inteligencia Artificial 3º ITIS
2010/11
Escenarios cooperativos
α1 Estado inicial α2
1
4
2
3
α1 Estados meta α2
4
1
3
2
4
1
3
2
Potencial para la cooperación:
• metas compartidas:
• • los dos agentes desean alcanzar la misma situación
acuerdo respecto a realizar un plan conjunto P:
• un agente trabaja en la pila izquierda, y el otro simultáneamente el la pila
derecha:
P = ( [quitar(1), quitar(2)], [apilar(4,1), apilar(3,2)] )
• los dos agentes sacan provecho si se ejecuta el plan conjunto
Inteligencia Artificial 3º ITIS
2010/11
Escenarios antagónicos
situación inicial
metas
α2
α1
1
4
α1
2
3
3
2
α2
1
4
4
1
2
3
Potencial para el conflicto:
• metas totalmente antagónicas:
• • no hay acuerdo, ni siquiera respecto a partes de un plan conjunto:
• • • todos los bloques deben colocarse en sitios diferentes, dependiendo del agente
Pa1 = ( [apilar(2,1), NOP], [apilar(3,2), NOP] )
Pa2 = ( [apilar(1,2), NOP], [apilar(4,1), NOP] )
todo lo que es “bueno” para a1 es “malo” para a2, y viceversa
Inteligencia Artificial 3º ITIS
2010/11
Escenarios parcialmente cooperativos
α1
situación
inicial
α2
6
5
4
3
2
1
metas
α1
1
4
2
3
α2
2
...
1
4... 3
...
Potencial para la cooperación y el conflicto:
• metas parcialmente compartidas:
• • acuerdo sólo sobre partes de un plan conjunto P :
• • • los dos agentes desean que los bloques 1, 3 y 4 estén en la mesa, sin embargo a1 prefiere que el
bloque 2 esté encima de 3, mientras que a2 prefiere que esté encima de 4
Pa1 = ( [quitar(5), quitar(6)], [quitar(4), quitar(3)], [apilar(2,3), NOP ] )
Pa2 = ( [quitar(5), quitar(6)], [quitar(4), quitar(3)], [apilar(2,4), NOP ] )
los dos agentes sacan provecho si se ejecuta un plan conjunto, pero dependiendo del plan un
agente “gana” más que otro
Inteligencia Artificial 3º ITIS
2010/11
Escenarios antagónicos: Juegos
Juegos:
• ejemplo “clásico” de escenarios antagónicos (juegos de suma nula)
• el escenario está totalmente definido por las reglas del juego, y los agentes
jugadores los conocen completamente
Tipos de juegos:
• número de jugadores :
– bipersonales (damas) / múltiples jugadores (Monopoly)
• elementos de azar:
– con elementos de azar (backgammon) /
sin elementos de azar (damas)
• información:
– información perfecta (damas) /
información incompleta (póker)
juegos bipersonales con
información perfecta y
sin elementos de azar
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: Tres en Raya
Tres en Raya:
• dos jugadores (min y max)
• los jugadores van poniendo fichas en las casillas
de un tablero 3x3
– max usa las fichas X / min usa las fichas O
gana max
– una casilla puede contener como mucho una ficha
• Reglas:
– Inicialmente el tablero está vacío
– max empieza y los jugadores se van alternando en
poner sus fichas
gana min
– max gana si obtiene una raya de tres fichas X
– min gana si obtiene una raya de tres fichas O
– si todas las casillas están ocupadas sin que haya
una raya de 3 fichas del mismo tipo, hay empate
empate
Inteligencia Artificial 3º ITIS
2010/11
Modelo de juegos bipersonales
Conocimientos mínimos a priori de los agentes max y de min :
– s0
– expandir: s  {si1, ..., sin}
posición inicial (estado inicial)
cjto. finito de posiciones sucesores
– terminal?: s  true | false
prueba terminal
– U: s  k, k∈ℜ
función parcial de utilidad del juego
Nótese:
• la función expandir
• codifica las jugadas (acciones) permitidas en una posición s
• supone implícitamente que los jugadores se alternan en realizar las jugadas
• la función de utilidad está definida sólo en los estados terminales s
• juegos de suma nula: max gana si sólo si min pierde
• gana max: U(s) = +∞ / gana min : U(s) = –∞
/ empate: U(s) = 0
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: Árbol de juego para Tres en Raya
max
min
...
max
min
...
... ...
...
–∞
+∞
terminal
0
utilidad
Inteligencia Artificial 3º ITIS
2010/11
Árboles de juego
Definición:
Sea N un conjunto de nodos, E ⊆ N×N, L = { max, min }, y G = ( N, E, L ) un
árbol etiquetado. G es un árbol de juego si
– G no es vacío
– la raíz está etiquetada max
– todos los sucesores de max son etiquetados min
– todos los sucesores de min son etiquetados max
Observaciones:
• cada nivel del árbol de juego representa un ply (media jugada)
– en los nodos etiquetados max, es el turno del agente max
– en los nodos etiquetados min, es el turno del agente min
• las hojas de un árbol de juego (completamente desarrollado)
representan las posiciones terminales del juego
Inteligencia Artificial 3º ITIS
2010/11
Estrategias
Problema del agente max: ¿cómo determinar su mejor jugada?
• max podría aplicar métodos de búsqueda estándar, usando las posiciones en
las que él gana como estados meta
• pero min no querría realizar las acciones que el plan de max prevé para él !
Estrategia:
• define las jugadas de max para cada posible jugada de min
• un subárbol del árbol de juego
Estrategia óptima (o racional) :
• la estrategia que implica el mejor resultado garantizado para max
• escenarios totalmente antagónicos con agentes racionales:
– max puede asumir que min hará lo mejor para sí mismo, lo que a su vez es lo peor para
max
• la estrategia óptima para max es la estrategia minimax:
– maximizar la utilidad mínima en cada jugada
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: estrategia minimax
estrategia óptima:
max
0
a2
a1
a3
-∞
0
min
mejor jugada de max: a1
a1,1 a1,2
a1,3
0
+∞
a2,1 a2,2
-∞
a2,3
a3,1
–∞
0
a3,2
a3,3
0
–∞
terminal
utilidad
0
+∞
+∞
Inteligencia Artificial 3º ITIS
2010/11
Método minimax
Método Minimax:
1.
Generar el árbol de juego completo
2.
Aplicar la función de utilidad en cada nodo terminal
3.
Propagar las utilidades hacia arriba
– en los nodos max, usar la utilidad máxima de los sucesores
– en los nodos min, usar la utilidad mínima de los sucesores
4.
Eventualmente los valores de utilidad llegan al nodo raíz (max)
5.
La jugada óptima de max es la que lleva al sucesor de utilidad máxima
Inteligencia Artificial 3º ITIS
2010/11
Algoritmo Minimax básico
Algoritmo:
• funciones mutuamente recursivas
• estado es el estado actual
• α : máximo de la utilidad de los
sucesores de un nodo max
• β : mínimo de la utilidad de los
sucesores de un nodo min
{MaxValor en el Minimax básico}
{MinValor en el Minimax básico}
Función MaxValor(estado)
Si terminal?(estado) entonces
devolver(U(estado))
sucesores ← expandir(estado)
α ← -∞
Para cada s∈sucesores hacer
α ← max(α, MinValor(s))
devolver(α)
Fin {MaxValor}
Función MinValor(estado)
Si terminal?(estado) entonces
devolver(U(estado))
sucesores ← expandir (estado)
β ← +∞
Para cada s∈sucesores hacer
β ← min(β,MaxValor(s))
devolver(β)
Fin {MinValor}
Inteligencia Artificial 3º ITIS
2010/11
Decisiones imperfectas
Problema: crecimiento exponencial del árbol de juego
• incluso en juegos muy simples, es imposible desarrollar el árbol de
juego completo hasta todos sus nodos terminales
Solución: Heurísticas
• sustituir la prueba terminal por una prueba suspensión que detiene la
búsqueda aún sin llegar a una posición terminal:
– límite de profundidad fijo (número de plys fijo)
– posiciones “en reposo”
• aplicar una función de evaluación e, que estime la utilidad esperada
del juego correspondiente a una posición s determinada
– e debe coincidir con la función de utilidad u en los nodos terminales
– suele ser función lineal ponderada : e(s) = w1 f1(s) + w2 f2(s) + . . . + wn fn(s)
– Ajedrez:
e(s) = “suma de los valores materiales en s”
– Tres en Raya: e(s) = “nº de línea abiertas para líneas max en s” –
“nº de línea abiertas para líneas min en s”
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: minimax con suspensión
estrategia óptima:
max
3
a2
a1
3
min
a1,1 a1,2
evaluación e
3
12
mejor jugada de max: a1
a3
2
a1,3
8
a2,1 a2,2
2
4
2
a2,3
a3,1
a3,2
6
14
5
a3,3
2
Inteligencia Artificial 3º ITIS
2010/11
Algoritmo Minimax con suspensión
Algoritmo:
• funciones mutuamente recursivas
• estado es el estado actual
• α : máximo de la evaluación de los
sucesores de un nodo max
• β : mínimo de la evaluación de los
sucesores de un nodo min
{MaxValor: Minimax con suspensión}
{MinValor: Minimax con suspensión}
Función MaxValor(estado)
Si suspensión?(estado) entonces
devolver(e(estado))
sucesores ← expandir(estado)
α ← -∞
Para cada s∈sucesores hacer
α ← max(α, MinValor(s))
devolver(α)
Fin {MaxValor}
Función MinValor(estado)
Si suspensión?(estado) entonces
devolver(e(estado))
sucesores ← expandir (estado)
β ← +∞
Para cada s∈sucesores hacer
β ← min(β,MaxValor(s))
devolver(β)
Fin {MinValor}
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: Tres en Raya
Suspensión en ply 3
max
min
...
–∞
–∞
...
–∞
...
–∞
1
+∞
1
1
...
2
max
–∞ +∞
1
0
1
1
+∞
1
+∞
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.11
Considérese el siguiente árbol de juego desarrollado hasta ply 3. Los nodos
están etiquetados con los valores de la función de evaluación e.
a) Evalúe el árbol del juego en base al algoritmo minimax.
b) ¿Cuál es la mejor jugada para el agente max?
7
6
8
5
2
3
0
–2
6
2
5
8
9
2
Inteligencia Artificial 3º ITIS
2010/11
Poda α-β
Nótese:
• a veces es posible calcular la utilidad de un nodo sin tener que evaluar
todos sus sucesores
max
3
a2
a1
3
min
a1,1 a1,2
3
12
a3
2
≤2
a1,3
8
a2,1 a2,2
2
a2,3
a3,1
14
a3,2
5
a3,3
2
Inteligencia Artificial 3º ITIS
2010/11
Poda α-β
Utilidad más alta encontrada en un nodo max hasta el momento: α
max
min
α
...
β
Condición de poda: β≤α
• La utilidad Umin del nodo min
será como mucho β
• La utilidad Umax del nodo max
será al menos α
• No es necesario explorar los
sucesores restantes de min, ya
que se cumple en todo caso:
Umin ≤ β ≤ α ≤ Umax
Inteligencia Artificial 3º ITIS
2010/11
Poda α-β
Utilidad más baja encontrada en un nodo min hasta el momento: β
min
max
β
...
α
Condición de poda: α≥β
• La utilidad Umax del nodo max
será al menos α
• La utilidad Umin del nodo min
será como mucho β
• No es necesario explorar los
sucesores restantes de max, ya
que se cumple en todo caso:
Umin ≤ β ≤ α ≤ Umax
Inteligencia Artificial 3º ITIS
2010/11
Minimax con poda α-β
Algoritmo:
• funciones mutuamente recursivas
• estado es el estado actual
{MaxValor: Minimax con poda α-β}
• α es el mejor valor de evaluación
para max en el camino hasta estado
• β es el mejor valor de evaluación
para min en el camino hasta estado
{MinValor: Minimax con poda α-β}
Función MaxValor(estado,α,β)
Función MinValor(estado,α,β)
Si suspensión?(estado) entonces
Si suspensión?(estado) entonces
devolver(e(estado))
devolver(e(estado))
sucesores ← expandir(estado)
sucesores ← expandir (estado)
Para cada s∈sucesores hacer
Para cada s∈sucesores hacer
α ← max(α, MinValor(s,α,β ))
β ← min(β,MaxValor(s,α,β ))
Si α ≥ β entonces devolver(α)
Si β ≤ α entonces devolver(β)
devolver(α)
devolver(β)
Fin {MaxValor}
Fin {MinValor}
Inteligencia Artificial 3º ITIS
2010/11
Ejercicio 2.12
Considerese el árbol de juego del ejercicio anterior. Evalúe el árbol
utilizando el algoritmo minimax con poda α-β. Cuando aplica una poda,
indique la condición de poda correspondiente.
7
6
8
5
2
3
0
–2
6
2
5
8
9
2
Inteligencia Artificial 3º ITIS
2010/11
Resumen
Análisis:
• la eficiencia de minimax con poda α-β depende del orden en el que se
exploran los nodos
• en promedio, la poda α-β permite expandir 50% menos nodos que
minimax
Problemas:
• efecto horizonte:
– la búsqueda se suspende justo cuando el jugador está por hacer una gran jugada
• suposición de racionalidad perfecta:
– suponga que max está a punto de perder si min juega de forma óptima
– sin embargo, hay una jugada que hacer ganar max, si min hace un solo error
Extensiones:
• juegos con elementos de azar (p.e. backgammon)
– expectminimax: añadir niveles de “nodos azar” y calcular su utilidad esperada
• aprender funciones de evaluación y de suspensión
• heurísticas “fuertes” basados en meta-razonamiento
– algoritmos de búsqueda guiados por la utilidad esperada de expandir un nodo
Inteligencia Artificial 3º ITIS
2010/11
Descargar