(En espera de edición ampliada y revisada: pendiente
de publicación)
COMO PROGRAMAR Y JUGAR
CONTRA
EL AJEDREZ CIBERNÉTICO
&&&&&&&
&&&&&
&&
&
José
Luis González Sanz
COMO PRÓGRAMAR Y JUGAR CONTRA EL AJEDREZ
CIBERNETICO
Autor: José Luis González Sanz
I N D I C E :
1.-Introducción.
2.-Leyenda e historia de las maquinas pensantes.
2.1.-
El Turco
2.2.-
La maquina de Torres Quevedo
2.3.-Las
primeras computadoras de ajedrez
2.4.-Las
modernas computadoras de ajedrez
2.5.-Los
programas modernos de ajedrez
2.6.-El
reto de Deep Blue
3.-Los genios que hicieron posible un sueño:
3.1.-Introducción
3.2.-Blas Pascal
3.3.-Gottfried Wilhelm Leibnitz
3.4.-Charles Babbage
3.5.-John Von Neumann
3.6.-Norbert Wiener
3.7.-Alan Turing
3.8.-Kurt Godel
4.-La ciencia como base fundamental:
4.1.-Los
sistemas de numeración
4.2.-La
lógica
4.3.-Teoría
de Juegos
4.4.-Inteligencia
Artificial
4.5.-Mecánica
cuántica
5.- Conocimientos básicos sobre el juego
5.1.-
Introducción
5.2.-
Tablero, notación y posición inicial
5.3.-
Las piezas y sus movimientos
5.4.-
Movimientos especiales
5.5.-
Objetivo y finalización del juego
6.-Programación en Inteligencia Artificial:
Simulando el pensamiento
6.1.-
Introducción
6.2.-
Herramientas y conocimientos básicos:
6.2.1.-
Elección del lenguaje: Introducción a C++
6.2.2.-
Compilador
6.2.3.-
Técnicas básicas:
6.2.3.1-Algoritmia
6.2.3.1.1.-Búsqueda
y Ordenación
6.2.3.1.2.-Minimax
6.2.3.1.3.-Alfa-Beta
6.2.3.2.- Mejoras del Alfa-Beta
6.2.3.2.1.-
Primero el mejor
6.2.3.2.2.-
Ordenación de movimientos
6.3.-
Iniciación del proyecto:
6.3.1.-
Ingeniería del software
6.3.2.-
Diseñando el interfaz
6.3.2.1.-
Introducción
6.3.2.2.-
Salida gráfica
6.3.2.3.-
Respuesta a eventos
6.3.3.-
Elección de estructuras
6.3.4.-
Generador de movimientos
6.3.5.-
Hacer y volver movimientos
6.3.6.-
Función de juego blanco
6.3.7.-
Función de juego negro
6.3.8.-
Función de juego global
6.3.9.-
Función de evaluación estática
6.3.10.-
Elección del proceso de búsqueda: Profundidad vs Amplitud
6.3.11.-
Aperturas
6.3.12.-
Finales
6.3.13.-
Control de tiempo
6.3.14.-
Optimizando los algoritmos:
6.3.14.1.-
Extensiones selectivas
6.3.14.2.-
Extensiones singulares
6.3.14.3.-
NegaScout
6.3.14.4.-
Movimiento nulo
6.3.14.5.-
Movimiento asesino
6.3.14.6.-
Tablas Hash
6.3.14.7.-
Pensamiento profundo
7.- El problema de la evaluación
7.1.-Introducción
7.2-¿Son
ciencia los juegos-ciencia?
7.2.1.-Introducción
7.2.2.-Base
axiomática
7.2.3.-Campo
de aplicación
7.2.4.-Lógica
interna
7.2.5.-Errores
psicológicos:
7.2.5.1.-Aceptar
como regla lo excepcional
7.2.5.2.-La
creencia en la exactitud
7.2.6.-Martingalas
matemáticas
7.2.6.1.-Teoría
de Ramsey
7.2.6.2.-La
falacia numérica
7.2.6.3.-El
Teorema de Godel
7.3.-¿Es
posible la evaluación perfecta?
7.4-¿Dependerán
siempre los juegos-ciencia de la evaluación estática?
8.- Escollos de la I.A. aplicada a juegos:
8.1.-Introducción
8.2.-
Efecto horizonte
8.3.-
Excesivo optimismo
8.4.-
Falta de picardía
8.5.-
Falta de preparación especifica
8.6.-
El problema del aprendizaje
8.7.-
Dependencia del hardware
8.8.-¿Hacia
la igualdad de los programas?
9.- Como jugar contra los computadores
9.1.-
Introducción
9.2.-
Preguntas básicas
9.2.1-¿Qué
hacen mejor los humanos?
9.2.2.-¿Qué
hacen mejor las maquinas?
9.3.-
“Agujeros” en el software
9.3.1.-Libro
de aperturas
9.3.2.-Errores
conceptuales
9.3.3.-Búsqueda
de errores
9.3.4.-Aprovechamiento
de errores: el banco de pruebas del software
9.4.-La
estrategia
9.4.1.-Elección
de la apertura
9.4.1.2.-No
forzar la salida del libro
9.4.1.3.-Elegir
según plan a priori
9.4.2.-Simplificar
la posición
9.4.3.-Eliminar
piezas fuertes
9.4.4.-Aprovechando
el “efecto horizonte”: la estructura de peones
9.4.5.-No
ceder tiempo de pensamiento
9.4.6.-Búsqueda
del equilibrio ¡que se arriesgue la maquina!
10.- Una
mirada al futuro
10.1.-Otros
caminos:
10.1.1.-Sistemas
expertos
10.1.2.-Circuitos
neuronales
10.2.-
Computación cuántica
10.3.-
¿Podrán jugar las maquinas un ajedrez perfecto?
10.4.-
¿Podrán pensar las maquinas?
10.4.1.-Introducción
10.4.2.-El
test de Turing
10.4.3.-Más
allá del test de Turing
10.4.4.-Nuevamente Godel
10.4.5.-¿Qué significa “pensar”?
10.4.6.- La evolución orgánica
10.4.7.-
La evolución cibernética
11.- Enfrentamientos hombre-maquina
11.1.-
Relación de los mas importantes encuentros
11.2.-
Kaspavov-Deep Blue (Filadelfia-1996)
11.3.- Kasparov-Deep Blue (Nueva
York-1997)
11.4.-Van der Wiel-Rebel
(2001)
11.5.- Van Welly-Rebel (2002)
11.6.- Gulko-Programas
ChessBase (2002)
11.7.- Smirin-Programas
Chessbase (2002)
11.8.- Selección Suiza-Shredder
(2002)
11.9.-
El banco de pruebas de los programas: partidas varias
11.10.-
Los aficionados también cuentan
11.11.-
Los futuros encuentros
12.- Enfrentamientos maquina-maquina
12.1.-Campeonato
Mundial de Computadoras ICGA 2001
12.2.-Campeonato
Mundial de Computadoras ICGA 2002
1.- Introducción:
Nos
encontramos en los albores del siglo XXI y ha llegado el momento de repasar con
cierta profundidad campos de grandes expectativas en el siglo pasado y ver
hasta donde se han cumplido o si estos sueños han resultado quiméricos.
El
tema que nos ocupará en este libro es el siempre apasionante ajedrez y sus
aplicaciones computerizadas. La Inteligencia
Artificial ha encontrado en los juegos un campo de pruebas excelente y el
ajedrez ha sido el principal objetivo de estos trabajos, sin duda por ser el
juego mas extendido en el mundo y uno de los más
complejos.
Con
la aparición de los primeros microprocesadores ya se entrevió la posibilidad de
llevar a cabo el extraordinario proyecto de dotar a una máquina de la
“facultad” de jugar a algo complejo y que hasta entonces se consideraba
creativo y propio de seres humanos.
Desde
el principio también existieron sus detractores, que pensaban que esto jamás
podría suceder, y sus entusiastas que creían inminente la llegada de estos
ingenios que tratasen de tu a tu, e incluso superasen
al ser humano.
¿Qué
es lo que realmente ha sucedido? ¿Qué resumen histórico podemos realizar en la
actualidad? ¿Se han cumplido los pronósticos de unos o de otros? ¿En qué
situación nos encontramos? ¿Qué nos depara el futuro?
De
todo esto y mucho más trataré en este libro; veremos el devenir histórico de
las maquinas que han intentado emular el pensamiento humano, repasaremos los
hombres que han hecho posible el desarrollo científico necesario para este
empeño y la ciencia básica que se aplica en estos desarrollos.
También
desarrollaremos desde el inicio un proyecto de Inteligencia Artificial aplicada
al ajedrez en el que se verán algunas de las principales estrategias que se
utilizan para la realización de estos programas. Este proyecto aunque complejo
dejará al aficionado mucha libertad para, basándose en lo aquí desarrollado,
introducir su propia evaluación e incluso intentar mejoras en los distintos
algoritmos.
En
muchos de los desarrollos algorítmicos se sugerirán ideas para su mejora y la
adopción de otros caminos distintos a los aquí planeados. Todo desarrollo es
susceptible de ser realizado por muchos caminos y el software de ajedrez no es
una excepción; en ello radica la diferencia entre programas, que pueden ser más
o menos rápidos, evaluar mejor unas u otras posiciones, etc.
Veremos
por tanto las dificultades intrínsecas a este tipo de desarrollos, los
conocimientos básicos y los puntos fuertes y débiles de estos programas. Ello
nos dará pie para incidir en como deberíamos jugar contra ellos, las tácticas y
estrategias mas relevantes a poner en práctica.
Finalmente
repasaré temas candentes y relacionados con lo que el futuro nos pueda deparar
en cuanto al pensamiento computerizado, aunque los
temas que se tratarán en esos epígrafes son de importancia general en cuanto a
la ciencia y el pensamiento.
Todos
los capítulos pueden leerse por separado ya que nos es estrictamente necesaria
la lectura secuencial, pero es recomendable incluso por perspectiva histórica.
El código y programa desarrollado se encuentra suministrado en soporte
informático en este mismo libro.
El
programa es freeware y el código, a pesar de ser
propiedad del autor se puede retocar, aunque se ruega la mención del programa
original en cualquier desarrollo al que sirva de base o inspiración. Los
gráficos no se pueden retocar por ser propiedad intelectual registrada del
autor y no dar consentimiento en este caso.
Y
ahora, sin más dilación, entremos en este apasionante mundo donde la ciencia y
el ajedrez se dan la mano mostrándonos el camino hacia el futuro.
…………………………………………………
……………………………
…….
…
.