sistemasmonte/materialdocente/sistemasinteligentes/3ses… · poda alfa-beta ! funciones de...
TRANSCRIPT
![Page 1: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/1.jpg)
Sistemas Inteligentes I Tema 3. Juegos José A. Montenegro Montes [email protected]
![Page 2: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/2.jpg)
Resumen
! Juegos
! Algoritmo Minimax
! Poda Alfa-Beta
! Funciones de Evaluación
![Page 3: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/3.jpg)
Juegos
! Entornos multiagente, donde cada agente debe considerar las acciones de los otros agentes.
! Juegos: Entornos competitivos donde los objetivos del agente están en conflicto, dan lugar a problemas de búsqueda entre adversarios.
! Ajedrez, Otelo, Backgammon, Go
! Ajedrez: Árbol de búsqueda tiene 10154 nodos.
! Capacidad de tomar decisión cuando no es factible calcular la decisión óptima.
! Poda: Nos permiten ignorar partes del árbol búsqueda.
! Funciones evaluación: Heurísticas que permiten aproximar la utilidad sin hacer búsqueda completa.
![Page 4: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/4.jpg)
Componentes Juegos
! Juegos, clase de problemas de búsqueda: ! Estado Inicial: Posición tablero y jugador que mueve
! Función sucesor: Lista pares (movimiento, estado) , estado resultante.
! Test terminal: Cuando finaliza el juego. Estados terminales.
! Función Utilidad: Valor numérico a los estados terminales. ! Por ejemplo (suma nula): Triunfo +1, Pérdida -1, Empate 0
! Árbol del juego: Definido mediante estado inicial y los movimientos legales.
![Page 5: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/5.jpg)
Algoritmo Minimax
![Page 6: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/6.jpg)
Algoritmo Minimax
! Juegos 2 jugadores (MAX y MIN) ! Primero mueve MAX y luego MIN por turnos hasta que termina
! Árbol del juego
El valor de cada nodo hoja indica el valor de la función de utilidad desde el punto de vista de MAX (valores altos son buenos para MAX y bajos buenos para MIN)
Jugadas alternas entre MAX (x) y MIN (o), hasta
llegar a un estado terminal
Inicialmente MAX puede realizar uno de entre nueve movimientos posibles
![Page 7: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/7.jpg)
Algoritmo Minimax
! Tiene por objetivo decidir un movimiento para MAX. ! HIPÓTESIS
! Jugador MAX trata de maximizar su beneficio (función de utilidad). ! Jugador MIN trata de minimizar su pérdida.
! Suponemos Jugadores juegan de forma óptima.
! Aplicación algoritmo: 1) Generar árbol entero hasta nodos terminales 2) Aplicar función utilidad a nodos terminales 3) Propagar hacia arriba para generar nuevos valores de utilidad para todos los nodos
! minimizando para MIN ! Maximizando para MAX
4) Elección jugada con máximo valor de utilidad
![Page 8: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/8.jpg)
Algoritmo Minimax
UTILIDAD(n) si n es estado terminal
Valor-MINIMAX(n) max VALOR-MINIMAX(s) si n es un estado MAX
min VALOR-MINIMAX(s) si n es un estado MIN
Utilidad para MAX
![Page 9: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/9.jpg)
Algoritmo Minimax function MINIMAX-DECISION(state) returns una acción
inputs: state, estado actual en el juego v ← MAX-VALUE(state) return una acción de SUCCESSORS(state) con valor v
function MAX-VALUE(state) returns valor utilidad
if TERMINAL-TEST(state) then return UTILITY(n) v ← - ∞ for s en SUCCESSORS(state) do v ← MAX(v, MIN-VALUE(s)) return v
function MIN-VALUE(state) returns valor utilidad if TERMINAL-TEST(state) then return UTILITY(n) v ← ∞ for s en SUCCESSORS(state) do v ← MIN(v, MAX-VALUE(s)) return v
![Page 10: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/10.jpg)
Poda Alfa-Beta
![Page 11: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/11.jpg)
Poda Alfa-Beta
! No afecta al resultado final
! Su efectividad depende del orden en que se consideren los movimientos
! α à valor de la mejor elección para MAX (valor más alto) que hemos encontrado en el camino hasta ahora
! β à valor de la mejor elección para MIN (valor más bajo) que hemos encontrado en el camino hasta ahora
![Page 12: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/12.jpg)
Poda Alfa-Beta
![Page 13: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/13.jpg)
Poda Alfa-Beta
![Page 14: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/14.jpg)
Poda Alfa-Beta
Alfa Beta
![Page 15: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/15.jpg)
Poda Alfa-Beta
Minimax
Poda
![Page 16: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/16.jpg)
Poda Alfa-Beta
Minimax
Poda
![Page 17: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/17.jpg)
Ejemplo seguimiento Algoritmo
MAX
MIN
![Page 18: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/18.jpg)
Poda Alfa-Beta α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
3
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
![Page 19: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/19.jpg)
Poda Alfa-Beta
3
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
Terminal-Test(state) return 3 3
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=3 Vß min(∞,3)
If (3< -∞) return 3 β! MIN(∞,3)
![Page 20: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/20.jpg)
Poda Alfa-Beta
3
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=∞
α=-∞ β=3
17 3
3
α=-∞ β=∞
α=-∞ β=∞
α=3 β=∞
α=-∞ β=3
17 3
3
α=-∞ β=∞
α=-∞ β=∞
α=3 β=∞
α=3 β=∞
17
![Page 21: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/21.jpg)
Poda Alfa-Beta
3
3
α=-∞ β=∞
α=-∞ β=∞
α=3 β=∞
α=3 β=∞
17 2 3
3
α=-∞ β=∞
α=-∞ β=∞
α=3 β=∞ α=3 β=2
17
2
2 X
{α, β}
{α, β}
Si V ≥ β poda β
Si V ≤ α poda α
V
V
http://cs.ucla.edu/~rosen/161/notes/alphabeta.html
![Page 22: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/22.jpg)
Funciones de Evaluación
![Page 23: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/23.jpg)
Funciones de Evaluación
! Minimax genera el espacio de búsqueda entero, mientras que el algoritmo alfa-beta podamos partes. ! Necesario llegar a estados terminales.
! Trabajo shannon (1950) programming a computer for playing chess, propone una función de evaluación heurística a los estados convirtiendo nodos no terminales a terminales.
! Sustituye función utilidad por función evaluación heurística, que da una estimación de utilidad de la posición y establecemos un test límite que decide cuando terminar de aplicar función.
! Su cálculo ha de ser poco costoso
![Page 24: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/24.jpg)
Decisiones imperfectas en juegos de dos adversarios
! Decisión imperfecta: Decisión tomada por el algoritmo minimax sobre un horizonte que no alcanza el final del juego (se asume) y con función de evaluación estimada f = û.
! Función de evaluación, ejemplos:
! f(n)= 1) si “n” no es terminal: (número de filas, columnas o diagonales libres para
MAX) - (número de filas, columnas o diagonales libres para MIN)
2) si gana MAX: ∞ 3) si gana MIN: - ∞
X
O
Nº pos max = 5 Nº pos min = 5
f(n)= 5 - 5 = 0
X
O Nº pos max = 4 Nº pos min = 5
f(n)= 4 - 5 = -1
![Page 25: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/25.jpg)
Ejemplos
![Page 26: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/26.jpg)
Ejemplo 1
2 5 1 2 7 3 6 4 0 3 5 1 9 6 2 8
![Page 27: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/27.jpg)
Ejemplo 1 minimax
2 5 1 2 7 3 6 4 0 3 5 1 9 6 2 8
2 1 3 4
2 4
0 1 6 2
1 6
2 1
2
![Page 28: Sistemasmonte/MaterialDocente/SistemasInteligentes/3Ses… · Poda Alfa-Beta ! Funciones de Evaluación . Juegos ! Entornos multiagente, donde cada agente debe considerar las acciones](https://reader030.vdocuments.co/reader030/viewer/2022041111/5f14e0a1932ad46a02108d2b/html5/thumbnails/28.jpg)
Ejemplo 1 alfa beta
2 5 1 2 7 3 6 4 0 3 5 1 9 6 2 8
1. ≤2 2. =2
4. ≤1
3. ≥ 2 6. 2
5.
7. ≤ 2 12. = 2
8. ≤ 7 9. = 3
10. ≥ 3
11.<
13. ≥ 2 22. 2
14. ≤ 0
15.
16. ≥ 0 19. =1
17. ≤ 5 18. =1
20. ≤ 1
21.
Min 3 Max 8 Total 11