Download - INGENIERIA INFORMATICA Y SISTEMAS
INGENIERIA INFORMATICA Y SISTEMAS
INTELIGENCIA ARTIFICIAL
BUSQUEDAS CON ADVERSARIOS
Sesión 5
Árboles y búsqueda conÁrboles y búsqueda con adversarioadversario
Los entornos competitivos, en los
cuales los objetivos del agente están
en conflicto, dan ocasión a problemas
de búsqueda entre adversarios, a
menudo conocido como juegos.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 33
La manera natural de responder un
juego es mediante un árbol de juegos
que es un tipo especial de árbol
semántico en los que los nodos
representan configuraciones de
tableros
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 44
y las ramas indican como una
configuración puede transformarse en
otra mediante un solo movimiento.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 55
Por supuesto existe un giro especial en
el hecho de que las decisiones son
tomadas por dos adversarios que
toman una decisión a la vez.
Un juego se define formalmente
como una clase de problemas de
búsquedas con los componentes
siguientes:
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 77
El estado inicial:
Que incluye la posición del tablero e
identifica al jugador que mueve.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 88
Una función sucesor:
Que devuelve una lista de pares
(movimiento, estado), indicando un
movimiento legal y el estado que
resulta.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 99
Un test Terminal:
Que determina cuando se termina el
juego. A los estados donde el juego
se ha terminado se les llama estados
terminales.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 1010
Una función de utilidad:
También llamada función objetivo o
función de rentabilidad, que da un
valor numérico a los estados
terminales.
En el ajedrez, el resultado es un
triunfo, pérdida o empate, con
valores +1, -1 o 0.
Un árbol (parcial) de búsqueda para el juego de tres en raya.
PROCEDIMIENTO MINIMAX
En una búsqueda normal, la solución óptima sería una secuencia de movimientos que conducen a un estado objetivo.
Ing. Victor Jaime Polo RomeroIng. Victor Jaime Polo Romero 1313
En un juego, por otra parte, MIN tiene algo que decir sobre ello. MAX por lo tanto debe encontrar una estrategia contingente, que especifica el movimiento de MAX en el estado inicial, después de los movimientos de MAX en los estados que resultan de cada respuesta posible de MIN, después los movimientos de MAX en los estados que resultan de cada respuesta posible de MIN de los anteriores movimientos, etc.
A
B C D
a1
a2a3
b1 b2b3 c1 c2 c3
d1 d2 d3
3 12 8 2 4 6 14 5 2
3
3 2 2
MAX
MIN
El mejor movimiento de MAX en la raíz es a1, porque conduce al sucesor con el valor minimax mas alto, y la mejor respuesta de MIN es b1, por que conduce al sucesor con el valor minimax mas bajo.
Poda alfa-beta
Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial con el número de movimientos.
El exponente no se puede eliminar, pero se puede dividir en la mitad.
Es posible calcular la decisión minimax correcta sin mirar todos los nodos en el árbol.
La poda alfa-beta permite eliminar partes grandes del árbol, sin influir en la decisión final.
A
B C D
3
[-, +]
[-, 3]
(a)
(a) La primera hoja debajo de B tiene el valor 3. De ahí B, que es un nodo MIN, tiene un valor de cómo máximo 3.
A
B C D
3
[-, +]
[-, 3]
(b)
(b) La segunda hoja debajo de B tiene el valor 12; MIN evitara este movimiento, entonces el valor de B es todavía como máximo 3.
12
A
B C D
3
[3, +]
[3, 3]
(c)
(c) La tercera hoja debajo de B tiene el valor 8; hemos visto a todos los sucesores de B, entonces el valor de B es exactamente 3. Ahora, podemos deducir que el valor de la raíz es al menos 3., por que MAX tiene una opción digna de 3 en la raíz.
12 8
A
B C D
3
[3, +]
[3, 3]
(d)
(d) La primera hoja debajo de C tiene el valor 2. De ahí, C que es un nodo MIN, tiene un valor de cómo máximo 2. Pero sabemos que B vale 3, entonces MAX nunca elegiría C. Por lo tanto, no hay ninguna razón en mirar a los otros sucesores de C. Este es un ejemplo de la poda Alfa-Beta.
12 8
[- , 2]
2
A
B C D
3
[3, 14]
[3, 3]
(e)
(e) La primera hoja debajo de D tiene el valor 14,entonces D vale como máximo 14. Este todavía es mas alto que la mejor alternativa de MAX (es decir, 3), entonces tenemos que seguir explorando a los sucesores de D. Note también que ahora tenemos límites sobre todos los sucesores de la raíz, entonces el valor de la raíz es como máximo 14.
12 8
[- , 2] [- , 14]
2 14
A
B C D
3
[3, 3]
[3, 3]
(f)
(f) El segundo sucesor de D vale 5, así que otra vez tenemos que seguir explorando. El tercer sucesor vale 2, así que ahora D vale exactamente 2. La decisión de MAX en la raíz es moverse a B, dando un valor de 3.
12 8
[- , 2] [2,2]
2 14 5 2
Poda alfa-beta
Los dos parámetros alfa y beta describen los límites sobre los valores que aparecen a lo largo del camino: = el valor de la mejor opción (el más alto) que
se ha encontrado hasta el momento en cualquier punto del camino, para MAX
= el valor de la mejor opción (el más bajo) que se ha encontrado hasta el momento en cualquier punto del camino, para MIN
La búsqueda alfa-beta actualiza el valor de y según se va recorriendo el árbol y termina la recursión cuando encuentra un nodo peor que el actual valor o correspondiente.
MAX
Vi
{ }Si Vi > modificar Si Vi poda
Retornar
{ }Si Vi < modificar Si Vi poda
Retornar
MIN
Vi
Las cotas y se transmiten de padres a hijos de 1 en 1 y en el orden de visitade los nodos. es la cota inferior de un nodo max. es la cota superior de un nodo min.