STEM-CHESS: El ajedrez como escenario de investigación y experimentación en materia de Inteligencia Artificial (IA)
♔ ♛ ♘ 🕹 STEM-CHESS: El ajedrez como escenario de investigación y experimentación en materia de Inteligencia Artificial (IA)
Por Enio...
El ajedrez es un juego de estrategia que acoge en una misma partida a dos jugadores, los cuales son enteramente responsables de sus decisiones debido a la nula influencia del azar, haciéndolos participar en un enfrentamiento de índole notoriamente intelectual, lo que contribuye a destacar que el ajedrez sea popularmente conocido como el "deporte ciencia".
Precisamente, la práctica de este juego ha sido tan ampliamente adoptada y desarrollada a nivel internacional, que se ha consolidado más bien como una disciplina deportiva, cuya Federación (la FIDE) es una de las más grandes del mundo y congrega a millones de personas (ajedrecistas, entrenadores, árbitros, organizadores, etc.) de más de 150 países.
Empero, el ajedrez tampoco es un juego ni una disciplina deportiva... Solamente. Como se planteó durante el pasado conversatorio de #STEM-Espanol -el cual tuve el honor de codirigir junto con @Vjap55, @Ydagonzalez y @Eliaschess333- el ajedrez ha sido considerado "objeto" de estudio multidisciplinario y de aplicación técnica, a través de áreas como la psicología, las matemáticas, la computación, la salud, la educación, el arte, entre otras.
En esta publicación se plantearán algunas consideraciones sobre la relación del ajedrez con la ciencia y la tecnología, específicamente con la computación, poniendo en evidencia el papel del ajedrez en la proliferacion de proyectos de inteligencia artificial y el consecuente diseño de computadoras y programas especializados en ajedrez, lo que lleva tras sí también un proceso de ingeniería.
Se incluirá también una mención a un proyecto de ajedrez y computación en el cual el autor ha trabajado como ejemplo de la relación disciplinar aquí planteada.
El norte de este post, por tanto, es contribuir a demostrar que el ajedrez es un motivo de investigación científica y de desarrollo tecnológico acorde con el espíritu de STEM. Su contenido no es ni mucho menos agotador o concluyente, pues de este tema hay mucho de qué hablar, razón por la cual se remitirá a bibliografía especializada para quienes deseen profundizar.
Como última salvedad se señala que a menos que se indique lo contrario, las imágenes en este artículo son del autor de la publicación.
1. Ajedrez: campo de investigación de la Inteligencia Artificial (IA)
Imagen 1: Inteligencia Artificial Autor: @Eniolw Licencia: CC BY
Es posible que la mayoría de las personas estén más o menos familiarizadas con lo que es la inteligencia artificial debido a lo que normalmente se ve en el mundo de la ciencia ficción. Se suele pensar en la SkyNet de "Terminator" tratando de acabar con la humanidad y algo similar se retrata en "Yo Robot". También en algunas películas más clásicas como la sociedad de clones humanos con IA de "Blade Runner" y la computadora de "Hal 9000" a bordo del viaje espacial Discovery en las series "Odisea en el espacio", aunque hay algunas películas menos drásticas como el robot con ansias de ser un humano en "El hombre bicentenario", entre otras.
No obstante, estas películas presentan una imagen desacertada y/o apocalíptica de la inteligencia artificial, distanciándose mucho de lo que esta es en la actualidad. La inteligencia artificial futurista retratada en esas películas correspondería con una "inteligencia artificial de propósito general", la cual aún no se ha desarrollado, pero se estima que existirá algún día.
En la literatura científica, la expresión “inteligencia artificial” se refiere a dos cosas. Por una parte se refiere a la inteligencia de las máquinas, de las computadoras, a las máquinas inteligentes, y por otra parte se refiere a la rama de la computación que se dedica a investigarla y crearla. De tal modo que la inteligencia artificial se refiere a esa facultad que exhiben las máquinas creadas por el hombre, como también a una disciplina de estudio.
Se trata de un campo cuyo nacimiento fue contemporáneo con la computación misma. El famoso matemático y pionero de la computación Alan Turing previó su existencia en 1940 y la denominó "inteligencia de las máquinas". Incluso ideó el llamado "Test de Turing" que permitiría evaluar si una máquina se ha hecho verdaderamente inteligente al punto de confundirse con un ser humano en sus respuestas. Pero no fue sino hasta 1957 cuando el término "inteligencia artificial" fue acuñado por el informático John McCarthy y lo definió como “la ciencia e ingeniería de hacer máquinas inteligentes, especialmente programas de computadoras inteligentes”.
Imagen 2: Al ajedrez es la Drosophila de la IA Autor: @Eniolw Licencia: CC BY
La imagen 2 deja en claro que el ajedrez ha sido un clásico campo de investigación por excelencia para la inteligencia artificial. De hecho, fue llamado por muchos teóricos y científicos de la época, como Donald Michi y Alexander Kronrod, la “Drosophilia de la IA”. La analogía proviene del hecho de que la Drosophilia melanogaster (mosca de fruta) es una especie díptero ideal para la investigación en genética, tornándose en un organismo modelo para la biología del desarrollo. La analogía subraya que el ajedrez es una bandera y un medio idóneo para investigar en materia de inteligencia artificial.
A partir de la lectura de Shannon (1949) y de otros, pueden sintetizarse a continuación algunas de las razones por las cuales el ajedrez es apropiado para experimentar con inteligencia artificial. Se elaboran a continuacion algunas de esas razones:
1.- Es un juego de alta complejidad: el tamaño del árbol de partidas de ajedrez es extremadamente grande: 10120 Es conocido como el "Número de Shannon", merced al científico que hizo la estimación. Los refinamientos modernos ubican al tamaño en 10123. Este número es mucho mayor al número de átomos que hay en el universo observable (1080, aproximadamente). De hecho, si se jugaran un millón de partidas por segundo desde que estalló el Big Bang hasta la actualidad, sólo se habría jugado una pequeña fracción de todo el árbol. El hecho de que el ajedrez sea bárbaramente complejo lo hace físicamente imposible de resolver aún con la computación moderna, lo que constituye un reto para los científicos a la hora de hacer búsquedas inteligentes en el árbol de partidas.
2.- Representación de entidades no numéricas: los objetos del juego de ajedrez a representar computacionalmente no son exclusivamente numéricos. Esto, en combinación con otras potenciales aplicaciones que surgirían a partir de este estudio en el ajedrez, constituyó un argumento a favor de construcción de computadoras que fuesen una extensión sobre el uso ordinario de computadoras numéricas (que eran las de antaño).
3.- Es un juego de toma de decisiones: sí, es un juego de información perfecta donde las decisiones de los jugadores no son influidas por el azar, lo que los hace enteramente responsables de los acontecimientos. Esto es clave en inteligencia artificial, dado que se aspira desarrollar máquinas que logren tomar decisiones que tengan alta posibilidad de éxito, en especial porque...
4.- Las decisiones a tomar no siempre son perfectas: el juego es muy complejo, como se ha dicho. En condiciones normales de una partida, las jugadas razonablemente candidatas no son en todo rigor correctas o incorrectas, debido a la incertidumbre matemática. Se trata de tomar una decisión cualitativamente aceptable a través de una serie de filtros, lo que lleva a considerar que:
5.- Los procedimientos a seguir por la computadora deben guiarse por principios generales: como la naturaleza de los juicios y, de cierta manera, algo de ensayo y error. De hecho, históricamente la teoría ajedrecística del juego humano se ha desarrollado, en parte, mediante el ensayo y error. Lo que se quiere destacar es que tomar decisiones en el ajedrez no se trata de un proceso informático estricto e inalterable.
6.- Se puede estudiar la instrospección: lo que quiere decir que se pueden estudiar y tratar de emular los procesos mentales y criterios que siguen los ajedrecistas a la hora de jugar y tomar decisiones. Esto puede crear un puente con la psicología cognitiva. De otro modo, las investigaciones pueden también apuntar a la invención de una nueva naturaleza de inteligencia que sea completamente independiente de la referencia humana.
2. Computadoras de ajedrez
La investigación en materia inteligencia artificial con el ajedrez se ha concretado en el desarrollo de computadoras dedicadas y/o programas con la capacidad de jugar al ajedrez. A continuación, se hará un recuento histórico de algunos de estos jugadores artificiales que van desde el más ingenuo prototipo hasta el más proverbial ente jugador de ajedrez jamás conocido. El mapa conceptual reflejado en la imagen 3 resume la información del primero de ellos (véase imagen 3).
Imagen 3: El Turco Autor: @Eniolw Licencia: CC BY
Hay que situarse alrededor del año 1770, época en la que el húngaro Kempelen Farkas creó a El Turco. Éste fue un autómata, una especie de maniquí mecánico que podía ejecutar por sí mismo los movimientos sobre un tablero que era parte de sí. Estaba unido a una caja de 1.20m x 60cm x 90cm y tenía un atuendo consistente en una túnica y un turbante. El Turco fue presentado en distintos espectáculos de la época, en los que aprovechaba para hacer demostración de su habilidad para jugar ajedrez. De hecho, llegó a jugar partidas con Benjamín Franklin (uno de los padres de los EUA) y contra el emperador Napoleón Bonaparte, ganando a ambos.
No obstante, a pesar de que su funcionamiento nunca fue revelado y el autómata fue destruido durante un incendio, la comunidad científica acepta la hipótesis de que fue una farsa. La calidad de sus partidas era muy alta para ser un dispositivo mecánico, incluso los primeros programas auténticos que corrían en máquinas electrónicas no exhibían su nivel de juego.
Se cree que dentro de la caja que formaba parte del autómata se escondía una persona de baja estatura (enano) quien sería un buen jugador de ajedrez. Éste apreciaría la posición a través de unos espejos que tenían los ojos del maniquí y accionaba los mecanismos para hacer que el autómata moviera los piezas. Charles Babagge (un científico abuelo de la computación), llegó a ver a El Turco, y aunque nunca lo delató públicamente, se sabe que él dudaba de su autenticidad. ¿Qué había pensado el emperador Bonaparte si se hubiese enterado de que fue inocentemente timado en sus partidas?
Aunque El Turco haya sido una farsa, su funcionamiento mecánico fue admirable. De hecho, inspiró a inventores posteriores a desarrollar autómatas similares. El caso más representativo fue El Ajedrecista del español Torres de Quevedo. Este autómata, a diferencia de El Turco, fue 100% auténtico, tanto así, que mereció una mención especial en la revista Scientific American en 1915.
El Ajedrecista era totalmente mecánico y sólo podía jugar un tipo de posición particular, que se correpondía con el final de rey y torre contra rey, donde el autómata siempre jugaba con el bando ofensivo y era capaz de ejecutar el mate elemental. El autómata contenía un algoritmo bastante simple para guiarlo hasta el mate y fue un aténtico pionero mecánico de la inteligencia de las máquinas.
No obstante, no fue sino hasta adentrado el siglo XX cuando se hicieron los avances significativos en materia de computación y ajedrez. La imagen 4 presenta al primer caso (véase imagen 4).
Imagen 4: El TuroChamp Autor: @Eniolw Licencia: CC BY
Fue en el año 1942 cuando el prenombrado padre de la computación, Alan Turing, creó junto a Champernowne, al TuroChamp, que fue el primer programa de la historia que podía jugar al ajedrez. El problema es que el TuroChamp nunca fue implementando propiamente debido a que las computadoras de la época de Turing no podían ejecutar sus instrucciones, por lo cual no pasó de la fase de "algoritmo"... Fue un "programa de papel".
No obstante, esto no detuvo a Turing de querer probarlo, razón por la cual decidió ejecutarlo a mano para hacer una simulación de su funcionamiento, algo que actualmente se llama "corrida en frío" o "prueba de escritorio" en el argot de programación. Claro está, la velocidad de una persona para ejecutar las instrucciones con papel y lápiz no puede compararse con la velocidad de una computadora, razón por la cual Turing se demoraba hasta 30 minutos por jugada, siguiendo manualmente todas las instrucciones de su algoritmo y haciendo los cálculos correspondientes, con lo cual las partidas podían extenderse durante más de un día. Se sabe que el TuroChamp jugó de este modo contra un amigo de Turing y su esposa. El algoritmo perdió contra el amigo, aunque sí pudo ganarle a su esposa.
El TuroChamp se adelantó por mucho a lo que los actuales motores de ajedrez contienen: una función de búsqueda a profundidad y una función de evaluación. Precisamente, algo que se destacaba de este algoritmo era el hecho de que su función de evaluación fue un caso propio de instrospección. Alan Turing, como jugador de ajedrez, le daba más prioridad a la defensa que al ataque, razón por la cual su algoritmo daba más puntaje a las jugadas que ejercieran funciones defensivas, las cuales terminarían siendo las más probables de ser seleccionadas.
El TuroChamp fue un verdadero pionero de los motores de ajedrez modernos y junto al trabajo teórico de Claude Shannon "Programando una Computadora para Jugar Ajedrez", sentó las bases para la aparición de los primeros programas funcionales. La imagen 5 presenta al primero de ellos (véase imagen 5).
Imagen 5: El programa de Bernstein Autor: @Eniolw Licencia: CC BY
El matemático norteamericano Alexander Bernstein y colaboradores finalmente crean en 1957 al primer programa de ajedrez completo, implementado y ejecutado en una computadora electrónica, que fue la IBM 704. Si bien hubo programas anteriores, estos no eran completos, es decir, estaban delimitados a funcionar con ciertas posiciones o sino trabajaban con un tablero más reducido. El de Bernstein jugaba con las 32 piezas del juego original y con todas sus reglas presentes.
El logro de Bernstein fue difundido en un artículo de la revista Scientific American en 1958, en donde narra los pormenores de su programa, el cual requería que su contrario humano fuese más que un novato para vencerlo. El programa podía alcanzar una profundidad de cuatro (04) movimientos (plies), haciendo una selección de siete movimientos a analizar en cada nivel de profundidad, por lo cual analizaba en total hasta 2.800 posiciones y se tomaba en promedio ocho minutos para finalmente responder.
Puede conseguirse en internet una grabación de Bernstein jugando contra su programa. Todo un hito en la informática aplicada en el ajedrez.
Tras la invención de este programa sucedieron bastantes avances en el terreno de computadoras con inteligencia para jugar al ajedrez. Una época caracterizada por la aparición de competencias de programas de ajedrez, tales como el North American Computer Chess Championship ACM y el World Chess Computer Championship WCCC (Campeonato Mundial de Computadoras de Ajedrez), e incluso eventos donde estas computadoras y programas se medían con los seres humanos en torneos de ajedrez, como el Software Toolworks Open de Los Ángeles.
Una de estas computadoras destacadas fue Deep Thought (pensamiento profundo), descendiente de Chipset, el cual fue creado en 1985 por Feng-hsiung Hsu y Thomas Anantharaman como proyecto de doctorado, aunque en el desarrollo de Deep Thought participaron más científicos e ingenieros.
Deep Thought fue la primera entidad artificial (no-viva) de la historia en alcanzar los 2.500 puntos de Elo (rating de los ajedrecistas), tras haber derrotado a 25 humanos (ajedrecistas titulados) consecutivamente. Ganó muchas competiciones en su época. No obstante su creciente dominio, Deep Thought y los demás programas de su época aún no podían superar a los mejores ajedrecistas del mundo con quienes siempre sucumbían en sus encuentros. Lograr esta azaña era aún un reto para la inteligencia artificial.
Para el cometido de superar al mejor jugador humano del momento, IBM y los creadores de Deep Thought se dieron a la tarea de crear un nuevo proyecto, un supercomputador llamado Deep Blue (azul profundo), cuya información se muestra en el esquema de la imagen 6 (véase).
Imagen 6: Deep Blue Autor: @Eniolw Licencia: CC BY
El nombre de Deep Blue viene del lema de IBM que es "Big Blue" (gigante azul). Este computador fue creado hacia 1996 y fue enfrentado contra Gary Kasparov, que para la época era considerado el mejor ajedrecista humano, en un match celebrado en Philadelphia. Aunque en esa ocasión Deep Blue fue derrotado por Kasparov con un marcador final de 4 a 2, Deep Blue ganó la primera partida, siendo la primera vez que una computadora de ajedrez le infringe una victoria a este excepcional jugador en esa modalidad.
Pero un año después, en 1997, Deep Blue vino repotenciado para una revancha, siendo renombrado como Deeper Blue (que significa "azul más profundo", aunque casi siempre se le sigue llamando simplemente "Deep Blue"). En esta ocasión, el supercomputador vino doblemente recargado ya que podía calcular 100 millones de posiciones por segundo más que su versión anterior, logrando calcular 200 millones de posiciones por segundo. Contenía un hardware especializado en ajedrez, compuesto por 480 chips VLSI para el procesamiento paralelo masivo. En este segundo encuentro, Deep Blue logra la azaña inédita de vencer a Gary Kasparov en un match con un marcador de 3.5 a 2.5, siendo la primera computadora de ajedrez que logra imponerse al campeón reinante de ajedrez en control de tiempo estándar.
Con el tiempo, tras el logro de Deep Blue se han desarrollado motores de ajedrez a modo de aplicaciones que se ejecutan en hardware convencional (sin la necesidad de la supercomputación), los cuales alcanzaron también un muy alto nivel de juego e inteligencia artificial. Los programas de ajedrez eventualmente superaron de forma definitiva e irreversible a los seres humanos en este dominio específico: el juego de ajedrez. ¿Significa eso que ya no se investiga en materia de ajedrez e inteligencia artificial? En lo absoluto. La imagen 7 presenta a un auténtico monstruo del ajedrez con inteligencia artificial (véase imagen 7).
Imagen 7: Alphazero Autor: @Eniolw Licencia: CC BY
Apenas en diciembre del pasado año (2017), una empresa filial de Google llamada Deepmind, la cual se dedica a la investigación en inteligencia artificial, publicó un paper dando a conocer su proyecto Alphazero. Este es un programa creado siguiendo el paradigma de Deep Learning (aprendizaje profundo), según el cual las computadoras deben aprender por sí mismas a resolver problemas. No se trata de darle a la computadora las instrucciones para que resuelva el problema, sino que ella misma descubra y aprenda cómo resolverlo. Esto se basa, a su vez, en la técnica de redes neuronales artificiales, las cuales son un paralelo artificial de las redes neuronales biológicas de los seres humanos. Básicamente reaccionan al igual que las neuronas humanas a la hora de "aprender".
De allí que Alphazero haya sido "entrenado" y haya logrado aprender. Desde un comienzo sólo se le dieron las reglas del juego, pero sólo eso. De allí viene la idea de su nombre "Zero" (cero), dado que desde el principio fue una tabula rasa. Alphazero jugó contra sí mismo un total de 44 millones de partidas de ajedrez, algo que completó en apenas cuatro horas, lo que revela el gran poderío computacional que Google proveyó para tal proyecto. A medida que Alphazero jugaba iba "aprendiendo" de su propia experiencia, iba identificando errores y corrigiéndolos, iba descubriendo técnicas y patrones de juego, líneas teóricas y, en definitiva, un vasto conocimiento técnico ajedrecístico que sólo ese programa puede entender.
El resultado de este breve pero grueso entrenamiento fue puesto a prueba contra el convencional programa de ajedrez más fuerte del momento, Stockfish, que había ganado convincentemente el Top Chess Engine Championship (el más fuerte torneo de programas de ajedrez). La sorpresa viene cuando Alphazero derrota a Stockfish en 28 partidas, entablando en 78 y no perdiendo en ninguna, con un marcador final de 64 vs 36, un resultado que en algunas estimaciones colocaría a Alphazero con cientos de puntos de Elo (rating) por delante de Stockfish.
Este acontecimiento tiene un significado trascendental tanto en el área del ajedrez como de la computación. Por una parte, como opinan algunos expertos en la materia, Alphazero prácticamente "borró de un plumazo" al enfoque de más de 70 años de investigación en computadoras con inteligencia para jugar al ajedrez, dado que Stockfish es el resultado de esa tradición que inició Alan Turing y Claude Shannon, como se vio.
También significa que Alphazero aprendió por sí sólo más de 500 años de conocimiento teórico ajedrecístico desarrollado por los seres humanos. El programa descubrió, aprendió y -valga decir- superó con creces todo ese acervo ¡en apenas cuatro horas! Tal fue la impresión, que algunos Grandes Maestros como Simon Willians y Peter Nielsen reaccionaron con admiración y dramatismo diciendo:
"Espero que hoy será un día para los libros de historia. El 6 de diciembre de 2017, Alphazero conquistó el mundo del ajedrez. Alphazero y DeepMind vinieron a dominar al ajedrez, eventualmente resolviendo el juego y finalmente esclavizando a la raza humana como mascotas" (Simon Willians).
"Tras leer el estudio y, especialmente, tras ver las partidas, pensé: Bueno, siempre me he preguntado cómo sería si una raza superior aterrizara en la Tierra y nos enseñara cómo juegan ellos al ajedrez, y ahora siento que ya lo sé" (Peter Nielsen).
El hecho también destaca el gran potencial que tiene el Deep Learning, puesto que ha abordado exitosamente un juego altamente complejo y de amplia tradición en inteligencia artificial. Se estima que Deepmind aplicará el algoritmo Alphazero en problemas del mundo real, tales como en el desarrollo de técnicas para doblar proteínas útiles para la producción de fármacos y en técnicas para el descubrimiento de superconductores de temperatura ambiente.
3. Desarrollo de motores de ajedrez
Hasta ahora se ha abordado la evolución de la inteligencia artificial aplicada en el ajedrez, concretada en la aparición de programas que siguen las técnicas convencionales de desarrollo de programas que juegan ajedrez (y el más novedoso enfoque basado en el Deep Learning). Pero, ¿cómo se desarrolla un programa para jugar al ajedrez? El esquema presentado en la imagen 8 resume información importante al respecto, tras lo cual se explicarán algunas de esas nociones (véase imagen 8).
Imagen 8: Motores de ajedrez Autor: @Eniolw Licencia: CC BY
Se llama motor de ajedrez al programa que es capaz de procesar las jugadas y posiciones, y jugar una partida de ajedrez. Este programa generalmente se comunica con una interfaz gráfica de usuario (GUI, en inglés), que es la que visualiza sus respuestas en un tablero en la pantalla.
Algunos ejemplos de motores de ajedrez comerciales son Houdini, Komodo, Fritz, Shredder, entre otros, y de software libre se tienen Stockfish y, más recientemente, Leela (que sigue el enfoque de Alphazero).
Estos motores son desarrollados por personas que tienen distintas motivaciones, bien sean interés científico, hobbie o, más frecuentemente, explotación comercial. Participan en torneos y competiciones exclusivos para motores, de entre los cuales se destaca el Top Chess Engines Championship (TCEC), que por cierto, al momento de publicación este post, estaba culminando su 11va temporada con una victoria de Stockfish sobre Komodo.
Los motores también son ampliamente testeados por sitios y organizaciones especializadas que los someten a prueba y obtienen un ranking o lista de clasificación en función de su puntaje o rating de rendimiento. Algunos ejemplos de estas listas son CCRL y GEGT. En estas listas se evidencia un rating de 3.400 o más para los motores más fuertes, lo cual subraya el gran nivel de juego que tienen.
Como referencia, el mejor jugador humano actual, el noruego Magnus Carlsen, tiene un Elo (rating ) que ronda los 2.850 puntos, lo cual revela la gran diferencia que separa a los motores de los humanos: más de 500 puntos de nivel de juego (aunque algunos han objetado que los valores en estas listas no necesariamente tienen correspondencia con los ratings de la FIDE, es decir, la Federación Internacional de Ajedrez, de humanos).
Cuando estos motores son desarrollados, además de constituir un proceso de ingeniería que desemboca en la fabricación del motor como tecnología, se sigue también una metodoloǵía científica como parte esencial de su desarrollo. Esto se hace evidente en los proyectos de software libre/código abierto como Stockfish. Este motor posee un framework llamado "Fishtest", en el cual sus desarrolladores suscriben parches (actualizaciones con mejoras o corrección de errores) al motor y los someten a prueba.
Para ello, se crea una versión experimental, que es el motor con el parche aplicado y la versión control que es motor sin el parche. Dado que la versión control ha sido ampliamente testeada, lo que se hace es enfrentarla con la versión experimental a ver si se observa un cambio en esta última, lo cual se evidenciaría en el rendimiento del motor. Si el rendimiento de ambas es similar o la versión experimental tiene menor rendimiento, evidentemente se rechaza el parche, pero si la versión experimental tiene mejor rendimiento, se acepta el parche que pasa a formar parte de la versión estándar que podrá ser la versión control para futuros tests en un proceso cíclico.
Los desarrolladores se valen del estadístico Sequential Probability Ratio Test SPRT (prueba de razón de probabilidad secuencial), el cual es ideal cuando la muestra no es determinada desde el principio. Esto servirá para interrumpir un test (experimento) cuando se tengan resultados ya concluyentes. También se valen del Regression Testing que sirve para determinar si los cambios acumulados mantienen su consistencia a lo largo del desarrollo, evidenciándose la mejoría en el rating general del motor.
4. Mi génesis de un programa de ajedrez
No podría concluirse este artículo sin mencionar una de las aplicaciones creadas por el autor, llamada SEIA-R2, el cual es un software cuyas siglas también significan Software Échecs de Inteligencia Artificial, donde "Échecs", significa "ajedrez" en francés. Es un software educativo para la enseñanza del ajedrez, cuya pantalla de presentación se muestra en la imagen 9 (véase).
Imagen 9: Inicio de la aplicación Autor: @Eniolw Licencia: CC BY
Este software está predominantemente enfocado en la didáctica del ajedrez, valiéndose de la tecnología HTML y animaciones en Javascript, y cuenta con un motor experimental de ajedrez que sirve para jugar y reproducir algunas posiciones. Este software fue creado hacia el año 2010 como trabajo especial de grado en la carrera de pregrado cursada. La imagen 10 presenta al módulo de práctica de notación ajedrecística que cumple esta función a través de un validador de movimientos (véase imagen 10).
Imagen 10: Módulo de práctica de notación con el motor validador de movimientos Autor: @Eniolw Licencia: CC BY
En una próxima publicación se ahondará en más aspectos concernientes a esta aplicación que resulta ser un caso de inspiración de la lectura de todos estos temas.
CONCLUSIONES
A lo largo de este escrito se ha evidenciado que el ajedrez ha sido un prolífico escenario de investigación en materia de inteligencia artificial, como rama de las ciencias de la computación, lo cual se ha concretado en el desarrollo histórico de programas de computadoras con la capacidad de superar al ser humano en este dominio específico, lo que también ha tenido repercusiones prácticas más allá del juego.
Pero la historia no acaba allí, pues como se vio, las computadoras pueden mejorar aún más, buscando algún día resolver el increíblemente complejo árbol de partidas del milenario juego, lo que traería la respuesta definitiva de cuál es el resultado perfecto de la posición inicial del ajedrez, que al día de hoy aún es un misterio.
Hasta ahora, la entidad más cercana a eso es Alphazero, el increíble proyecto de Google Deepmind construido con técnicas de Deep Learning, pero a pesar de sus avances, su nivel todavía está más remotamente lejos de la perfección que de la barbarie. Pero quizá la ambición tras Alphazero no sea la resolución del juego, sino ser un trampolín a la resolución de problemas del mundo real, como su aplicación en tecnologías de superconductores, según se vio.
El desarrollo de programas con la capacidad de jugar ajedrez, además de ser proyectos de inteligencia artificial, son hechos que implican procedimientos científicos y de ingeniería. El diseño incremental de estos programas según el paradigma tradicional requiere necesariamente del constante suministro de parches que comportan las hipótesis a ser verificadas por medio de la experimentación.
El ajedrez seguirá siendo un motivo de estudio interesante para científicos e incluso estudiantes de la computación. Aún en las universidades se suele utilizar el ajedrez como medio por excelencia para proyectos de software e inteligencia artificial, tal como ocurrió con la experiencia planteada por el autor al final de este artículo.
Empero, la imagen retratada del ajedrez aquí aún no es exhaustiva. El cuasinfinito juego cultiva la curiosidad de distintos investigadores y mercece un tratamiento multidisciplinario que es hacia lo cual la presente publicación ha rendido tributo.
REFERENCIAS:
- Bernstein, A., Roberts, M. (1958). Computer vs Chess Player. Revista Scientific American
- Shannon, C. (1950). Programming a Computer for Playing Chess. Philosophical Magazine. Vol. 41(314)
- Turing, A. (1953). Digital Computers applied to games.
- ChessProgramming Wiki
NOTAS ACLARATORIAS:
- La imagen de banner es del autor de la publicación y es de licencia CC BY.
- La imagen de pie es de @CarlosERP-2000 y @IAmPhysical y es de dominio público.
Felicitaciones @eniolw, muy buen contenido. Sin duda el ajedrez es una buena medida para el desarrollo de una I.A que se aproxime al pensamiento humano.
Exacto @yusvelasquez. Gracias por leer!
upvote for me please? https://steemit.com/news/@bible.com/2sysip
Saludos @eniolw
Excelente contenido que deja como evidencia la relevancia que tiene el desarrollo de la inteligencia artificial para la sociedad. Una muestra de ello es el ajedrez que requiere de una proximidad máxima al pensamiento humano para realizar las infinitas jugadas posibles.
Seguimos en contacto
Así es @Delpilar. El ajedrez es un juego de muchas aplicaciones. En futuros posts hablaré más especializadamente sobre Inteligencia Artificial. Gracias por leer. Saludos!
Excelente post @eniolw reforzando lo discutido en el conversatorio, saludos hermano !
Gracias estimado @Amestyi. Un saludo para ti igual!
Excelente desrrollo del tema @eniolw, no pude conectarme para el conversatorio, pero este post es un excelente refuerzo. Excelente tu contribución con tu software. Saludos!
Gracias estimado @emiliomoron. Saludos!
Nuevamente felicitaciones amigo @eniolw, por tu participación en el conversatorio, y por compartir el contenido. Saludos.
Mil gracias @Lupafilotaxia! Me complace poder hacerlo.
Muy pero muy interesante !!!
Así es. Anque algunas personas tengan prejuicios contra él, este post y el conversatorio han intentado demostrar que el ajedrez es algo bastante serio y de interés científico. En muchos países desarrollados y con un nivel cultural diferente, el ajedrez es bastante respetado. ¡Gracias por leer!
This post has been voted on by the steemstem curation team and voting trail.
There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!
This post has been voted on by the steemstem curation team and voting trail.
There is more to SteemSTEM than just writing posts, check here for some more tips on being a community member. You can also join our discord here to get to know the rest of the community!
Hi @eniolw!
Your post was upvoted by utopian.io in cooperation with steemstem - supporting knowledge, innovation and technological advancement on the Steem Blockchain.
Contribute to Open Source with utopian.io
Learn how to contribute on our website and join the new open source economy.
Want to chat? Join the Utopian Community on Discord https://discord.gg/h52nFrV