ajedrez y computadoras andres valverde 2011. hitos históricos 1950 teorías de shannon 1956 los...

29
Ajedrez y Computadoras Andres Valverde 2011

Upload: valeriano-ronquillo

Post on 16-Apr-2015

56 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Ajedrez y ComputadorasAndres Valverde 2011

Page 2: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Hitos históricos• 1950 Teorías de Shannon • 1956 Los Alamos Chess• 1956 Invencion de Alpha-Beta• 1957 Primeros programas

completos• 1967 Primera victoria sobre un

humano en condiciones de torneo• 1974 Primer Campeonato mundial

de programas. Kaissa campeón• 1981 Primera victoria frente a un

maestro en partida de torneo. Cray Blitz

• 1988 Primera victoria frente a un GM (Larsen) por Deep Thought

• 1989 Kasparov vence a Deep Thought

• 1997 Deep Blue vence a Kasparov• 2005 Fruit 1.0 es publicado con

codigo abierto. 5 meses después Rybka es campeón del mundo y domina hasta hoy. Incremento de potencia de todos los motores. ELO>3000

• 2008 Ippolit (clon de Rybka) inaugura una serie de clones (Robbolito, Igorrit, ....y Houdini)

• 2011 Se revela que Rybka fué un clon de Fruit desde el inicio. Estado de shcok en el sistema.

Page 3: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Datos• Tablero• Historia de movimientos (para

cálculo de repeticiones)• Derechos de enroque• Regla de 50 movimientos• Casilla "al paso"• Otros datos no obligatorios• Diversos sistemas de

almacenamiento.

Generador de movimientos

Búsqueda (Generación del árbol de

posiciones)

Evaluación (Devuelve un valor aritmético para la posición dada, normalmente en

centipeones)

FuncionamientoMotor de Ajedrez

Page 4: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Sistemas de datos y generadores de movimientos

• Matriceso Mailboxo 0x88

• Bitboards

Page 5: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Mailbox

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 0 1 2 3 4 5 6 7 -1

-1 8 9 10 11 12 13 14 15 -1

-1 16 17 18 19 20 21 22 23 -1

-1 24 25 26 27 28 29 30 31 -1

-1 32 33 34 35 36 37 38 39 -1

-1 40 41 42 43 44 45 46 47 -1

-1 48 49 50 51 52 53 54 55 -1

-1 56 57 58 59 60 61 62 63 -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

-1 -1 -1 -1 -1 -1 -1 -1 -1 -1

Page 6: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Bitboards0100001000000000000000000000000000000000000000000000000000000000

Fuente : Computer Chess programming wiki

Page 7: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Arbol de posiciones

Profundidad Posiciones Tiempo

1 20 0

2 400 0

3 8.902 0

4 197.281 0.2 secs

5 4.865.609 5 secs

6 119.060.324 120 secs

7 3.195.901.860 1 hora

8 84.998.978.956 27 horas

PERFT. Posición inicial

Page 8: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Arbol de posiciones. Ejemplo de poda.Busqueda a 3 movimientos de profundidad

Page 9: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Poda del árbol de posiciones.......

• Algoritmo minimax mejorado : ALPHA-BETA (Por si sólo reduce el factor de ramificación de 35 a 6 si hay una buena ordenación de movimientos)

• Tabla de transposiciones ("Hash Table")• Ordenación a priori de movimientos : SEE (Static Exchange

Evaluation)• Movimiento Nulo• Poda de movimientos "malos" (LMR : "Late Move Pruning")• Futility pruning, Lazy Eval .....

Page 10: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Algoritmo Alpha-Betaint AlphaBeta(int depth, int alpha, int beta)

{

    if (depth == 0)        return Evaluacion();  --> Hemos llegado al final, evaluar (*) 

    GenerarMovimientosLegales();

    while (QuedanMovimientos()) {        HacerSiguienteMovimiento();        val = -AlphaBeta(depth - 1, -beta, -alpha);  -> Recursividad        DeshacerMovimiento();        if (val >= beta)            return beta;  --> El contrario tiene opciones mejores,                               no seguimos por aquí.        if (val > alpha)            alpha = val;  --> Mejor movimiento, almacenar si en raiz    }

    return alpha;         --> No hemos encontrado una opción mejor                              para nosotros. Alpha no se modifica }

Page 11: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

... factor de ramificación reducido a 2 !!

• Se analizan una media de 2 movimientos por posición, de una media de 35 !!

• Permite alcanzar profundidades de 20 movimientos y más en un PC normal, frente a 6-7 como máximo si no se aplicaran las técnicas de poda.

• La fortaleza del programa se basa en reducir el árbol de posiciones despreciando el mínimo de buenos movimientos.

Page 12: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Funcion de Evaluación

• Material (100,325,325,500,975)• Posición de las piezas (Tablas)• Estructura de peones (doblados, retrasados,

aislados..)• Peones pasados• Movilidad de las piezas• Seguridad del Rey• Otros

Page 13: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

El motor como un conjunto

Lo que hace a un motor destacar en fuerza:

• Ausencia de "bugs". Ejemplo clásico : Fruit 1.0• Rapidez en el algoritmo de generacion de movimientos y

posiciones (40.000.000 pos/sec en una CPU a 2.4 Mhz). Cada vez que se dobla la velocidad, se consigue un incremento de entre 50 y 100 ELO.

• Integración y trabajo conjunto de búsqueda y evaluación.• Optimimización para moderno hardware : 64 bits ,

multiproceso y clusters.

Page 14: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

/**************************************************************************\| Toledo Nanochess (c) Copyright 2009 Oscar Toledo G. All rights reserved  || 1257 non-blank characters. Evolution from my winning IOCCC 2005 entry.   || o Use D2D4 algebraic style for movements.  [email protected]  Nov/20/2009 || o On promotion add a number for final piece (3=N, 4=B, 5=R, 6=Q)         || o Press Enter alone for computer to play.                                || o Full legal chess moves.                     http://nanochess.110mb.com || o Remove these comments to get 1326 bytes source code (*NIX end-of-line) |\**************************************************************************/char*l="ustvrtsuqqqqqqqqyyyyyyyy}{|~z|{}""   76Lsabcddcba .pknbrq  PKNBRQ ?A6J57IKJT576,+-48HLSU";#define F getchar()&z#define v X(0,0,0,21,#define Z while(#define _ ;if(#define P return--G,y^=8,B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K=78-h<<x,p,*g,n,*m,A,q,r,C,J,a=y?-x:x;y^=8;G++;d=w||s&&s>=h&&v 0,0)>M;do{_ o=I[p=O]){q=o&z^y _ q<7){A=q--&2?8:4;C=o-9&z?q["& .$  "]:42;do{r=I[p+=C[l]-64]_!w|p==w){g=q|p+a-S?0:I+S _!r&(q|A<3||g)||(r+1&z^y)>9&&q|A>2){_ m=!(r-2&7))P G[1]=O,K;J=n=o&z;E=I[p-a]&z;t=q|E-7?n:(n+=2,6^y);Z n<=t){L=r?l[r&7]*9-189-h-q:0 _ s)L+=(1-q?l[p/x+5]-l[O/x+5]+l[p%x+6]*-~!q-l[O%x+6]+o/16*8:!!m*9)+(q?0:!(I[p-1]^n)+!(I[p+1]^n)+l[n&7]*9-386+!!g*99+(A<2))+!(E^y^9)_ s>h||1<s&s==h&&L>z|d){p[I]=n,O[I]=m?*g=*m,*m=0:g?*g=0:0;L-=X(s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B-O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|o<z||v 0,0)>M;O[I]=o;p[I]=r;m?*m=*g,*g=0:g?*g=9^y:0;}_ L>N){*G=O _ s>1){_ h&&c-L<0)P L _!h)i=n,B=O,b=p;}N=L;}n+=J||(g=I+p,m=p<O?g-3:g+2,*m<z|m[O-p]||I[p+=p-O]);}}}}Z!r&q>2||(p=O,q|A>2|o>z&!r&&++C*--A));}}}Z++O>98?O=20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){Z++B<121)*G++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)putchar(B%x?l[B[I]|16]:x)_x-(B=F)){i=I[B+=(x-F)*x]&z;b=F;b+=(x-F)*x;Z x-(*G=F))i=*G^8^y;}else v u,5);v u,1);}}

El programa más pequeño del mundo

Page 15: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Interactuar con los motores

• Los motores carecen de interface gráfico. Son programas en modo consola, que aceptan datos y devuelven datos. Todo en aras de la velocidad.

• Para interactuar con ellos se utilizan interfaces gráficos, mediante protocolos Winboard o UCI. Los más conocidos :o Winboard : El más antiguo y quizá el más rápidoo Arena : Muy potente y de fácil usoo Scid o Wildcato Fritzo Chesspartnero Shredder

• Estos programas permiten jugar contra el motor, analizar posiciones o plantear matches y torneos entre motores.

Page 16: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros
Page 17: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros
Page 18: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Ajedrez gótico en Winboard

Page 19: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Ajedrez Chino en Xboard

Page 20: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Ranking de motores actuales

Hay organizaciones que enfrentan a motores entre sí y publican los resultados. Las más conocidas :

• SSDF• CCRL• CEGT

Page 21: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

CCRL Rating List (200 motores)

Page 22: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Torneos entre motores

Existen docenas de torneos, realizados por particulares u organizaciones, en diversos formatos, controles de tiempo y categoría de participantes. Los más conocidos :

• WBEC • Chess War• Open War• Dirty Tour• CCRL series• WCCC• CCT• ......

Page 23: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros
Page 24: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Motores y humanos

Giancarlo Pasciutto (Sjeng) and Stephan Meyer-Kahlen (Shredder) CPT2008 (Foto Richard Pijl)

Page 25: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Interacción motores-humanos

• Matches Motor-Humano : cada vez más con handicap de material u otros metodos de "debilidad forzada". En tiempos menores de 60 min/partida los motores son prácticamente imbatibles. 

• Juego por correspondencia : Los motores son admitidos como ayudantes en los análisis por la Federación Internacional (no en ciertas otras organizaciones)

• Aprendizaje y entrenamiento• Análisis de aplazamientos• Juego en Línea (ICC, playchess, FICS etc)• Investigación en IA.

Page 26: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Hou Yifan campeona del mundo con 16 años

Parece que el entrenamiento con software da sus frutos...

Page 27: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Futuro del software de ajedrez

• Multiprocesador y clustering• Trabajo en equipo de programadores,

autores de libro, asesores ajedrecistas, probadores....

• Alquiler de tiempo de análisis en grandes centros de cálculo

• Sistemas de autotest y tuning automatizado

• Sistemas de almacenamiento para bases de datos de finales mayores de 7 piezas 

Page 28: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

¿Es el ajedrez un tema resuelto?

Page 29: Ajedrez y Computadoras Andres Valverde 2011. Hitos históricos 1950 Teorías de Shannon 1956 Los Alamos Chess 1956 Invencion de Alpha-Beta 1957 Primeros

Afortunadamente  ....... NO

• La tasa de victorias del blanco es aún mayor del 50% (54% en la mayoria de las grandes bases de datos.

• El porcentaje de tablas se mantiene constante por años.

• El aumento de potencia de los programas no para de crecer, pero aún no son perfectos.

• El ajedrez es simplemente DEMASIADO COMPLEJO para ser resuelto en medio plazo.

• Juegos más simples, como las damas, han sido resueltos. Otros son aún más complejos, como el GO.