Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Inteligencia Artificial BusquedasListo
Inteligencia Artificial BusquedasListo
2. Búsqueda
Restricción: A B C
• un disco mayor nunca
debe reposar sobre
uno de menor tamaño
cuatro discos en A ⇒
disco 1 de A a C / disco 2 de A a B / disco 1 de C a B /
disco 3 de A a C / disco 1 de B a A / disco 2 de B a C /
disco 1 de A a C / disco 4 de A a B / disco 1 de C a B /
disco 2 de C a A / disco 1 de B a A / disco 3 de C a B /
disco 1 de A a C / disco 2 de A a B / disco 1 de C a B
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
2. Búsqueda
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
• configuración de n bloques
C
Operadores:
• apilar(X,Y): poner X encima de Y A B
– Prec.: bloques X e Y están libres
– Post.: bloque X está encima de Y
• quitar(Y): poner Y en la mesa Estado meta
– Prec.: bloque Y está libre
– Post.: bloque Y está en la mesa A
Coste: B
• la aplicación de cada operador vale C
una unidad
A A C C B B
B C C B B A A B C A A C
C B A B A C
A A C C B B
B C B A C A
€
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: Arbol de búsqueda:
• estrategia para explorar el
espacio de estados C
A B
• en cada paso se expande un
estado
• se desarrolla sucesivamente C
B
C A B C
un árbol de búsqueda B A A
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
(iii) Búsqueda
profundidad
iterativa
(ii) búsqueda
(v) búsqueda
en
avara
profundidad
2. Búsqueda
C
Nivel 1 A B
B
C
Nivel 2 B A
C A B C
A
Nivel 3 A
A A B C B
C A B C
B B C C B C A B A A C
B B A
C C C C A B C
B A A B C A B C
A A B
A
A B C C A B C
A B
C A A B C B
A B C B C C B C A B A A C
B
A
C A A B C B
A B C B C C B C A B A A C
B
A
C
B A
B
A C ... B
A C
B
C
...
Inteligencia Artificial 3º ITIS
2010/11
Complejidad
Complejidad en tiempo y espacio:
• proporcional al número de nodos expandidos
Ventajas:
• completo:
• siempre se encuentra un nodo meta si existe
Problemas:
• complejidad
• exponencial incluso en el mejor caso
• los problemas de espacio son aún más graves que los
problemas de tiempo
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
B
C C
B A A B C
A
A
C A B C
B
B A A C B
C A C B B C B A A C
A
B B
C A C
Inteligencia Artificial 3º ITIS
2010/11
Búsqueda en profundidad
Algoritmo: {búsqueda en profundidad}
• usar el algoritmo general de abierta ← s0
búsqueda Repetir
• añadir nuevos sucesores en la Si vacía?(abierta) entonces
cabeza de la lista abierta devolver(negativo)
• abierta funciona como pila nodo ← primero(abierta)
– inserción en la cabeza de la lista Si meta?(nodo) entonces
– recuperación desde la cabeza devolver(nodo)
• estructura LIFO: sucesores ← expandir(nodo)
– siempre expandir primero el Para cada n∈ sucesores hacer
nodo más reciente (es decir: n.padre ← nodo
el más profundo) ordInsertar(n,abierta,cabeza)
• al guardar todos los sucesores de Fin {repetir}
un nodo expandido en abierta, se
permite la “vuelta atrás”
Inteligencia Artificial 3º ITIS
2010/11
Árbol de búsqueda en profundidad
Lista abierta:
C
A B
C
A B
B C
C A B C B C
A B A C A B C
A B A
A C
B A A B C
C A B C
B
A
C A B C A B C
B
B A A C B
C A C B B C B A A C
A B C A B C
A B B A A C B
B C A C B B C B A A C A B C
C A C
A B A A C B
B A C C B B C B A A C A B C
C
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*
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*)
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.
• 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
fallo fallo
éxito
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
b d +2 − 2b − bd + d +1 b −1
= 2 ⋅ d +1
(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
€
Búsqueda en prof. iterativa: complejidad en
tiempo
Coste adicional de tiempo de la búsqueda de profundización iterativa:
• Ejemplo: b= 10
Método no
informado
preferido
Oradea
Neamt 87
Zerind 71
75 151 Iasi
Arad
92
140 Sibiu 99
Fagaras Vaslui
118 80
Rimnicu
97 142
Timisoara 211
111 Pitesti
Lugoj 98
101 85 Hirsova
70 146 Urziceni
Mehadia Bucarest 86
75 138
90 Eforie
Dobreta 120
Craiova
Giurgiu
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:
{búsqueda de coste uniforme}
• Inglés: uniform cost search abierta ← s0
• Idea: Repetir
• guiar la búsqueda por el coste de los Si vacío?(abierta) entonces
operadores devolver(negativo)
nodo ← primero(abierta)
• Método:
Si meta?(nodo) entonces
• g(n): coste mínimo para llegar
devolver(nodo)
del nodo inicial al nodo n
sucesores ← expandir(nodo)
• expandir siempre el nodo de menor
coste g primero Para cada n∈ sucesores hacer
n.padre ← nodo
• Algoritmo:
ordInsertar(n,abierta,g)
• almacenar cada nodo con su valor g
Fin {repetir}
• insertar los nuevos nodos en abierta
en orden ascendente según su valor g
Inteligencia Artificial 3º ITIS
2010/11
Ejemplo: Búsqueda de coste uniforme
g=0
R A O F L A O g=146
A g=150
g=220 g=280 g=291 g =239 g=229 g=236
B O A O A
g=283 g=287 g=296 g=300
...
Inteligencia Artificial 3º ITIS
2010/11
Lógica de la búsqueda de coste uniforme
O
N 87
Z 71
75 151 I
A 92
S 99
140 F
118 V
80
T R 97 142
211
111 P H
L 98
70 146 101 85
U
M B 86
75 138
90 E
D 120
C
G
g = 80 g = 120 g = 160
2. Búsqueda
2.1. Agentes de resolución
de problemas
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
A F O R
h* = 366 h* = 178 h* = 380 h* = 193
Solución subóptima:
• c(A-S-F-B) = 450
S h* = 253 B h* =0 • c(A-S-R-P-B) = 418
hF* = 226
Ejemplo:
• Nodo inicial: I (Iasi)
• Nodo meta: F (Fagaras) N hF* = 201 V hF* =246
• hF* estima la distancia hasta F
hF* = 226
hF*
F 0
I 226
N 201 N hF* = 201 V hF* =246
V 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
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:
Estrategia A* :
• entre las hojas del árbol de búsqueda, elegir el nodo de valor f * mínimo
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 291+380
= 646 = 417 = 671
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
N fF * = 87+201 V fF * = 92+246
= 288 = 338
f* f*
f *(nj) f *(nj)
n1 nj n1 nj
nj
Interpretación intuitiva:
h*(nj )
• h* es consistente si cumple la c(ni,nj)
desigualdad triangular ni h*(ni )
ng
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 )
f *(nj) f *(nj)
n1 nj n1 nj
(a) variable (b) monótono creciente
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)
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
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
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
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 fL * = 0+0 Ejemplo: ir de A a L
=0
140 Inicialmente hL*(n) = 0 para todo nodo n
118 75
n A B C D E F G H I L M N O P R S T U V Z
hL* 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
75 142 97 80 111 71
146
Inteligencia Artificial
3º ITIS 2010/11
Ejemplo: A* con Aprendizaje de una Función
Heurística
Ejemplo: ir de Z a L
Z fL * = 0+71
= 71 Inicialmente hL*(n) aprendido anteriormente
71
75
O fL * = 71+142
A fL * = 75+146 = 213
= 221
151
140 118 75 71
L A
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 T U V Z
hL* 220 0 0 0 0 0 0 0 0 0 0 0 231 0 97 99 111 0 0 213
229 111
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 2 7 3
1 8 4
• Operadores:
6 5
• mover pieza adyacente a la posición
del “hueco”
• de 2 a 4 operadores aplicables, Estado meta
según el estado
1 2 3
• Coste:
8 4
• La aplicación de cada operador vale
una unidad
7 6 5
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 )
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 )
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
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
S f* = 140+253
T f * = 118+329 Z f * = 75+374
= 393 = 447 = 449
A F O R f * = 220+193
= 413
f * = 280+366 f * = 239+178 f * = 146+380
= 646 = 417 = 526
S B C f * = 366+160
= 526
P f * = 317+98
= 415
S f * = 300+253
= 533
f * = 338+253 f * = 450+0
= 591 = 450
Algoritmo IDA* :
• 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*
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*), …
2. Búsqueda
2.1. Agentes de resolución de problemas
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
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 Estados meta α2
1 2 4 3 4 3
4 3 1 2 1 2
• 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) / juegos bipersonales con
sin elementos de azar (damas)
información perfecta y
• información: sin elementos de azar
– información perfecta (damas) /
información incompleta (póker)
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 gana max
de un tablero 3x3
– max usa las fichas X / min usa las fichas O
– una casilla puede contener como mucho una ficha
• Reglas:
gana min
– Inicialmente el tablero está vacío
– max empieza y los jugadores se van alternando en
poner sus fichas
– 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 empate
una raya de 3 fichas del mismo tipo, hay empate
Nótese:
• la función expandir
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
Estrategia:
• define las jugadas de max para cada posible jugada de min
• un subárbol del árbol de juego
max 0
a1 a2 a3
min 0 -∞ -∞
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3
terminal
utilidad 0 0 +∞ +∞ +∞ –∞ 0 0 –∞
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
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”
max 3
a1 a2 a3
min 3 2 2
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3
evaluación e 3 12 8 2 4 6 14 5 2
min
–∞ ...
–∞
... –∞
... –∞
... 2
max
1 –∞ +∞ +∞
0 1 1 1 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
a1 a2 a3
min 3 ≤2 2
a1,1 a1,2 a1,3 a2,1 a2,2 a2,3 a3,1 a3,2 a3,3
3 12 8 2 14 5 2
{MaxValor: Minimax con poda α-β} {MinValor: Minimax con poda α-β}
7 6 8 5 2 3 0 –2 6 2 5 8 9 2