SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
INTELIGENCIA ARTIFICIAL
        TEORÍA DE JUEGOS
                 AJEDREZ
                    Enrique Sánchez
               30 de Marzo de 2012
            http://www.alfilchess.es
Índice
1. Ancedecentes                       –   Minimax
  1.       Primeras ideas             –   Alpha – Beta
       •      Torres Quevedo          –   Ordenación
       •      Shannon                 –   Killer moves
       •      Turing
                                      –   El efecto horizonte
  2.   Trabajos posteriores
                                      –   El movimiento nulo
  3.    Actualidad
       •      Kasparov – DeepBlue   6. Otros avances
2. Representación del juego           –   Aperturas
   (Bitboards)                        –   Tablas de transposición
                                          (Zobrist)
3. Generación de                      –   Tablas de finales (Nalimov)
   movimientos                        –   Uso eficiente del tiempo
4. La función de evaluación
5. Heurística
Antecedentes
1. Primeras ideas
  •   Torres Quevedo
  •   Shannon
  •   Turing
2. Trabajos posteriores
3. Actualidad
  •   Kasparov – DeepBlue
El turco (1769 - 1839)
Charles Babbage
                                   “The life of a Philosopher”:
                                   “En la primera parte de mi
                                   estudio, pronto llegué a la
                                   conclusión de que cualquier
                                   juego de inteligencia es
                                   susceptible de ser practicado
                                   por un autómata”
                                   Estimó para el siglo XIX que
                                   existiría ya un sistema de
Konrad                             búsqueda analítica para el
                                   ajedrez
Suze
Describió un generador de
movimientos en su libro “Calculo
plano”, pero sin evaluación ni
LEONARDO TORRES Y
                                           QUEVEDO

 El ajedrecista hizo su debut
  durante la Feria de París de 1914.
  Hubo una extensa primera
  mención en la Scientific American
  como "Torres and His Remarkable
  Automatic Device“.
 Jugaba automáticamente el final
  rey y torre contra rey desde
  cualquier posición sin ninguna
  intervención humana.
Alan Turing
 En 1952 Turing escribió un programa de
  ajedrez. TUROCHAMP. Primera partida,
  Turochamp vs Machiavelli (Donald Michie).
 Trató de implementar TuroChamp en la
  computadora Ferranti Mark 1 pero no lo
  completo.
 A falta de una computadora lo
  suficientemente potente como para
  ejecutarlo, él simulaba el funcionamiento de
  la computadora, tardando más de hora y
  media en efectuar un movimiento.



  “Uno no puede programar una máquina para que
        juegue mejor de lo que uno juega”
Claude Shannon
“Programing of a computer for Playing Chess”
Consideraciones de Shannon:
   Ventaja Material
   Estructura de peones
   Peones Aislados y retrasados.
   Control relativo del centro.
   Peones en color opuesto al alfil propio.
   Peones pasados
   Posición de las piezas.
   Caballos avanzados, protegidos o atacados.
   Torres en columnas abiertas o semiabiertas.
   Torres en séptima fila.
   Torres dobladas.
   Posibilidades de ataque.
   Piezas que protegen a otras piezas.
   Ataques sobre otras piezas.
   Ataques sobre casillas adyacentes al rey enemigo.
   Clavadas.
   Movilidad, medida por el número de movimientos legales
    posibles.
El número de Shannon
10120
Estimación de la
complejidad del
ajedrez: Número de
posiciones legales
entre 1043 y 1050
Número de átomos en
el universo: 4*1078 y
6*1079.
Determinó las búsquedas de Tipo A y Tipo B que veremos mas adelante:
Trabajos posteriores

El programa del laboratorio científico de los álamos
 (Proyecto Manhattan), en una computadora MANIAC
El programa Berstein (IBM 704)
Programas soviéticos (Kurochkin)
El programa NSS (Newel, Shaw y Simon) (Universidad
 Carnegie Mellon)
El programa Kotok (Instituto de tecnología de
 Massachusset) y McCarthy (profesor del MIT) (1961)
 Estrategia de búsqueda de tipo B. Perdió el match contra el
 programa ITEP ruso, pero incentivo el estudio del ajedrez
 por computadora.
La apuesta de Levy

En 1968, el MI David Levy realizó una famosa apuesta, en la
cual afirmaba que ninguna computadora de ajedrez sería
capaz de derrotarle en diez años, bajo condiciones de
torneo. Ganó la apuesta en 1978, venciendo por 3'5-1'5




      Hacen su aparición CRAYBLITZ (Rober Hyatt) y
                     DEEPTHOUGHT.
  En 1989 Levy perdió la apuesta 4-0 con DEEPTHOUGHT
Kasparov - DeepBlue




 Feng-hsiung Hsu y Murray Campbell desarrollaron un
  chip dedicado al cálculo de jugadas llamado ChipTest.
 Escrito en C, era capaz de evaluar 200 millones de
  posiciones por segundo.
Kasparov - DeepBlue
Deep blue vs Kasparov
1996




1997
Un video y
seguimos
http://youtu.be/7XUKVj328z0
1. Antecedentes
2. Representación del juego
   (Bitboards)
3. Generación de movimientos
4. La función de evaluación
Representación del juego (Bitboards)

La propuesta de Shannon: Cada casilla puede tomar 13 valores distintos.




 Bitboards
 Algunos de los bitboard que la mayoría de las computadoras utilizan son :
  64 mapas los cuales representan las casillas atacadas por cualquier pieza (si hay alguna) que ocupa una casilla en
    particular.
  64 mapas que representan, inversamente al anterior, las casillas desde las cuales hay piezas atacando una casilla
    en particular.
  2 mapas que representan las casillas atacadas por cada bando (blancas y negras).
  12 mapas cada uno de los cuales representa las casillas ocupadas por cada tipo de pieza de cada bando (por
    ejemplo, Caballos blancos).
¿Bitboard?-> Velocidad
La forma básica de cómo generar movimientos con mapas de bits se describe a
continuación:
 Utilizar el mapa de bits para todas las piezas por color. Si encontramos que una
   pieza de ese color está ubicada en la casilla correspondiente sus movimientos
   deben ser generados. Si no, ir al siguiente bit.
 Determinar si la pieza en cuestión es un peón. Esto se realiza mediante la
   operación lógica AND entre el bitmap de la posición actual y el de la ubicación
   de los peones.
 Determinar las casillas a las cuales la pieza en cuestión puede mover legalmente.
   Si es un peón el programa inicia la operación con el bitmap de destinos de
   peones y casillas de captura, sino inicia con el bitmap de casillas atacadas desde
   la casilla considerada. El bitmap para ubicaciones de piezas de igual color es
   complementado o invertido con tal de entregar un mapa de las casillas no
   ocupadas por piezas del mismo color. La intersección de este bitmap con el de
   los destinos de peones o de ataque entrega el bitmap de casillas a las cuales la
   pieza puede mover.
Bitboard




PAWN_ATTACKS= ((WP << 7) & ~RANK_A) & ((WP <<9) &
~RANK_H)




for (int i=0; i<56; i++)
{
                 if (board[i]= WHITE_PAWN)
                 {
                                if ((i+1) % 8 != 0)
                                                 pawnAttacks[i+9]= true;
                                if ((i+1) % 8 != 1)
                                                 pawnAttacks[i+7]= true;
                 }
}
Generación de movimientos

 Generación Selectiva : (Shannon) Examinar el tablero y obtener una serie de
  movimientos "buenos" descartando el resto.
 Generación Incremental : Generar algunos movimientos, esperando que
  alguno de ellos será lo suficientemente bueno o malo tal que la búsqueda a lo
  largo de esa línea de juego pueda ser terminada antes de generar las otras.
 Generación Completa : Generar todos los posibles movimientos, esperando
  que la tabla de transposición contendrá información suficientemente
  relevante para hacer la búsqueda lo más eficiente posible.
 Hardware: DEEP THOUGHT
La función de evaluación
Las puntuaciones generalmente              Evaluación posicional:
asignadas a cada pieza son relativos al
valor del peón, con los valores:            Pieza sin defensa
                                             Movilidad
   Caballo 3 peones                        Estructura de Peones
   Alfil 3 peones                          Puntuaciones asignadas a cada
   Torre 5 peones                           pieza.
   Dama 9 peones                           Puntuaciones asignadas en el
                                             final de partida
El Rey en algunos programas no tiene
un valor asignado si bien en otros se
asigna un valor infinito con tal de
cambiar drásticamente la evaluación
material en caso de su captura. El valor
de un peón es un valor arbitrario que
generalmente va entre 50 y 100
puntos.
Un video y
seguimos
http://youtu.be/K0sdsJz5QeY
1.       Ancedecentes
2.       Representación del juego (Bitboards)
3.       Generación de movimientos
4.       La función de evaluación
5.       Heurística
     •      Minimax
     •      Alpha – Beta
     •      Ordenación
     •      Killer moves
     •      El efecto horizonte
     •      El movimiento nulo
Minimax
• Objetivo: búsqueda de la mejor jugada
• Nos centraremos en un juego genérico.
   – Dos jugadores, jugando por turnos.
   – Cada jugador está perfectamente informado de las reglas del
     juego y conoce en todo momento la configuración de cada
     jugada (no hay azar).
   – De estos dos jugadores cada uno intenta ganar para sí. Si
     decimos que un jugador gana, el otro pierde y viceversa. Puede
     existir un estado de empate.
   – Etiquetamos a los jugadores con MAX y MIN. Por norma
     siempre empezará a jugar MAX y vamos a querer que gane
     dicho jugador.
Minimax
• Estado(N): configuración del juego en un momento dado.
• Árbol de juego. Cada arista de ese árbol indica un posible
  movimiento. Una rama completa contempla una posible
  jugada.




• En cada nivel se van alternando los jugadores.
• Factor de ramificación: número de posibles movimientos
  que se pueden realizar.
Minimax
Minimax
• Imposible generar todo el árbol de búsqueda
   – Generar hasta un determinado nivel de profundidad.
   – Aplicar alguna función de evaluación f(N).
      • Devuelve un valor numérico cómo de bueno es un estado.
      • MAX maximizará esta función y MIN minimizará dicha función.
      • En algunos casos la función nos puede devolver valores como
        PIERDE, GANA o EMPATA, siempre referidos a MAX.
      • Objetivo del análisis del árbol: determinar valor del nodo raíz
        (inicio de la jugada). A este valor se le denomina valor
        MiniMax.
Minimax
Minimax
Minimax
Minimax
Minimax
• Representación de todas las posibles situaciones que
  se pueden dar en el juego, a partir de un estado dado
• Cada nivel corresponde a un jugador (el primero para
  MAX).
• El problema de decidir el movimiento adecuado.
• En su turno, la máquina debe decidir que movimiento hacer.
• Idea:
   – En cada turno, construir el árbol de juego completo cuyo nodo raíz
     sea la situación actual, desarrollándolo hasta los estados finales.
   – Valorar los finales según la función de utilidad.
   – Propagar hacia arriba los valores de la función.
   – Elegir el movimiento que lleve al estado sucesor del actual con mejor
     valoración.
Minimax
• La propagación de valores se hace según
  el principio minimax:
  – MAX siempre escogerá lo mejor para MAX y
    MIN lo peor para MAX.
  – Un nodo de MAX toma el valor del sucesor
    con mayor valor.
  – Un nodo de MIN toma el valor del sucesor
    con menor valor
Minimax
Minimax
Minimax
• Función de evaluación estática:
   – Dado un estado del juego y un turno, es una estimación de la bondad
      de tal situación respecto de MAX
   – En los estados finales, deberá coincidir con la de utilidad
   – Esta función heurística codifica todo el conocimiento que poseemos
      acerca del juego
   – Cuanto mayor el valor, mejor el estado para MAX
   – Lo importante es la comparación del valor entre los estados
• Calidad de la f.e.:
   – En estados terminales f.e.=f.u.
   – ¡Su cálculo no debe ser muy lento!. Compromiso precisión-costo en
      tiempo.
   – La f.e. debe reflejar con precisión las posibilidades reales de ganar.
Minimax
• Implementación:
  – En lo que sigue, asumiremos que en lugar de una
    función f-utilidad(estado, turno), disponemos de
    una función f-e-estatica(estado, turno), definida
    sobre todos los estados
  – También necesitaremos dos variables: *máximo-
    valor* y *mínimo-valor* almacenando,
    respectivamente, cotas para el mayor y el menor
    valor que puede tomar la función de evaluación
    estática
Minimax
Minimax
Minimax
• Complejidad:
   – Sea r es el factor de ramificación y m el nivel de profundidad.
   – Complejidad en tiempo: O(rm).
   – Complejidad en espacio: O(rm).
• Aún es ineficiente en la práctica:
   – En el ajedrez, con 150 segundos por turno, solo sería posible analizar
     150000 nodos, luego sólo se podría generar un árbol de profundidad
     menor que 4
   – Por tanto, la calidad del juego de la máquina será muy baja (un
     jugador humano medio puede planificar al menos 6 jugadas por
     adelantado)
• La poda alfa-beta mejora :
   – En algunos casos, es posible podar el árbol sin que afecte a la
     decisión que se toma finalmente
PODA ALFA-BETA
Poda Alfa - Beta
Poda Alfa - Beta
Poda Alfa - Beta
• Idea:
   • Cada nodo se analiza teniendo en cuenta el valor que por el
      momento tiene y el valor que por el momento tiene su padre
   • Esto determina en cada momento un intervalo           de posibles
      valores que podría tomar el nodo
• Significado intuitivo de      en cada momento:
   • Nodos MAX: es el valor actual del nodo (que tendría eso o más) y
      es el valor actual del padre (que tendría eso o menos)
   • Nodos MIN: es el valor actual del nodo (que tendría eso o menos)
      y es el valor actual del padre (que tendría eso o más)
• La poda se produce si en algún momento          :
   • Y no hace falta analizar los restantes sucesores del nodo
   • En nodos MIN, se denomina poda y en los nodos MAX, poda
Poda Alfa - Beta
Poda Alfa - Beta
Poda Alfa - Beta
• Complejidad:
  – Sea r es el factor de ramificación y m el nivel de
    profundidad.
  – Complejidad en tiempo: O(r3m/4).
  – Complejidad en espacio: O(rm).
  – En la práctica, si los sucesores se exploran en
    orden de valor minimax (creciente o decreciente
    dependiendo de si es un nodo MIN o MAX,
    resp.), se produce la máxima poda, y en ese caso
    la complejidad temporal es O(rm/2)
Poda Alfa - Beta
• Esto hace que en el mismo tiempo se puedan
  considerar el doble de jugadas por adelantado
  (haciendo a la máquina más competitiva)
• Métodos (aproximados) para generar los
  sucesores en orden:
  – Usar el valor de la función de evaluación estática
    para ordenar
  – Usar búsqueda en profundidad iterativa y guardar los
    valores minimax calculados en cada iteración
•   Ordenación
•   Killer moves
•   El efecto horizonte
•   El movimiento nulo
Ordenación
 La eficiencia en la búsqueda bajo Minimax depende del orden de los
  movimientos en que se realiza esta operación.

 Desafortunadamente, ordenar los movimientos de la mejor forma
  implica encontrar los mejores y buscar primero sobre estos, lo cual es
  una tarea bastante difícil de lograr.

             Capturas   Coronaciones   Jaques   Killer-moves   El resto




 Por ejemplo, el orden podría iniciarse con capturas, coronaciones de peón
  (las cuales cambian dramáticamente el balance de material) o jaques (los
  cuales a menudo permiten pocas respuestas legales), siguiendo con
  movimientos que causaron recientes cortes en otras variantes a la misma
  profundidad (denominadas jugadas-asesinas, killer-moves) y entonces
  observar el resto de los movimientos.
Killer moves
• Varias estrategias existen para guardar los
  movimientos asesinos. Lo más simple es
  mantener una lista bastante corta de a lo más
  dos movimientos de profundidad.
• Ejemplo:
                        La figura ilustra el funcionamiento de esta
                        heurística. Si es el turno de mover de las blancas
                        éstas intentarían el movimiento 1.Cxh6 debido a
                        que captura la torre. Luego de examinar las réplicas
                        del negro encontrará que este movimiento es
                        refutado por la respuesta 1... Ta1 mate. Entonces,
                        cuando el programa examine nuevos movimientos
                        para el blanco el primer movimiento negro que
                        tomará como respuesta sera 1... Ta1 debido a que
                        es un movimiento legal que genero un corte en una
                        variante anterior
El efecto horizonte

• Uno de los mayores dolores de cabeza de los
  programadores de máquinas de ajedrez en
  relación a la búsqueda es el llamado "efecto
  horizonte", descrito en principio por Hans
  Berliner.
• Numerosas técnicas se han desarrollado para
  evitar el efecto horizonte: búsqueda de
  "Posiciones Estables" y las "Extensiones
  Singulares" desarrolladas en Deep Blue son
  algunas de las más populares.
El efecto horizonte
Por ejemplo:
El efecto horizonte puede entenderse con este ejemplo: supongamos un hombre y una máquina que se
encuentran en la ventana de un rascacielos, digamos en el piso 46. Una persona, podría considerar el tirarse
por dicha ventana. Sus cálculos serían muy simples: al principio caería a la altura del piso 45. Eso no sería
grave. Pero a partir de ahí, dada la altura a la que se encuentra, y la presumible aceleración, el resultado
apunta a que sería muy doloroso.
El ordenador iría más lejos en sus cálculos. Consideraría la situación de caída, a la altura del piso 45. No le
parecería preocupante. Luego vería que se llegaría a la altura del piso 44. Y luego al 43. En principio,
calcularía la velocidad creciente de caída, pero no detectaría ningún peligro. El ordenador podría continuar
sus cálculos hasta llegar al piso 20, o al piso 10 y ahí detener sus cálculos. Su conclusión final sería: una
sensación muy fresca, del viento en la cara. Y saltaría.
El movimiento nulo
 Null-move forward prunning permite a un programa de
  ajedrez reducir de forma drástica el factor de ramificación
  con un cierto riesgo de perder información importante.
 Chrilly Donniger, 1993.
 La idea es dar al oponente una jugada de ventaja, y si tu
  posición sigue siendo buena, (alfa mayor que beta), se
  asume que el alfa real seguirá siendo mayor que beta y
  por tanto podamos esa rama y seguimos examinando
  otros nodos.
 No se suelen permitir dos movimientos nulos seguidos.
 Inestabilidad en la búsqueda. Los valores de beta pueden
  cambiar.
Ya acabamos…
1.       Ancedecentes
2.       Representación del juego (Bitboards)
3.       Generación de movimientos
4.       La función de evaluación
5.       Heurística
6.       Otros avances
     •      Aperturas
     •      Tablas de transposición (Zobrish)
     •      Tablas de finales (Nalimov)
     •      Uso eficiente del tiempo
Aperturas
• El ajedrez aleatorio de
  Fischer es una variante
  del ajedrez propuesta por Bobby Fischer en la
  que la posición de salida de las piezas se
  determina aleatoriamente, aunque con
  ciertas restricciones. Fue anunciado el 19 de
  junio de 1996, en el Pasaje Dardo Rocha de la
  ciudad de La Plata, Argentina. También se lo
  nombra por sus denominaciones en inglés:
  Fischer Random Chess, Chess960,
  Fischerandom chess, FR chess, o FRC.
Tablas de transposición
El método de ZOBRIST
Tablas de finales
 En 1977 Thompson se presentó en el Campeonato Mundial
  de Computadoras de Toronto con una base de datos que
  jugaba en forma perfecta el final de R+D v/s R+T
 Fueron la clave contra Kasparov
 Nalimov: Las tablas de Nalimov son ”casi” perfectas porque
  toman en cuenta la captura en paso.
El tiempo de reflexión
• ¿Cuanto tiempo asignar al análisis de la
  posición? Posiciones de fácil determinación
  requieren un menor tiempo que aquellas
  que son de difícil decisión o cálculo. Por
  supuesto, decidir qué es una posición de
  "fácil determinación" y una de "difícil
  determinación" es un problema.
• Robert Hyatt describe como CRAY BLITZ
  administra su tiempo en su documento
  publicado en 1984.
¿QUÉ MAS PODEMOS
ESPERAR?

Weitere ähnliche Inhalte

Ähnlich wie Ia chess-pt

Exp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosExp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosDiana
 
Inteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONEInteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONESNPP
 
Juegos para pc » 25 a alpha “un juego con mucho vertigo”
Juegos para pc » 25 a alpha   “un juego con mucho vertigo”Juegos para pc » 25 a alpha   “un juego con mucho vertigo”
Juegos para pc » 25 a alpha “un juego con mucho vertigo”axdds34
 
Presentación de proyecto adaptativos
Presentación de proyecto adaptativosPresentación de proyecto adaptativos
Presentación de proyecto adaptativosdani
 
Scrapland
ScraplandScrapland
ScraplandGUEIM
 
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01Jose Manuel Garrido Collantes
 
Revoluciona tu ajedrez l, finales viktor moskalenko
Revoluciona tu ajedrez l, finales   viktor moskalenkoRevoluciona tu ajedrez l, finales   viktor moskalenko
Revoluciona tu ajedrez l, finales viktor moskalenkoBrayan Granados
 
Taller «Tennis for two»
Taller «Tennis for two»Taller «Tennis for two»
Taller «Tennis for two»RetroAccion
 
video juegos 1940-1970
 video juegos 1940-1970 video juegos 1940-1970
video juegos 1940-1970Aime Rodriguez
 

Ähnlich wie Ia chess-pt (16)

Exp BúSqueda Entre Adversarios
Exp BúSqueda Entre AdversariosExp BúSqueda Entre Adversarios
Exp BúSqueda Entre Adversarios
 
Inteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONEInteligencia Artificial del Juego ABALONE
Inteligencia Artificial del Juego ABALONE
 
Juegos para pc » 25 a alpha “un juego con mucho vertigo”
Juegos para pc » 25 a alpha   “un juego con mucho vertigo”Juegos para pc » 25 a alpha   “un juego con mucho vertigo”
Juegos para pc » 25 a alpha “un juego con mucho vertigo”
 
Presentación de proyecto adaptativos
Presentación de proyecto adaptativosPresentación de proyecto adaptativos
Presentación de proyecto adaptativos
 
Proyecto
ProyectoProyecto
Proyecto
 
Scrapland
ScraplandScrapland
Scrapland
 
Torres de hanoi
Torres de hanoiTorres de hanoi
Torres de hanoi
 
Torres de Hanoi
Torres de HanoiTorres de Hanoi
Torres de Hanoi
 
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01
Revolucionatuajedrezifinales viktormoskalenko-150422172547-conversion-gate01
 
Revoluciona tu ajedrez l, finales viktor moskalenko
Revoluciona tu ajedrez l, finales   viktor moskalenkoRevoluciona tu ajedrez l, finales   viktor moskalenko
Revoluciona tu ajedrez l, finales viktor moskalenko
 
Aventura gráfica_Esquema básico
Aventura gráfica_Esquema básico Aventura gráfica_Esquema básico
Aventura gráfica_Esquema básico
 
Taller «Tennis for two»
Taller «Tennis for two»Taller «Tennis for two»
Taller «Tennis for two»
 
video juegos 1940-1970
 video juegos 1940-1970 video juegos 1940-1970
video juegos 1940-1970
 
Clase1
Clase1Clase1
Clase1
 
I.a videojuegos
I.a videojuegosI.a videojuegos
I.a videojuegos
 
IntroVideojuegos
IntroVideojuegosIntroVideojuegos
IntroVideojuegos
 

Kürzlich hochgeladen

Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 

Kürzlich hochgeladen (15)

Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 

Ia chess-pt

  • 1. INTELIGENCIA ARTIFICIAL TEORÍA DE JUEGOS AJEDREZ Enrique Sánchez 30 de Marzo de 2012 http://www.alfilchess.es
  • 2. Índice 1. Ancedecentes – Minimax 1. Primeras ideas – Alpha – Beta • Torres Quevedo – Ordenación • Shannon – Killer moves • Turing – El efecto horizonte 2. Trabajos posteriores – El movimiento nulo 3. Actualidad • Kasparov – DeepBlue 6. Otros avances 2. Representación del juego – Aperturas (Bitboards) – Tablas de transposición (Zobrist) 3. Generación de – Tablas de finales (Nalimov) movimientos – Uso eficiente del tiempo 4. La función de evaluación 5. Heurística
  • 4. 1. Primeras ideas • Torres Quevedo • Shannon • Turing 2. Trabajos posteriores 3. Actualidad • Kasparov – DeepBlue
  • 5. El turco (1769 - 1839)
  • 6. Charles Babbage “The life of a Philosopher”: “En la primera parte de mi estudio, pronto llegué a la conclusión de que cualquier juego de inteligencia es susceptible de ser practicado por un autómata” Estimó para el siglo XIX que existiría ya un sistema de Konrad búsqueda analítica para el ajedrez Suze Describió un generador de movimientos en su libro “Calculo plano”, pero sin evaluación ni
  • 7. LEONARDO TORRES Y QUEVEDO  El ajedrecista hizo su debut durante la Feria de París de 1914. Hubo una extensa primera mención en la Scientific American como "Torres and His Remarkable Automatic Device“.  Jugaba automáticamente el final rey y torre contra rey desde cualquier posición sin ninguna intervención humana.
  • 8. Alan Turing  En 1952 Turing escribió un programa de ajedrez. TUROCHAMP. Primera partida, Turochamp vs Machiavelli (Donald Michie).  Trató de implementar TuroChamp en la computadora Ferranti Mark 1 pero no lo completo.  A falta de una computadora lo suficientemente potente como para ejecutarlo, él simulaba el funcionamiento de la computadora, tardando más de hora y media en efectuar un movimiento. “Uno no puede programar una máquina para que juegue mejor de lo que uno juega”
  • 9. Claude Shannon “Programing of a computer for Playing Chess” Consideraciones de Shannon:  Ventaja Material  Estructura de peones  Peones Aislados y retrasados.  Control relativo del centro.  Peones en color opuesto al alfil propio.  Peones pasados  Posición de las piezas.  Caballos avanzados, protegidos o atacados.  Torres en columnas abiertas o semiabiertas.  Torres en séptima fila.  Torres dobladas.  Posibilidades de ataque.  Piezas que protegen a otras piezas.  Ataques sobre otras piezas.  Ataques sobre casillas adyacentes al rey enemigo.  Clavadas.  Movilidad, medida por el número de movimientos legales posibles.
  • 10. El número de Shannon 10120 Estimación de la complejidad del ajedrez: Número de posiciones legales entre 1043 y 1050 Número de átomos en el universo: 4*1078 y 6*1079. Determinó las búsquedas de Tipo A y Tipo B que veremos mas adelante:
  • 11. Trabajos posteriores El programa del laboratorio científico de los álamos (Proyecto Manhattan), en una computadora MANIAC El programa Berstein (IBM 704) Programas soviéticos (Kurochkin) El programa NSS (Newel, Shaw y Simon) (Universidad Carnegie Mellon) El programa Kotok (Instituto de tecnología de Massachusset) y McCarthy (profesor del MIT) (1961) Estrategia de búsqueda de tipo B. Perdió el match contra el programa ITEP ruso, pero incentivo el estudio del ajedrez por computadora.
  • 12. La apuesta de Levy En 1968, el MI David Levy realizó una famosa apuesta, en la cual afirmaba que ninguna computadora de ajedrez sería capaz de derrotarle en diez años, bajo condiciones de torneo. Ganó la apuesta en 1978, venciendo por 3'5-1'5 Hacen su aparición CRAYBLITZ (Rober Hyatt) y DEEPTHOUGHT. En 1989 Levy perdió la apuesta 4-0 con DEEPTHOUGHT
  • 13. Kasparov - DeepBlue  Feng-hsiung Hsu y Murray Campbell desarrollaron un chip dedicado al cálculo de jugadas llamado ChipTest.  Escrito en C, era capaz de evaluar 200 millones de posiciones por segundo.
  • 14. Kasparov - DeepBlue Deep blue vs Kasparov 1996 1997
  • 16. 1. Antecedentes 2. Representación del juego (Bitboards) 3. Generación de movimientos 4. La función de evaluación
  • 17. Representación del juego (Bitboards) La propuesta de Shannon: Cada casilla puede tomar 13 valores distintos. Bitboards Algunos de los bitboard que la mayoría de las computadoras utilizan son :  64 mapas los cuales representan las casillas atacadas por cualquier pieza (si hay alguna) que ocupa una casilla en particular.  64 mapas que representan, inversamente al anterior, las casillas desde las cuales hay piezas atacando una casilla en particular.  2 mapas que representan las casillas atacadas por cada bando (blancas y negras).  12 mapas cada uno de los cuales representa las casillas ocupadas por cada tipo de pieza de cada bando (por ejemplo, Caballos blancos).
  • 18. ¿Bitboard?-> Velocidad La forma básica de cómo generar movimientos con mapas de bits se describe a continuación:  Utilizar el mapa de bits para todas las piezas por color. Si encontramos que una pieza de ese color está ubicada en la casilla correspondiente sus movimientos deben ser generados. Si no, ir al siguiente bit.  Determinar si la pieza en cuestión es un peón. Esto se realiza mediante la operación lógica AND entre el bitmap de la posición actual y el de la ubicación de los peones.  Determinar las casillas a las cuales la pieza en cuestión puede mover legalmente. Si es un peón el programa inicia la operación con el bitmap de destinos de peones y casillas de captura, sino inicia con el bitmap de casillas atacadas desde la casilla considerada. El bitmap para ubicaciones de piezas de igual color es complementado o invertido con tal de entregar un mapa de las casillas no ocupadas por piezas del mismo color. La intersección de este bitmap con el de los destinos de peones o de ataque entrega el bitmap de casillas a las cuales la pieza puede mover.
  • 19. Bitboard PAWN_ATTACKS= ((WP << 7) & ~RANK_A) & ((WP <<9) & ~RANK_H) for (int i=0; i<56; i++) { if (board[i]= WHITE_PAWN) { if ((i+1) % 8 != 0) pawnAttacks[i+9]= true; if ((i+1) % 8 != 1) pawnAttacks[i+7]= true; } }
  • 20. Generación de movimientos  Generación Selectiva : (Shannon) Examinar el tablero y obtener una serie de movimientos "buenos" descartando el resto.  Generación Incremental : Generar algunos movimientos, esperando que alguno de ellos será lo suficientemente bueno o malo tal que la búsqueda a lo largo de esa línea de juego pueda ser terminada antes de generar las otras.  Generación Completa : Generar todos los posibles movimientos, esperando que la tabla de transposición contendrá información suficientemente relevante para hacer la búsqueda lo más eficiente posible.  Hardware: DEEP THOUGHT
  • 21. La función de evaluación Las puntuaciones generalmente Evaluación posicional: asignadas a cada pieza son relativos al valor del peón, con los valores:  Pieza sin defensa Movilidad  Caballo 3 peones  Estructura de Peones  Alfil 3 peones  Puntuaciones asignadas a cada  Torre 5 peones pieza.  Dama 9 peones  Puntuaciones asignadas en el final de partida El Rey en algunos programas no tiene un valor asignado si bien en otros se asigna un valor infinito con tal de cambiar drásticamente la evaluación material en caso de su captura. El valor de un peón es un valor arbitrario que generalmente va entre 50 y 100 puntos.
  • 23. 1. Ancedecentes 2. Representación del juego (Bitboards) 3. Generación de movimientos 4. La función de evaluación 5. Heurística • Minimax • Alpha – Beta • Ordenación • Killer moves • El efecto horizonte • El movimiento nulo
  • 24. Minimax • Objetivo: búsqueda de la mejor jugada • Nos centraremos en un juego genérico. – Dos jugadores, jugando por turnos. – Cada jugador está perfectamente informado de las reglas del juego y conoce en todo momento la configuración de cada jugada (no hay azar). – De estos dos jugadores cada uno intenta ganar para sí. Si decimos que un jugador gana, el otro pierde y viceversa. Puede existir un estado de empate. – Etiquetamos a los jugadores con MAX y MIN. Por norma siempre empezará a jugar MAX y vamos a querer que gane dicho jugador.
  • 25. Minimax • Estado(N): configuración del juego en un momento dado. • Árbol de juego. Cada arista de ese árbol indica un posible movimiento. Una rama completa contempla una posible jugada. • En cada nivel se van alternando los jugadores. • Factor de ramificación: número de posibles movimientos que se pueden realizar.
  • 27. Minimax • Imposible generar todo el árbol de búsqueda – Generar hasta un determinado nivel de profundidad. – Aplicar alguna función de evaluación f(N). • Devuelve un valor numérico cómo de bueno es un estado. • MAX maximizará esta función y MIN minimizará dicha función. • En algunos casos la función nos puede devolver valores como PIERDE, GANA o EMPATA, siempre referidos a MAX. • Objetivo del análisis del árbol: determinar valor del nodo raíz (inicio de la jugada). A este valor se le denomina valor MiniMax.
  • 32. Minimax • Representación de todas las posibles situaciones que se pueden dar en el juego, a partir de un estado dado • Cada nivel corresponde a un jugador (el primero para MAX). • El problema de decidir el movimiento adecuado. • En su turno, la máquina debe decidir que movimiento hacer. • Idea: – En cada turno, construir el árbol de juego completo cuyo nodo raíz sea la situación actual, desarrollándolo hasta los estados finales. – Valorar los finales según la función de utilidad. – Propagar hacia arriba los valores de la función. – Elegir el movimiento que lleve al estado sucesor del actual con mejor valoración.
  • 33. Minimax • La propagación de valores se hace según el principio minimax: – MAX siempre escogerá lo mejor para MAX y MIN lo peor para MAX. – Un nodo de MAX toma el valor del sucesor con mayor valor. – Un nodo de MIN toma el valor del sucesor con menor valor
  • 36. Minimax • Función de evaluación estática: – Dado un estado del juego y un turno, es una estimación de la bondad de tal situación respecto de MAX – En los estados finales, deberá coincidir con la de utilidad – Esta función heurística codifica todo el conocimiento que poseemos acerca del juego – Cuanto mayor el valor, mejor el estado para MAX – Lo importante es la comparación del valor entre los estados • Calidad de la f.e.: – En estados terminales f.e.=f.u. – ¡Su cálculo no debe ser muy lento!. Compromiso precisión-costo en tiempo. – La f.e. debe reflejar con precisión las posibilidades reales de ganar.
  • 37. Minimax • Implementación: – En lo que sigue, asumiremos que en lugar de una función f-utilidad(estado, turno), disponemos de una función f-e-estatica(estado, turno), definida sobre todos los estados – También necesitaremos dos variables: *máximo- valor* y *mínimo-valor* almacenando, respectivamente, cotas para el mayor y el menor valor que puede tomar la función de evaluación estática
  • 40. Minimax • Complejidad: – Sea r es el factor de ramificación y m el nivel de profundidad. – Complejidad en tiempo: O(rm). – Complejidad en espacio: O(rm). • Aún es ineficiente en la práctica: – En el ajedrez, con 150 segundos por turno, solo sería posible analizar 150000 nodos, luego sólo se podría generar un árbol de profundidad menor que 4 – Por tanto, la calidad del juego de la máquina será muy baja (un jugador humano medio puede planificar al menos 6 jugadas por adelantado) • La poda alfa-beta mejora : – En algunos casos, es posible podar el árbol sin que afecte a la decisión que se toma finalmente
  • 42. Poda Alfa - Beta
  • 43. Poda Alfa - Beta
  • 44. Poda Alfa - Beta • Idea: • Cada nodo se analiza teniendo en cuenta el valor que por el momento tiene y el valor que por el momento tiene su padre • Esto determina en cada momento un intervalo de posibles valores que podría tomar el nodo • Significado intuitivo de en cada momento: • Nodos MAX: es el valor actual del nodo (que tendría eso o más) y es el valor actual del padre (que tendría eso o menos) • Nodos MIN: es el valor actual del nodo (que tendría eso o menos) y es el valor actual del padre (que tendría eso o más) • La poda se produce si en algún momento : • Y no hace falta analizar los restantes sucesores del nodo • En nodos MIN, se denomina poda y en los nodos MAX, poda
  • 45. Poda Alfa - Beta
  • 46. Poda Alfa - Beta
  • 47. Poda Alfa - Beta • Complejidad: – Sea r es el factor de ramificación y m el nivel de profundidad. – Complejidad en tiempo: O(r3m/4). – Complejidad en espacio: O(rm). – En la práctica, si los sucesores se exploran en orden de valor minimax (creciente o decreciente dependiendo de si es un nodo MIN o MAX, resp.), se produce la máxima poda, y en ese caso la complejidad temporal es O(rm/2)
  • 48. Poda Alfa - Beta • Esto hace que en el mismo tiempo se puedan considerar el doble de jugadas por adelantado (haciendo a la máquina más competitiva) • Métodos (aproximados) para generar los sucesores en orden: – Usar el valor de la función de evaluación estática para ordenar – Usar búsqueda en profundidad iterativa y guardar los valores minimax calculados en cada iteración
  • 49. Ordenación • Killer moves • El efecto horizonte • El movimiento nulo
  • 50. Ordenación  La eficiencia en la búsqueda bajo Minimax depende del orden de los movimientos en que se realiza esta operación.  Desafortunadamente, ordenar los movimientos de la mejor forma implica encontrar los mejores y buscar primero sobre estos, lo cual es una tarea bastante difícil de lograr. Capturas Coronaciones Jaques Killer-moves El resto  Por ejemplo, el orden podría iniciarse con capturas, coronaciones de peón (las cuales cambian dramáticamente el balance de material) o jaques (los cuales a menudo permiten pocas respuestas legales), siguiendo con movimientos que causaron recientes cortes en otras variantes a la misma profundidad (denominadas jugadas-asesinas, killer-moves) y entonces observar el resto de los movimientos.
  • 51. Killer moves • Varias estrategias existen para guardar los movimientos asesinos. Lo más simple es mantener una lista bastante corta de a lo más dos movimientos de profundidad. • Ejemplo: La figura ilustra el funcionamiento de esta heurística. Si es el turno de mover de las blancas éstas intentarían el movimiento 1.Cxh6 debido a que captura la torre. Luego de examinar las réplicas del negro encontrará que este movimiento es refutado por la respuesta 1... Ta1 mate. Entonces, cuando el programa examine nuevos movimientos para el blanco el primer movimiento negro que tomará como respuesta sera 1... Ta1 debido a que es un movimiento legal que genero un corte en una variante anterior
  • 52. El efecto horizonte • Uno de los mayores dolores de cabeza de los programadores de máquinas de ajedrez en relación a la búsqueda es el llamado "efecto horizonte", descrito en principio por Hans Berliner. • Numerosas técnicas se han desarrollado para evitar el efecto horizonte: búsqueda de "Posiciones Estables" y las "Extensiones Singulares" desarrolladas en Deep Blue son algunas de las más populares.
  • 53. El efecto horizonte Por ejemplo: El efecto horizonte puede entenderse con este ejemplo: supongamos un hombre y una máquina que se encuentran en la ventana de un rascacielos, digamos en el piso 46. Una persona, podría considerar el tirarse por dicha ventana. Sus cálculos serían muy simples: al principio caería a la altura del piso 45. Eso no sería grave. Pero a partir de ahí, dada la altura a la que se encuentra, y la presumible aceleración, el resultado apunta a que sería muy doloroso. El ordenador iría más lejos en sus cálculos. Consideraría la situación de caída, a la altura del piso 45. No le parecería preocupante. Luego vería que se llegaría a la altura del piso 44. Y luego al 43. En principio, calcularía la velocidad creciente de caída, pero no detectaría ningún peligro. El ordenador podría continuar sus cálculos hasta llegar al piso 20, o al piso 10 y ahí detener sus cálculos. Su conclusión final sería: una sensación muy fresca, del viento en la cara. Y saltaría.
  • 54. El movimiento nulo  Null-move forward prunning permite a un programa de ajedrez reducir de forma drástica el factor de ramificación con un cierto riesgo de perder información importante.  Chrilly Donniger, 1993.  La idea es dar al oponente una jugada de ventaja, y si tu posición sigue siendo buena, (alfa mayor que beta), se asume que el alfa real seguirá siendo mayor que beta y por tanto podamos esa rama y seguimos examinando otros nodos.  No se suelen permitir dos movimientos nulos seguidos.  Inestabilidad en la búsqueda. Los valores de beta pueden cambiar.
  • 56. 1. Ancedecentes 2. Representación del juego (Bitboards) 3. Generación de movimientos 4. La función de evaluación 5. Heurística 6. Otros avances • Aperturas • Tablas de transposición (Zobrish) • Tablas de finales (Nalimov) • Uso eficiente del tiempo
  • 57. Aperturas • El ajedrez aleatorio de Fischer es una variante del ajedrez propuesta por Bobby Fischer en la que la posición de salida de las piezas se determina aleatoriamente, aunque con ciertas restricciones. Fue anunciado el 19 de junio de 1996, en el Pasaje Dardo Rocha de la ciudad de La Plata, Argentina. También se lo nombra por sus denominaciones en inglés: Fischer Random Chess, Chess960, Fischerandom chess, FR chess, o FRC.
  • 58. Tablas de transposición El método de ZOBRIST
  • 59. Tablas de finales  En 1977 Thompson se presentó en el Campeonato Mundial de Computadoras de Toronto con una base de datos que jugaba en forma perfecta el final de R+D v/s R+T  Fueron la clave contra Kasparov  Nalimov: Las tablas de Nalimov son ”casi” perfectas porque toman en cuenta la captura en paso.
  • 60. El tiempo de reflexión • ¿Cuanto tiempo asignar al análisis de la posición? Posiciones de fácil determinación requieren un menor tiempo que aquellas que son de difícil decisión o cálculo. Por supuesto, decidir qué es una posición de "fácil determinación" y una de "difícil determinación" es un problema. • Robert Hyatt describe como CRAY BLITZ administra su tiempo en su documento publicado en 1984.