Ajedrez IA Final

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 16

1

1Faithchess

Jessica Abril, Nataly Garzón, Fabian Sepúlveda & Yeison Beltrán.


Noviembre 2019.

Unipanamericana Compensar.
Cundinamarca.
Inteligencia Artificial.
2

Resumen

El presente documento describirá todo el proceso relacionado al desarrollo de la


inteligencia artificial de un ajedrez.

El fin de este de este proceso es llevar a cabo la toma de decisiones adecuada basados en
una serie de movimientos y obtener la victoria en una partida.

La información relacionada en este documento contiene datos tales como: definición y


reglas básicas del ajedrez, conceptos de inteligencia artificial aplicados al juego y
metodología para la construcción del código fuente.
3

Tabla de Contenidos

Capítulo 1 Introducción y planteamiento del problema......................................................4


Introducción.....................................................................................................................4
Planteamiento del problema............................................................................................4
Capítulo 2 Antecedentes y justificación..............................................................................5
AlphaZero........................................................................................................................5
Stockfish..........................................................................................................................5
Houdini............................................................................................................................6
Justificación.....................................................................................................................7
Capítulo 3 Marco teórico....................................................................................................8
Ajedrez.............................................................................................................................8
Inteligencia Artificial.......................................................................................................9
Machine Learning..........................................................................................................10
Capítulo 4 Objetivos.........................................................................................................12
Objetivo General............................................................................................................12
Objetivos Específicos....................................................................................................12
Capítulo 5 Marco metodológico.......................................................................................13
Bibliografía........................................................................................................................16
4

Capítulo 1

Introducción y planteamiento del problema

Introducción

En la actualidad, la aplicabilidad de la inteligencia artificial se extiende por

campos como la domótica, la salud, el comercio, pasando por el marketing y el medio

ambiente, entre otros.

Desde varias décadas atrás, se ha ido incorporando esta ciencia en ámbitos como los

video juegos, es común que lo identifiquemos como el competidor por defecto o “CPU" y

hemos podido constatar que estos diseños pueden realizar movimientos programados,

ejecutar comandos hasta tomar decisiones de un modo cercano al razonamiento humano.

Para el proyecto aquí descrito, se pretende construir una primera fase de un sistema

basado en inteligencia artificial que permita tener la experiencia de juego de un ajedrez

tomando como referentes: Stockfish, Deep Blue y la reconocida AlphaZero.

Planteamiento del problema

Se necesita un algoritmo de búsqueda para evaluar y almacenar las posibilidades

más relevantes en los movimientos que involucra una partida completa de Ajedrez cuyo

final sea la victoria del jugador.


5

Capítulo 2

Antecedentes y justificación

AlphaZero

Este programa, llamado AlphaZero, ha aprendido solo a jugar sobre estos difíciles

tableros, como explican sus desarrolladores en la revista “Science”. De cero (de ahí su

nombre), sin ayuda ni ejemplos de jugadores reales. En otras ocasiones, el ordenador

aprendía porque lo alimentaban con todo el conocimiento humano, millones de jugadas y

ejemplos reales, y a partir de ahí el cerebro de silicio elegía las mejores estrategias. Deep

Blue venció así a Kaspárov. Y AlphaGo venció así a Lee Sedol. Pero AlphaZero aprende

de sí mismo y en apenas un puñado de horas; tan solo le explican las reglas del juego y a

partir de ahí ha sido capaz de convertirse en el mejor jugador de todos los tiempos en

estas tres disciplinas. Los programas que mejor juegan al ajedrez, al shogi y al go apenas

son capaces de derrotarlo unas pocas veces mientras este los supera una gran cantidad de

ocasiones.

Stockfish

Un motor de ajedrez de código abierto compatible con UCI desarrollado por Tord

Romstad, Marco Costalba, Joona Kiiski y Gary Linscott, bajo la licencia GPL v3.0.

Comenzando entre los veinte motores principales, Stockfish ha subido rápidamente en

fuerza para convertirse en la entidad de ajedrez más fuerte del mundo a partir de 2018, al

menos en relación con el bombo AlphaZero, entidad de ajedrez disponible al público. El

nombre "Stockfish" refleja la ascendencia del motor.


6

Dado que Stockfish está escrito en C ++, puede compilarse para varios procesadores y

sistemas operativos como Android, iOS, Linux, OS X y Windows. Stockfish para

Macintosh fue construido por Daylen Yang, quien también es responsable del sitio web

de Stockfish.

Houdini

Un motor de ajedrez de Robert Houdart, que apareció en 2010 como motor de

código cerrado, gratuito para uso no comercial. En enero de 2011, Houdini 1.5 lideraba la

lista de clasificación IPON de Ingo Bauer. Houdini 2, lanzado en septiembre de 2011, es

comercial e incluye varios productos ChessOK, como Aquarium, Chess Assistant y,

desde diciembre de 2011, Chess King.

Houdini 1.5a permanece disponible como descarga gratuita. Houdini 3, lanzado en

octubre de 2012, ha mejorado aún más en 50 puntos Elo. Según su autor, Houdini 3

aplica una búsqueda acelerada de variación principal, también denominada Fail-High

"Smart". Si un movimiento diferente se vuelve mejor a profundidades de búsqueda muy

altas en la raíz, se vuelven a realizar búsquedas para determinar su puntaje exacto y la

nueva variación principal se realiza más rápidamente debido a una profundidad de

búsqueda reducida, presumiblemente junto con extensiones a lo largo del PV. Desde

noviembre de 2012, Houdini 3 está disponible como motor ChessBase. Houdini 4,

lanzado en noviembre de 2013, era aproximadamente 50 Elo más fuerte que su

predecesor.
7

Justificación
8

Capítulo 3

Marco teórico

Ajedrez

El ajedrez es un juego competitivo entre dos personas, cada una de las cuales

dispone de 16 piezas móviles que se colocan sobre un tablero dividido en 64 escaques. En

su versión de competición está considerado como un deporte y existen diferentes tipos de

torneos en la actualidad. Originalmente inventado como un juego para personas, a partir

de la creación de computadoras y programas comerciales de ajedrez una partida de

ajedrez puede ser jugada por dos personas, por una persona contra un programa de

ajedrez o por dos programas de ajedrez entre sí.

Se juega sobre un tablero cuadriculado de 8×8 casillas, alternadas en colores blanco y

negro, que constituyen las 64 posibles posiciones para el desarrollo del juego. Al

principio del juego cada jugador tiene dieciséis piezas: un rey, una dama, dos alfiles, dos

caballos, dos torres y 8 peones. Se trata de un juego de estrategia en el que el objetivo es

“derrocar” al rey del oponente. Esto se hace amenazando la casilla que ocupa el rey con

alguna de las piezas propias sin que el otro jugador pueda protegerlo interponiendo una

pieza entre su rey y la pieza que lo amenaza, mover su rey a una posición libre o capturar

a la pieza que lo está amenazando, lo que trae como resultado el jaque mate y el fin de la

partida.
9

Inteligencia Artificial

 La inteligencia artificial (IA) es una de las ramas de la Informática, con fuertes

raíces en otras áreas como la lógica y las ciencias cognitivas.

La inteligencia artificial nace en una reunión celebrada en el verano de 1956 en

Dartmouth (Estados Unidos) en la que participaron los que más tarde han sido los

investigadores principales del área. Para la preparación de la reunión, J. McCarthy, M.

Minsky, N. Rochester y C. E. Shannon redactaron una propuesta en la que aparece por

primera vez el término «inteligencia artificial». Parece ser que este nombre se dio a

instancias de J. McCarthy.

Entre las múltiples definiciones que le podemos dar a la inteligencia artificial como la

conocemos actualmente existen algunas que no se basan en el comportamiento humano:

1. Actuar como las personas. Esta es la definición de McCarthy, donde el modelo a

seguir para la evaluación de los programas corresponde al comportamiento humano. La

llamada prueba de Turing (1950) también utiliza este punto de vista. El sistema Eliza, un

Bot (programa software) conversacional es un ejemplo de ello.

2. Razonar como las personas. Lo importante es cómo se realiza el razonamiento y no el

resultado de este razonamiento. La propuesta aquí es desarrollar sistemas que razonen del

mismo modo que las personas. La ciencia cognitiva utiliza este punto de vista.
10

3. Razonar racionalmente. En este caso, la definición también se focaliza en el

razonamiento, pero aquí se parte de la premisa de que existe una forma racional de

razonar. La lógica permite la formalización del razonamiento y se utiliza para este

objetivo.

4. Actuar racionalmente. De nuevo el objetivo son los resultados, pero ahora evaluados

de forma objetiva. Por ejemplo, el objetivo de un programa en un juego como el ajedrez

será ganar. Para cumplir este objetivo es indiferente la forma de calcular el resultado.

Machine Learning

Machine Learning es una disciplina científica del ámbito de la Inteligencia

Artificial que crea sistemas que aprenden automáticamente. Aprender en este contexto

quiere decir identificar patrones complejos en millones de datos. La máquina que

realmente aprende es un algoritmo que revisa los datos y es capaz de predecir

comportamientos futuros. Automáticamente, también en este contexto, implica que estos

sistemas se mejoran de forma autónoma con el tiempo, sin intervención humana.

Muchas actividades actualmente ya están aprovechando el Machine Learning. Sectores

como el de las compras online, dónde poner un anuncio para que tenga más visibilidad en

función del usuario que visita la web, entre otros.


11

El campo de aplicación práctica depende de la imaginación y de los datos que estén

disponibles en la empresa. Estos son algunos ejemplos más comunes:

 Detectar fraude en transacciones.

 Predecir de fallos en equipos tecnológicos.

 Prever qué empleados serán más rentables el año que viene (el sector de los

Recursos Humanos está apostando seriamente por el Machine Learning).

 Seleccionar clientes potenciales basándose en comportamientos en las redes

sociales.

 Predecir el tráfico urbano.

 Saber cuál es el mejor momento para publicar tuit, actualizaciones de Facebook o

enviar las noticias.

 Hacer prediagnósticos médicos basados en síntomas del paciente.

 Cambiar el comportamiento de una app móvil para adaptarse a las costumbres y

necesidades de cada usuario.

 Detectar intrusiones en una red de comunicaciones de datos.

 Decidir cuál es la mejor hora para llamar a un cliente.


12

Capítulo 4

Objetivos

Objetivo General

Desarrollar una aplicación de juego de Ajedrez que posea un algoritmo de

inteligencia artificial que revise, evalúe y almacene posibles movimientos que lleven a la

victoria en una partida del juego.

Objetivos Específicos

 Diseñar un juego de Ajedrez básico mediante Python que permita el juego entre 2

personas o 1 persona y 1 AI.

 Generar el algoritmo de búsqueda avanzado basado en puntajes para las fichas y

su valor al ser eliminadas o tomar una ficha enemiga.

 Realizar la documentación respectiva con el código fuente y la explicación de las

revisiones que realiza el algoritmo.


13

Capítulo 5

Marco metodológico

El siguiente proceso muestra la metodología que utilizará nuestra IA en orden de

llegar a una victoria concreta en el Ajedrez, cabe resaltar que este se encuentra

optimizado de manera que se ahorran muchas contemplaciones que no son relevantes y

podrían utilizar más memoria de la necesaria:

1. Matriz del ajedrez

a. Crear una matriz de 8 x 8

b. Saber si una casilla está ocupada preguntándole al pc, cada casilla tendrá un

valor de desocupada u ocupada, si tiene alguna ficha está ocupada, de lo

contrario está desocupada

c. Cada ficha tendrá un valor diferente en la matriz, se usará la nomenclatura

tradicional, se deben diferenciar las blancas de las negras.

2. Movimientos posibles

a. El peón, sólo puede avanzar una casilla adelante, siempre y cuando, esa

casilla no esté ocupada.

b. Puede mover en diagonal si hay una ficha enemiga en esa casilla,

esta ficha pasa a estar muerta y el peón a tomar su casilla

c. La torre, puede mover adelante cuanto quiera, a menos de que la casilla está
14

ocupada, la torre puede matar esa ficha si es enemiga, tomara su puesto.

d. El alfil puede mover en diagonal cuanto quiera, a menos de que la casilla

está ocupada, el alfil puede matar esa ficha si es enemiga, tomara su puesto.

e. La reina es la combinación de la torre y el alfil

f. El rey tiene el mismo movimiento de la reina, pero solo una casilla a la vez, y

no puede mover a una casilla donde quede amenazado, si está amenazado

debe mover obligatoriamente

g. El caballo mueve dos casillas formando una L de dos por una casilla, a menos

de que la casilla está ocupada, el caballo puede matar esa ficha si es

enemiga, tomara su puesto.

3. Generación de posibilidades

a. Prueba y asigna un valor

i. Luego de cada movimiento humano, la máquina generará posibles

movimientos, que evaluará

ii. Primero evaluará si el rey está amenazado.

iii. Primero revisa si tiene piezas amenazadas

b. En el caso de tener piezas amenazadas, tratara de salvarlas, y

nuevamente revisará si tiene piezas, amenazadas, para dar el

valor de la jugada.

c. En el caso de que no tenga piezas amenazadas, mirara si

puede matar alguna pieza.


15

d. En caso de poder matar una pieza rival, probara a mover, y

mirara si la pieza en su nueva posición alguna pieza queda

amenazada, en caso de quedar amenazada revisa cuál de las

dos tiene mayor valor, si es la pieza rival matara, si es la

propia, descarta el movimiento, guarda el valor en posibles

movimientos.

e. En caso de que ninguna ficha aliada ni rival esté amenazada,

moverá de forma neutral, si algún peón rival está en sexta

línea o superior, tratara de matarle en próximo turno.

f. Si ningún peón está en 6, 7 u 8 línea, moverá donde amenace

una pieza rival de mayor valor y generará el valor.

6. Si se genera como valor 255 se descarta lo demás y se

moverá esa.

4. Comprobación de posibilidades

a. Compara el valor con el actual

i. Compara los tres valores de búsqueda y moverá el mayor

ii. Actualiza la posición en la matriz


16

Bibliografía

(INEFI), I. N. (2017). Instituto Nacional de Educación Física (INEFI) Ajedrez. Obtenido


de http://inefi.gob.do/ajedrez
Anonimo. (3 de Noviembre de 2019). Obtenido de
https://www.chessprogramming.org/Stockfish
Anonimo. (26 de Julio de 2019). Chess Programming. Obtenido de
https://www.chessprogramming.org/Houdini
Gonzalez, A. (2019). Cleverdata. Obtenido de https://cleverdata.io/que-es-machine-
learning-big-data/
SALAS, J. (7 de Diciembre de 2018). Una máquina se enseña a sí misma a ganar en
todo. Obtenido de
https://elpais.com/elpais/2018/12/05/ciencia/1544007034_265553.html
Torra, V. (Diciembre de 2011). Fundación General CSIC. Obtenido de
http://www.fgcsic.es/lychnos/es_es/articulos/inteligencia_artificial

También podría gustarte