Contruindo um jogo de xadrez com inteligência artificial conexionista

0

Este é um projeto pessoal de aplicação da inteligência artificial conexionista para construção de uma rede neural voltada ao processamento  estratégico de um jogo de xadrez, caso alguém tenha interesse de prosseguir a implementação ou sugerir modificações entre em contato comigo.

1. INTRODUÇÃO 

Este trabalho propõe a utilização da inteligência artificial conexionista para a criação de um motor de xadrez. Para isso será necessário a criação de um banco de dados e uma programação estruturada em árvores, com a tentativa de simular autômatos.

Há anos a humanidade ficou estupefata com a capacidade dos computadores, enxergando o seu potencial total além de mero entretenimento, porém o sonho de que poderiam existir máquinas que aprendiam sozinhas começou bem antes de sermos invadidos pelo mundo do silício. O desenvolvimento da área de inteligência artificial começou logo após a Segunda Guerra mundial, com o artigo “Computing Machinery and Intelligence” do matemático inglês Alan Turing.

Em 1956 surgiram dois paradigmas da inteligência artificial, a simbólica e a conexionista. A simbólica tenta simular o comportamento humano desconsiderando os mecanismos utilizados para tal, e a conexionista acredita-se que construindo um sistema que simule a estrutura cerebral, este sistema apresentará inteligência, uma vez que poderá aprender sozinha.

Em fevereiro de 1996, o computador Deep Blue surpreendeu o mundo ao vencer uma partida contra o então campeão mundial de xadrez Garry Kasparov, mas o campeão venceu três jogos e empatou duas, vencendo a disputa de seis rodadas. Em maio de 1997, em uma outra partida, o computador derrotou o campeão pela primeira vez. O match entre o ex-campeão mundial Garry Kasparov, número um do mundo no ranking da Professional Chess Association e da Federação Internacional de Xadrez e o supercomputador Deep Blue, projetado pela IBM, resultou numa polêmica vitória de Deep Blue, em que Kasparov cometeu erros primários em várias partidas.

E desde a primeira derrota humana contra a maquina os cientistas se sentiram motivados a expandir o ramo de inteligência artificial com o intuito de tentar igualar os computadores ao cérebro humano.

2. HIPÓTESE

O maior problema dos motores de xadrez de hoje em dia é o fato que eles não aprendem novas jogadas e tem o processamento demasiado lento até para jogadas mais óbvias.

Normalmente a decisão de jogadas é feita da seguinte forma, quando o computador se depara em um ramo de opções ele apenas escolhe uma aleatoriamente baseando na pontuação das peças, ou seja, não vale a pena eu perder uma rainha para capturar um peão;  Portanto seguindo esta lógica o computador nunca arriscará a rainha por um peão mesmo que seja xeque-mate.
A utilização da inteligência artificial conexionista daria ao motor de xadrez um pensamento humano, e uma maior facilidade para previsão e planejamento de armadilhas.

3. OBJETIVOS        

3.1 Objetivo Geral

Como objetivo geral, pretende-se implementar nos motores de xadrez atuais uma nova capacidade, a de previsão estratégica de armadilhas, e com o tempo o computador será capaz de aprender a lidar até mesmo com a variável sentimental do oponente.
3.2 Objetivo Específico

a) Apresentar uma interface de jogo amigável e compatível com a internet;

b) Desenvolver uma rede neural baseada em autômatos que consiga absorver jogadas de outros jogos, armazená-las, dar uma nota para a jogada, e utilizá-la futuramente em outras partidas;

c) Criar um incentivo a nível global para teste do novo motor de xadrez;

d) Obter um banco de dados completo, a ponto de poder competir em grandes campeonatos;

e)Demonstrar que a inteligência artificial conexionista tem sua aplicabilidade garantida em diversas outras aplicações e problemáticas;

4. JUSTIFICATIVA

Com a inteligência artificial conexionista sendo mal explorada pelo mundo tecnológico, sinto-me na obrigação de demonstrar sua tamanha eficácia, uma vez que o cientistas desistiram deste tipo de abordagem por não conseguirem transcrever em equações matemáticas como seria este tipo de raciocínio de máquina.

5. FUNDAMENTAÇÃO TEÓRICA

5.1 GRAFOS
Um grafo é representado por um conjunto de estados interligados por arestas, podendo as arestas terem valor ou não.

Os grafos podem ser muito úteis no dia a dia, por exemplo para a representação de um mapa no qual deseja-se passar por N cidades de forma mais efetiva,ou seja, num caminho mínimo.

5.2 AUTÔMATOS

Um autômato é representado por grafos, tendo as suas aresta valoradas, e sendo dotado de um estado inicial e um estado final.

Formalmente, um autômato é representado por uma quíntupla, M=(Alfabeto,Conjunto de Estados,Estado Inicial, Estado Final,Transição), formalizando o autômato acima, M=({0,1},{S1,S2},{S1},{S2},{move(S1,0)={S2},move(S1,1)={S1},move(S2,0)={S1},move(S2,1)={S2})}. 

5.3 INTELIGÊNCIA ARTIFICIAL CONEXIONISTA
A Inteligência Artificial é uma área de pesquisa dedicada a buscar métodos ou dispositivos computacionais que possuam ou multipliquem a capacidade racional do ser humano de resolver problemas, pensar ou, de forma ampla, ser inteligente.

O principal objetivo dos sistemas de IA, é executar funções que, caso um ser humano fosse executar, seriam consideradas inteligentes.

No cérebro humano existem os neurônios, neurotransmissores que transmitem pulsação elétrica em forma de rede, eles estão interligados em toda extensão do corpo através dos nervos, totalizando um rede neural; O grande desafio da inteligência artificial é justamente repetir com excelência este comportamento biológico.

A rede neural biológica pode ser ilustrada como um grafo, exibindo uma linha de pensamento e ramificação de caminhos. A grande sacada da inteligência artificial conexionista é fazer com que os neurônios virtuais aprendam a distinguir o melhor caminho, e criar novos caminhos baseado em informações anteriores.

5.4 BANCO DE DADOS
Banco de dados são coleções de informações armazenadas virtualmente substituindo o seu grande rival, o papel. As vantagens da virtualização da informação são inúmeras, maior capacidade de armazenamento, agilidade na busca de informações, facilidade para incluir ou excluir dados, realizar várias cópias de segurança com apenas um clique. Os sistemas de banco de dados serem 4 propriedades essenciais para que os dados estejam seguros e otimizados:

-Atomicidade: Todas as ações que compõem a unidade de trabalho da transação devem ser concluídas com sucesso, para que seja efetivada. Se durante a transação qualquer ação que constitui unidade de trabalho falhar, a transação inteira deve ser desfeita (rollback). Quando todas as ações são efetuadas com sucesso, a transação pode ser efetivada e persistida em banco (commit). 
-Consistência: Todas as regras e restrições definidas no banco de dados devem ser obedecidas. Relacionamentos por chaves estrangeiras, checagem de valores para campos restritos ou únicos devem ser obedecidos para que uma transação possa ser completada com sucesso.
-Isolamento: Cada transação funciona completamente à parte de outras estações. Todas as operações são parte de uma transação única. O principio é que nenhuma outra transação, operando no mesmo sistema, possa interferir no funcionamento da transação corrente(é um mecanismo de controle). Outras transações não podem visualizar os resultados parciais das operações de uma transação em andamento (ainda em respeito à propriedade da atomicidade).
-Durabilidade: Significa que os resultados de uma transação são permanentes e podem ser desfeitos somente por uma transação subsequente. Por exemplo: todos os dados e status relativos a uma transação devem ser armazenados num repositório permanente, não sendo passíveis de falha por uma falha de hardware.

6.   METODOLOGIA

O jogos de xadrez será composto de: interface de jogo para duas pessoas com suporte para a internet, algoritmo estruturado em árvores simulando autômatos e o conexionismo, banco de dados hospedado online para o armazenamento de jogadas e alteração das mesmas.  A aplicação terá 2 modos de funcionamento (Representação textual):

-Humano vs Humano: Ambos se conectam na internet e abrem a interface de jogo, após escolherem a cor da sua peça e o lado do tabuleiro as brancas começam; Neste ponto, ambos os jogadores são livres para fazerem qualquer jogada (dentro das regras do xadrez); A cada jogada o computador a armazena e a avalia (se ocorreu ganho ou perda de peça), por exemplo, jogador 1 moveu o bispo e colocando a rainha do jogador 2 em risco, essa jogada receberá uma numeração j10001=0 (0 pois não ouve tomada de peça); supondo que o jogador 2 moveu um peão qualquer ao invés de retirar sua rainha do perigo; agora no turno do jogador 1 ele captura a rainha adversária com seu bispo (e o bispo fica numa posição não ameaçada), e a numeração da jogada será j10002=3 (1, captura de peça, 1 captura de peça importante, 1 captura de peça sem suicídio); E nesta lógica o computador vai gravando as jogadas e armazenando no banco de dados.

-Humano vs Computador: Mesmo início do caso acima, porém o computador joga baseado nas jogadas anteriores de outras partidas, por exemplo, se o jogador humano movimentar uma torre, o computador buscará qual foi o movimento de outra partida após o movimento da torre (contramovimento), caso não exista ele jogará aleatoriamente uma das peças disponíveis não importando as consequências; porém vamos supor que  o jogador humano moveu a rainha, então o computador vai buscar no banco de dados possíveis jogadas, dentre elas aquela anterior em que o jogador1 capturou a rainha com um bisco e adquiriu pontuação 3, caso o bispo do computador esteja disponível para fazer esta armadilha ele a jogará, senão buscará outra solução; Lembrando que o computador dará maior importância para as jogadas anteriores que possuírem maior pontuação; Supondo que o computador repetiu a jogada do bispo e ele novamente capturou a rainha, então ele somará 1 a aquela jogada j10002=3 referente a “repetição bem-sucedida”, ou seja, o novo valor da jogada será j10002=4; E nesta lógica o computador continua gravando e reavaliando as jogadas e em seguida armazenando-as.

REFERÊNCIAS BIBLIOGRÁFICAS

Alan Turing. Computing Machinery and Intelligence,1950.
IBM Research: the match Kasparov vs Deep Blue,1996.
CORMEN, Thomas (2000); LEISERSON, Charles.; RIVEST, Ronald. Introduction to Algorithmics, McGraw-Hill.
COHEN, D. I. A. Introduction to Computer Theory. New York: John Wiley & Sons, 1997.
SIPSER, Michael, Introduction to the Theory of Computation. PWS, Boston. 1997.
BRAGA, Antonio de Padua; LUDERMIR, Teresa Bernarda: “REDES NEURAIS ARTIFICIAIS Teoria e aplicações”, (2000), Rio de Janeiro: LTC
HAYKIN, Simon. Redes neurais: princípios e prática. trad. Paulo Martins Engel. – 2.ed. – Porto Alegre: Bookman, 2001.
ELMASRI, Ramez e NAVATHE Shamkant B. Sistemas de Banco de Dados: Fundamentos

Share.

About Author

Leave A Reply