SlideShare una empresa de Scribd logo
1 de 19
Contenido:
Debido a que el ajedrez es un juego objetivo de IA desde
hace mucho tiempo, se presenta lo siguiente:
• Un ambiente de 2 jugadores con perfecta información.
• El árbol del juego.
• MiniMax: Propaga valores de nodos terminales a internos.
• Poda Alfa-beta: Elimina partes grandes del árbol.
• Árbol demasiado grande: no se llega a nodos terminales.
• Función de evaluación: sobre nodos a profundidad d.
• Extensiones singulares.
• Especulación: factor de ramificación.
Árbol de juegos




• Alternan jugadores por niveles
• Sucesores de un nodo: todas los movimientos
  legales que ese jugador puede hacer
MiniMax


Cuál es el mejor movimiento?
Supongo que el oponente elige el movimiento que más le conviene.
MiniMax
• Idea: propagar hacia atrás el valor de los hijos
• Nodos terminales: valor 1, -1 (gana A o gana B)
• Dos tipos de nodos:
      max: gana con 1
      min: gana con -1
• Propagación hacia atrás:
      max: el máximo de los valores de los hijos
      min: el mínimo de los valores de los hijos
Algoritmo MiniMax
Evaluar nodo n de un árbol de juegos
1. Expandir el árbol bajo n
2. Evaluar los nodos terminales.
3. Seleccionar un nodo sin valor que todos sus hijos
han
sido valuados. Si no existe, retornar el valor de n. Stop.
4. Si el nodo es max, asignar el máximo de sus hijos.
Si el nodo es min asignar el mínimo de sus hijos. Ir a 3.
Algoritmo MiniMax
El algoritmo anterior tiene un problema:
                       ¿cuál?
Supone búsqueda en anchura:
4. Si el nodo es max, asignar el máximo de sus
hijos.
Si el nodo es min asignar el mínimo de sus hijos.
Espacio exponencial
MiniMax en DFS
1. L = {n}
2. x ← extrae-primero(L).
Si x =n con valor asignado, retorna ese valor. Stop.
3. Si x tiene valor w, nodo p es padre de x con valor v
Si p es max, asignar max(v, w) a p.
Si p es min, asignar min(v, w) a p.
Eliminar x de L, ir a 2.
4. Si x no tiene valor y es un nodo terminal,
asignar +1 o -1 como valor, depende si gana para max o min
5. Si x no tiene valor y no es un nodo terminal,
asignar - ∞ o + ∞ como valor, depende si es max o min
MiniMax en DFS
Minimax ha de guardar:
• sucesores de rama actual (como DFS)
• nodos en la rama actual: para actualizar su valor
Alfa-Beta


Con una buena ordenación de sucesores,
Función de evaluación
Función de evaluación para el Ajedrez
e(n) → [-1, +1]
– sustituye la detección de nodos terminales
– es imperfecta
Ajedrez: sumar los valores de las piezas
peón, caballo, alfil, torre, reina
1 3 3 5 10
B: suma de las blancas N: suma de las negras
e(n) = B - N / B + N
Efecto Horizonte
Efecto Horizonte en Ajedrez
• Efecto horizonte: una jugada que inicialmente parece
buena puede resultar mala
• el peligro no se ve, está tras el horizonte
• la función de evaluación es incapaz de detectarlo
• Solución fuerza bruta: buscar más profundo
• coste computacional
• en ajedrez, hay muchos movimientos que
pueden retrasar una jugada de peligro
• Aproximación selectiva: identificar los nodos en los que
se debe profundizar más → extensiones singulares
Extensiones Singulares
Deep Blue
• Proyecto de IBM
•Alfa-beta paralelo:
  • Hardware especializado (2 millones posiciones / sg)
  • Extensiones singulares, quiescencia
  • Función de evaluación sofisticada
  • Biblioteca: aperturas y finales
• Resultados:
  • Venció a Kasparov en 1997
  • Ratio 2700, Kasparov 2800
  • quantity had become quality - la cantidad se había convertido
  en la calidad
Algunas especulaciones
¿Por qué los programas son buenos en ciertos
juegos y en otros no?
Hipótesis:
  • Programa = búsqueda
  • Rendimiento frente a humanos: aumenta con profundidad d
  • Número de estados a visitar bd en tiempo fijado
Depende de b factor de ramificación:
  • Si b pequeño, se puede profundizar → buen rendimiento
  • Si b grande, no se puede profundizar → rendimiento pobre
Algunas especulaciones
Factor de ramificación:
  • damas: 4
  • othello: < 10
  • ajedrez: 36
  • go: 361
el campeón mundial es un programa
Otras ideas:
  • aprendizaje (backgammon)
  • dificultad cuando se intercambian muchas piezas
Por ultimo, Gracias!
Nunca consideres el estudio como un deber, sino
como una oportunidad para penetrar en el
maravilloso mundo del saber.

Albert Einstein

Más contenido relacionado

La actualidad más candente

AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchAlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchKarel Ha
 
Lecture 23 alpha beta pruning
Lecture 23 alpha beta pruningLecture 23 alpha beta pruning
Lecture 23 alpha beta pruningHema Kashyap
 
Getting started with reinforcement learning in open ai gym
Getting started with reinforcement learning in open ai gymGetting started with reinforcement learning in open ai gym
Getting started with reinforcement learning in open ai gymAnthonyMelson
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningTaehoon Kim
 
Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?Lee Ji Eun
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"YeChan(Paul) Kim
 
Guided policy search
Guided policy searchGuided policy search
Guided policy searchJaehyeon Park
 
Information Management with Redmine
Information Management with RedmineInformation Management with Redmine
Information Management with RedmineVu Hung Nguyen
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbThiago Santos
 
Uber Cadence Fault Tolerant Actor Framework
Uber Cadence Fault Tolerant Actor FrameworkUber Cadence Fault Tolerant Actor Framework
Uber Cadence Fault Tolerant Actor FrameworkMaxim Fateev
 
Human-level Control Through Deep Reinforcement Learning (Presentation)
Human-level Control Through Deep Reinforcement Learning (Presentation)Human-level Control Through Deep Reinforcement Learning (Presentation)
Human-level Control Through Deep Reinforcement Learning (Presentation)Muhammed Kocabaş
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Felipe Blini
 
Insertion & Selection Sort - using Priority Queues
Insertion & Selection Sort - using Priority QueuesInsertion & Selection Sort - using Priority Queues
Insertion & Selection Sort - using Priority QueuesPriyanka Rana
 
Boas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksBoas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksJoel Pinho Lucas
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionAlexander Kukushkin
 
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...Jorge Pablo Rivas
 
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXMonitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXLuiz Andrade
 

La actualidad más candente (18)

AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree SearchAlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
AlphaGo: Mastering the Game of Go with Deep Neural Networks and Tree Search
 
Lecture 23 alpha beta pruning
Lecture 23 alpha beta pruningLecture 23 alpha beta pruning
Lecture 23 alpha beta pruning
 
Getting started with reinforcement learning in open ai gym
Getting started with reinforcement learning in open ai gymGetting started with reinforcement learning in open ai gym
Getting started with reinforcement learning in open ai gym
 
Dueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learningDueling network architectures for deep reinforcement learning
Dueling network architectures for deep reinforcement learning
 
Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?
 
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
pycon2018 "RL Adventure : DQN 부터 Rainbow DQN까지"
 
Guided policy search
Guided policy searchGuided policy search
Guided policy search
 
Information Management with Redmine
Information Management with RedmineInformation Management with Redmine
Information Management with Redmine
 
Temperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper UsbTemperatura Zabbix Procedimento Temper Usb
Temperatura Zabbix Procedimento Temper Usb
 
Uber Cadence Fault Tolerant Actor Framework
Uber Cadence Fault Tolerant Actor FrameworkUber Cadence Fault Tolerant Actor Framework
Uber Cadence Fault Tolerant Actor Framework
 
Human-level Control Through Deep Reinforcement Learning (Presentation)
Human-level Control Through Deep Reinforcement Learning (Presentation)Human-level Control Through Deep Reinforcement Learning (Presentation)
Human-level Control Through Deep Reinforcement Learning (Presentation)
 
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
Monitoramento de serviços com Zabbix + Grafana + Python - Marcelo Santoto - D...
 
Understanding AlphaGo
Understanding AlphaGoUnderstanding AlphaGo
Understanding AlphaGo
 
Insertion & Selection Sort - using Priority Queues
Insertion & Selection Sort - using Priority QueuesInsertion & Selection Sort - using Priority Queues
Insertion & Selection Sort - using Priority Queues
 
Boas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter NotebooksBoas práticas de desenvolvimento para Jupyter Notebooks
Boas práticas de desenvolvimento para Jupyter Notebooks
 
Patroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companionPatroni: Kubernetes-native PostgreSQL companion
Patroni: Kubernetes-native PostgreSQL companion
 
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...
Investigación de Operaciones 015 Construcción y Clasificación de Modelos Mate...
 
Monitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIXMonitoramento Inteligente utilizando o ZABBIX
Monitoramento Inteligente utilizando o ZABBIX
 

Similar a Presentacion funciones heuristicas para el ajedrez

Criterios de Búsquedas en Inteligencia artificial
Criterios de Búsquedas en Inteligencia artificialCriterios de Búsquedas en Inteligencia artificial
Criterios de Búsquedas en Inteligencia artificialMariy Torrealba
 
Exp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosExp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosDiana
 
Tecnicas de Busqueda en IA
Tecnicas de Busqueda en IATecnicas de Busqueda en IA
Tecnicas de Busqueda en IAAlfredoAlejo1
 
Criterios de Búsqueda en Inteligencia Artificial
Criterios de Búsqueda en Inteligencia ArtificialCriterios de Búsqueda en Inteligencia Artificial
Criterios de Búsqueda en Inteligencia ArtificialHilario Per'zz
 
ECImag 2010 - Clase 3/5
ECImag 2010 - Clase 3/5ECImag 2010 - Clase 3/5
ECImag 2010 - Clase 3/5Corvalius
 

Similar a Presentacion funciones heuristicas para el ajedrez (9)

1789019.ppt
1789019.ppt1789019.ppt
1789019.ppt
 
estudiante
estudiante estudiante
estudiante
 
cuadro comparativo
cuadro comparativocuadro comparativo
cuadro comparativo
 
Criterios de Búsquedas en Inteligencia artificial
Criterios de Búsquedas en Inteligencia artificialCriterios de Búsquedas en Inteligencia artificial
Criterios de Búsquedas en Inteligencia artificial
 
Exp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosExp BúSqueda Entre Adversarios
Exp BúSqueda Entre Adversarios
 
Tecnicas de Busqueda en IA
Tecnicas de Busqueda en IATecnicas de Busqueda en IA
Tecnicas de Busqueda en IA
 
Trabajo
TrabajoTrabajo
Trabajo
 
Criterios de Búsqueda en Inteligencia Artificial
Criterios de Búsqueda en Inteligencia ArtificialCriterios de Búsqueda en Inteligencia Artificial
Criterios de Búsqueda en Inteligencia Artificial
 
ECImag 2010 - Clase 3/5
ECImag 2010 - Clase 3/5ECImag 2010 - Clase 3/5
ECImag 2010 - Clase 3/5
 

Más de G Hoyos A

curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticasG Hoyos A
 
correo seguro
 correo seguro correo seguro
correo seguroG Hoyos A
 
cifra flujo
 cifra flujo cifra flujo
cifra flujoG Hoyos A
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmosG Hoyos A
 
gestion seguridad informatica
 gestion seguridad informatica gestion seguridad informatica
gestion seguridad informaticaG Hoyos A
 
calidad de la informacion
calidad de la informacioncalidad de la informacion
calidad de la informacionG Hoyos A
 
Cripto clasica
Cripto clasicaCripto clasica
Cripto clasicaG Hoyos A
 
Presentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucenaPresentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucenaG Hoyos A
 
Transposicion
TransposicionTransposicion
TransposicionG Hoyos A
 
Sellado de tiempo_timestamp
Sellado de tiempo_timestampSellado de tiempo_timestamp
Sellado de tiempo_timestampG Hoyos A
 
Protocolo gestor claves
Protocolo gestor clavesProtocolo gestor claves
Protocolo gestor clavesG Hoyos A
 
Problema rsa
Problema rsaProblema rsa
Problema rsaG Hoyos A
 
Número primo fuerte
Número primo fuerteNúmero primo fuerte
Número primo fuerteG Hoyos A
 
Metodo kasiski
Metodo kasiskiMetodo kasiski
Metodo kasiskiG Hoyos A
 
Modos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloquesModos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloquesG Hoyos A
 

Más de G Hoyos A (20)

curvas elipticas
 curvas elipticas curvas elipticas
curvas elipticas
 
correo seguro
 correo seguro correo seguro
correo seguro
 
cifra flujo
 cifra flujo cifra flujo
cifra flujo
 
composicion de algoritmos
 composicion de algoritmos composicion de algoritmos
composicion de algoritmos
 
gestion seguridad informatica
 gestion seguridad informatica gestion seguridad informatica
gestion seguridad informatica
 
calidad de la informacion
calidad de la informacioncalidad de la informacion
calidad de la informacion
 
Cripto clasica
Cripto clasicaCripto clasica
Cripto clasica
 
Presentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucenaPresentacion cripto transp_manuel_lucena
Presentacion cripto transp_manuel_lucena
 
S box
S boxS box
S box
 
Xor
XorXor
Xor
 
Unixsec
UnixsecUnixsec
Unixsec
 
Transposicion
TransposicionTransposicion
Transposicion
 
Sellado de tiempo_timestamp
Sellado de tiempo_timestampSellado de tiempo_timestamp
Sellado de tiempo_timestamp
 
Protocolo gestor claves
Protocolo gestor clavesProtocolo gestor claves
Protocolo gestor claves
 
Problema rsa
Problema rsaProblema rsa
Problema rsa
 
Pki
PkiPki
Pki
 
Número primo fuerte
Número primo fuerteNúmero primo fuerte
Número primo fuerte
 
Metodo kasiski
Metodo kasiskiMetodo kasiski
Metodo kasiski
 
Modos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloquesModos de operación_de_una_unidad_de_cifrado_por_bloques
Modos de operación_de_una_unidad_de_cifrado_por_bloques
 
Hc
HcHc
Hc
 

Presentacion funciones heuristicas para el ajedrez

  • 1.
  • 2. Contenido: Debido a que el ajedrez es un juego objetivo de IA desde hace mucho tiempo, se presenta lo siguiente: • Un ambiente de 2 jugadores con perfecta información. • El árbol del juego. • MiniMax: Propaga valores de nodos terminales a internos. • Poda Alfa-beta: Elimina partes grandes del árbol. • Árbol demasiado grande: no se llega a nodos terminales. • Función de evaluación: sobre nodos a profundidad d. • Extensiones singulares. • Especulación: factor de ramificación.
  • 3. Árbol de juegos • Alternan jugadores por niveles • Sucesores de un nodo: todas los movimientos legales que ese jugador puede hacer
  • 4. MiniMax Cuál es el mejor movimiento? Supongo que el oponente elige el movimiento que más le conviene.
  • 5. MiniMax • Idea: propagar hacia atrás el valor de los hijos • Nodos terminales: valor 1, -1 (gana A o gana B) • Dos tipos de nodos: max: gana con 1 min: gana con -1 • Propagación hacia atrás: max: el máximo de los valores de los hijos min: el mínimo de los valores de los hijos
  • 6. Algoritmo MiniMax Evaluar nodo n de un árbol de juegos 1. Expandir el árbol bajo n 2. Evaluar los nodos terminales. 3. Seleccionar un nodo sin valor que todos sus hijos han sido valuados. Si no existe, retornar el valor de n. Stop. 4. Si el nodo es max, asignar el máximo de sus hijos. Si el nodo es min asignar el mínimo de sus hijos. Ir a 3.
  • 7. Algoritmo MiniMax El algoritmo anterior tiene un problema: ¿cuál? Supone búsqueda en anchura: 4. Si el nodo es max, asignar el máximo de sus hijos. Si el nodo es min asignar el mínimo de sus hijos. Espacio exponencial
  • 8. MiniMax en DFS 1. L = {n} 2. x ← extrae-primero(L). Si x =n con valor asignado, retorna ese valor. Stop. 3. Si x tiene valor w, nodo p es padre de x con valor v Si p es max, asignar max(v, w) a p. Si p es min, asignar min(v, w) a p. Eliminar x de L, ir a 2. 4. Si x no tiene valor y es un nodo terminal, asignar +1 o -1 como valor, depende si gana para max o min 5. Si x no tiene valor y no es un nodo terminal, asignar - ∞ o + ∞ como valor, depende si es max o min
  • 9. MiniMax en DFS Minimax ha de guardar: • sucesores de rama actual (como DFS) • nodos en la rama actual: para actualizar su valor
  • 10. Alfa-Beta Con una buena ordenación de sucesores,
  • 12. Función de evaluación para el Ajedrez e(n) → [-1, +1] – sustituye la detección de nodos terminales – es imperfecta Ajedrez: sumar los valores de las piezas peón, caballo, alfil, torre, reina 1 3 3 5 10 B: suma de las blancas N: suma de las negras e(n) = B - N / B + N
  • 14. Efecto Horizonte en Ajedrez • Efecto horizonte: una jugada que inicialmente parece buena puede resultar mala • el peligro no se ve, está tras el horizonte • la función de evaluación es incapaz de detectarlo • Solución fuerza bruta: buscar más profundo • coste computacional • en ajedrez, hay muchos movimientos que pueden retrasar una jugada de peligro • Aproximación selectiva: identificar los nodos en los que se debe profundizar más → extensiones singulares
  • 16. Deep Blue • Proyecto de IBM •Alfa-beta paralelo: • Hardware especializado (2 millones posiciones / sg) • Extensiones singulares, quiescencia • Función de evaluación sofisticada • Biblioteca: aperturas y finales • Resultados: • Venció a Kasparov en 1997 • Ratio 2700, Kasparov 2800 • quantity had become quality - la cantidad se había convertido en la calidad
  • 17. Algunas especulaciones ¿Por qué los programas son buenos en ciertos juegos y en otros no? Hipótesis: • Programa = búsqueda • Rendimiento frente a humanos: aumenta con profundidad d • Número de estados a visitar bd en tiempo fijado Depende de b factor de ramificación: • Si b pequeño, se puede profundizar → buen rendimiento • Si b grande, no se puede profundizar → rendimiento pobre
  • 18. Algunas especulaciones Factor de ramificación: • damas: 4 • othello: < 10 • ajedrez: 36 • go: 361 el campeón mundial es un programa Otras ideas: • aprendizaje (backgammon) • dificultad cuando se intercambian muchas piezas
  • 19. Por ultimo, Gracias! Nunca consideres el estudio como un deber, sino como una oportunidad para penetrar en el maravilloso mundo del saber. Albert Einstein