Inteligencia Artificial Oscar Bedoya
[email protected]
* * * * *
Algoritmo minimax Poda alfa-beta Juegos con decisiones imperfectas Juegos con elemento aleatorio Aplicaciones
Juegos Tipos de contrincantes • Humano Vs Humano
• Humano Vs Máquina • Máquina Vs Máquina
Juegos Tetris • La meta de cada agente es lograr una mayor cantidad de líneas que el otro • Es un problema de toma de decisiones en el que se tiene poco tiempo para analizar la jugada
Juegos Tetris • El campeón mundial supera las 900 líneas • Un agente ha logrado como máximo 597 líneas
Juegos Máquina Vs Máquina
Juegos Tipos de contrincantes • Humano Vs Humano
• Humano Vs Máquina • Máquina Vs Máquina • Mente humana – Mente humana
Juegos Juegos como problemas de búsqueda • La IA se centra en el análisis de juegos donde los estados se puedan representar fácilmente e intervenga en los movimientos la toma de decisiones • No resultan interesantes juegos que dependen totalmente del azar
Juegos Juegos como problemas de búsqueda
Juegos Go • Dinastía Chow (1500-200 a.c) •Tablero de 19x19 líneas • 361 intersecciones • Premio de 2 millones de dólares • Árbol de 4.6x10170
Juegos Ajedrez • Modificación del Chaturanga (India 500a.c) • El juego se creó debido a una situación surgida tras una guerra de sucesión al trono entre dos hermanos
• Número de Shanon 10120
Juegos Clasificación de juegos con adversario Información perfecta
Información imperfecta
Determinista
Triqui Ajedrez
Batalla naval
Aleatorio
Backgammon Monopolio
Dominó Póquer
Juegos Clasificación de juegos con adversario
¿Hay elementos aleatorios en el juego?
¿Qué tan accesible es el ambiente? Información perfecta
Información imperfecta
Determinista
Triqui Ajedrez
Batalla naval
Aleatorio
Backgammon Monopolio
Dominó Póquer
Juegos Árbol de juego
• Juegos por turnos • En cada profundidad se tienen los posibles movimientos de un jugador • Sirve para analizar el efecto de las jugadas
- Ajedrez: media de 50 movimientos, con un factor de ramificación medio de 35 posibilidades - Total de nodos: ~35100
...
...
...
Juegos Estrategias: • Teoría de juegos (von Neumann, 1944, The Theory of Games Behavior)
Trabajo de von Neumann y Oscar Morgenstern durante la guerra fría sobre estrategia militar (destrucción mutua garantizada) • Dilema del prisionero. Albert Tucker • Cómo tomar una buena decisión en cada avance del juego. Arboles minimax. Newel y Simon • Podar el árbol para reducir costos (McCarthy, 1956)
Juegos Dilema del prisionero Sospechoso 2 niega
Sospechoso 2 confiesa
Sospechoso 1 niega
Ambos son condenados a 6 meses
Sospechoso 1 confiesa
Sospechoso 2 es Ambos son condenado a 10 condenados a 6 años y años sospechoso 1 sale libre
* Albert Tucker
Sospechoso 1 es condenado a 10 años y sospechoso 2 sale libre
Juegos • Descubrió que en el árbol minimax construido por Newel y Simon, se hacían cálculos innecesariamente • Ganó el premio Alan Turing en 1971 • Inventó LISP (List Processing Language). Se basa en cálculo lambda
John McCarthy (1927 - )
Juegos • Nash fue capaz de demostrar que todos los juegos de suma cero de n jugadores tienen al menos un equilibrio de Nash
• Si un juego tiene un único equilibrio de Nash y los jugadores son completamente racionales, los jugadores escogerán las estrategias que forman el equilibrio
John Nash (1928 - )
Juegos • Juego HEX
Juegos Árbol de juego – Rock Piles
• Se tienen dos pilas de piedras, en una hay dos piedras y en la otra solo una • Cada jugador puede tomar máximo dos piedras pero en tal caso deben ser de la misma pila • Un jugador gana si su contrincante hace el último movimiento
Jugador1
Jugador1
Jugador2
Jugador1
Jugador2
Jugador1 Gana jugador1
Gana jugador1
Jugador1
Jugador2
Jugador1
Gana jugador1
Gana jugador1
Jugador2 Pierde jugador1 Pierde jugador1
Pierde jugador1
Si usted es jugador 1, con qué jugada empezaría Jugador1
Jugador2
Jugador1
Gana jugador1
Gana jugador1
Jugador2 Pierde jugador1 Pierde jugador1
Pierde jugador1
Si usted es jugador 2, con qué jugada respondería Jugador1
Jugador2
Jugador1
Gana jugador1
Gana jugador1
Jugador2 Pierde jugador1 Pierde jugador1
Pierde jugador1
Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno
Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno
Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno 1
2
3
4
Juegos Árbol de juego – Chomp (2x2) • Se tiene una chocolatina de 2x2 cuadros • El cuadro de la esquina superior izquierda está envenenado! • Cada “jugador” debe tomar uno o dos cuadros de chocolate • Pierde (“muere”) el jugador que se coma el cuadro con veneno 1
2
3
Construya el árbol de juego
1
J1
2
3 C(1) 2
J2
C(2) 1
3
C(3) 1
C(1,2)
2
2
3
Pierde jugador1
C(2,3)
C(1,3)
1
3 Pierde jugador1
Pierde jugador1
C(1)
J1
C(1)
C(3)
C(1,3)
1
2
3 Gana jugador1
C(1)
Pierde jugador1
C(1)
Gana jugador1
Gana jugador1
C(2)
C(1,2)
1
C(1)
Pierde jugador1
Gana jugador1
Gana jugador1
Juegos • La investigación sobre juegos ha generado una gran cantidad de ideas sobre cómo utilizar de la mejor manera el tiempo de cómputo para obtener buenas soluciones
-Poda: para ignorar partes del árbol de búsqueda que son irrelevantes en la decisión final -Funciones de evaluación heurística: para tener una idea de la verdadera utilidad en cada nodo del árbol
Juegos Algoritmo minimax
• El algoritmo minimax se aplica para el caso de juegos de dos participantes, MAX y MIN • La definición formal de juego requiere: - Estado inicial, posición en el tablero o ambiente - Conjunto de operadores, o jugadas posibles
- Prueba terminal, que indica si termina el juego - Función de utilidad, asigna un valor numérico al resultado obtenido en el juego
Juegos
Cada jugador tiene 3 lanzamientos 20 60 80
100
Clasifica quien obtenga 200 puntos acumulados
En juegos donde se gana o pierde, f=1 si gana, f=-1 si pierde
Juegos Algoritmo minimax MAX(X)
Estado inicial del juego. MAX juega con X
Juegos Algoritmo minimax MAX(X)
MIN(O)
X
X
X X
X
X X
X
X
Juegos Algoritmo minimax MAX(X)
MIN(O)
MAX(X)
X
X
X X
X
X X
X
O
X
O
...
X
O
X
...
X
Juegos Algoritmo minimax MAX(X)
MIN(O)
MAX(X)
X
X
X
X
X X
X
O
X
...
Terminal
X
O
X
...
...
O
...
...
X
O
X
X
O
X
X
O
O
X
O
O
X
X
O
O
X
X
O
O
X
O
O
X
X
O
O
...
X
...
X
Juegos Algoritmo minimax MAX(X)
MIN(O)
MAX(X)
X
X
X
Utilidad
X
X X
X
O
X
...
Terminal
X
O
X
...
O
...
...
X
O
X
X
O
X
X
O
O
X
O
O
X
X
O
O
X
X
O
O
X
O
O
X
X
O
O
-1
1
0
...
X
...
La utilidad desde el punto de vista de MAX
X
Juegos Algoritmo minimax
• Si fuese una búsqueda normal, MAX debería buscar la secuencia de jugadas que conduzca a un estado terminal ganador
Juegos Algoritmo minimax
• Minimax es un método de decisión para minimizar la pérdida esperada en juegos con adversario donde se tiene información completa
Juegos
MAX A1
A2
A3
MIN
A11 A12 Terminal
A13
A21 A22
A23 A31 A32
A33
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
5
2
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
¿Cuáles son las decisiones que debería tomar MAX?
5
2
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
5
2
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
Si MIN sabe de IA, qué acción emprenderá en este nodo?
8
4
14
5
2
Juegos
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
2
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
5
2
Juegos
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
2
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
Si MAX sabe de IA, qué acción emprenderá en este nodo?
8
4
14
5
2
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
2
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
MAX intentará obtener el mayor valor. En este caso será 3 para el nodo raíz
5
2
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
2
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
5
2
La mejor opción para MAX de iniciar el juego es A 1
Esta se conoce como la decisión minimax. Se supone que MIN siempre juega con la intensión de disminuir al máximo la utilidad de MAX
Juegos Algoritmo minimax
• El algoritmo sirve para determinar la estrategia óptima para MAX y decidir cuál es la mejor jugada. El algoritmo se compone de 3 pasos: - Paso 1: generar el árbol de juego hasta alcanzar nodos terminales* - Paso 2: aplicar la función de utilidad a cada estado terminal - Paso 3: calcular de abajo a arriba los valores para la función utilidad en los nodos intermedios, tenga en cuenta que si es un estado MAX se intentará maximizar pero si es MIN lo contrario
Jugador1
Jugador2
Jugador1
Gana jugador1
Gana jugador1
Jugador2 Pierde jugador1 Pierde jugador1
Pierde jugador1
MAX
MIN
MAX
Gana jugador1
Gana jugador1
MIN Pierde jugador1 Pierde jugador1
Pierde jugador1
MAX
MIN
MAX
+1
MIN -1
-1
-1
+1
MAX
MIN
-1
-1
+1
-1
+1
MAX
-1
-1
+1
-1
MIN -1
-1
-1
+1
MAX
-1
+1
-1
MIN
-1
-1
+1
-1
+1
MAX
-1
-1
+1
-1
MIN -1
-1
-1
+1
La decisión minimax es
+1
MAX
-1
+1
-1
MIN
-1
-1
+1
-1
+1
MAX
-1
-1
+1
-1
MIN -1
-1
-1
+1
Juegos MAX -1
-1
-1
MIN
-1
MAX
+1 -1 +1
MIN -1
-1
MAX -1
+1
No hay decisión minimax, las 3 opciones tienen la misma utilidad
-1
+1
-1
-1
1
J1
2
3 C(1) 2
J2
C(2) 1
3
C(3) 1
C(1,2)
2
2
3
Pierde jugador1
C(2,3)
C(1,3)
1
3 Pierde jugador1
Pierde jugador1
C(1)
J1
C(1)
C(3)
C(1,3)
1
2
3 Gana jugador1
C(1)
Pierde jugador1
C(1)
Gana jugador1
Gana jugador1
C(2)
C(1,2)
1
C(1)
Pierde jugador1
Gana jugador1
Gana jugador1
1
MAX
2
3 C(1) 2
MIN
C(2) 1
3
C(3) 1
C(1,2)
2
2
3
Pierde jugador1
C(2,3)
C(1,3)
1
3 Pierde jugador1
Pierde jugador1
C(1)
MAX
C(1)
C(3)
C(1,3)
1
2
3 Gana jugador1
C(1)
C(1)
Gana jugador1
Gana jugador1
C(2) 1
C(1)
MIN Pierde jugador1
C(1,2)
Pierde jugador1
Gana jugador1
Gana jugador1
1
MAX
2
3 C(1) 2
MIN
C(2) 1
3
C(3) 1
2
2
3
-1
C(2,3)
C(1,3)
C(1,2)
1
3 -1
-1
C(1)
MAX
C(1)
C(3)
C(1,3)
C(1)
1
2
3 +1
+1
C(1)
C(2) 1
+1
C(1)
MIN -1
C(1,2)
-1
+1
+1
+1
1
MAX
La decisión minimax es C(2,3)
2
3 -1
C(1) 2
MIN
-1 C(2)
1
3
C(3) -1 1
C(1,2) -1
2
2
3
-1
C(2,3)
C(1,3) -1
+1
1
3 -1
-1
C(1)
MAX
C(1)
+1
C(3) -1
+1 C(1,3)
+1 C(1)
1
2
3 +1
+1
C(1)
-1
C(2) -1
C(1,2)
+1
1
+1
C(1) -1
MIN -1
+1
-1
+1
+1
Juegos Aplique el algoritmo minimax 1
2
3
4
• Chomp(2,2) • Solo puede comer de a 2 cuadros • El juego termina cuando se acaba la chocolatina • Muestre la decisión minimax
C(1,2)
C(3,4)
1 3
2
0
C(1,2)
0
2
3
4
C(1,3)
4
C(3,4)
1
C(2,4)
0
C(2,4)
C(2,3)
C(1,4)
2
1
2
4
3
3
C(1,3)
C(2,3)
0
-1
1 4 C(1,4)
+1
La decisión minimax es C(2,3)
+1
C(1,2)
0
C(3,4)
0
1 3
2
0
C(1,2)
0
2
3
4
C(1,3) 0
4
C(3,4)
1
C(2,4)
0
C(2,4) 0
C(1,4)
C(2,3) -1
2
1
2
4
3
3
C(1,3)
C(2,3)
0
-1
+1
1 4 C(1,4)
+1
Juegos Aplique el algoritmo minimax X
O
O X
O
• La jugada es de MAX (X) • Muestre la decisión minimax
X
Juegos Aplique el algoritmo minimax
• Muestre la decisión minimax
Juegos Aplique el algoritmo minimax
• Rock Piles (2,2)
Juegos Aplique el algoritmo minimax 1
2
3
4
• Chomp(1,4) • Cada persona debe tomar de a un cuadro por turno. Operador C(n) donde n es el número del cuadro
• El juego termina cuando se acaba la chocolatina y gana quien tenga mayor utilidad • La utilidad de comer cada cuadro es:
: -2
: -4
: -3
: +1
1
C(1) 2
3
4
2
3
4
C(4)
C(3)
C(2) 1
3
4
1
2
4
1
2
3
Juegos Complejidad de minimax
Si la profundidad máxima del árbol es m y hay b movimientos legales en cada punto, se tiene: • Complejidad temporal: O(bm) • Complejidad espacial: O(b*m)
Juegos Poda alfa-beta
• Problema de la búsqueda minimax: el número de estados que tiene que examinar es exponencial • Es posible calcular la decisión minimax correcta sin examinar todos los nodos del árbol • La poda alfa-beta permite eliminar grandes partes del árbol, sin influir en la decisión final
Juegos Poda alfa-beta
• Aplicada a un árbol minimax, produce la misma jugada que se obtendría sin ella • La poda se realiza en el paso 1, es decir, mientras se construye el árbol
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
2
A21 A22
A23 A31 A32
2
6
A33
Terminal 3
12
8
4
14
5
2
Juegos
MAX A1 MIN
A2
A3
3
A11 A12
A13
Terminal 3
12
8
Se calcula la utilidad para A1
Juegos 3
MAX A1 MIN
3
A11 A12
A13
Terminal 3
12
8
A2
A3
Juegos 3
MAX A1 MIN
A2
3
A11 A12
A13
A21
Terminal 3
12
8
2
A3
Juegos 3
MAX A1 MIN
A2
A3
3
A11 A12
A13
A21
Terminal 3
12
8
2
+100
Juegos 3
MAX A1 MIN
A2
A3
3
A11 A12
A13
A21
Terminal 3
12
8
2
-100
Juegos 3
MAX A1 MIN
A2
A3
3
A11 A12
A13
A21
Terminal 3
12
8
5
Suponga que la utilidad es 5
+100
Juegos 3
MAX A1 MIN
A2
A3
3
A11 A12
A13
A21
Terminal 3
12
8
5
Suponga que la utilidad es 5
-100
Juegos 3
MAX A1 MIN
A2
3
A11 A12
A13
A21
Terminal 3
12
8
2
A3
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
A21 A22
A23
Terminal 3
12
8
2
Como MIN va a escoger el menor entre sus hijos, se encontró un nodo con valor menor que 3 y MAX va a escoger el valor máximo, no se necesita explorar A 22 ni A23
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
A21 A22
A23 A31
Terminal 3
12
8
2
14
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
A21 A22
A23 A31 A32
Terminal 3
12
8
2
14
5
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
A21 A22
2
A23 A31 A32
A33
Terminal 3
12
8
2
14
5
2
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
7
8
A33
Terminal 6
4
5
5
2
Indique qué nodos se podan
7
8
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
7
8
A33
Terminal 6
4
5
5
2
7
8
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
6
10
A33
Terminal 7
10
4
3
5
Indique qué nodos se podan
1
7
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
6
10
A33
Terminal 7
10
4
3
5
1
7
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
A33
Terminal 6
7
5
1
7
9
6
Indique qué nodos se podan
7
1
Juegos
MAX A1
A2
A3
MIN
A11 A12
A13
A21 A22
A23 A31 A32
A33
Terminal 6
7
5
1
7
9
6
7
1
Juegos
A1
A11A12
1
5
A13 A13
3
7
A21
3
A4
A3
A2
A22
4
A31 A32 A33 A34
2
5
9
3
Indique qué nodos se podan
A41 A42 A43 A44
7
2
6
5
Juegos
A1
A11A12
1
5
A13 A13
3
7
A21
3
A4
A3
A2
A22
4
A31 A32 A33 A34
2
5
9
3
A41 A42 A43 A44
7
2
6
5
Juegos 3
MAX A1 MIN
A2
3
A3
2
A11 A12
A13
A21 A22
2
A23 A31 A32
A33
Terminal 3
12
8
2
14
5
2
Juegos
...
... v1
v2
• Poda de los hijos de MIN
Podar los nodos a la derecha del nodo cuyo vi es menor que
vk
Juegos Poda alfa-beta
Juegos Poda alfa-beta
4
Juegos Poda alfa-beta
4
4
Juegos Poda alfa-beta valor 4
4
Juegos Poda alfa-beta
4
4
Juegos Poda alfa-beta
4
4
-100
Juegos Poda alfa-beta
4
4
+100
Juegos Poda alfa-beta
4
4
Juegos
4
3
2
8
1
Indique qué nodos se podan
Juegos
4
4
4
3
2
8
1
Juegos
4
4
4
3
2
8
1
Juegos
4
3
1
2
7
3
Indique qué nodos se podan
Juegos
4
3
1
2
7
3
Juegos
2
4
5
2
1
2
Indique qué nodos se podan
6
3
Juegos
2
4
5
2
1
2
6
3
Juegos
3
5
4
2
1
6
Indique qué nodos se podan
3
2
Juegos
3
5
4
2
1
6
3
2
Juegos
v1
v2
v3
• Poda de los hijos de MAX
Podar los nodos a la derecha del nodo cuyo vi es mayor que
Juegos Poda alfa-beta
4
4
Juegos Poda alfa-beta
4
4
6
Juegos Poda alfa-beta 4
4
4
6
Juegos Poda alfa-beta 4
4
4
6
2
Juegos Poda alfa-beta 4
4
4
2
6
2
Juegos Poda alfa-beta 4
4
4
2
6
2
5
Juegos Poda alfa-beta 4
4
4
2
6
2
5
5
Juegos Poda alfa-beta 4
4
4
2
6
2
5
5
Juegos Poda alfa-beta 5
4
4
2
6
2
5
5
7
Juegos 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
Juegos
2
5
3
4
1
2
7
8
5
Indique qué nodos se podan
6
7
2
Juegos
2
5
3
4
1
2
7
8
5
6
7
2
Juegos
3
4
6
7
3
2
5
8
1
2
Indique qué nodos se podan
7
8
6
3
Juegos
3
4
6
7
3
2
5
8
1
2
7
8
6
3
La decisión minimax es
MAX
MIN
MAX
+1
MIN -1
-1
-1
+1
1
MAX
La decisión minimax es C(2,3)
2
3 C(1) 2
MIN
C(2) 1
3
C(3) 1
2
2
3
-1
C(2,3)
C(1,3)
C(1,2)
1
3 -1
-1
C(1)
MAX
C(1)
C(3)
C(1,3)
C(1)
1
2
3 +1
C(1)
+1
+1
C(2) 1
C(1)
-1
MIN -1
C(1,2)
-1
+1
+1
Juegos
3
2
1
6
4
5
7
2
Indique qué nodos se podan
2
1
6
3
Juegos 5
3
5
3
5
6
3
2
1
2
6
4
7
5
7
2
2
2
1
6
3
Juegos Poda alfa-beta X
O
O X
O
X
• La jugada es de MAX (X) • Indique la decisión haciendo poda
X
O
O
X
X
O
X
O
O
O
X
X
O
X
O
X
O
O
O
X
X
X
X
X
O
X
O
O
X
X X
O
O
O
X
O
O
X
X
X
X
O
X
X
X
O
O
X
O
O
X
O
X
X
O
O
O
O
O
X
X
X
X X
X
O
O
O
O
X
X
X
-1
X
O
O
X
O
O
X
O
O
X
O
O
O
X
X
X
X
X
X
X
X
O
X
X
O
X
X
O
X
O
O
X
O
O
X
X
+1
O X
-1
+1
O
+1
+1
Juegos Poda alfa-beta
4
4
6
• Se quiere saber si se poda un hijo de MAX • El primer hijo de MAX tiene utilidad mayor que el valor beta del padre de MAX
• Se podan los hijos de MAX hermanos del ya expandido
Juegos Poda alfa-beta 4
4
4
2
6
2
• Se quiere saber si se poda un hijo de MIN • El primer hijo de MIN tiene utilidad menor que el valor alfa del padre de MIN
• Se podan los hijos de MIN hermanos del ya expandido
Juegos Poda alfa-beta
Juegos Poda alfa-beta
2 nodos podados
Juegos Poda alfa-beta
Juegos Poda alfa-beta
Juegos Poda alfa-beta
Juegos Poda alfa-beta
Juegos Poda alfa-beta
Juegos Poda alfa-beta
http://www.ocf.berkeley.edu/~yosenl/extras/alphabeta/alphabeta.html
Juegos Decisiones imperfectas
• El algoritmo minimax supone que se tiene el tiempo y los recursos para construir todo el árbol hasta los nodos terminales • Shanon propuso que en lugar de llegar hasta los nodos terminales, se suspendiera antes la búsqueda y aplicar sobre estos nodos una función de evaluación heurística
Juegos Decisiones imperfectas
• La función de evaluación heurística intenta estimar el valor de la utilidad sin necesidad de llegar hasta la última jugada - En un nodo donde MAX tiene una victoria casi asegurada el valor de la función debe ser alto
Juegos Decisiones imperfectas
• Si se aplica minimax utilizando la función de evaluación heurística la decisión será imperfecta
Juegos Jugador1
Jugador2
Juegos Jugador1
Jugador2
Jugador1
. . .
Juegos Jugador1
Jugador2
Jugador1
. . .
• Se expande el árbol hasta un punto dado • Se aplica sobre las hojas la función de evaluación para estimar la utilidad • Se calcula la decisión minimax
Juegos Decisiones imperfectas
MAX juega con blancas, en cuál de los dos estados la utilidad estimada debe ser mayor?
Juegos Decisiones imperfectas Cada pieza tiene un valor: • Peón: 1 • Caballo: 3 • Alfil: 3 • Torre: 5 • Reina: 9
Juegos Decisiones imperfectas
• f1(n): valor material de las piezas que MAX ha tomado de su contrincante
Juegos Decisiones imperfectas
• f1(n): valor material de las piezas que MAX ha tomado de su contrincante • f1(n)=0 al inicio del juego • Lo será hasta que MAX elimine alguna pieza
Juegos Decisiones imperfectas Cada pieza tiene un valor:
Peón: 1 Caballo: 3 Alfil: 3 Torre: 5 Reina: 9
f1(n)=1
f1(n)=1
Juegos Decisiones imperfectas
• f2(n): valor material de las piezas que MAX ha tomado de su contrincante – valor material de las piezas que MAX ha perdido
Juegos Decisiones imperfectas Cada pieza tiene un valor:
Peón: 1 Caballo: 3 Alfil: 3 Torre: 5 Reina: 9
f2(n)=1-8=-7
f2(n)=1-3=-2
Juegos
X
O O X
X
O
O
O
X
O
X
O
O
X
MAX juega con X. En cuál de los dos estados el valor estimado de la utilidad debe ser mayor?
Juegos
X
O O X
X
O
O
O
X
O
X
O
O
X
f(n): cantidad de filas, columnas y diagonales libres para MAX
Juegos
X
O O X
X
O
O
f(n): 2
O
X
O
X
O
O
X
f(n): 0
Juegos
X
O O
X
X
O O O X
f(n): ?
X
X
f(n): ?
Juegos
X
O O
X
X
O O O X
f(n): ?
X
X
f(n): ?
f(n): cantidad de filas, columnas y diagonales libres para MAX
Si n es un estado ganador para MAX, f(n)= Si n es un estado perdedor para MAX, f(n)=-
Juegos
X
O O X
X
O
O
O
X
O
X
O
O
X
X O
f(n): ?
Juegos
X
O O X
X
O
O
O
X
O
X
O
O
X
X O
f(n)=4 pero no refleja que MIN tiene más formas de hacer el triqui
Juegos Decisiones imperfectas
f(n)=
(número de filas, columnas o diagonales libres para MAX) (número de filas, columnas o diagonales libres para MIN), si el nodo n no es estado en el que gane alguno de los jugadores , si gana MAX -, si gana MIN
Juegos
X
O O
X
O
X
O
O
O
X
f(n)=2-1
f(n)=0-1
X X
O
O
X O
f(n)=4-5
Juegos
X
X
X X
X
X
X
X
O
X
O
...
X
X
X
O
Minimax con decisiones imperfectas sigue la estrategia de búsqueda limitada por profundidad, se tiene un límite hasta el cual construir el árbol
Juegos • Aplique minimax con profundidad 2
Juegos • Aplique minimax con profundidad 2
X X
X
……...
Juegos • Aplique minimax con profundidad 2
X X
X 0
X
X
X
X0
X 0
0
0
0
X
X 0
0
X
……...
Juegos • Aplique minimax con profundidad 2
X X
X 0
X
X
X
X0
X 0
0
0
0
X
X 0
0
X
……...
Aplicar la función de evaluación heurística para estimar la utilidad
Juegos • Aplique minimax con profundidad 2
X X
X 0 6-5=1
X
X
X
X0
X 0
0 5-5=0
0 6-5=1
0 5-5=0
4-5=-1 6-5=1
X
X
0
0 5-5=0
6-5=1
X
……...
Juegos • Aplique minimax con profundidad 2
-1 X X
X 0 6-5=1
X
X
X
X0
X 0
0 5-5=0
0 6-5=1
0 5-5=0
4-5=-1 6-5=1
X
X
0
0 5-5=0
6-5=1
X
……...
Juegos • Aplique minimax con profundidad 2
-1 X X
X
0
0 X
X
……...
0 X
0X
X0
0
X
X
0
X
0
5-4=1 6-4=2 5-4=1 6-4=2 6-4=2 5-4=1 6-4=2 5-4=1
Juegos • Aplique minimax con profundidad 2
-1
+1
X X
X
0
0 X
X
……...
0 X
0X
X0
0
X
X
0
X
0
5-4=1 6-4=2 5-4=1 6-4=2 6-4=2 5-4=1 6-4=2 5-4=1
Juegos Decisiones imperfectas X
O
X
O
Considere 2 niveles de profundidad e indique la decisión minimax
X
O
X
O
X
O
X
X
X
O
X
X O
X
O
X
X
O
X
X
O
X
X
O
X O
O
X
O
X
O
X
O
X
O
X
X
O
X
X
O
X
O
X
X
O
X O
1-2
O
X
X
2-2
O
X
X
O
X
O
O
O
X
X
O
X
X O
1-2
O
3-2
X
O
X
X
O
X
X
O
X
O
X
X
O
X
O
O
X
O
X
X
O
X
X
O
O
1-1
X
O
2-1
X
O
O
X
X O
O
X
X O
1-1
X
O
3-1
O
X
O
X
O
-1 X
O
X
0
X
O
X
X
O
X
O
X
X
O
X O
-1
O
X
X
0
O
X
X
O
X
O
O
O
X
X
O
X
X O
-1
O
1
X
O
X
X
O
X
X
O
X
O
X
X
O
X
O
O
X
O
X
X
O
X
X
O
O
0
X
O
1
X
O
O
X
X O
O
X
X O
0
X
O
2
O
Juegos Decisiones imperfectas
Hex simplificado Casa del jugador 1
Casa del jugador 2
• Inicialmente cada jugador coloca una ficha en su casa • En cada turno, puede colocar otra ficha siempre y cuando sea adyacente a alguna de su color (adyacencia: contigua incluida diagonal) • Gana el juego quien logre colocar una ficha en la casa del adversario
Juegos Decisiones imperfectas
Hex simplificado Casa del jugador 1
Casa del jugador 2
Juegos Decisiones imperfectas
Hex simplificado
Juegos Reversi ¿Qué heurística utilizaría?
Juegos Reversi • Algunos utilizan la cantidad de fichas del color como heurística • Una heurística fuerte combina los siguientes 4 criterios: - Movilidad: número de movimientos que un jugador puede hacer - Movilidad potencial: cantidad de posiciones vacías contiguas a fichas del oponente - Tabla de bordes: jugadas precalculadas para tomar los bordes - Esquinas: jugadas para tomar las esquinas
http://home.tiscalinet.ch/t_wolf/tw/misc/reversi/html/index.html
Juegos Damas
http://www.cs.caltech.edu/~vhuang/cs20/c/applet/more.html
Juegos Damas • En la actualidad los programas para jugar Damas implementan el algoritmo minimax con poda alfa-beta, además de que tienen movimientos aleatorios (el computador no necesariamente repite juegos) • La función de evaluación incluye conteo de piezas y consideraciones de las posiciones
http://www.cs.caltech.edu/~vhuang/cs20/c/applet/more.html
Juegos Damas
• Jonathan Schaeffer diseñó el programa Chinook que utilizaba poda alfa-beta. Además, para posiciones de seis piezas tenía una base de datos con soluciones perfectas • En 1992 Chinook ganó el abierto de Estado Unidos. Fue el primer programa que oficialmente participó en un campeonato mundial
Juegos Damas • Jugó desde 1950 hasta 1995 perdiendo solamente en 7 juegos, 2 de los cuales fue contra Chinook y algunos por abandono debido a problemas de salud • Afirmó que se aburrió de jugar contra humanos porque no representaban una competencia real. Solamente podían aspirar a un empate • Asegura que se sintió joven nuevamente cuando apareció Chinook
• Después de su muerte en 1995, Chinook ha sido el campeón mundial Marion Tinsley (1927-1995)
Juegos
http://www.cs.ualberta.ca/~chinook/
Juegos Ajedrez
• 1997. El superordenador IBM Deep Blue derrotó al campeón mundial Garry Kasparov
Juegos • 2006. El programa Deep Fritz, funcionando en un ordenador personal con procesador Intel Core 2 Duo consiguió derrotar también al actual campeón mundial Vladimir Krámnik por el marcador 4 – 2
Juegos Campeones mundiales de ajedrez
Juegos Juegos con elemento aleatorio
• Problema: cómo aplicar minimax en problemas donde interviene el azar
Juegos Juegos con elemento aleatorio
• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios
2
4
6
-4
Juegos Juegos con elemento aleatorio
• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios
1/2
Cada rama que sale de un nodo aleatorio indica probabilidad
1/2
sello
cara
2
4
6
-4
1
2
Juegos Juegos con elemento aleatorio
• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios
2
1
2
4
3
10
3
7
-1
4
5
-10
5
3
6
7
9
1
Juegos Juegos con elemento aleatorio
• Un árbol de juego donde influye el azar, debe incluir nodos aleatorios
1/6
2
1
2
1/6
1/6
4
3
10
1/6 3
7
-1
1/6
1/6
4
5
-10
5
3
6
7
9
1
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda
camino1
camino2
? ?
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda
camino1
camino2
? ?
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda Cara
camino1
camino2
? ?
Sello
Cara
Sello
Ataque1
2
Ataque2
4
Ataque1
7
Ataque2
4
Ataque1
6
Ataque2
0
Ataque1
5
Ataque2
-2
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda camino1
camino2
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda camino2
camino1
1/2 cara
1/2 sello
1/2 cara
1/2 sello
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda camino2
camino1
1/2
1/2
cara
sello
A1
A2
2
4
1/2 cara
1/2 sello
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda camino2
camino1
1/2
1/2
cara
1/2
sello
1/2
cara
sello
A1
A2
A1
A2 A1
A2
A1
A2
2
4
7
4 6
0
5
-2
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda camino2
camino1
1/2
1/2
cara
1/2
sello
2
1/2
cara
4
0
sello
-2
A1
A2
A1
A2 A1
A2
A1
A2
2
4
7
4 6
0
5
-2
Juegos Juegos con elemento aleatorio
• Se calcula el valor esperado en cada nodo aleatorio
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda 3 camino2
camino1
3
1/2
1/2
cara
sello
2
(½)*2 + (½)*4 = 3
1/2
1/2
cara
4
0
sello
-2
A1
A2
A1
A2 A1
A2
A1
A2
2
4
7
4 6
0
5
-2
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda 3 camino2
camino1
3
1/2
1/2
cara
1/2
sello
2
(½)*2 + (½)*4 = 3
-1
1/2
cara
4
0
sello
-2
A1
A2
A1
A2 A1
A2
A1
A2
2
4
7
4 6
0
5
-2
(½)*0 + (½)*(-2) = -1
Juegos Juegos con elemento aleatorio
• Ejemplo de juego con lanzamiento de moneda 3
3
1/2
-1
1/2
cara
1/2
sello
2
La decision minimax es tomar el camino1
camino2
camino1
1/2
cara
4
0
sello
-2
A1
A2
A1
A2 A1
A2
A1
A2
2
4
7
4 6
0
5
-2
Juegos Aplique minimax considerando un dado en lugar de una moneda: • En el camino 1, si usted saca un número par el fantasma puede optar entre dejarlo con una utilidad que es igual al número obtenido o dejarlo en 3, y si saca un número impar lo puede dejar en una utilidad que es igual a – el número obtenido o 4 • En el camino 2, si usted saca un número menor o igual que 4, el fantasma puede optar entre dejarlo con una utilidad que es igual al número obtenido o dejarlo en 2, y en los otros casos (5,6) lo puede dejar en – el número obtenido o en 3
? ?
Juegos La decision minimax es tomar el camino1 camino1
camino2 -4/6
-1/6
-1
A1
-1
1/6 1
2
1/6 2
-3
1/6 3
1/6
3
1/6 4
1/6
-5
1/6
5
3
6
1
1
2
1/6 2
1/6
2
3
1/6
2
1/6 4
1/6
-5
5
-6
6
A2 A1
A2 A1
A2 A1
A2 A1
A2 A1
A2A1
A2 A1
A2 A1
A2 A1
A2 A1
A2 A1
A2
4 2
3 -3
4 4
3 -5
4 6
3 1
2 2
2 3
2 4
2 -5
3 -6
3
Juegos Juego de los ejércitos
• Un jugador que vaya a atacar puede hacerlo con 1 o 2 ejércitos • El éxito de un ataque se representa por el valor obtenido en un dado* • Lanza primero el defensor • El atacante tiene que sacar un número mayor que el defensor para ganar, si se ataca con 2 ejércitos el atacante podrá lanzar 2 veces el dado Suponga que el dado solo tiene los números 1,2 y 3
Juegos Atacar con 1 ejército
1/3
1/3
1
1
1/3
2 2
1/3
2
Atacar con 2 ejércitos
3
1/3
3
1
2
1
3
1/3
1/3
3
1
2
1/3
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
11 22 21 33 32 31
11 22 21 33 32 31
11 22 21 33 32 31
Juegos
1/9 para cada posibilidad
11 22 33 12 21 13 31 23 32
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1
1/3
2 2
1/3
2
Atacar con 2 ejércitos
3
1/3
3
1
2
1
3
1/3
1/3
3
1
2
1/3
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
11 22 21 33 32 31
11 22 21 33 32 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1 -1
1/3
2 2
1/3
2
Atacar con 2 ejércitos
3
1/3
3
1
2
1
3
1/3
1/3
3
1
2
1/3
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
11 22 21 33 32 31
11 22 21 33 32 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1/3
2 2
1/3
Atacar con 2 ejércitos
3
1/3
1
2
3
-1
1
1
1
2
1
3
1/3
1/3
3
1
2
1/3
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
11 22 21 33 32 31
11 22 21 33 32 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1
1/3
2 2
1/3
2
Atacar con 2 ejércitos
3
1/3
3
1
2
1
3
3
1
2
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
11 22 21 33 32 31
? ? ?
11 22 21 33 32 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1
1/3
2 2
1/3
2
Atacar con 2 ejércitos
3
1/3
3
1
2
1
3
3
1
2
3
2
1/3
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
11 22 21 33 32 31
-1
1
1
11 22 21 33 32 31
11 22 21 33 32 31
Juegos Atacar con 1 ejército
1/3
1/3
1
1/3
2 2
1/3
Atacar con 2 ejércitos
3
1/3
1
3
1
2
3
1
2
3
1
2
3
-1
1
1
-1
-1
1
-1
-1
-1
1/3
2
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
11 22 21 33 32 31
-1
1
1
1
1
1
11 22 21 33 32 31
-1 -1 -1 1
1
11 22 21 33 32 31
1 -1 -1 -1 -1 -1 -1
Juegos Atacar con 1 ejército
1/3
1/3
1
1/3
2 2
1/3
Atacar con 2 ejércitos
3
1/3
1
3
1
2
3
1
2
3
1
2
3
-1
1
1
-1
-1
1
-1
-1
-1
1/3
2
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
11 22 21 33 32 31
-1
1
1
1
1
1
11 22 21 33 32 31
-1 -1 -1 1
Indique la decisión minimax
1
11 22 21 33 32 31
1 -1 -1 -1 -1 -1 -1
Juegos (1/3)(-1) + (1/3)(1) + (1/3)(1) = 1/3 Atacar con 1 ejército
Atacar con 2 ejércitos
(1/9)(-1) + (1/9)(1)(2) + (2/9)(1)(3) = 7/9
1/3
1/3
1
1/3
2 2
1/3
3
1/3
1
3
1
2
3
1
2
3
1
2
3
-1
1
1
-1
-1
1
-1
-1
-1
1/3
2
3
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
11 22 21 33 32 31
-1
1
1
1
1
1
11 22 21 33 32 31
-1 -1 -1 1
1
11 22 21 33 32 31
1 -1 -1 -1 -1 -1 -1
Juegos La decisión es atacar con 2 ejércitos Atacar con 1 ejército
Atacar con 2 ejércitos
(1/3)(-1) = -0.33
1/3
(1/27)= -0.037
1/3
1
1/3
2 2
1/3
3
-1/3 1/3
1/3
3
-1
1
2
7/9
1/9
1
2
3
1
2
3
1
2
3
-1
1
1
-1
-1
1
-1
-1
-1
11 22 21 33 32 31
-1
1
1
1/3
3
-1
1/9 para 11, 22 y 33 2/9 para 21, 32 y 31
1/3
1/3
1/3
1
1
1
11 22 21 33 32 31
-1 -1 -1 1
1
11 22 21 33 32 31
1 -1 -1 -1 -1 -1 -1
Juegos Juegos con elemento aleatorio
• El backgammon combina estrategia y suerte
Juegos Juegos con elemento aleatorio
• Aunque el jugador de las fichas blancas sabe sus jugadas permitidas, ignora qué valores obtendrá su contrincante al lanzar los dados • Un árbol de juego en el backgammon debe incluir nodos aleatorios, además de los nodos MAX y MIN
Max
Dado 1,1
1,2
1/36
1/18
Min
...
6,5
6,6
1/18
1/36
... Dado
Max
1,1
1,2
1/36
1/18
6,5 1/18
6,6
1/36
...
... Terminal -1
...
1
Juegos Backgammon • Primer programa fue BKG que utilizaba una función de evaluación heurística • En 1980 derrotó al campeón mundial por 5-1 • Como interviene la suerte, BKG puede tener buenas y malas partidas
Juegos Aplique minimax en el siguiente juego: • El juego consiste en que dos personas lanzan un dado* y se quiere saber quién obtiene un mayor puntaje. El jugador A puede inicialmente decidir si va a jugar doblando el valor obtenido o no • Si A dobla su puntaje y obtiene un valor mayor (doblando) que el de B, su utilidad 5, si obtiene menos o lo mismo su utilidad será -10
• Si A no dobla su puntaje y saca más o lo mismo que B, obtiene utilidad 10, si saca menos obtiene utilidad -2 • B no puede decidir si doble su puntaje • Primero lanza el dado A y luego B * Considere el dado de solo números 1, 2 y 3
Juegos La decision minimax es no doblar 5/3
1/3
1/3
1 -5
1/3
2
5
-10
1/3
-10
1/3
1/3
3
1
2
3
5
5
2
6
10
1/3
1/3
3
6
2
1/3
1
no doblar
doblar
1/3
1/3
1/3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
5
5
5
5
5
5
10
-2
-2
10
10
-2
10
10
10