Você está na página 1de 103

Faculdade de Informtica e Administrao Paulista Bacharelado em Sistemas de Informao

Aspectos da programao de xadrez

Andr Barros Ferreira Fernandes - RM 56264

So Paulo 2008

Faculdade de Informtica e Administrao Paulista Bacharelado em Sistemas de Informao

Aspectos da programao de xadrez

Monografia apresentada Faculdade de Informtica e Administrao Paulista como parte do Trabalho de Concluso de Curso, requisito parcial para obteno do diploma de bacharel em Sistemas de Informao. Orientador: Prof. Dr. Antonio Marcos Selmini

So Paulo 2008

Sumrio

Lista de Tabelas Lista de Figuras Lista de Grficos Resumo Abstract

Captulo 1 Introduo......................................................................................10 1.1 Objetivos do Trabalho..................................................................................11 1.2 Organizao do Trabalho.............................................................................11 Captulo 2 Reviso Bibliogrfica....................................................................13 2.1 Histrico.......................................................................................................13 2.1.1 Deep Blue.................................................................................................19 2.1.2 Panorama Atual........................................................................................25 2.1.3 Mquina versus Mquina..........................................................................27 2.2 Teoria dos Jogos.........................................................................................28 2.2.1 Exploso Combinatria.............................................................................31 2.3 Inteligncia Artificial.....................................................................................33 2.3.1 Busca Competitiva....................................................................................36 2.3.1.1 Minimax..................................................................................................36 2.3.1.2 Poda Alfa-Beta.......................................................................................38 2.3.1.3 Esperando por Quietude........................................................................42 2.3.1.4 Busca Secundria..................................................................................43 2.3.1.5 Uso de Base de Dados..........................................................................44 2.3.1.6 Alternativas ao Minimax.........................................................................44 2.3.1.7 Aprofundamento Iterativo.......................................................................45 2.3.2 Aprendizado de Mquina..........................................................................47

2.3.2.1 Aprendizagem por memorizao...........................................................49 2.3.2.2 Aprendizagem por Reforo....................................................................51 2.3.2.3 Aprendizagem atravs da Soluo de Problemas.................................52 Captulo 3 Estrutura do Jogo..........................................................................55 3.1 Tecnologia Utilizada.....................................................................................55 3.2 Tabuleiro......................................................................................................55 3.3 Movimentos..................................................................................................57 3.3.1 Peo..........................................................................................................57 3.3.2 Cavalo.......................................................................................................58 3.3.3 Bispo.........................................................................................................59 3.3.4 Torre.........................................................................................................60 3.3.5 Dama........................................................................................................61 3.3.6 Rei.............................................................................................................62 3.4 Gerao de Movimentos..............................................................................62 3.4.1 Algoritmo Minimax....................................................................................63 3.4.2 Adicionando Poda.....................................................................................64 Captulo 4 Avaliao Esttica.........................................................................66 4.1 Pesos da Avaliao Esttica........................................................................66 4.1.1 Peo..........................................................................................................67 4.1.2 Cavalo.......................................................................................................70 4.1.3 Bispo.........................................................................................................72 4.1.4 Torre.........................................................................................................73 4.1.5 Dama........................................................................................................74 4.1.6 Rei.............................................................................................................76 4.2 Aprendizagem..............................................................................................78 Captulo 5 Resultados e Discusso...............................................................80 Captulo 6 Concluses....................................................................................85 Captulo 7 Bibliografia.....................................................................................86 APNDICE A GLOSSRIO...........................................................................89 APNDICE B MANUAL DO USURIO.........................................................93

Lista de Tabelas

Tabela 1 Tabuleiro Tabela 2 Representao das peas Tabela 3 Pontuao antes da fase final Tabela 4 Pontuao na fase final do jogo Tabela 5 Roque pequeno versus roque grande Tabela 6 Roque grande versus roque pequeno Tabela 7 Mobilidade do cavalo Tabela 8 Proximidade do cavalo ao rei

59 59 72 72 73 73 74 75

Tabela 9 Pontuao atribuda ao cavalo por ocupar determinada casa 75 Tabela 10 Mobilidade do Bispo Tabela 11 Pontuao que o bispo recebe dependendo da casa que ocupa Tabela 12 Mobilidade da Torre Tabela 13 Proximidade da torre ao rei adversrio. Tabela 14 Mobilidade na fase inicial Tabela 15 Mobilidade na fase final Tabela 16 Proximidade da dama ao rei adversrio Tabela 17 Pontuao antes do final do jogo Tabela 18 Pontuao durante o final do jogo 78 78 79 79 80 81 81 76 77

Lista de Figuras

Figura 1 Concepo artstica do O Turco Figura 2 Mquina para final de jogo desenvolvida por Leonardo Torres Figura 3 Alex Bernstein, jogando contra o seu programa em um IBM 704 Figura 4 Herbert Simon na universidade de Carnegie Mellon Figura 5 Belle, computador de xadrez Figura 6 Equipe de desenvolvedores do Deep Thought Figura 7 Desenvolvedores do Deep Blue Figura 8 Deep Blue baseado no supercomputador da IBM, RS/6000 SP2 Figura 9 Garry Kasparov versus Deep Blue em 1996 Figura 10 Garry Kasparov versus Deep Blue em 1997 Figura 11 Garry Kasparov versus Deep Junior Figura 12 Vladimir Kramnik versus Deep Fritz em 2002 Figura 13 Michael Adams versus Hydra Figura 14 Vladimir Kramnik versus Deep Fritz em 2006 Figura 15 - John McCarthy, um dos pioneiros da inteligncia artificial, jogando xadrez no IBM 7090 de Stanford Figura 16 Primeiro World Computer Chess Championship Figura 17 rvore de busca parcial para o jogo-da-velha Figura 18 rvore de movimentos Figura 19 rvore de jogo de duas jogadas Figura 20 Poda alfa-beta, etapa 1 Figura 21 Poda alfa-beta, etapa 2 Figura 22 Poda alfa-beta, etapa 3 Figura 23 Poda alfa-beta, etapa 4

12 13

15

16 17 18 18 19

21 21 23 24 24 25 26

27 29 30 36 38 38 39 39

Figura 24 Poda alfa-beta, etapa 5 Figura 25 Poda alfa-beta, o caso geral Figura 26 O incio de uma troca de peas Figura 27 A situao do n B se estabiliza Figura 28 Aprofundamento iterativo Figura 29 Armazenamento da avaliao Figura 30 Retornado o valor de avaliao armazenado Figura 31 Funcionamento de uma chamada de procedimento local Figura 32 Esquema de funcionamento do RPC Figura 33 Movimentos do peo Figura 34 Movimentos do cavalo Figura 35 Movimentos do bispo Figura 36 Movimentos da torre Figura 37 Movimentos da dama Figura 38 Movimentos do rei

39 40 41 41 45 48 49 56 56 60 62 62 63 64 65

Lista de Grficos

Grfico 1 Evoluo do nvel do jogo em relao ao nmero de partidas Grfico 2 Resultados contra jogadores humanos

83

84

Resumo

O xadrez um laboratrio bem definido para o estudo do balano entre conhecimento e busca. Quanto mais conhecimento um programa tem, menos busca precisa executar. Por outro lado, quanto mais profunda a busca, menos conhecimento exigido. Os jogadores humanos de xadrez usam muito conhecimento e pouca busca, investigando cerca de 100 ramificaes, na hora de decidir que movimento fazer. Um computador, por outro lado, capaz de avaliar milhes de ramificaes. Seu conhecimento de xadrez em geral limitado a uma funo de avaliao esttica. Programas de xadrez com buscas profundas foram aferidos em exerccios na literatura especializada e chegaram at mesmo a descobrir erros na anlise oficial que os seres humanos fazem sobre os problemas.

Abstract

The chess is a well-defined laboratory for the study of the balance between knowledge and search. The more knowledge a program has less need to perform search. Furthermore, the deeper the search, less knowledge is required. Human players of chess use more knowledge and very little search, investigating about 100 branches in time to decide what move to make. A computer, on the other hand, is capable of evaluating million ramifications. His knowledge of chess is generally limited to a function of static evaluation. Chess programs with deep searches were measured in exercises in the specialist literature and reached even to discover errors in the official analyses that human beings are on the problems.

10

Captulo 1 Introduo

Por sculos, filsofos e cientistas especularam se seria possvel uma mquina pensar. Durante as ltimas dcadas, uma grande quantidade de mquinas eletrnicas foram construdas, as quais foram capazes de resolver muitos problemas, principalmente numricos. Uma das possibilidades que foram pesquisadas para o uso do computador, foi a criao de um programa que jogasse xadrez, com a finalidade de imitar processos de deciso que exigiam inteligncia. claro que esse problema no era o foco principal, mas tinha como propsito o desenvolvimento de tcnicas que pudessem ser usadas em outras aplicaes. [1] O jogo de xadrez um bom domnio para explorao da inteligncia da mquina, pois o problema prontamente definido, tanto nas operaes permitidas, como na meta final. E no to simples a ponto de ser trivial e nem to difcil de obter uma soluo satisfatria. Alm disso, pode ser colocado contra um adversrio humano. Portanto d uma clara

demonstrao da habilidade da mquina nesse tipo de processo, constituindo assim uma tarefa estruturada na qual muito fcil medir o sucesso e o fracasso. [2] J foram criados computadores para jogar muitos outros jogos alm de xadrez, mas nenhum desses jogos to interessante do ponto de vista da pesquisa. No h nenhum interesse cientfico em se dedicar a jogos de azar, como a roleta ou os dados, que so apenas uma questo de sorte e probabilidades. Dentre os chamados jogos de estratgia, o jogo de damas e o jogo da velha esto em um nvel inferior ao xadrez. So apenas jogos

11

tticos que podem ser facilmente compreendidos por um programa de computador. Devido sua complexidade o xadrez no pode ser solucionado atravs de uma busca direta do estado inicial para posio vencedora, visto que o fator mdio de ramificao a cada turno est em torno de 35 jogadas em um jogo normal. Cada jogador realiza em mdia 50 movimentos. Portanto, para examinar a rvore completa do jogo, seria necessrio examinar 35100 posies. Fica claro que um programa que simplesmente executa uma busca direta na rvore do jogo no ser capaz de selecionar nem mesmo um primeiro movimento durante o perodo de vida de seu oponente. [3]

1.1 Objetivos do Trabalho


O principal objetivo deste trabalho criar um programa capaz de jogar xadrez com um nvel de jogo comparvel a um jogador mediano. O programa utilizar tcnicas de inteligncia artificial, empregando uma variedade de mtodos conducentes melhoria do jogo. Ao usar este programa a partir de algumas experincias no domnio do jogo de xadrez afim que haja aprendizado da mquina. Permite-se que o programa melhore seu desempenho baseando-se nos conhecimentos adquiridos em jogos anteriores. O objetivo destas experincias estimar a utilidade da aprendizagem de mquina na soluo de problemas em ambientes multiagentes concorrentes. Complementar ao objetivo deste trabalho criar uma viso comum de conhecimentos sobre as modernas tcnicas de programao de xadrez. Inclusive as suas razes cientficas, bem como os mtodos, tcnicas e algoritmos utilizados em programas de xadrez modernos.

1.2 Organizao do trabalho


Este trabalho est dividido em sete captulos principais. O primeiro uma viso geral da programao de jogos de xadrez, principalmente

12

dedicada aos seus aspectos cientficos. Abordando o histrico e tcnicas comumente utilizadas nos programas de xadrez moderno. Assim como os mtodos mais importantes, especialmente os relacionados ao aumento do desempenho do algoritmo, pela melhoria da jogada. Atravs de tcnicas de inteligncia artificial para aumentar a eficincia das buscas. O captulo 3 dedicado implementao do programa de xadrez, que foi criado como parte do trabalho. A descrio inclui a estrutura bsica com as devidas regras na qual o programa deve seguir. Os algoritmos e tcnicas de busca que so usados no programa, quando necessrio, com explicaes adicionais sobre os indicados no captulo 2. No captulo 4 so apresentados detalhes da funo de avaliao esttica, no qual o sistema se baseia para tomar a deciso da melhor jogada a ser realizada. Tambm aborda a tcnica de aprendizado utilizada (afim de que programa modifique os pesos utilizados na funo de avaliao esttica de forma correta, com base na sua prpria experincia). No captulo 5, so apresentados dados relativos a experimentos realizados utilizando o programa desenvolvido. Inclui-se as descries das experincias, os resultados e as concluses sobre os resultados obtidos. O captulo 6 traz as concluses do trabalho e o captulo 7 relaciona a bibliografia consultada. Adicionalmente, no apndice A, apresentado um glossrio com os principais termos utilizados no jogo de xadrez. E no apndice B, apresentado o manual do usurio, com instrues das principais funcionalidades do sistema.

13

Captulo 2 Reviso Bibliogrfica

2.1 Histrico
A idia de se criar uma mquina capaz de jogar xadrez existe desde o sculo 18, quando a primeira tentativa bem descrita da criao de um dispositivo foi realizada. Iniciava-se a histria dos jogos mecnicos, apesar de ter sido marcada por numerosas fraudes. A mais notria dessas fraudes foi a do baro Wolfgang Von Kempelen, com a criao de um autmato de madeira que sabia jogar xadrez. Fantasiado com turbante, um busto, chamado O Turco como apresentado na figura 1, movia com braos mecnicos as peas sobre uma mesa. Durante o jogo, revirava os olhos, assentia com a cabea e se inclinava em direo ao tabuleiro. Jogava relativamente bem e vencia a maioria das partidas. [4]

Figura 1 Concepo artstica de O Turco Fonte: http://archive.computerhistory.org/projects/chess/related_materials/stillimage/1-0.The_Turk.Granger_Collection_0059574_H.L02645400.lg.jpg

14

Durante dcadas, o autmato foi exibido em feiras na Frana e nos Estados Unidos. Derrotou Napoleo Bonaparte e Benjamin Franklin. Inspirou artigos do escritor americano Edgar Allan Poe e novelas de suspense alm de diversas teorias propostas para explicar o mecanismo. Depois de anos, porm, descobriu-se que no passava de uma fraude. Espremido debaixo da mesa estava um jogador, um ano, que jogava pelo "Turco" atravs de ims e mostradores na parte inferior do tabuleiro que, tanto indicavam os movimentos do adversrio, quanto possibilitavam as jogadas. Apesar de ter sido uma fraude, o Turco foi considerada a primeira mquina do mundo a jogar xadrez. Uma tentativa mais honesta foi desenvolvida em 1890, pelo engenheiro espanhol Leonardo Torres Quevedo, que construiu uma mquina para o final de um jogo, entre rei contra rei e torre, como apresentado na figura 2. A mquina jogava do lado do rei e da torre e foraria um xequemate qualquer que fosse a jogada do oponente. [4]

Figura 2 Mquina para final de jogo desenvolvida por Leonardo Torres Fonte: http://www.chesshistory.com/winter/pics/cn4470_tartakower.jpg

15

Pela complexidade do jogo, acreditava-se que fosse impossvel algum criar um programa capaz de escolher as melhores jogadas, assim como tambm seria impossvel desenvolver outras aplicaes complexas relacionadas a decises. Um dos maiores matemticos de todos os tempos, Alan Turing, chefe da equipe que decifrou o cdigo das mensagens dos alemes na Segunda Guerra Mundial, gostava muito de xadrez, e foi o primeiro a escrever um programa com instrues para se jogar xadrez. Como no dispunha de computador, ele mesmo interpretava as instrues e calculava os lances, em partidas testes com seus colegas. [5] Muitas figuras influentes da era inicial da computao estavam intrigadas com a possibilidade de se jogar xadrez por computador. Konrad Zuse, o criador do primeiro computador programvel e da primeira linguagem de programao, desenvolveu idias bastante detalhadas sobre como isso poderia ser feito. O livro de Norbert Wiener (o criador da moderna teoria de controle), Cybernetics (1948), descrevia um projeto possvel para um programa de xadrez, incluindo as idias de busca minimax, cortes em profundidade e funes de avaliao. [4][6] Em 1949, o criador da teoria da informao, Claude E. Shannon publicou o artigo Programming a Computer to Play Chess, introduzindo a idia de busca de quiescncia e descreveu algumas idias de busca seletiva (no-exaustiva) da rvore de jogo. Este serviu de base para muitos programas, inclusive os existentes at hoje. [7] A programao de xadrez na sua forma moderna comeou em torno de 1950, aps o desenvolvimento do primeiro computador eletrnico programvel. Quando D. G. Prinz escreveu e executou um programa que resolvia problemas de xadrez, embora no jogasse uma partida completa. No mesmo ano o programador da IBM, Alex Bernstein escreveu o primeiro programa capaz de jogar uma partida completa de xadrez, utilizando um computador IBM 704, figura 3. [1][7]

16

Figura 3 Alex Bernstein, jogando contra o seu programa em um computador IBM 704 Fonte: http://archive.computerhistory.org/projects/chess/related_materials/still-image/21.Bernstein-alex.1958.L02645391.IBM_ARCHIVES.lg.jpg

John McCarthy concebeu a idia de poda alfa-beta em 1956, embora no tivesse publicado. Poucos anos depois pela primeira vez, um computador derrotava um humano em uma partida de xadrez. O programa NSS, da IBM que usava uma verso simplificada de poda alfa-beta, que venceu uma secretria que havia aprendido as regras uma hora antes do jogo. [8] Nesse mesmo ano, Herbert Simon um dos pioneiros na inteligncia artificial (figura 4), previu que dentro de dez anos os computadores venceriam o campeo mundial humano. Quarenta anos mais tarde, o programa Deep Blue derrotou o ex-campeo mundial de xadrez Garry Kasparov em uma disputa de seis partidas. [4][9]

17

Figura 4 Herbert Simon na universidade de Carnegie Mellon Fonte: http://archive.computerhistory.org/projects/chess/related_materials/still-image/2-3.SimonHerb.L02645386.CMU.lg.jpg

A idia de uma mquina que jogasse xadrez tambm atraiu a ateno de fortes jogadores de xadrez da poca. O ex-campeo mundial de xadrez, Max Euwe foi presidente da comisso Euroatom de programao de xadrez. O ex-campeo mundial Mikhail Botvinnik, que tinha doutorado em tecnologia, foi um dos pioneiros da programao de xadrez na Unio Sovitica. [9] O grau de sofisticao dos jogos aumentou cada vez mais, at que em 1961, Arthur L. Samuel da IBM lanou um jogo de xadrez que poderia ser jogado no nvel de um mestre. Suas pesquisas datam de 1952, quando ele desenvolveu um jogo que foi pioneiro no uso de mtodos de busca baseados em heursticas, que atualmente so chamados de aprendizado por diferenas temporais. [10]

18

Apesar das diversas pesquisas realizadas para o desenvolvimento de jogos de xadrez, somente em 1976 foi lanado comercialmente o primeiro jogo de xadrez: o Microchess. Desenvolvido por Peter Jennings. Dois anos depois, o MacHack 6 de Greenblatt foi o primeiro programa de xadrez a funcionar em um hardware personalizado, projetado especificamente para jogar xadrez. Mas o primeiro programa a alcanar sucesso notvel pelo uso de hardware personalizado foi Belle (figura 5). Atravs de seu hardware de gerao de movimentos e avaliao de posies permitia que ele explorasse vrios milhes de posies por movimento. [1][11]

Figura 5 Belle, computador de xadrez Fonte:http://archive.computerhistory.org/projects/chess/related_materials/physical-object/31%20and%203-2%20and%203-3.Belle.06230375.lg.jpg

O sistema Hitech, tambm um computador de uso especial, foi projetado pelo primeiro campeo mundial de xadrez por correspondncia, Hans Berliner e por seu aluno Carl Ebelling na Universidade Carnegie Mellon. Tinha a finalidade de permitir o clculo rpido de funes de avaliao. Gerava cerca de 10 milhes de posies por movimento. O Hitech se tornou campeo mundial norte-americano de computadores em 1985 e foi o primeiro programa a derrotar um grande mestre humano, em 1987.

19

O Deep Thought, que tambm foi desenvolvido na universidade Carnegie Mellon (figura 6), foi mais alm na direo da velocidade de busca. E em 1990 quase venceu o ex-campeo mundial Anatoly Karpov. [12]

Figura 6 Equipe de desenvolvedores do Deep Thought Fonte: http://archive.computerhistory.org/projects/chess/related_materials/still-image/50%20and%205-2.Deep_Thought_Team_1988.102645336.HSU.lg.jpg

2.1.1 Deep Blue


O Deep Blue foi um supercomputador e um software desenvolvido especialmente para jogar xadrez, criado por Murray Campbell, Feng-Hsiung Hsu e Joseph Hoane na IBM (figura 7), tomava como base o projeto Deep Thought.

20

Figura 7 Desenvolvedores do Deep Blue Fonte: http://archive.computerhistory.org/projects/chess/related_materials/still-image/50%20and%205-4.Campbell_Benjamin.1997.L02645333.IBM_ARCHIVES.lg.jpg

O Deep Blue foi um computador paralelo IBM RS/6000 (figura 8), com 30 processadores que executavam a busca de software e 480

processadores VLSI especializados em xadrez. Executavam a gerao e ordenao de movimentos, a busca de hardware para os ltimos nveis da rvore, e tambm a avaliao dos ns terminais. [12]

Figura 8 Deep Blue baseado no supercomputador da IBM, RS/6000 SP2 Fonte: http://archive.computerhistory.org/projects/chess/related_materials/physical-object/54.Deep_Blue-1.1997.L062302016.IBM_ARCHIVES.lg.jpg

21

O Deep Blue buscava em mdia 200 milhes de ns por segundo, com uma velocidade mxima de 330 milhes de ns por segundo, gerando at 30 bilhes de posies por movimento. Alcanava rotineiramente uma profundidade igual a 14. O software possua uma busca com podas alfa-beta de aprofundamento iterativo padro, com uma tabela de transposio. Mas a chave de seu sucesso foi sua habilidade de gerar extenses alm do limite de profundidade, para linhas suficientemente interessantes de movimentos forados. Em alguns casos, a busca alcanou uma profundidade de 40 jogadas. [12][13] A funo de avaliao tinha mais de 8.000 caractersticas, muitas delas descrevendo padres de peas altamente especficos. Foi usada uma base de aberturas com aproximadamente 4.000 posies, bem como um banco de dados com 700.000 jogos de grandes mestres. A partir do qual podiam ser extradas recomendaes consensuais. O sistema tambm utilizava um grande banco de dados de finais de jogos com posies resolvidas. Continha todas as posies com cinco peas e muitas com seis peas. Esse banco de dados tinha o efeito de estender de forma significativa a profundidade efetiva da busca. Isso permitia ao Deep Blue jogar com perfeio em alguns casos, at mesmo quando estava a muitos movimentos de distncia do xeque mate. [14] Em fevereiro de 1996, foi realizado um evento promovido pela IBM no qual, o campeo mundial de xadrez, Garry Kasparov, considerado o melhor jogador de todos os tempos, jogou contra o Deep Blue. Ganhou trs partidas, empatou duas e perdeu uma, obtendo a pontuao final de quatro a dois (figura 9). A nica derrota de Garry Kasparov foi justamente primeira partida, que passou a ser o primeiro jogo de xadrez em que um computador venceu um campeo mundial sob regras normais de tempo. Aps a partida Garry Kasparov declarou:

"Hoje tive a minha primeira viso da inteligncia artificial, quando o computador moveu o peo frente para uma casa onde poderia ser facilmente capturado... Mas um computador, pensei, jamais faria um

22

movimento assim... Fiquei estupefato com aquele sacrifcio de peo. O que podia significar ? J joguei com diversos computadores, mas nunca tinha experimentado uma coisa como aquela. Pude sentir uma nova espcie de inteligncia atravs do tabuleiro.

Mesmo recuperando-se nos jogos seguintes, ao final do evento, Garry Kasparov declarou que era o ltimo campeo de xadrez humano, talvez prevendo o que aconteceria no ano seguinte.

Figura 9 Garry Kasparov versus Deep Blue em 1996 Fonte: http://archive.computerhistory.org/projects/chess/exhibit_layer/still-images/53a.Kasaprov_vs_Deep_Blue.1996.CORBIS-L0000314637-007.lg.jpg

H anos se sabia que, pela velocidade com que vinha se desenvolvendo, um dia os computadores se tornariam imbatveis no xadrez. A questo no era se eles iriam vencer, mas quando. A resposta viria um ano depois. Em maio de 1997, aps uma grande atualizao, o Deep Blue venceu Garry Kasparov em um novo confronto de seis partidas, com duas vitrias, trs empates e uma derrota, tornando-se o primeiro computador a vencer um

23

campeo mundial de xadrez em uma disputa com regras de tempo oficiais (figura 10). [14]

Figura 10 Garry Kasparov versus Deep Blue em 1997 Fonte: http://cache.eb.com/eb/image?id=71262&rendTypeId=4

Aps a disputa Garry Kasparov escreveu: O jogo decisivo da competio foi o segundo, que deixou uma cicatriz em minha memria... vimos algo que estava muito alm de nossas expectativas mais fantsticas a respeito da capacidade que um computador teria de prever as conseqncias posicionais de suas decises em longo prazo. A mquina se recusou a efetuar um movimento para uma posio que teria uma vantagem decisiva em curto prazo, mostrando um sentido de perigo muito humano. O sucesso do Deep Blue reforou a ampla convico de que o progresso dos jogos de computadores vinha principalmente de um hardware cada vez mais poderoso, uma viso encorajada pela IBM. Por outro lado, os criadores do Deep Blue afirmam que as extenses busca e funo de avaliao tambm foram crticos. [11] Caso queiram, os engenheiros, com muito menos esforo, podem fabricar videogames imbatveis, capazes de derrotar qualquer jogador. A

24

nica conseqncia disso ser comercial. Ningum vai comprar um jogo que no possa ser vencido. As mquinas rodam, levantam pesos, realizam clculos muito mais velozmente do que os seres humanos. No entanto, ningum se sente diminudo diante delas. Elas so consideradas apenas ferramentas e so mais apreciadas na exata proporo em que superam o desempenho humano. A vitria do computador da IBM sobre o campeo humano de xadrez causou muita repercusso. Sua derrota seria a derrota de toda uma linhagem de praticantes de um jogo nobre, que a maioria das pessoas associa ao raciocnio, capacidade de abstrao e disciplina mental, quando no diretamente inteligncia. O prprio Garry Kasparov, descrevia a disputa como uma luta da humanidade contra o computador pela supremacia da razo no planeta. [11] Aps a vitria sobre Garry Kasparov a IBM ganhou por volta de 500 milhes de dlares em publicidade e estabeleceu um recorde na cotao de suas aes. [4] Em 2003, Garry Kasparov voltou a jogar contra um computador, dessa vez contra o programa israelense Deep Junior. Este era o atual campeo mundial de xadrez entre os computadores. A disputa terminou empatada, com uma vitria para cada lado e quatro empates (figura 11).

Figura 11 Garry Kasparov versus Deep Junior Fonte: http://www.thechessdrum.net/tournaments/Kasparov-DeepJr/photos/KasparovDeepJr.jpg

25

2.1.2 Panorama atual


Em 2002 foi realizada a disputa entre o programa Fritz e o campeo mundial Vladimir Kramnik (figura 12). A competio de oito jogos terminou empatada. As condies da competio eram muito mais favorveis ao ser humano, e o hardware era um computador comum, no um

supercomputador. Ainda assim, Kramnik comentou:

Agora ficou claro que o principal programa e o campeo mundial so aproximadamente iguais [9]

Figura 12 Vladimir Kramnik versus Deep Fritz em 2002 Fonte: http://www.chesscenter.com/twic/event/brainb02/kramdanpm.jpg

Hoje em dia o maior smbolo da supremacia no mundo do xadrez um computador batizado de Hydra, como o monstro de vrias cabeas da mitologia grega. Financiado por um dos herdeiros do reino dos Emirados rabes Unidos, Hydra um supercomputador com 32 processadores trabalhando em paralelo. Em uma partida de xadrez, isso significa que o computador pode analisar 200 milhes de lances por segundo. Em 2005 Hydra derrotou o melhor jogador da Gr-Bretanha, Michael Adams, com

26

cinco vitrias, um empate e nenhuma derrota (figura 13). At hoje o Hydra venceu todos humanos que o desafiaram. [9]

Figura 13 Michael Adams versus Hydra Fonte: http://www.chesscenter.com/twic/event/adahyd05/1adahyd3.jpg

No final de 2006 o atual campeo mundial Vladimir Kramnik perdeu pelo placar de quatro a dois, para o programa Deep Fritz, Figura 14.

Figura 14 Vladimir Kramnik versus Deep Fritz em 2006 Fonte: http://www.chessbase.com/news/2006/vkdf/game5-03.jpg

27

2.1.3 Mquina versus Mquina


Uma idia interessante, que apareceu desde que o primeiro programa de xadrez foi inventado, a de fazer um programa jogar contra outro. A primeira partida de xadrez por computador apresentou o programa Kotok-McCarthy desenvolvido por John McCarthy (figura 15), e o programa ITEP escrito em meados da dcada de 1960 no Instituto de Fsica Terica e Experimental de Moscou. Essa disputa intercontinental foi disputada por telgrafo. Terminando com a vitria do programa do ITEP em 1967. [2][10]

Figura 15 - John McCarthy, um dos pioneiros da inteligncia artificial, jogando xadrez no IBM 7090 de Stanford Fonte: http://archive.computerhistory.org/projects/chess/exhibit_layer/still-images/24a.Stanford_University.McCarthyJohn.c1967.L062302006.STANFORD_UNIVERSITY.sr c.lg.jpg

A partir do primeiro ACM North American Computer Chess em 1970, a competio entre os programas de xadrez se tornou sria. Os programas do

28

incio dos anos 70 ficaram extremamente complicados. Continha vrios tipos de truques para eliminar algumas ramificaes de busca, para gerar movimentos plausveis e assim por diante. [15] Em 1974, o primeiro World Computer Chess Championship foi realizado em Estocolmo e foi vencido por Kaissa, outro programa do ITEP (figura 16). Kaissa utilizou a abordagem muito mais direta de busca alfa-beta exaustiva combinada com busca de quiescncia. O domnio dessa abordagem foi confirmado pela vitria convincente do programa Chess 4.6 no World Computer Chess Championship de 1977. O Chess 4.6 examinava at 400.000 posies por movimento. [10][16]

Figura 16 Primeiro World Computer Chess Championship Fonte: http://archive.computerhistory.org/projects/chess/related_materials/still-image/31.CHAOS_vs_Chess_4.0.Rubin_Slate.WCCC_1.Stockholm.1974.102645378.NEWBORN.l g.jpg

2.2 Teoria dos Jogos


Teoria dos Jogos um ramo da matemtica aplicada que estuda situaes estratgicas onde agentes escolhem diferentes aes na tentativa de melhorar seu retorno. Ou seja, a teoria dos jogos visualiza qualquer ambiente multiagentes como um jogo, em que qualquer agente dado precisar considerar as aes de outros agentes e o modo como essas

29

aes afetam seu prprio bem estar. Estando distinto em ambientes cooperativos ou competitivos. No xadrez as metas dos agentes esto em conflito originando ambientes competitivos. [17] Inicialmente desenvolvida como ferramenta para compreender o comportamento econmico, a teoria dos jogos agora usada em diversos campos acadmicos. A partir de 1970 a teoria dos jogos passou a ser aplicada ao estudo do comportamento animal, incluindo evoluo das espcies por seleo natural. Devido a interesse em jogos como o dilema do prisioneiro, no qual interesses prprios e racionais prejudicam a todos, a teoria dos jogos vem sendo aplicada na cincia poltica, tica, filosofia e, recentemente, no jornalismo, rea que apresenta inmeros e diversos jogos, tanto competitivos como cooperativos. Finalmente, a teoria dos jogos despertou a ateno da cincia da computao que a vem utilizando em avanos na inteligncia artificial e ciberntica. [17][18] Embora similar teoria da deciso, a teoria dos jogos estuda decises que so tomadas em um ambiente onde vrios jogadores interagem. Em outras palavras, a teoria dos jogos estuda as escolhas de comportamentos timos quando o custo e beneficio de cada opo no so fixos, mas isso depende, sobretudo, da escolha dos outros indivduos. No xadrez, a teoria dos jogos de um tipo bastante especializado, denominado determinsticos de revezamento de dois jogadores de soma zero com informaes perfeitas. Isso significa ambientes em que os jogadores conhecem os movimentos prvios feitos pelo outro jogador. No qual existem dois agentes cujas aes devem se alternar, e os valores de utilidade no fim do jogo so sempre opostos. Ou seja, se um jogador ganha um jogo (+1), o outro jogador necessariamente perde (-1). essa oposio entre as funes de utilidade dos agentes que gera a situao de competio. [17] Um jogo pode ser definido formalmente como uma espcie de problema de busca com os seguintes componentes: 2 Estado Inicial, que inclui a posio do tabuleiro e identifica o jogador que far o movimento.

30

3 Funo Sucessor, que retorna uma lista de pares (movimento, estado), cada qual indicando um movimento vlido e o estado resultante. 4 Funo de avaliao (tambm chamada funo utilidade ou funo compensao), que d um valor numrico aos estados terminais. Por exemplo, para um jogo-da-velha, o resultado uma vitria, uma derrota ou um empate, com valores +1, -1 ou 0. O estado inicial e os movimentos vlidos para cada lado definem a rvore de jogo correspondente ao jogo. Para exemplificar de forma simples a figura 17 mostra parte da rvore de jogo para jogo-da-velha. A partir do estado inicial, existem nove movimentos possveis. O jogo se alterna entre a colocao de um X e a colocao de um O at alcanar ns de folhas correspondentes a estados terminais. A estes podem ser atribudas avaliaes de acordo com as regras do jogo. [19]

Figura 17 rvore de busca parcial para o jogo-da-velha

31

2.2.1 Exploso combinatria


Os jogos podem ser expressos por uma rvore que tem a posio inicial como raiz. Os ramos representam os movimentos legais e os ns correspondem s posies. Porem at um jogo simples como o jogo-davelha muito complexo para traar a rvore de jogo inteira. Assim jogos como o xadrez que so infinitamente mais complexos, se tornam problemas de busca em profundidade muito difceis de resolver. Isto porque o nmero de estados de jogo que se tem de examinar exponencial em relao ao nmero de movimentos. [21] O xadrez extremamente complexo do ponto de vista computacional. A maioria das fontes e enciclopdias indicam o nmero de possveis partidas de xadrez distintas na ordem de 1044. Nenhum computador capaz de analisar todos os possveis jogos de xadrez e retornar os resultados esperados. [20][21] Partindo da posio inicial o nmero de arestas da raiz para os ns da profundidade 1 igual a 20. Isto representa o nmero de possibilidades de movimentos das peas brancas. Na profundidade 2 da rvore as peas negras possuem as mesmas 20 possibilidades de movimentos possveis (Podendo resultar em 20 * 20 = 400 posies distintas) . Assim as peas brancas podem movimentar outra vez, o nmero de jogadas legais depende do primeiro movimento que foi realizado, tendo pelo menos 20 movimentos possveis. Portanto o nmero de posies na rvore de jogo passa para 400 * 20 = 8 mil possibilidades. Na profundidade 4 da rvore de jogo, que representa o prximo movimento realizado pelas peas negras, o nmero de ns na rvore cresce para no mnimo 8 mil * 20 = 160 mil possibilidades. E assim por diante, como exemplificado na figura 18. Nela so representadas as trs primeiras jogadas de uma partida.

32

Figura 18 rvore de movimentos

No entanto, na fase de meio de jogo assume-se que em mdia h 35 movimentos existentes para cada lado. Se for considerado uma

profundidade P, e ramificao R, o nmero possveis de ns N pode ser calculado com a seguinte frmula: N=RP (1)

O tamanho mdio de uma partida de xadrez de 50 lances, ou seja, 100 jogadas, sendo 50 jogadas realizadas pelas peas brancas e 50 pelas peas negras ( caracterizado como um lance, um movimento realizado por ambos os lados). Como o fator de ramificao em mdia de 35 (nmero de arestas de cada n da rvore). Pode-se ento estimar o nmero de ns de uma rvore correspondente a uma partida, como sendo N = 35 2,55155207 * 10
154 100

. [21]
109

Caso um computador percorra dois milhes de posies por segundo, seriam necessrios mais de 5,3 * 10 anos para esgotar toda rvore.

Mesmo empregando um supercomputador muito mais rpido no alteraria o fato que impossvel resolver o jogo de xadrez atravs da fora bruta utilizando o hardware e software disponveis agora e no futuro previsvel. [20][22]

33

Com as limitaes de processamento e armazenamento, houve a necessidade de se desenvolver mtodos a fim de superar esta

complexidade: com o uso de tcnicas de inteligncia artificial para melhorar a eficincia do algoritmo de busca.

2.3 Inteligncia Artificial


A inteligncia artificial pode ser definida como uma rea de pesquisa que investiga formas de habilitar o computador a realizar tarefas nas quais, at o momento, o ser humano tem um melhor desempenho. Para isso, muitas tcnicas utilizadas na inteligncia artificial so baseadas nos processos do raciocnio humano, imitando ou simulando certos aspectos do pensamento e comportamentos inteligentes, realizando aes para atingir objetivos. Com a inteligncia artificial, as mquinas podem ser capazes de aprender coisas novas e se adaptarem a novas situaes, em vez de simplesmente fazer o que foi mandado. [19] O sucesso dos sistemas de inteligncia artificial so baseados na especialidade, conhecimento e padres de raciocnio humanos. Isto apesar de no exibirem a inteligncia do ser humano. A existncia dos sistemas de inteligncia artificial no prope solues novas e originais para resolver problemas. A sua existncia estende os poderes dos especialistas, mas de nenhuma maneira os substituem ou obtm conhecimentos superiores a eles. Os sistemas de inteligncia artificial no possuem o senso comum e a generalidade do ser humano naturalmente inteligente. [10] Na dcada de 50, a recm-fundada cincia da computao comeou a desenvolver tcnicas de inteligncia artificial, com o objetivo de produzir programas de computador capazes de imitar funes complexas do intelecto humano. Dois cientistas norte-americanos tinham conseguido realizar a primeira demonstrao de que isso era possvel, desenvolvendo um programa capaz de provar teoremas de lgebra e geometria elementares. Em alguns casos, as provas desenvolvidas pela mquina foram inteiramente

34

originais, ou seja, no coincidiam com as provas clssicas desenvolvidas pelos matemticos. [4][10] Os cientistas da poca buscavam outras reas exclusivas do intelecto humano que pudessem ser utilizadas para comprovar os sucessos da inteligncia artificial. Sendo o xadrez um jogo complexo, tipicamente humano e intelectualmente desafiador. Assim vrios grupos partiram em busca desse objetivo. Em 1956, Alex Bernstein, um cientista da IBM, foi o primeiro a conseguir desenvolver um programa que jogasse xadrez em um tempo razovel, contornando o que John von Neumann denominou de exploso combinatria. [10] A resoluo de problemas um dos processos fundamentais para a maioria das aplicaes de inteligncia artificial. Basicamente existem dois tipos de problemas, o primeiro pode ser resolvido utilizando-se algum tipo de procedimento determinstico. Isto garante o sucesso ao utilizar mtodos para resolver esse tipo de problema, que so geralmente, facilmente traduzidos em um algoritmo. Porm, poucos problemas reais se prestam a solues atravs desses mtodos. J o segundo tipo, que representa a maioria dos problemas, necessrio o uso de uma busca da soluo. [15][19] De forma geral, os processos de busca so essencialmente procedimentos do tipo gerar e testar. Neles o teste feito aps uma quantidade variada de trabalho do gerador. Em um extremo, o gerador gera solues inteiras, que o testador o avalia. No outro extremo, o gerador gera movimentos isolados no espao de busca, sendo que cada um deles ento avaliado pelo testador, e o mais promissor selecionado. Sob esta tica, fica claro que, para aumentar a eficincia de um programa de soluo de problemas baseado em buscas, duas coisas podem ser feitas: 5 Aperfeioar o procedimento de gerao para que apenas os movimentos bons sejam gerados. 6 Aperfeioar o procedimento de teste para que os melhores movimentos sejam reconhecidos e explorados primeiro. Nos programas de jogos, particularmente importante que ambas as coisas sejam feitas. Considerando o problema de jogar xadrez, com a mdia de ramificao igual a 35 movimentos legais disponveis. Com o uso de um

35

nico gerador de movimentos legais, o procedimento de teste ter de analisar cada um deles. Como o procedimento de teste precisa examinar tantas possibilidades necessrio ser rpido. Portanto no se conseguira realizar um trabalho preciso. Por outro lado, em vez de ser utilizado um gerador de movimentos legais, seja utilizado um gerador de movimentos plausveis. Neste apenas um pequeno nmero de movimentos promissores gerado. Quando o nmero de movimentos legais disponveis comea a aumentar, passa a ser cada vez mais importante aplicar heurstica para selecionar apenas os que so de alguma forma promissores. Com um gerador de movimentos mais seletivo, o procedimento de teste tem a possibilidade de ocupar mais tempo do processador. Avaliando cada um dos movimentos e produzir um resultado confivel. Assim, com a incorporao do conhecimento heurstico tanto no gerador quanto no testador, o desempenho global do sistema pode ser melhorado. [23] O melhor modo para usar um procedimento de busca para encontrar uma soluo para um problema gerar movimentos atravs do espao do problema at chegar a um estado meta. No contexto dos programas de jogos, um estado meta aquele que d a vitria a um dos competidores. No caso do xadrez, mesmo com um bom gerador de movimentos plausveis, no possvel procurar at que seja encontrado um estado meta. A profundidade da rvore resultante e seu fator ramificao sero

demasiadamente grandes. No espao de tempo disponvel, possvel procurar uma rvore com apenas dez ou vinte movimentos de profundidade. Para escolher o melhor movimento, as posies resultantes precisam ser comparadas para descobrir qual a mais vantajosa. Isto feito com uma funo de avaliao esttica, que se utiliza de informaes especficas do jogo para avaliar posies isoladas no tabuleiro e estima a probabilidade que cada uma delas tem de levar a uma vitria. [16] Portanto, os componentes mais importantes em um programa de jogo so um gerador de movimentos plausveis e uma boa funo de avaliao esttica. Precisando incorporar uma grande quantidade de conhecimento sobre o jogo especfico que est sendo jogado. Mas, a menos que essas funes sejam perfeitas, preciso tambm de um procedimento de busca

36

que possibilite prever o maior nmero possvel de movimentos frente para prever o que poder acontecer. Como em qualquer outro domnio, claro que o papel da busca pode ser alterado consideravelmente se houver alterao na quantidade de conhecimento disponvel.

2.3.1 Busca Competitiva


Em ambientes multiagentes, em que qualquer agente dado precisar considerar as aes de outros agentes e o modo como essas aes afetam seu prprio bem estar. A imprevisibilidade de outros agentes pode introduzir muitas contingncias possveis no processo de resoluo de problemas do agente. Ambientes competitivos so aqueles em que as metas dos agentes esto em conflito, dando origem a problemas de busca concorrente, freqentemente conhecido como jogos. [10] A estratgia de busca a ser usada em programas de jogos depende primordialmente do nmero de jogadores. Em ambientes com mais de um jogador em que as metas esto em conflito, suposies precisam ser feitas nos nveis em que o programa escolhe o movimento e nos nveis alternados, onde quem escolhe o opositor. Nos jogos como em outros domnios, a busca no a nica tcnica disponvel. Em certos jogos, pelo menos algumas vezes as tcnicas mais diretas podem ser mais apropriadas. No xadrez, as aberturas e estgios finais so com freqncia estilizados. Por isso, uma maneira de execut-los atravs de consulta a uma tabela, presente em uma base de dados de padres armazenados. [19]

2.3.1.1 Minimax
A busca minimax um procedimento de busca em profundidade. A idia iniciar na posio corrente e usar o gerador de movimentos plausveis para gerar o conjunto de possveis posies sucessoras. Depois

37

aplicar a funo de avaliao esttica a essas posies para que seja atribudo um valor, que representa a qualidade de cada uma dessas posies. Ento retorna-se os valores para o estado inicial para simplesmente escolher a jogada que resultara no estado mais promissor. [8] Assume-se que a funo de avaliao esttica retorna valores altos para indicar situaes boas, portanto a meta maximizar o valor na prxima posio do tabuleiro. Um lance composto por duas jogadas alternadas, primeiro MAX depois MIN. A busca feita para determinar a estratgia tima para MAX. Ou seja, MAX o jogador que tenta maximizar o ganho em suas jogadas, enquanto MIN tenta minimizar os ganhos de MAX. Este conceito reflete bem a situao de diversos jogos de tabuleiro, onde a jogada de um adversrio tenta ser minimizada atravs de jogadas subseqentes que neutralizem seus ganhos. [8][24] Em um problema de busca normal, a soluo tima seria uma seqncia de movimentos que levasse a um estado objetivo, um estado terminal que representa uma vitria. Por outro lado, em um jogo, MIN tem alguma relao com esse estado. Portanto, MAX deve encontrar uma estratgia de contingncia que especifique o movimento de MAX no estado inicial, e depois os movimentos de MAX nos estados resultantes de cada resposta possvel de MIN, e depois os movimentos de MAX nos estados resultantes de cada resposta possvel de MIN a esses movimentos e assim por diante. [19] Para exemplificar a busca minimax considere o jogo trivial da figura 19. Os movimentos possveis para MAX no n raiz so identificados por a1, a2 e a3. As respostas possveis para a1 correspondentes a MIN so b1, b2 e b3 e assim sucessivamente. Esse jogo especfico termina depois de um movimento realizado por MAX e por MIN. No linguajar dos jogos, dito que essa rvore tem a profundidade de um nico movimento, que consiste em dois meios-movimentos, cada um dos quais chamada jogada. Nesse exemplo os valores da funo de avaliao dos estados terminais variam de 2 at 14. O primeiro n de MIN, identificado por B, tem trs sucessores com valores 3, 12 e 8, portanto seu valor minimax 3. De

38

modo semelhante, os outros dois ns de MIN tm valor minimax 2. O n raiz um n de MAX, seus sucessores tm valores minimax 3, 2 e 2, logo, ele tem um valor minimax igual a 3. Assim pode-se identificar a deciso minimax na raiz, a ao a1 a escolha tima para MAX, porque leva ao sucessor com o mais alto valor minimax. [4]

Figura 19 rvore de jogo de duas jogadas

Essa definio de jogo timo para MAX supe que MIN tambm joga de forma tima. Ou seja, maximiza o resultado para MAX no pior caso. Por isso que se chama minimax, porque alterna entre o mximo e o mnimo medida que se move para cima da rvore.

2.3.1.2 Poda Alfa-Beta


Como o procedimento minimax um processo em profundidade, existe o problema que o nmero de estados de jogo que ele tem de examinar exponencial em relao ao nmero de movimentos. Infelizmente, no se pode eliminar o expoente, mas pode-se efetivamente reduzi-lo pela metade. O artifcio a possibilidade de calcular a deciso minimax correta sem examinar todos os ns na rvore de jogo. Ou seja, melhorando sua eficincia usando tcnicas de poda, em que solues parciais claramente piores do que as solues conhecidas podem ser logo

39

abandonadas. Deixa-se assim, de considerar grandes partes da rvore. [22][25] Quando aplicada a uma rvore minimax padro, retorna o mesmo movimento que o minimax retornaria, pois poda as ramificaes que no tero influencia possvel sobre a deciso final. Considerando novamente o jogo trivial da figura 19, para exemplificar as fases de clculo da deciso alfa-beta para a rvore de jogo. A primeira folha sob B tem valor 3. Conseqentemente, B, que um n de MIN, tem valor mximo 3. A segunda folha sob B tem valor 12, MIN evitaria esse movimento, de forma que B ainda no mximo 3. A terceira folha sob B tem valor 8, portanto o valor de B exatamente 3. Agora, podese deduzir que o valor da raiz pelo menos 3, pois MAX tem uma escolha de valor 3 na raiz, como representado na figura 20.

Figura 20 Poda alfa-beta, etapa 1

A primeira folha abaixo de C tem o valor 2. Conseqentemente, C, que um n de MIN, tem valor mximo 2. Porm sabe-se que B vale 3, portanto, MAX nunca escolheria C. Desse modo, no h razo para se examinar os outros sucessores de C. Esse um exemplo de poda alfa-beta, como representado na figura 21.

40

Figura 21 Poda alfa-beta, etapa 2

A primeira folha abaixo de D tem o valor 14, e ento D vale no mximo 14. Esse valor ainda mais alto que a melhor alternativa de MAX (isto , 3) e, portanto precisa-se continuar a explorar os sucessores de D. Como representado na figura 22.

Figura 22 Poda alfa-beta, etapa 3

O segundo sucessor de D vale 5, e assim novamente precisa-se continuar a explorao. Como representado na figura 23.

Figura 23 Poda alfa-beta, etapa 4

41

O terceiro sucessor vale 2, agora, D vale exatamente 2. A deciso de MAX na raiz efetuar o movimento para B. Como apresentado na figura 24.

Figura 24 Poda alfa-beta, etapa 5

Como a busca minimax do tipo em profundidade, e freqentemente, possvel podar sub-rvores inteiras em lugar de podar apenas folhas. O princpio geral considerar um n N em algum lugar na rvore, conforme representao na figura 25. Tal que o jogador tenha a escolha de movimento at esse n. Se o jogador tiver uma escolha melhor que M no n pai de N ou em qualquer ponto de escolha adicional acima dele, ento N nunca ser alcanado em um jogo real. Assim, uma vez descoberto o suficiente sobre N (examinando alguns de seus descendentes) para chegar a essa concluso, pode-se pod-lo. [10][25]

Figura 25 Poda alfa-beta, o caso geral

42

2.3.1.3 Esperando por Quietude


Um dos fatores que pode ser considerado para determinar o ponto alm do qual no se deve ir em uma rvore de busca, se a situao relativamente estvel. Considerando a rvore mostrada na figura 26. Supese que, quando o n B expandido em mais um nvel, o resultado seja dois ns, valendo 0 e -4. Quando analisado um movimento frente, a estimativa sobre B muda completamente. Isto pode acontecer, por exemplo, no meio de uma troca de peas. O oponente melhorou significativamente a aparncia imediata de sua posio ao iniciar uma troca de pea. Se parar de explorar a rvore neste nvel, o valor atribudo a B ser -4, portanto, decide-se que B no bom movimento.

Figura 26 O incio de uma troca de peas

Para assegurar que as medidas de curto prazo no influenciem indevidamente o movimento escolhido, deve-se continuar a busca at que nenhuma mudana drstica ocorra de um nvel para o seguinte. Usando esse procedimento pode-se chegar situao mostrada na Figura 27, onde o movimento para B novamente parece razovel j que ocorreu a outra metade da troca de peas. [19]

43

Figura 27 A situao do n B se estabiliza

Esperar pela quietude ajuda a evitar o efeito horizonte, no qual um movimento ruim inevitvel e pode ser postergado por meio de vrias tticas. At que no aparea na parte da rvore de jogo explorada pelo minimax. O efeito horizonte tambm pode fazer com que um movimento parea bom, a despeito do fato de poder ser ainda melhor se fosse adiado para alm do horizonte. Mesmo com a quietude, todos os programas de busca com profundidade fixa esto sujeitos a sutis efeitos horizonte.

2.3.1.4 Busca Secundria


Um bom modo de combater o efeito horizonte verificar duas vezes um movimento escolhido. Isto para ter certeza de que no existe nenhuma armadilha oculta (alguns movimentos frente), ainda no explorada pela busca. Supe-se que, seja explorada uma rvore de busca cuja profundidade mdia seja de seis jogadas. Com base nessa busca, escolhese um movimento em particular. Embora seja muito caro explorar toda a rvore at uma profundidade de oito jogadas, no muito caro percorrer mais dois nveis daquela nica ramificao escolhida para ter certeza que realmente bom. Uma forma particularmente bem-sucedida de busca secundria chamada de extenses singulares. A idia por trs das extenses singulares

44

que: se um n folha for julgado muito superior a seus descendentes. E tambm se o valor de toda a busca depende categoricamente da correo do valor desse n, ento este expandido apenas em uma jogada extra. Essa tcnica permite que o programa de busca se concentre em combinaes tticas, de controle. Emprega-se um critrio puramente sinttico, escolhendo linhas interessantes de jogo, sem recorrer a nenhum conhecimento adicional daquele domnio. O jogo de xadrez por computador Deep Thought usou extenses singulares com grande proveito, encontrando combinaes de xeque-mate no meio do jogo de at trinta e sete movimentos, um feito impossvel para procedimentos minimax com profundidade fixa. [1]

2.3.1.5 Uso de Base de Dados


Em jogos complexos como o xadrez, em que o nmero de estados possveis muito grande, no exeqvel analisar e buscar a posio atual do jogo em uma base de dados e extrair o melhor movimento. Mas no caso de seqncias de jogadas de abertura e de final de jogo, que so altamente estilizadas, o desempenho do algoritmo pode ser consideravelmente fortalecido se for fornecido uma lista de movimentos que devem ser feitos. O uso de tal mtodo em seqncias de abertura e final do jogo, combinado com o uso do procedimento de busca minimax para o meio do jogo, um bom exemplo de como o conhecimento e a busca podem ser combinados em nico algoritmo para produzir resultados mais eficazes do que cada uma das tcnicas isoladamente. [12][19]

2.3.1.6 Alternativas ao Minimax


Mesmo com os refinamentos, o procedimento minimax ainda tem alguns aspectos problemticos. Por exemplo, ao se basear fortemente na suposio de que o oponente sempre escolher movimento ideal. Essa suposio aceitvel nas situaes de vitria, em que se pode encontrar um movimento em que se garanta que seja bom. Mas, em uma situao de

45

derrota pode ser melhor arriscar que o oponente possa cometer um erro. Supe-se que preciso escolher entre dois movimentos, sendo que ambos, caso o oponente jogue com perfeio, levaro a situaes superiores para o oponente. Mas uma delas ligeiramente pior que a outra. E o movimento menos promissor pode levar a uma situao boa caso o oponente cometa um nico erro. O procedimento minimax escolheria o movimento ruim, entretanto, deve-se escolher o outro, que provavelmente ligeiramente pior, mas pode vir a ser muito melhor. Uma situao semelhante aparece quando um movimento parece ser apenas ligeiramente mais vantajoso que outro, supondo-se que o oponente jogue com perfeio. Talvez seja melhor escolher o menos vantajoso, caso consiga levar uma situao significativamente superior em caso de erro do oponente. Para tomar essas decises acertadamente, preciso ter acesso a um modelo do estilo do jogo especfico do oponente, para que a probabilidade dos vrios erros possa ser estimada. Mas isto muito difcil. [21] Devido ao fato de os mecanismos de propagao de estimativas de posio fortalecerem a rvore do jogo, a base terica do minimax fraca. No caso de certas classes de rvores de jogos (por exemplo, rvores uniformes com valores terminais aleatrios, quanto mais profunda a busca, mais pobres os resultados obtidos pelo minimax). No entanto, esse

comportamento de ampliar estimativas heursticas propensas a erros no foi observada em programas de jogos reais. rvores de jogos que contm posies de vitria e distribuies no-aleatrias das estimativas heursticas fornecem ambientes propcios ao minimax. [25]

2.3.1.7 Aprofundamento Iterativo


Diversas idias para a busca em rvore de jogos de dois jogadores levaram a novos algoritmos de busca heurstica com um nico agente. Uma dessas idias o aprofundamento iterativo, originalmente usado em um programa chamado Chess 4.5. Em vez de percorrer uma rvore de jogo de acordo com uma profundidade fixa, o Chess 4.5 primeiro analisava uma

46

nica jogada. E aplicava sua funo de avaliao esttica ao resultado de cada um dos movimentos possveis. Depois iniciava uma nova busca minimax, dessa vez a uma profundidade de duas jogadas. Esta era seguida de uma busca de trs jogadas, e depois por uma de quatro jogadas e assim por diante. O nome aprofundamento iterativo deriva do fato de que, em cada iterao, a rvore percorrida at um nvel maior de profundidade. A figura 28 ilustra esse processo.

Figura 28 Aprofundamento iterativo

Os programas de jogos esto sujeitos a restries de tempo. Por exemplo, uma partida de xadrez pode ter de completar todos os seus movimentos em vinte minutos. J que impossvel saber de antemo quanto tempo demorar uma busca de rvore com profundidade fixa, por causa de variaes na eficincia das podas e da necessidade de buscas seletivas, um programa pode ficar sem tempo de concluir as jogadas. Com o aprofundamento iterativo, a busca atual pode ser abortada a qualquer hora e o melhor movimento encontrado pela iterao anterior pode ser realizado. E

47

as iteraes anteriores podem fornecer restries valiosas em termos da ordem dos movimentos. Se um movimento foi julgado superior aos seus descendentes em uma iterao anterior, pode ser analisado primeiro na prxima iterao. Com uma organizao eficiente, o procedimento alfa-beta pode podar muitas ramificaes, assim o tempo total de busca pode ser diminudo. Isto concede mais tempo s iteraes mais profundas. [24]

2.3.2 Aprendizado de Mquina


Uma das crticas mais comuns inteligncia artificial que as mquinas s podem ser consideradas inteligentes quando forem capazes de aprender coisas novas e se adaptarem a novas situaes, em vez de simplesmente fazer o que foi mandado. No pode haver muita dvida de que uma importante caracterstica das entidades inteligentes a capacidade de adaptar-se a novos ambientes e de resolver novos problemas. [19] Jogos populares como xadrez e dama foram um dos pioneiros a utilizarem tcnicas de aprendizado de mquina. Muito trabalho na rea dos programas de jogos tem sido canalizado para o desenvolvimento de boas funes de avaliao esttica. Por exemplo, a mais simples para o xadrez, baseada na vantagem das peas, proposta por Turing, somando os valores das peas pretas (P), o valor das peas brancas (B) e utilizando o quociente B/P. Uma abordagem mais sofisticada foi adotada no programa de damas de Samuel, onde a funo de avaliao esttica era uma combinao linear de vrias funes simples, sendo que cada uma delas parecia ser significativa. As funes de Samuel incluam, alm da funo bvia, a vantagem de: peas, aspectos como capacidade de avano, controle do centro, ameaa de encruzilhada e mobilidade. Esses fatores eram ento combinados, atribuindo-se a cada um deles um peso apropriado, e depois somando os termos. Havia tambm alguns termos no-lineares, que refletiam combinaes desses fatores. No se sabia os pesos corretos que deveriam ser atribudos a cada um dos componentes. Ento foi empregado um mecanismo simples

48

de aprendizagem, no qual os componentes que sugeriam movimentos que acabavam por levar a vitrias recebiam peso maior. Os pesos daqueles que levavam a derrotas eram menores. [18] Para programas de jogos mais complexos, mais difcil decidir quais movimentos contriburam para a vitria e quais para a derrota. Supe-se que a mquina execute um movimento e tenha sido ruim, mas depois, por causa de um erro do oponente, a mquina acaba por ganhar a partida. Ento o sistema comete o erro de creditar a vitria ao movimento ruim. O problema de decidir qual de uma srie de aes na verdade responsvel por um determinado resultado chamado de problema de atribuio de crdito. E est presente em muitos mecanismos de aprendizagem, e no apenas naqueles que envolvem jogos. [19] A aprendizagem abrange uma ampla escala de fenmenos. Em uma extremidade do espectro, est o refinamento de habilidades. As pessoas melhoram a execuo de suas tarefas atravs da prtica. Na outra extremidade do espectro est a aquisio de conhecimentos como fonte de fora. O conhecimento normalmente adquirido atravs de experincia. A aquisio do conhecimento por si s inclui muitas atividades diferentes. O armazenamento simples de informaes computadas, ou aprendizagem por memorizao, a atividade mais bsica de

aprendizagem. Outra forma de aprendizagem por aconselhamento que semelhante aprendizagem por memorizao, mas conselhos de alto nvel podem no ter uma forma simples o bastante para um programa usar diretamente na soluo de problemas, pois pode precisar ser antes operacionalizado. Existe tambm a aprendizagem atravs das prprias experincias, no qual depois de resolver um problema complexo, a estrutura e os mtodos para solucion-lo ficam armazenados. Quando o problema ocorrer novamente, pode-se solucionar mais eficientemente. Podendo generalizar a experincia e solucionar mais facilmente problemas relacionados. [10] Em contraste com o aconselhamento, a aprendizagem a partir da experincia com a soluo de problemas, em geral, no envolve a coleta de novos conhecimentos anteriormente no disponveis. Ou seja, o programa

49

lembra-se de suas experincias e generaliza-as, mas no as acrescenta concluso transitiva de seu conhecimento, como faria um programa de aconselhamento, isto , recebendo estmulos do mundo externo. Em grandes espaos de problema, porm, existe ganho em eficincia, em termos prticos, aprender pode significar a diferena entre resolver ou problema rapidamente e no resolv-lo de jeito nenhum. Alm disso, os programas que aprendem atravs da experincia com a soluo de problemas podem conseguir soluo qualitativamente melhores.

2.3.2.1 Aprendizagem por Memorizao


Quando um computador armazena dados, est executando uma forma rudimentar de aprendizagem. Pois o ato de armazenar

presumivelmente permite que o programa tenha melhor desempenho no futuro. Quando a computao mais cara que a recuperao dos dados, essa estratgia pode economizar tempo significativo. A estocagem foi usada em programas de inteligncia artificial para produzir melhorias de desempenho. Esta estocagem conhecida como aprendizagem por memorizao. [10][19] Um dos primeiros programas de jogos, o programa de damas de Samuel explorava dois tipos de aprendizagem, a aprendizagem por memorizao e o ajuste de parmetros. O programa usava o procedimento de busca minimax para explorar as rvores de jogo de damas. Como acontece em todos os programas desse tipo, as limitaes de tempo permitiam a busca em apenas alguns nveis da rvore. Quando no havia mais possibilidades de a busca aprofundar-se, aplicava a funo de avaliao esttica posio do tabuleiro e usava aquela contagem para continuar a busca na rvore. Aps a pesquisa na rvore e propagar os valores de volta, ento poderia ser feito o melhor movimento. Porm o programa tambm registrava a posio do tabuleiro na raiz da rvore e a contagem recm computada. Esta situao est mostrada na figura 29.

50

Figura 29 Armazenamento da avaliao

Ento se supe que em um jogo posterior surja a situao mostrada na Figura 30 Em vez de usar a funo de avaliao esttica para calcular uma contagem para a posio A, o programa pode usar o valor armazenado para A. Isto tem o mesmo efeito que pesquisar mais uma jogada, j que o valor armazenado para A foi calculado atravs do retorno dos valores exatamente daquela busca.

Figura 30 Retornado o valor de avaliao armazenado

A aprendizagem por memorizao deste tipo muito simples. No parece envolver nenhum recurso sofisticado de soluo de problemas, mas mostra a necessidade de certos recursos que tero cada vez mais importncia nos sistemas de aprendizagem mais complexos. Para que o uso de um valor armazenado seja mais rpido do que seu reclculo, preciso haver um meio de acessar o valor apropriado rapidamente. No programa de damas de Samuel isso foi feito atravs da indexao das posies do tabuleiro por certas caractersticas importantes, como o nmero de peas. Mas, quando aumenta a complexidade das

51

informaes armazenadas, so necessrias tcnicas mais sofisticadas. [4][16] O nmero de objetos distintos potencialmente armazenveis pode ser muito grande. Para manter o nmero de objetos armazenados em um nvel controlvel, necessrio um tipo de generalizao. No programa de damas de Samuel, por exemplo, o nmero de objetos distintos que podiam ser armazenados era igual ao nmero de posies diferentes no tabuleiro que podem surgir durante um jogo. Apenas poucas formas simples de generalizao foram usadas para diminuir esse nmero. Todas as posies eram armazenadas como se o movimento fosse das peas brancas. Isto diminua pela metade as posies armazenadas. Quanto possvel, rotaes ao longo da diagonal tambm eram combinadas. Porm, quando aumenta a complexidade do processo de aprendizagem, aumenta tambm a

necessidade de generalizao. [4]

2.3.2.2 Aprendizagem por Reforo


Um computador pode fazer muito pouco se no tiver um programa para executar. Quando um programador escreve uma srie de instrues para o computador, um tipo rudimentar de aprendizagem est ocorrendo. O programador o professor, e o computador o aluno. Depois e ser programado, o computador capaz de fazer algo que anteriormente lhe era impossvel. Entretanto, a execuo do programa pode no ser algo simples, pois um interpretador ou compilador precisar intervir para transformar as instrues do professor em um cdigo que a mquina consiga executar diretamente. [19] As pessoas processam os conselhos de maneira anloga. Por exemplo, no xadrez comum o conselho para se controlar o centro do tabuleiro, mas se o jogador no conseguir traduzi-lo para movimentos e planos concretos ser intil. Um programa de computador pode fazer uso dos conselhos e ajustar sua funo de avaliao esttica para incluir um

52

fator baseado no nmero de quadrados centrais atacados por suas prprias peas.

2.3.2.3 Aprendizagem atravs da Soluo de Problemas


Muitos programas dependem de um procedimento de avaliao que combina informaes de vrias fontes em uma nica esttica resumida. Os programas de jogos fazem isso nas suas funes de avaliao esttica, onde vrios fatores, como vantagens de peas e mobilidade, so combinados em uma contagem nica que reflete a convenincia de uma determinada posio do tabuleiro. Os programas de classificao de padres freqentemente combinam vrias caractersticas para determinar a categoria correta em que deve ser colocado um dado estmulo. No momento de elaborar esses programas, em geral difcil saber que peso deve ser atribudo a cada caracterstica que est sendo usada. Uma maneira de encontrar os pesos corretos comear com alguma estimativa da definio correta e depois deixar o programa modific-la com base na sua prpria experincia. As caractersticas que provarem serem boas previsoras do sucesso global tero seus pesos aumentados, enquanto as outras tero seus pesos diminudos. Nesse tipo de aprendizagem baseado em ajuste de parmetro o mais importante saber quando o valor de um coeficiente deve ser aumentado e quando deve ser diminudo, e em quanto o valor deve ser alterado. A forma mais simples aumentar os coeficientes dos termos que previram resultado final, enquanto os coeficientes responsveis pelas ms previses devem ser diminudos. Em certos domnios, isto fcil de fazer. Se um programa de classificao de padres usa sua funo de avaliao para classificar uma entrada e obtm a resposta correta, ento todos os termos que previram a resposta devem ter seus pesos aumentados. Mas, nos programas de jogos, o problema mais difcil. O programa no obtm nenhuma realimentao concreta de cada um dos movimentos, s sendo descoberto com certeza no

53

final do jogo. Mas muitos movimentos contriburam para aquele resultado final. Mesmo que o programa ganhe, pode ter feito maus movimentos ao longo do caminho. [10][19] O programa de damas chamado Samuel explorava uma tcnica, mesmo que imperfeita, para solucionar este problema. Assume-se que os valores inicialmente escolhidos para os coeficientes sejam bons o suficiente para que a funo de avaliao esttica produza valores que so medidas relativamente razoveis da contagem correta, mesmo que no sejam to precisas. Essa funo de avaliao pode ento ser usada para fornecer realimentao a ela mesma. As seqncias de movimentos que levam a posies com valores mais altos podem ser considerados boas, e os termos da funo de avaliao que as sugeriram podem ser reforados. [2] Por causa das limitaes desta abordagem, porm, o programa de Samuel precisou de mais duas etapas, sendo uma delas executava um teste adicional para observar se estava havendo progresso e a outra gerava artifcios adicionais para manter o processo fora da seqncia normal. Quando o programa estava no modo de aprendizagem, jogava contra uma cpia de si mesmo. Apenas uma das cpias alterava a funo que determinava a contagem durante o jogo, e a outra permanecia fixa. No final do jogo, se a cpia com a funo modificada ganhasse, ento a funo modificada era aceita. Caso contrrio, a antiga era mantida. Se, porm, isto acontecesse muitas vezes, ento mudanas grandes eram feitas na funo, na tentativa de colocar o processo em uma direo mais favorvel. Periodicamente, um termo da funo de avaliao era eliminado e substitudo por outro. Isto era possvel porque, embora o programa usasse apenas dezesseis caractersticas por vez, na verdade conhecia trinta e oito. Esta substituio diferia do resto do procedimento de aprendizagem, j que criava uma mudana sbita na funo de avaliao em vez de provocar uma alterao gradual dos pesos. Este processo de aprendizagem atravs de sucessivas modificaes nos pesos dos termos de uma funo de avaliao tem muitas limitaes, a maioria delas causada pela falta de explorao de muitos conhecimentos

54

sobre a estrutura do problema com a qual o processo est lidando e sobre os relacionamentos lgicos entre os componentes do problema. [19]

55

Captulo 3 Estrutura do Jogo

3.1 Tecnologia utilizada


A linguagem escolhida para o desenvolvimento da aplicao foi o C. O princpio da linguagem C a eficincia. A proximidade do cdigo de mquina permite realizar previses de como o software ir se comportar, ao ser executado. Alm de possibilitar readaptar o sistema a vrias arquiteturas de processador sem a necessidade de reescrever o cdigo. A linguagem C se mostra mais eficiente que outras linguagens no gerenciamento de memria, permitindo enderear a memria de maneira muito parecida como seria feito em Assembly. Linguagens como o Java ou Perl, fornecem mecanismos que permitem que o programador realize o trabalho sem se preocupar com a atribuio de memria ou com apontadores. No entanto, quando se lida com softwares com grande complexidade de espao e tempo, como em programas de xadrez, a linguagem C mostra-se bem mais eficiente, obtendo a mesma eficincia de um cdigo em Assembly.

3.2 Tabuleiro

O tabuleiro constitudo de um array bidimensional 8 x 8, representando oito linhas e oito colunas. As oito fileiras verticais denominamse colunas, as oito horizontais, linhas, e o conjunto de casas da mesma cor, em direo oblqua, diagonais. A posio de cada casa do tabuleiro, que dada por [linha][coluna], apresentado na Tabela 1.

56

Tabela 1 Tabuleiro

[0][0] [0][1] [0][2] [1][0] [1][1] [1][2] [2][0] [2][1] [2][2] [3][0] [3][1] [3][2] [4][0] [4][1] [4][2] [5][0] [5][1] [5][2] [6][0] [6][1] [6][2] [7][0] [7][1] [7][2]

[0][3] [0][4] [0][5] [0][6] [0][7] [1][3] [1][4] [1][5] [1][6] [1][7] [2][3] [2][4] [2][5] [2][6] [2][7] [3][3] [3][4] [3][5] [3][6] [3][7] [4][3] [4][4] [4][5] [4][6] [4][7] [5][3] [5][4] [5][5] [5][6] [5][7] [6][3] [6][4] [6][5] [6][6] [6][7] [7][3] [7][4] [7][5] [7][6] [7][7]

O tabuleiro armazena em cada casa um nmero inteiro, as posies do tabuleiro que no contem peas recebem valor zero, enquanto que as posies do tabuleiro ocupadas por peas, so representadas pelos valores apresentados, junto com a representao grfica associada a cada pea, na Tabela 2.
Tabela 2 Representao das peas

Pea Peo Cavalo Bispo Torre Dama Rei

Valor 1 2 3 5 9 10

Brancas

Negras

57

3.3 Movimentos
Um movimento especificado atravs do cdigo da casa de origem e pelo cdigo da localizao de destino. Para que haja uma melhor representao quatro nmeros so utilizados para especificar o movimento. Sendo, linha da casa de origem, coluna da casa de origem, linha da casa de destino e coluna da casa de destino.

3.3.1 Peo
O peo avana, para frente, uma casa de cada vez. Sendo a nica pea que no pode retroceder, sendo necessrio um controle de cor de forma explicita no algoritmo. Ou seja, o peo a nica pea que houve necessidade de um cdigo para as brancas e outro para as negras. Esse controle se deve no s pelo fato do peo no poder retroceder, mas tambm porque no primeiro movimento de cada peo existe a opo de dois movimentos, avanar uma casa como normalmente, ou avanar duas de uma s vez. Assim atravs do controle da cor possvel identificar se o peo se encontra na casa inicial, isto , quando est na segunda ou na stima linha, conforme a cor. Ou no caso do peo chegar ltima linha, na oitava ou na primeira linha, dependendo da cor, e ocorrer promoo do peo para outra pea. As formas que o peo pode se movimentar est exemplificado na figura 31.

Figura 31 Movimentos do peo

58

A partir da figura 31 possvel observar que h quatro formas que o peo pode se movimentar, sendo, uma casa a frente, ou duas casas a frente caso esteja na casa inicial, ou capturando uma pea de cor oposta na diagonal esquerda, ou na diagonal direita. Ento se implementa os quatro modos de movimentos para o peo, utilizando as posies na matriz que representa o tabuleiro: 1. [linha-1][coluna] Peo um movimento a frente. A casa a ser ocupada precisa estar vazia, ou seja, igual a zero. 2. [linha-2][coluna] Peo dois movimentos frente. O peo precisa estar na linha inicial, e as casas, a ser ocupada e a intermediria (entre a casa de origem e a de destino) precisam estar vazias. 3. [linha-1][coluna-1] Peo capturando para a esquerda. A casa indicada precisa conter uma pea de cor oposta. 4. [linha-1][coluna+1] Peo capturando para a direita. Mesma condio da anterior, a casa a ser ocupada precisa conter uma pea de cor oposta. A mesma lgica implantada para as peas negras, porm com os sinais invertidos.

3.3.2 Cavalo
O cavalo a nica pea do jogo que pode pular outras peas. Ou seja, o cavalo o nico que no precisa verificar se a casa intermediria (entre a casa de origem e a casa de destino) esta vazia. O movimento do cavalo forma um arco imaginrio que mede, ao todo, trs casas de extenso. Para exemplificar, supondo um pequeno retngulo de seis casas (3 x 2 ou 2 x 3), o cavalo pula de um vrtice a outro. No total existem oito modos que o cavalo pode se movimentar, com a nica restrio que a casa a ser ocupada precisa estar vazia ou com uma pea de cor oposta, a representao dos movimentos do cavalo apresentada na figura 32.

59

8 7

1 2

6 5 4

Figura 32 Movimentos do cavalo

Os movimentos correspondentes aos nmeros so listados abaixo: 1. [linha+2][coluna+1] 2. [linha+1][coluna+2] 3. [linha-1][coluna+2] 4. [linha-2][coluna+1] 5. [linha-2][coluna-1] 6. [linha-1][coluna-2] 7. [linha+1][coluna-2] 8. [linha+2][coluna-1]

3.3.3 Bispo
O bispo movimenta-se um nmero qualquer de casas em sentido oblquo. Em outras palavras, se movimenta ao longo das diagonais. evidente que cada bispo se movimenta por casas da mesma cor, seja pelas diagonais brancas, seja pelas diagonais pretas. O movimento do bispo apresentado na figura 33.

60

Figura 33 Movimentos do bispo

Na implementao dos movimentos do bispo, existem 28 modos. Pois a contagem diferente a partir da localizao do bispo. Ao observar o exemplo da figura y, nota-se que cada bispo contm uma especificao dos movimentos distinta das demais. Por exemplo: o bispo localizado na casa superior direito pode realizar: [linha+1][coluna-1], [linha+2][coluna-2],

[linha+3][coluna-3], [linha+4][coluna-4], [linha+5][coluna-5], [linha+6][coluna6] e [linha+7][coluna-7]. Enquanto que o bispo localizado na casa inferior esquerda pode realizar os mesmos sete movimentos descritos, porm, com os sinais invertidos, totalizando um total de 14 modos. Se houvesse mais dois bispos, um localizado no canto superior esquerdo e outro no canto inferior direito, existiriam outros 14 modos distintos. Para abranger todos os modos de movimentos 28 especificaes so necessrias.

3.3.4 Torre
A torre pode se movimentar a qualquer casa da linha ou coluna em que se acha. Ou seja, movimentando-se em sentido horizontal ou vertical, como apresentado na figura 34.

61

Figura 34 Movimentos da torre

O caso da implementao da torre semelhante ao do bispo. Tendo como restrio ao movimento a casas intermedirias estarem vazias e a casa de destino estiver vazia ou com pea de cor oposta. A torre, assim como o bispo, conta com 28 modos distintos de movimentos.

3.3.5 Dama
A dama combina, simultaneamente, os movimentos da torre e do bispo, movimentando-se ao longo de qualquer linha, coluna ou diagonal. Apresentado na figura 35.

Figura 35 Movimentos da dama

62

A implementao a combinao dos movimentos do bispo com os movimentos da torre, dando origem a 56 especificaes de movimentos distintos.

3.3.6 Rei
O rei, cuja captura o objetivo fundamental no jogo, pode ir a qualquer uma das casas imediatamente contguas. Em outras palavras, o rei pode ocupar qualquer uma das casas ao seu redor. Podendo movimentar-se em qualquer direo de casa em casa, uma casa de cada vez, conforme apresentado na figura 36. S no possvel movimentar o rei para a casa no qual esteja sendo atacada por uma pea adversria.

Figura 36 Movimentos do rei

A implementao da origem a 8 modos de movimento. Verificando se a casa a ser ocupada no est sendo atacada por pea de cor oposta, se est vazia, ou se contm uma pea do adversrio (que no pode estar sendo apoiada por outra, pois a sua captura deixaria o rei em xeque).

3.4 Gerao de Movimentos


O gerador de movimentos plausveis retorna uma lista de ns que representam os movimentos que podem ser feitos por um jogador em

63

determinada posio. Ao chamar a funo deve-se passar como parmetro a matriz com a posio, com qual deve ser gerado a lista de movimentos, e a indicao de qual jogador realizara o movimento (brancas ou negras). No caso da avaliao esttica s necessrio passar a matriz como parmetro, j que independente do turno a contagem ser a mesma.

3.4.1 Algoritmo minimax


O algoritmo minimax um procedimento recursivo direto, que toma por base dois procedimentos auxiliares, especficos do jogo, o gerador de movimentos e a avaliao esttica. O procedimento minimax precisa de trs parmetros para ser iniciado, a posio do tabuleiro, a atual profundidade da busca e o jogador que realizara a jogada. Sendo uma funo recursiva, a profundidade atual a mais comumente utilizada para o encerramento. Tambm sendo possvel utilizar diversos outros modos, como por exemplo: limitar o procedimento atravs do nmero de ns gerado, atravs do tempo estipulado, ou at que a busca ache um movimento que no seja ruim (no necessariamente o melhor movimento). Como em uma partida de xadrez existe o fator do tempo do relgio, que varia conforme a ocasio, ento foi desenvolvido um mecanismo de cotas de tempo, para que o tempo de processamento seja administrado do melhor modo, assim como um jogador humano faria. Aps se estipular o tempo de jogo, feito uma estimativa de quanto tempo cada jogada pode se utilizar do processamento, ou seja, dividindo fraes do tempo para o uso em cada movimento. Durante a execuo, quando a cota de tempo ultrapassada, a estrutura retornada e o movimento com melhor contagem at ento na avaliao esttica realizado. Assume-se que o procedimento minimax retorna uma estrutura que contm o valor do caminho escolhido e o caminho em si, com o primeiro elemento, que representa o melhor movimento a partir da posio atual.

64

Caso estiver dentro cota de tempo, mais uma camada da rvore gerada, chamando a funo de gerao de movimentos e atribuindo como ns sucessores a lista que for retornada. Caso no haja sucessores, ento no h mais movimento a fazer. Retornando a estrutura. Se a lista de sucessores no estiver vazia, ento cada elemento examinado atravs da funo de avaliao esttica, que retornara o valor de cada n, sendo guardado o registro do melhor elemento.

3.4.2 Adicionando Poda


O procedimento minimax muito simples, mas seu desempenho pode ser significativamente melhorado atravs de certos refinamentos, como fazendo uso da poda alfa-beta. Assim o procedimento minimax pode ser modificado a fim de explorar essa tcnica. Basicamente se observa que nos nveis de maximizao, apenas beta usado para determinar onde a busca deve ser interrompida, e nos nveis de minimizao, apenas alfa usado. Mas nos nveis de maximizao, tambm preciso saber o valor de alfa, pois quando o minimax chamado recursivamente, um nvel de minimizao criado precisando ter acesso a alfa. Conseqentemente, nos nveis de maximizao, alfa precisa ser conhecido no apenas para poder ser usado, mas tambm para poder ser passado aos ns inferiores da rvore. O mesmo se aplica aos nveis de minimizao com relao beta. Cada nvel precisa receber ambos os valores, um para ser usado e outro para ser passado para o prximo nvel usar. O procedimento minimax, do modo que est no precisa tratar os nveis de maximizao e minimizao diferentemente, pois simplesmente inverte o sinal das avaliaes toda vez que os nveis mudam. Para isso, em vez de fazer referencia a alfa e beta, o minimax usa dois valores. Um valor usado para calcular os cortes e o outro meramente usado para ser passado para o prximo nvel. Assim como os valores precisavam ter os sinais invertidos toda vez que eram passados de um nvel para outro,

65

tambm os valores representando os limites precisam ter seus sinais invertidos. Isto necessrio para que, independentemente do nvel da busca, um teste maior que determine se um limite foi ou no cruzado. No precisando que haja diferena entre o cdigo exigido nos nveis de maximizao e aquele exigido nos nveis de minimizao.

66

Captulo 4 Avaliao Esttica

Uma vez criada a rvore do jogo, ento necessrio avaliar as posies dos ns terminais, para que seja estimada a sua utilidade. Para isso so atribudas pontuaes para cada pea, que so obtidas atravs de diversas caractersticas posicionais que fornecem os pesos que vo constituir a pontuao final. No importando o quo complicado a funo se torne, resumida para um nico valor que representa a utilidade daquela posio. Sendo totalmente dependente de uma boa funo de avaliao esttica, preciso abordar diversos fatores especficos do jogo para que seja combinado em uma contagem nica que represente a utilidade de uma determinada posio do tabuleiro. De forma geral, os fatores implementados podem ser divididos em quatro modos. Sendo pela pontuao que atribuda a pea por ocupar determinada casa do tabuleiro, pontuao pela mobilidade que a pea tem a cada instante, pontuao pela proximidade da pea com o rei adversrio, ou a pontuao por outros fatores que dependem da disposio das demais peas no tabuleiro. Os fatores especficos na avaliao de cada pea so constitudos por pesos, que so adicionados ou subtrados da contagem que representa a utilidade da posio. Os pesos so estabelecidos dinamicamente com base na experincia do prprio programa. Pesos que provem levarem ao sucesso global so aumentados, enquanto que os que contribuem para a derrota so diminudos.

4.1 Pesos da Avaliao Esttica


Os pesos inicialmente adotados pela funo de avaliao esttica foram estimados baseando-se em uma srie de princpios tericos, que so

67

como postulados prvios para a vitria. Porm, no xadrez, assim como na vida, tudo relativo. Os princpios gerais destinam-se aos casos gerais, no s excees. Deve haver, portanto, certa elasticidade na aplicao prtica destes conceitos, pois cada posio acha-se regida pela sua prpria lei. Mas estes preceitos gerais so normalmente eficazes. A elasticidade nos pesos aplicados a cada pea depende das caractersticas posicionais. Sendo basicamente distinguidas em trs fases sucessivas, a abertura, o meio-jogo e o final, cujos limites no so absolutamente precisos. No possvel e nem necessrio delimitar com rigorosa exatido o comeo e o fim de cada uma dessas fases. Em termos gerais, a abertura corresponde aos lances iniciais da partida. Sendo caracterizado pelo desenvolvimento das peas, procurandose dar-lhes uma disposio slida que garanta a defesa e permita um ataque eficiente. O meio-jogo d a cada partida sua feio prpria e individual. Lutase ento para obter vantagem, e ento, deixar o adversrio em desvantagem. No meio-jogo h uma coordenao geral de todas as peas. Dama e torres entram em ao, processam-se ataques contra peas ou pontos vulnerveis. No tendo sido decidida a partida no meio-jogo, chegase ao final, no qual a maioria das peas no est mais no tabuleiro e a posio esta simplificada. O final caracteriza-se pela atividade crescente do rei, sobre tudo contra os pees inimigos. As peas foram trocadas, especialmente as damas. A luta, em geral, trava-se pelo predomnio dos pees, que tentam atingir a oitava fila a fim de serem promovidos.

4.1.1 Peo
A cada peo presente no tabuleiro, atribudo 100 pontos. Dependendo da fase em que o jogo se encontra, vo ser atribudos diferentes valores s posies que os pees ocupam no tabuleiro. Antes de se atingir o final do jogo, e caso os jogadores no tenham roques contrrios, a pontuao a ser atribuda a cada peo no tabuleiro ser a que se encontra na Tabela 3.

68

Tabela 3 Pontuao antes da fase final

0 0 3 4 3 2 1 0

0 0 6 8 6 4 2 0

0 0 9 12 9 6 3 0

0 0 12 16 12 8 4 0

0 0 12 16 12 8 4 0

0 0 9 12 9 6 3 0

0 0 6 8 6 4 2 0

0 0 3 4 3 2 1 0

Pela observao da tabela verifica-se que o avano dos pees centrais recompensado com uma pontuao superior. Enquanto que o avano para as casas prximas a promoo no tem os valores alterados, visto que medida que os pees avanam so mais difceis de sustentar. Se o nmero total de peas no tabuleiro for inferior a dezesseis considerado que se atingiu a fase final do jogo. Nesta fase os pees assumem papel fundamental. Ento o avano dos pees claramente premiado como pode ser observado na Tabela 4
Tabela 4 Pontuao na fase final do jogo

20 12 10 8 6 4 2 0

30 24 20 16 12 8 4 0

40 36 30 24 18 12 6 0

50 48 40 32 24 16 8 0

50 48 40 32 24 16 8 0

40 36 30 24 18 12 6 0

30 24 20 16 12 8 4 0

20 12 10 8 6 4 2 0

Durante o meio-jogo outra caracterstica que influencia muito os pesos no caso de roques contrrios, apesar de ser menos comum. Ou seja, um

69

jogador realizou roque grande, e o outro roque pequeno. Ento os valores a serem adotados conforme a posio de cada peo deixa de serem os apresentados na tabela 4 e passam a ser os adotados dependendo de que tipo de roque o primeiro jogador realizou. No caso de roque pequeno versus roque grande, as pontuaes encontram-se na tabela 5.
Tabela 5 Roque pequeno versus roque grande

0 0 8 6 4 2 1 0

0 0 10 8 6 4 2 0

0 0 14 12 10 6 3 0

0 0 12 16 14 8 4 0

0 0 12 16 14 8 4 0

0 0

0 0

0 0

-10 -14 -10 -8 -6 -6 3 0 -12 -8 -4 2 0 -8 -6 -2 1 0

As pontuaes negativas servem para penalizar o jogador que tente avanar os pees precisamente pelo lado em que o adversrio pretende atacar. Na tabela 6 so apresentados os valores no caso de roque grande versus roque pequeno.
Tabela 6 Roque grande versus roque pequeno

0 0

0 0

0 0

0 0 8 12 14 8 4 0

0 0 12 16 14 8 4 0

0 0 14 12 10 6 3 0

0 0 10 8 6 4 2 0

0 0 8 6 4 2 1 0

-12 -14 -12 -10 -12 -10 -8 -6 1 0 -8 -4 2 0 -8 -6 3 0

Outras pontuaes que dependem da situao de cada peo em cada instante, so levadas em conta:

70

+ 3 pontos por cada peo que esteja a proteg-lo. - 7 pontos por cada peo que se encontre dobrado. Ou seja, se tiver dois pees da mesma cor na mesma coluna. - 3 pontos se o peo estiver isolado. Aquele peo que no pode ser protegido por nenhum outro peo, portanto no possui pees da mesma cor nas colunas diretamente paralelas.

- 10 pontos se o peo alm de estiver isolado no tiver pees adversrios na mesma coluna. O peo penalizado pelo fato de ser alvo fcil para as peas inimigas.

+ 15 pontos se o peo for passado. No existirem pees adversrios na mesma coluna e em colunas imediatamente paralelas. + 10 pontos se alm de ser passado for ligado. Aquele peo que protegido por um peo da mesma cor. - 7 pontos no caso do peo passado ser bloqueado por um cavalo adversrio imediatamente sua frente.

4.1.2 Cavalo
Para cada cavalo presente no tabuleiro atribudo 300 pontos. E de acordo com o nmero de movimentos que o cavalo possa realizar, sendo para uma casa vazia ou com uma pea de cor oposta, atribuda a pontuao apresentada na Tabela 7.

Tabela 7 Mobilidade do cavalo

Nmero de casas vazias 0 1 2 3 4 5 6 7 8

Pontuao atribuda -6 -2 1 2 3 4 5 6 7

71

A proximidade ao rei inimigo, nmero de linhas mais nmero de colunas pontuada de acordo com a Tabela 8.
Tabela 8 Proximidade do cavalo ao rei

Proximidade ao rei adversrio 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Pontuao atribuda 12 10 8 6 4 2 0 0 -1 -2 -3 -4 -5 -6

Um cavalo protegido por pees em uma posio avanada mostra-se muito forte, como tal so atribudos trs pontos por cada peo que proteja o cavalo e este se encontre a uma distancia do rei adversrio no superior a seis. A posio do cavalo no tabuleiro pontuada conforme a casa que ocupe, de acordo com a Tabela 9.

Tabela 9 Pontuao atribuda ao cavalo por ocupar determinada casa

-10 -5 -5 -5 -5 -5 -5 -10

-5 0 0 0 0 0 0 -5

-5 0 5 5 5 5 0 -5

-5 0 5 10 10 5 0 -5

-5 0 5 10 10 5 0 -5

-5 0 5 5 5 5 0 -5

-5 0 0 0 0 0 0 -5

-10 -5 -5 -5 -5 -5 -5 -10

72

Pela tabela verifica-se que a posio ideal para o cavalo no centro do tabuleiro, onde o seu de ao proporcional ao nmero de casas que controla.

4.1.3 Bispo
Cada bispo presente no tabuleiro tem um valor de 320 pontos. O bispo na teoria vale o mesmo que um cavalo, no entanto, a prtica mostra que o bispo ligeiramente superior ao cavalo, da o fato de se atribuir 20 pontos a mais ao bispo comparado ao cavalo. Dependendo da sua posio e da sua relao com a posio das peas restantes, vrias avaliaes so efetuadas: + 20 pontos se os dois bispos estiverem presentes. De modo geral, o jogador que disponha do par de bispos pode em uma situao ideal controlar grande parte das operaes. - 3 pontos por cada peo de qualquer cor que se encontre na diagonal imediatamente adjacente. O bispo perde todo o seu poder de ao quando se encontra obstrudo. De acordo com o nmero de casas livres que o bispo tem sua volta atribui-se uma determinada pontuao, conforme esta apresentada na Tabela 10.
Tabela 10 Mobilidade do Bispo

Mobilidade do Bispo 0 1 2 3 4 5 6 7 8 9 10 11 12 13

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

73

A pontuao a ser atribuda ao bispo independente da fase de desenvolvimento do jogo, mantendo-se ao longo de toda a partida. Na Tabela 11 encontra-se a pontuao que o bispo recebe por ocupar determinada casa.
Tabela 11 Pontuao que o bispo recebe dependendo da casa que ocupa

-1 -3 -1 -1 -1 -1 -3 -1

-5 10 3 10 10 3 10 -5

-3 0 6 10 10 6 0 -3

-5 10 10 3 3 10 10 -5

-5 10 10 3 3 10 10 -5

-3 0 6 10 10 6 0 -3

-5 10 3 10 10 3 10 -5

-1 -3 -1 -1 -1 -1 -3 -1

4.1.4 Torre
Para cada torre presente no tabuleiro, atribuda uma pontuao de 500 pontos. Diferentes pontuaes so atribudas dependendo da posio do restante das peas. + 20 pontos por cada torre da mesma cor presente na stima linha. + 15 pontos pela presena de mais de uma torre da mesma cor na mesma coluna. + 3 pontos se a torre tiver pees adversrios que podem ser capturados na mesma linha ou coluna. + 4 pontos se a coluna onde se encontra a torre estiver desobstruda de qualquer peo. - 12 pontos se a torre do lado do rei se mover primeiro que o rei. - 8 pontos se a torre do lado da dama se mover antes do rei. Dois fatores que contam na avaliao esttica da torre so sua mobilidade e a sua proximidade do rei. De acordo com a mobilidade, ou seja,

74

do nmero de casas livres em que a torre pode ocupar. atribuda a cada instante a pontuao de acordo com a Tabela 12.
Tabela 12 Mobilidade da Torre

Mobilidade da Torre 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

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

A proximidade ao rei adversrio contabilizada em funo da distncia dada pea diferena de linhas mais colunas, entre a torre e o rei adversrio. A pontuao a ser atribuda pela diferena de linha igual a atribuir pela diferena de colunas, apresentado na Tabela 13. Desta forma pretende-se premiar a restrio de movimentos do rei adversrio. Como exemplo, uma torre que se encontre a distncia de 1 linha e 2 colunas do rei adversrio, vai-lhe ser atribuda uma pontuao de 14 + 10 = 24 pontos.
Tabela 13 Proximidade da torre ao rei adversrio.

Proximidade ao rei adversrio 1 2 3 4 5 6 7

Pontuao atribuda 14 10 8 5 3 1 0

4.1.5 Dama
A dama, a seguir ao rei, a pea mais valiosa presente no tabuleiro. Sendo considerados 900 pontos por cada dama presente no tabuleiro.

75

Conforme a caractersticas posicionais so considerados os seguintes valores: + 9 pontos no caso de existir um bispo da mesma cor na mesma diagonal da dama. Na teoria, um bispo e uma dama na mesma diagonal so uma forte ameaa, principalmente ao rei adversrio. - 9 pontos caso a dama se mova antes de pelo menos duas peas menores (bispos ou cavalos). Como a dama uma pea poderosa, deve-se evitar exp-la prematuramente. + 6 pontos se a dama se encontrar na stima linha. + 6 pontos se a coluna onde se encontra a dama estiver desobstruda de qualquer peo. Outros dois fatores a ter em conta na avaliao esttica da dama so a mobilidade e a sua proximidade ao rei adversrio. A pontuao a ser atribuda mobilidade no constante durante todo o jogo. Enquanto o nmero total de peas no tabuleiro for superior a dezesseis, as pontuaes atribudas so as apresentadas na Tabela 14.
Tabela 14 Mobilidade na fase inicial

Mobilidade da Dama 0a4 5a9 10 a 14 15 a 19 20 a 27

Pontuao -1 0 1 2 4

Se o nmero total de peas for inferior ou igual a dezesseis a pontuao relacionada com a mobilidade a ser atribuda a dama quadruplica. Esta alterao tem justificao no fato de a dama ser uma pea em que o seu grande poder a sua mobilidade, caracterstica que s pode ser demonstrada quando o nmero de peas presentes no tabuleiro reduzido. As pontuaes so apresentadas na Tabela 15.
Tabela 15 Mobilidade na fase final

Mobilidade da Dama 0a4 5a9 10 a 14 15 a 19 20 a 27

Pontuao -4 0 4 8 16

76

A proximidade ao rei inimigo pontuada conforme a Tabela 16.


Tabela 16 Proximidade da dama ao rei adversrio

Proximidade do rei 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Pontuao 35 27 21 15 11 8 6 5 4 3 2 1 0 0

4.1.6 Rei
O rei a pea mais valiosa presente no tabuleiro, no entanto o seu valor no se encontra definido. Sabe-se apenas que tem um valor inestimvel, j que o rei vale a partida. Como tal, o valor atribudo foi de 3000 pontos. Que representa um valor qualquer, j que a nica condio que tenha um valor muito mais elevado do que qualquer outra pea. Tambm so atribudas as seguintes pontuaes: - 10000 pontos caso sofra xeque-mate. + 30 pontos se o rei fizer roque. - 30 pontos se o primeiro movimento do rei no for o roque. A pontuao que o rei vai receber por ocupar determinada casa no tabuleiro depende da fase em que o jogo se encontre. No inicio do jogo o rei deve estar o mais resguardado possvel de ataques inimigos por isso deve ser penalizado caso avance no tabuleiro. Conforme as pontuaes apresentadas na Tabela 17 que o rei recebe dependendo da casa que ocupa.

77

Tabela 17 Pontuao antes do final do jogo

-35 -35 -35 -35 -35 -35 -35 -35 -30 -30 -30 -30 -30 -30 -30 -30 -25 -25 -25 -25 -25 -25 -25 -25 -20 -20 -20 -20 -20 -20 -20 -20 -15 -15 -15 -15 -15 -15 -15 -15 -10 -10 -10 -10 -10 -10 -10 -10 0 5 0 10 -3 10 -5 0 -5 0 -3 5 0 10 0 5

Durante o final do jogo o rei deve estar ativo. Com a centralizao do rei que base do xito em grande nmero de finais. As pontuaes atribudas ao rei dependendo da casa que ocupe esto apresentadas na Tabela 18.
Tabela 18 Pontuao durante o final do jogo

-10 -5 -3 -1 -1 -3 -5 -10

-5 0 0 0 0 0 0 -5

-3 0 5 5 5 5 0 -3

-1 0 5 10 10 5 0 -1

-1 0 5 10 10 5 0 -1

-3 0 5 5 5 5 0 -3

-5 0 0 0 0 0 0 -5

-10 -5 -3 -1 -1 -3 -5 -10

Uma vez que a proteo do rei um dos fatores essenciais em uma partida de xadrez, h que levar em conta o nmero de peas adversrias que rodeiam o rei. O rei ser penalizado se o nmero de peas inimigas for superior ao nmero de peas da mesma cor que se encontram na sua proximidade. Para este caso especifico a dama vale trs peas.

78

4.2 Aprendizagem
Devido complexidade do xadrez o modelo de aprendizado implementado visa solucionar uma variedade de problemas de controle e planejamento, que ocorrem quando no existem informaes disponveis sobre os estados possveis, de modo a se obter os melhores valores para cada parmetro da avaliao esttica, permitindo assim o aprendizado de estratgias de controle adequadas. O aprendizado ocorre por meio da interao direta entre o agente e o ambiente. A cada passo da interao, o agente recebe uma entrada com indicao do estado atual do tabuleiro. O agente ento escolhe uma ao para gerar como sada baseado nos valores da avaliao esttica. Tal ao muda o estado do tabuleiro, e os valores utilizados nessa transio de estado so marcados, assim como o nmero da jogada correspondente. Ao final da partida esta computao linearizada conforme o resultado do jogo, e os valores da avaliao esttica utilizados no decorrer da partida so atualizados, conforme a frmula. Para o agente que venceu: (2)

Para o agente que perdeu: (3)

Sendo: Pn = novo valor do parmetro da avaliao esttica v = valor utilizado pelo parmetro durante a partida U = nmero de vezes que o parmetro foi utilizado durante a partida j = nmero da jogada no qual o parmetro foi utilizado

O valor 0,1 na frmula representa a taxa de aprendizagem, que controla a intensidade das alteraes dos pesos. Tal valor foi optado

79

considerando que uma alta taxa de aprendizagem acelera o processo, mas freqentemente levam a oscilao de mudana de pesos e o aprendizado nunca se completa, ou o modelo converge a uma soluo que no tima. J uma baixa taxa de aprendizagem demanda muito tempo necessrio at a convergncia ser alcanada. Aps o termino da partida, os parmetros utilizados durante o jogo tem seus pesos atualizados atravs da frmula, e ento a base de conhecimento atualizada com esses novos valores. Caso a partida termine em empate os valores no sofrem alterao. A frmula de aprendizado visa atribuir recompensas para o agente que vencer a partida e penalizaes para o agente que perder. Tais alteraes so realizadas com base na distncia da posio de vitria ou de derrota, ou seja, quanto mais perto da posio final da partida, maior ser a alterao do valor.

80

Captulo 5 Resultados e Discusso

Para testar a metodologia apresentada, foram realizadas diversas partidas a fim de reconhecer o tipo de ambiente mais propcio para a aprendizagem de mquina. Para cada tipo de teste realizado a amostragem foi de mil partidas de modo que o agente colete experincia sobre os possveis estados. aprendizado aprendizado No primeiro tipo de teste, tanto a aprendizagem das peas brancas quanto das peas negras esto acionados, dando uma clara amostra de evoluo. No segundo tipo, observa-se o aprendizado das peas brancas baseado em valores fixos das peas negras. No terceiro tipo os valores das peas brancas so fixos, e os valores das peas negras sofrem alterao com a aprendizagem de mquina. As mudanas nos valores da avaliao esttica esto apresentadas na tabela 19. 3 tipo Peas brancas sem aprendizado e peas negras com 1 tipo: Peas brancas e peas negras com aprendizado 2 tipo: Peas brancas com aprendizado e peas negras sem

Tabela 19 Alterao dos valores aps a aprendizagem

Tipos de testes 1 tipo 2 tipo 3 tipo

Alterao dos valores da avaliao esttica 94% 42% 51%

81

Ao observar as alteraes na tabela 19, nota-se que tanto o segundo quanto o terceiro tipo de teste, tendem a viciar-se em determinados parmetros da avaliao esttica, tendo alteraes dos pesos em apenas 42% e 51% dos parmetros respectivamente. Comparando com os resultados obtidos no 1 tipo de teste, conclui-se que isso se deve ao fato de que os valores da cor adversria so fixos, ou seja, aps a evoluo atingir um nvel superior das peas adversrias (que tem valores fixos), os jogos comumentemente comeam a seguir os mesmos caminhos, j que esses atingem o objetivo final. Com isso, como pode ser observado na tabela X, determinadas caractersticas da avaliao esttica acabam no sendo consideradas, pois na amostragem de partidas no houve requisies de tais valores, dando uma clara demonstrao da desvantagem do jogo vicioso, visto que outros ambientes no so considerados e

conseqentemente no existe aprendizagem de mquina. No caso do primeiro tipo de teste, a aprendizagem realizada de forma mais dinmica, j que existe evoluo em ambas as cores. Diferentemente dos outros tipos de testes, o jogo tende a explorar diversos ambientes, abrangendo grande parte das caractersticas da avaliao esttica. Isso ocorre, pois no existem vcios em determinados tipos de ambientes, j que o adversrio esta em constante evoluo, com isso constantemente o tipo de ambiente muda, ou seja, se determinada cor de pea perde algumas vezes em certo tipo de ambiente, a tendncia que esse busque outros modos de jogar nesse tipo de ambiente, ou at evitando tal tipo de ambiente. Visando identificar de forma prtica o tipo de teste que resultou no melhor nvel de jogo, foi realizada uma srie de cem partidas entre cada tipo de teste, e mais um tipo, com os valores da avaliao esttica inicial a fim de representar se com a aprendizagem de mquina houve evoluo em relao ao nvel de jogo inicial, ou seja, antes da aprendizagem. Os resultados obtidos so apresentados na tabela 20, ordenados de forma decrescente a partir do aproveitamento.

82

Tabela 20 Resultados obtidos atravs de cada tipo de aprendizagem

Tipos 1 tipo 2 tipo 3 tipo Valores iniciais

Vitrias Empates 84 43 38 33 0 2 1 1

Derrotas Aproveitamento 16 55 61 66 84,0% 44,0% 38,5% 33,1%

Ao analisar a tabela 20 conclui-se que o primeiro tipo de teste se mostrou o mais promissor, obtendo clara vantagem sobre os demais tipos. Os resultados obtidos tanto no segundo tipo quanto no terceiro tipo, mostram que a evoluo no nvel de jogo foi pequena em relao ao nvel inicial. Isso se deve a falta de experincia na maioria dos ambientes, devido ao vicio em determinados caminhos durante os jogos. O pior resultado ficou com o tipo que contava com os valores iniciais. Mostrando que de forma geral a aprendizagem obteve evoluo em relao ao nvel inicial. Identificado o tipo de aprendizagem mais promissor, outros testes foram realizados a fim de observar o comportamento na aprendizagem de mquina em relao ao nmero de partidas. Com isso houve necessidade de aumentar o tamanho da amostragem, assim mais nove mil partidas foram realizadas com aprendizagem de mquina em ambas as cores de peas. Para testar a evoluo no nvel de jogo, as partidas entre os tipos de aprendizagem como foi realizado no teste anterior foram descartados, visto que os demais tipos passariam a ser adversrios triviais em curto prazo. Ento os testes foram realizados contra outros quatro programas de xadrez, estando esses entre os com maiores nveis de jogo no panorama atual, segundo a Associao de Xadrez e Informtica (SSDF). Sendo esses: Rybka 2.3, Hiarcs 11.1, Junior 10.1 e Fritz 10 (com os nmeros das respectivas verses). A cada dois mil jogos realizados dentro da amostragem de dez mil partidas, uma srie de dez partidas foi realizada contra os outros quatro programas, visando identificar o nvel de jogo atual, demonstrando a evoluo do nvel de jogo em relao ao nmero de partidas. Os resultados

83

obtidos jogando contra os outros softwares em relao ao nmero de partidas so apresentados na tabela 21.
Tabela 21 Aproveitamento contra outros programas

0 Rybka 2.3 Hiarcs 11.1 Junior 10.1 Fritz 10 0% 0% 0% 0%

2000 5% 10% 10% 15%

4000 15% 15% 10% 20%

6000 20% 25% 15% 20%

8000 20% 35% 15% 25%

10000 20% 35% 20% 30%

No grfico 1 h a representao percentual da evoluo realizada pela aprendizagem em relao ao nmero de partidas.
Grfico 1 Evoluo do nvel do jogo em relao ao nmero de partidas

30,00% 26,25% 25,00% 20,00% 20,00% 23,75%

15,00% 10,00% 10,00%

15,00%

5,00% 0,00% 0 0,00% 2000 4000 6000 8000 10000

Ao analisar o grfico 1, pode-se observar que quanto maior o nmero de partidas, melhores so os resultados obtidos, em conseqncia da evoluo por meio da aprendizagem de mquina. Contudo esse teste demonstra a maior desvantagem do tipo de aprendizado utilizado, a

84

velocidade de convergncia do aprendizado, j que necessria extensiva explorao do espao de estados possveis. Sendo o xadrez um bom domnio para explorao da inteligncia da mquina, pois pode ser colocado contra um adversrio humano, dando uma clara demonstrao da habilidade da mquina nesse tipo de processo, constituindo assim uma tarefa estruturada na qual muito fcil medir o sucesso e o fracasso. Aps a evoluo obtida atravs de dez mil partidas, os testes foram realizados contra jogadores humanos, sendo esse o mais importante dos testes segundo os fundamentos da inteligncia artificial, que freqentemente relacionado com a inteligncia humana. Para tal comparao foram realizadas cinqenta partidas contra jogadores humanos de nvel iniciante e intermedirio. O grfico 2 apresenta os resultados obtidos.
Grfico 2 Resultados contra jogadores humanos

Vitrias Empates Derrotas

Jogando contra jogadores humanos o algoritmo se mostrou eficiente quase que na totalidade da amostra. Obtendo vitria em 84% dos casos, sendo derrotado em 12% e empatando em 4%.

85

Captulo 6 Concluses

Neste trabalho foi apresentada uma metodologia de criao de um programa capaz de jogar xadrez, utilizando tcnicas de inteligncia artificial, em que so empregadas diversas tcnicas conducentes melhoria de jogo. Atravs dos resultados obtidos, pode-se observar que existem pontos a melhorar na aprendizagem de mquina, como a necessidade de muitas partidas para que haja um aprendizado satisfatrio. Podendo ser utilizado uma classe de algoritmos que permita o uso de heursticas para acelerao do aprendizado de mquina. Tal mtodo pode vir a melhorar a eficincia, pois limita o espao de busca que o agente aprendiz explora. Neste sentido, a heurstica funciona, no aprendizado, de maneira similar aos algoritmos de busca informada. Tambm necessrio trabalhar mais a questo da tendncia que o sistema apresenta em determinados tipos de posies durante a partida. Apesar de ocorrer ocasionalmente, apenas quando so jogadas muitas partidas contra o mesmo adversrio, preciso que se explorem outros caminhos, mesmo que esses sejam aparentemente inferiores, para que o aprendizado de mquina abranja o maior nmero de estados possveis. No entanto, as tcnicas de busca utilizadas se mostraram muito eficientes tanto em um jogo de xadrez, como para outros algoritmos baseados em ambientes multiagentes concorrentes, ou seja, um ambiente com mais de um agente no qual as metas desses esto em conflito. A metodologia apresentada nesse trabalho pode ser utilizada tambm para a criao de uma viso comum de conhecimentos sobre as tcnicas de programao para o jogo de xadrez, incluindo as razes cientficas, bem como os mtodos, tcnicas e algoritmos utilizados em programas de xadrez modernos.

86

Alm das implementaes visando melhorar a aprendizagem de mquina, o software ser disponibilizado gratuitamente na internet, contando com uma base de conhecimento centralizada permitindo que atualizaes nos valores da avaliao esttica sejam refletidas automaticamente para todos os clientes.

87

Captulo 7 Bibliografia

[1] Moravec, Hans. Today's Computers, Intelligent Machines and Our Future. Stanford University, 2000. [2] Levy, D.; Newborn M. How Computers Play Chess. Computer Science Press, 1991. [3] Sabbatini, Renato. Um jogo muito humano. Jornal Correio Popular Campinas, 1992. [4] Jordain, P.; Breslau, M. Condensed computer encyclopedia. McGrawHill, 1969. [5] Lister, Schaeffer; Schaeffer, J. An Analysis of the Conspiracy Number Algorithm. University of Alberta, 1991. [6] Knuth, D. The Art of Computer Programming. Addison-Wesley Publishing Comp, 1981. [7] Shannon, Claude. Programming a Computer to Play Chess. Bell Labs report, 1949. [8] Fred, A. Teoria de Jogos - Algoritmo Minimax e Alfa-Beta. AED, 2002. [9] Jaap, H.; Iida, Hiroyuki; Heinz, Ernst. Advances in Computer Games: Many Games, Many Challenges. Springer, 2003. [10] Stuart, Russel; Norvig, Peter. Artificial Intelligence: A Modern Approach. Prentice Hall, 2002. [11] Jim Jubak. In the Image of the Brain: Breaking the Barrier Between Human Mind and Intelligent Machines. Press, 1994. [12] Hsu, Feng-Hsiung. Behind Deep Blue: Building the Computer that Defeated the World Chess Champion. Princeton University Press, 2002. [13] Goodman, David. Man Versus Machine: Kasparov Versus Deep Blue. H3 Inc, 1997.

88

[14] Pandolfini, Bruce. Kasparov and Deep Blue: The Historic Chess Match Between Man and Machine. Fireside, 1997. [15] Yamamoto, Flvio; Villa, Lucas. Inteligncia Artificial em Jogos Eletrnicos Interativos. Universidade de So Paulo - EPUSP, 2002. [16] Gillogly, J. Performance Analysis of the Technology Chess Program. PhD thesis, Carnegie Mellon University, 1978. [17] Fudenberg, Drew; Jean Tirole. Game Theory. MIT Press, 1991. [18] Dutta, Prajit. Strategies and Games: Theory and Practice. MIT Press, 2000. [19] Rich, Elaine; Knight, Kevin. Inteligncia Artificial. Makron Books, 1994. [20] Brockington, M.; Schaeffer, J. The APHID Parallel Alpha-Beta Search Algorithm. Technical Report, University of Alberta, 1996. [21] Anantharaman, T. A Statistical Study of Selective Min-Max Search. PhD thesis, Carnegie Mellon University, 1991. [22] Plaat, A.; Schaeffer, J. New Advances in Alpha-Beta Searching, 1996. [23] Hyatt, R. M. Cray Blitz A Computer Chess Playing Program. Msc thesis, University of Southern Mississippi, 1993. [24] Slate, D.; Atking, L. Chess 4.5 - The Northwestern Univ. Chess Program. Springer-Verlag, 1977. [25] Schaeffer, J. The History Heuristic and Alpha-Beta Search Enhancements in Practice. University of Alberta, 1990.

89

APNDICE A GLOSSRIO

A seguir sero apresentados alguns termos utilizados para o jogo de xadrez, no seguinte padro: termo e definio. Abertura: a fase inicial do jogo, compreendendo os primeiros dez a quinze lances de uma partida. Ala: Cada uma das metades em que se divide idealmente o tabuleiro; o mesmo que flanco. Ala da dama: a metade vertical do tabuleiro onde esto as damas na posio inicial. Ala do rei: a metade vertical do tabuleiro onde esto os reis na posio inicial. Ameaa: Agresso iminente a um ponto qualquer, exigindo providncias defensivas imediatas. Anlise: Estudo pormenorizado das conseqncias de uma posio. Ataque: Aproveitamento de iniciativa, com a produo de ameaas e golpes tticos. Bloqueio: Obstruo do raio de ao de peas adversrias. Brancas: O conjunto de peas manejadas pelo primeiro jogador. Cadeia de Pees: Linha de pees apoiados entre si, e cujos extremos so a base e o posto avanado. Capturar: a retirada da pea, tambm chamado de tomar ou ganhar a pea. Casa: Cada um dos 64 quadrculos em que se divide o tabuleiro de xadrez. Centro: O pequeno quadrado formado pelas casas 4R, 4D, 5R e 5D de cada lado. Coluna: Oito casas seguidas do tabuleiro na vertical. Coluna aberta: Coluna a que faltam os pees, e por onde as peas maiores podem penetrar em territrio inimigo.

90

Combinao: Sucesso de lances passvel de preciso exata, envolvendo entrega de material e acarretando transformao violenta na posio. Coroao: Quando o peo atinge a oitava casa ele pode se transformar em qualquer outra pea, o mesmo que promoo. Defesa: A contrapartida do ataque. Nome que se d srie de lances ou as variantes de aberturas consideradas sob o ponto de vista das peas pretas. Desenvolvimento: Processo pelo qual as peas entram em jogo ativo. Diagonal: Qualquer srie de casas unidas de uma mesma cor formando um ngulo de 45. Empate: Partida sem vitria para qualquer dos lados. Estratgia: Princpios gerais que regem a formulao de um plano de jogo. Utilizao de noes tais como desenvolvimento harmnico, domnio central, estruturao dos pees, etc. Fases da Partida: So trs: Abertura, meio-jogo e final. Fila: Cada uma das oito linhas horizontais de casas, que vo da base de um jogador a outro. O mesmo que fileira. Final: A ltima fase de uma partida, quando o escasso nmero de peas permite a transformao em vitria da vantagem porventura obtida por um dos lados, ou ento o empate se apresenta evidente. Flanco: Cada um dos setores, esquerda e direita, no tabuleiro. O primeiro o flanco da dama e o segundo o flanco do rei. O mesmo que ala. Grande diagonal: As duas diagonais, uma de cada cor, 1TD-8TR e 1TR8TD. Horizontal: uma sucesso de 8 casas horizontais. Igualdade: Posio que apresenta equilbrio ou possibilidades recprocas. Inferioridade: Situao causada pelo desnivelamento posicional ou material, a favor do adversrio. Jogada: Translado de uma pea de uma casa para outra. Jogador: Enxadrista a quem corresponde o lance. Lance: Movimento de pea no tabuleiro, composto por uma jogada das peas brancas e outra jogada das peas negras.

91

Linha: Seqncia retilnea de casas, em diagonal, horizontal ou vertical. Na teoria do xadrez, chama-se linha a qualquer seqncia estudada, a partir de uma posio. Maioria de pees: Situao numrica favorvel em um setor ou flanco, de um bando sobre outro. Se o total de pees no tabuleiro for igual, a maioria em uma ala acarretar minoria na outra, e vice-versa. A maioria de pees o primeiro passo para se conseguir um peo passado. Manobra: Sucesso de lances integrando um plano estratgico, com o fito de obter alguma vantagem posicional. Match: Competio entre dois jogadores. Mate: Tratamento abreviado do termo "xeque-mate". o lance final da partida, o objetivo final do jogo. Material: O valor positivo e visvel as peas. Diz-se que ganhou material o lado que obteve vantagem numrica ou de fora operacional. Meio-de-jogo: A fase intermediria da partida, entre a abertura e o final; a ocasio em que as peas desempenham plenamente sua capacidade ofensiva e defensiva. Chama-se tambm "meio-jogo". Mobilidade de uma pea: o raio de ao de uma pea. Objetivo: Alvo perseguido no combate. Obstruo: Ganho de espao, pela confrontao direta entre os reis. Oponente: O mesmo que adversrio; contrrio. Partida: Termo genrico que se usa para o conjunto de lances de xadrez que vai desde o movimento inicial at o ltimo. Peo atrasado: O que se encontra retaguarda de seus vizinhos. Peo dobrado: Peo situado em coluna onde j existe outro do prprio bando. Peo isolado: O que no conta com outro em coluna contgua, para eventual apoio. Peo passado: O que no tem mais peo contrrio para det-lo, seja na mesma coluna ou nas colunas adjacentes. Peas: So os elementos dinmicos do xadrez.

92

Plano: Idia ou conjunto de idias passveis de aplicao em uma partida com o fim de venc-la, ou em manobra destinada a conseguir algum tipo de vantagem em uma posio dada. Pretas: O conjunto de peas manejadas pelo segundo jogador. Primeiro jogador: Jogador que controla as peas brancas. Promoo: Transformao do peo em pea, ao alcanar a 8 casa. Raio de ao: Capacidade que caracteriza cada pea em jogo. Roque: um movimento de proteo do rei e de desenvolvimento. Sendo o nico movimento do xadrez em que so movidas duas peas ao mesmo tempo, o rei e a torre. Roques contrrios: Ocorre quando os jogadores realizam o roque em alas contrrias. Segundo jogador: O jogador das peas pretas. Tabuleiro: Quadrado dividido em 64 quadrados menores (8x8) onde se desenvolve o jogo. Ttica: Elemento caracterstico de posies complexas ou tensas, em que uma ameaa dupla, um golpe de surpresa ou um sacrifcio alteram o equilbrio ou desequilbrio reinantes. Teoria: Srie de conhecimentos e estudos pertinentes a todas as fases do xadrez. Vantagem: Predomnio de qualquer tipo obtido durante a partida; pode ser de ordem posicional ou material. Xeque: Ataque de uma pea contra o rei adversrio. Xeque-mate: Situao do rei quando no pode desviar-se, ser protegido ou submeter a captura uma pea que d xeque.

93

APNDICE B MANUAL DO USURIO

A seguir ser apresentado o manual do usurio, com instrues passo a passo das principais funcionalidades do sistema. Este manual tem como objetivo informar aos usurios os

conhecimentos bsicos necessrios utilizao desse sistema.

Sumrio
1. Instalao............................................................................................94 2. Partida.................................................................................................97 2.1 Humano versus Mquina..................................................................97 2.2 Mquina versus Mquina..................................................................98 3. Visualizar o tabuleiro...........................................................................98 4. Posio inicial......................................................................................98 5. Manipulao do tabuleiro....................................................................98 5.1 Colocar pea.....................................................................................99 5.2 Retirar pea.....................................................................................100 6. Listar movimentos.............................................................................101 7.Configuraes....................................................................................102 7.1 Definir profundidade........................................................................102 7.2 Base de conhecimento....................................................................102

94

1. Instalao do Sistema
1. (Figura 1) Selecione o idioma desejado e clique sobre o boto OK.

Figura 1 - Instalao, seleo do idioma

2.

Clique sobre o boto avanar. (Figura 2)

Figura 2 Assistente de Instalao

95

3.

Selecione a pasta no qual o sistema ser instalado e

clique sobre o boto Avanar. (Figura 3)

Figura 3 Pasta de destino

4. (Figura 4)

Selecione os componentes que devero ser instalados.

Figura 4 Instalao de recursos

96

O assistente de instalao fornece algumas opes de bases de conhecimento que ser utilizada pela avaliao esttica. Selecione a base de sua preferncia e clique sobre o boto Avanar.

5.

Defina o nome da pasta no qual sero criados os atalhos

no menu iniciar e clique sobre o boto Avanar. (Figura 5)

Figura 5 Criar atalho no menu iniciar

6.

Confirme os dados sobre a instalao. Estando correto

clique sobre Avanar. 7. 8. Aguarde enquanto o software instalado Aps a finalizao da instalao clique sobre o boto

Concluir. (Figura 6)

97

Figura 6 Instalao concluda

2. Partida
O sistema dispe de dois modos de jogo: humano versus o sistema e o sistema versus si mesmo.

2.1 Humano versus Mquina


1. 2. 3. Selecione a opo Partida no menu principal. Digite 1. Escolha a opo Humano versus Mquina. Digite 1. Determine quem jogara com as peas brancas. Digite 1

caso deseje jogar com as peas brancas, ou digite 2 para o sistema jogar com as peas brancas.

98

2.2 Mquina versus Mquina


1. 2. 3. Selecione a opo Partida no menu principal. Digite 1. Escolha a opo Mquina versus Mquina. Digite 2. Determine quantas partidas sero jogadas.

3. Visualizar o tabuleiro
H dois modelos de visualizao do estado atual do tabuleiro: exibir o tabuleiro em forma de tabela com as peas representadas por letras, ou exibir o tabuleiro com os valores correspondentes as peas de cada casa na posio atual. 1. No menu principal, selecione a opo Visualizar

tabuleiro, digitando 2. 2. Selecione o modo de visualizao do tabuleiro. Digite 1

para exibir o tabuleiro no modo normal, ou digite 2 para exibir o tabuleiro em formato de matriz com os valores correspondentes as peas.

4. Posio inicial
Para definir o tabuleiro para a posio inicial do jogo: 7 digitando 5. No menu principal, selecione a opo Posio Inicial,

5. Manipulao do tabuleiro
possvel configurar a posio do tabuleiro de modo a ajust-lo conforme as necessidades.

99

Sendo possvel: tirar todas as peas, tirar uma determinada pea e colocar uma determinada pea.

5.1 Colocar pea


possvel colocar qualquer pea em qualquer casa do tabuleiro, a fim de experimentar diversos tipos de posies.

Para isso necessrio fornecer quatro informaes: a pea que ser colocada, a cor da pea, a linha e a coluna onde a pea ser colocada.

1. digitando 3. 2.

No menu principal selecione a opo Colocar Pea,

Defina a pea que ser colocada no tabuleiro digitando o

nmero da opo correspondente. (Figura 7)

Figura 7 Colocar pea

100

3.

Selecione a cor da pea que ser colocada, digitando 1

caso a pea seja branca ou 2 caso a pea seja negra. 4. 5. colocada Defina o nmero da linha em que a pea ser colocada Define o nmero da coluna em que a pea ser

5.2 Retirar pea


Para retirar uma pea especifica do tabuleiro: 1. No menu principal selecione a opo Retirar Pea,

apertando a tecla 4. 2. (Figura 8) Digite o nmero da linha em que a pea se encontra.

Figura 8 Tirar pea

3.

Digite o nmero da coluna em que a pea se encontra.

Para retirar todas as peas presentes no tabuleiro:

101

1. digitando 6.

No menu principal selecione a opo Limpar Tabuleiro,

6. Listar movimentos
Para listar todos os movimentos possveis no estado atual: 1. digitando 8. 2. Selecione a cor da pea no qual se deseja listar todos os No menu principal selecione a opo Listar Movimentos,

movimentos, digite 1 para as peas brancas ou digite 2 para as peas negras. 3. Selecione qual pea deve ter todos os movimentos

listados; Digitando o nmero correspondente a pea escolhida. (Figura 9)

Figura 9 Listar movimentos

102

7. Configuraes
O sistema permite algumas configuraes com o objetivo de permitir a melhor otimizao.

7.1 Definir profundidade


O nvel de profundidade determina a altura da rvore de busca, ou seja, quantas jogadas a frente o sistema ira calcular. Tal nvel de profundidade influencia diretamente no nvel de jogo e o tempo de processamento. Quanto maior a profundidade melhor ser o nvel de jogo, porem maior ser o tempo necessrio para a realizao das jogadas. Assim como uma profundidade muito baixa, o tempo demandado ser menor, conseqentemente o nvel de jogo tambm ser menor. 1. Para definir a profundidade de busca, no menu principal digite 10. 2. Digite o nmero da nova profundidade definida.

7.2 Base de conhecimento


A base de conhecimento fornece os valores que a funo de avaliao esttica utilizara. A base de conhecimento padro definida automaticamente durante o processo de instalao, dentre as bases disponveis. possvel alterar a base de conhecimento que o sistema utilizara, possibilitando o uso de bases criadas por outros usurios (A base de conhecimento definida pela extenso .tcb). Para definir uma nova base de conhecimento o arquivo com a extenso .tcb deve ser copiado para a pasta em que o Tippy Chess foi instalado (normalmente em C:\Arquivos de Programas\Tippy Chess)

Você também pode gostar