Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Documentos relacionados
Enunciados dos Exercícios Cap. 2 Russell & Norvig

Busca competitiva. Inteligência Artificial. Profª. Solange O. Rezende

Departamento de Ciência de Computadores - FCUP Primeiro Teste de Inteligência Artificial / Sistemas Inteligentes (Duração: 2 horas)

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula VI Busca Competitiva

Jogo de Damas. Alunos: Sávio Mendes de Figueiredo Sômulo Nogueira Mafra

Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall.

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Busca Competitiva. Inteligência Artificial. Até aqui... Jogos vs. busca. Decisões ótimas em jogos 9/22/2010

Anatomia de um Motor de Xadrez

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 02

Trabalho Prático. Bruno Coswig Fiss Kauê Soares da Silveira. Disciplina INF Inteligência Artificial. Professor: Paulo Martins Engel

Jogos com Oponentes. March 7, 2018

Problema de Satisfação de Restrições

Problema de Satisfação de Restrições. Problema de Satisfação de Restrições. Grafo de restrições. Exemplo: 4 Rainhas como um PSR

Fundamentos de Inteligência Artificial [5COP099]

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

INTELIGÊNCIA ARTIFICIAL 2008/09

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Implementação e Avaliação do Algoritmo MCTS-UCT para o jogo Chinese Checkers. Jhonny Moreira

Resolução de Problemas. Universidade Católica de Pelotas Engenharia da Computação Disciplina: Inteligência Artificial

CTC-17 Inteligência Artificial Busca Competitiva e Busca Iterativa. Prof. Paulo André Castro

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

OBI2012 Caderno de soluções

Lista 1 Sistemas Inteligentes (INE5633) 2014s2. Cap. 2 - Russel & Norvig - Exercícios selecionados (respostas em azul)

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Ex. 1) Considere que a árvore seguinte corresponde a uma parte do espaço de estados de um jogo de dois agentes: f=7 f=7 f=1 f=2

Inteligência Artificial

Árvore de Jogos Minimax e Poda Alfa-Beta

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Jogos de Tabuleiro e Busca Competitiva

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores Árvores Geradoras de Custo Mínimo 0/16

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

5ª Lista de Exercícios de Programação I

Introdução à Inteligência Artificial. Procura em contextos competitivos jogos (cont.)

Resolução de problemas por meio de busca. Inteligência Artificial. Formulação de problemas. Estratégias de busca

Jogos de Tabuleiro e Busca Competitiva

Jogos. Geralmente o oponente tentará, na medida do possível, fazer o movimento menos benéfico para o adversário.

Técnicas para Implementação de Jogos

Aula 10: Tratabilidade

a) Defina em Prolog iguais/1, um predicado que recebe um estado do jogo e que verifica que todas as pilhas têm o mesmo número de peças.

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

PMR Computação para Mecatrônica

Busca com informação e exploração. Inteligência Artificial. Revisão da aula passada: Heurística Admissível. Revisão da aula passada: Busca A *

Buscas Informadas ou Heurísticas - Parte II

Jogos com Oponentes. espaço de busca muito grande tempo para cada jogada

Inteligência Artificial

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

CEFET/RJ Disciplina: Inteligência Artificial Professor: Eduardo Bezerra Lista de exercícios 01

livro das regras (provisório)

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA (PARTE 1) *Capítulo 3 (Russel & Norvig)

Análise de Algoritmos

Arquitetura e Organização de Computadores

Aula 08. Estruturas de dados Árvore e Grafo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS

Métodos de Busca. Inteligência Artificial. Busca Heurística. Busca Heurística. Prof. Ms. Luiz Alberto Contato:

CEFET/RJ Inteligência Artificial (2017.2) Professor: Eduardo Bezerra Lista de exercícios 03

Redes Neurais (Inteligência Artificial)

Árvores Auto-ajustadas

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Tópicos Especiais: Inteligência Artificial BUSCA COM INFORMAÇÃO E EXPLORAÇÃO

Jogo King Relatório da Melhoria do Trabalho Inteligência Artificial. Tiago Fonseca, ei02100

Inteligência Artificial

PROGRAMAÇÃO DE COMPUTADORES I BCC Aula Prática 15

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

Busca em Profundidade e em Largura

1. Considere a seguinte lista de dicionários na qual os significados dos campos são óbvios:

Inteligência Artificial. 3º Quadrimestre de 2018

Introdução à Inteligência Artificial MAC MAC 415. Exercício Programa 1 Busca

Inteligência Artificial (SI 214) Aula 6 Busca com Adversário. Prof. Josenildo Silva

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Exercícios: Vetores e Matrizes

Os problemas de IA empregam heurísticas, basicamente, em duas situações:

JOGOS LIVRO REGRAS M AT E M Á T I CO S. 11.º Campeonato Nacional

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Algoritmos de retrocesso

Sistemas Baseados em Conhecimento

Busca Heurística - Informada

Alguns Exercícios de Inteligência Artificial

3. Resolução de problemas por meio de busca

PROCURA E PLANEAMENTO

Inteligência Artificial Busca

AED2 - Aula 22 Busca em largura, cálculo de distâncias

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Estruturas de Dados 2

Inteligência Artificial - IA

Classes, Herança e Interfaces

ÁRVORE BINÁRIA DE BUSCA TDA-ABB

Exercícios da cadeira de Inteligência Artificial. Helena Sofia Pinto João Cachopo Daniel Gonçalves Carlos Lopes António Inês Lynce Pedro Matos

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

CIC 111 Análise e Projeto de Algoritmos II

Algoritmos de retrocesso

Árvores Conceitos gerais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

SCC603 Algoritmos e Estruturas de Dados II Prof.a Rosane Minghim 1o sem. 2013

Transcrição:

Anatomia do motor de um programa de xadrez Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Conteúdo Objetivo O que é um motor de xadrez? Arquitetura Entrada e saída Representação do tabuleiro Buscas Função de avaliação

Objetivo Entender como funciona um motor de xadrez. Mostrar como é a implementação de cada componente do programa (somente na monografia).

O que é um motor de xadrez? Um motor de xadrez é um programa capaz de jogar um jogo de xadrez. Recebe uma posição do tabuleiro de xadrez, analisa esta posição, considera um conjunto de movimentos válidos e retorna um movimento que é o melhor possível de acordo com algum critério.

Arquitetura Um motor de xadrez possui quatro componentes principais. Entrada e saída para comunicação. Tabuleiro que contem informações necessárias. Busca para analisar a árvore do jogo. Avaliação que calcula o valor de uma movimentação.

Uma iteração do motor Dado uma posição do tabuleiro, recebe o próximo movimento do oponente. Faz uma busca na árvore do jogo. A cada tempo determinado, calcula a pontuação dos nós folha para decidir o melhor movimento. Se há mais tempo, continua a busca. Devolve o proxima movimento.

Entrada e saída para comunicação Em geral, não possui uma interface gráfica. Recebe comandos pela entrada padrão e devolve respostas para a saída padrão. Para facilitar o uso do programa, conectamos o motor à uma interface gráfica externa.

Interface gráfica A troca de informações do motor com a interface gráfica é feita respeitando um protocolo de comunicação. Os mais usados são: Interface universal de xadrez (UCI, sigla em inglês) e Protocolo de comunicação do motor de xadrez (CECP).

Representação do tabuleiro Para decidir que peça mover, é necessário ter informações sobre o tabuleiro. Precisa de alguma estrutura de dados para representar as posições do tabuleiro. Existem três tipos principais de representação. Centrada nas peças. Centrada nas casas. Híbrida.

Representação centrado nas peças Lista de peças: Mantêm a posição de todas as peças do tabuleiro em uma lista ou vetor. Bitboards: Uma palavra de 64bit para cada tipo de peça. Casa ocupada tem valor 1, caso contrário 0. Para verificar se uma casa está ocupada, basta calcular a conjugação binária com o número binário da casa.

Representação centrado nas casas Tabuleiro 8x8: Mantêm se a casa está ocupada ou não. 0x88 (10001000 em binário): Cada casa é representado pelo número binário 0LLL0CCC, onde LLL é a linha e CCC é a coluna. A operação (casa & 0x88) vale zero se a casa é válida. Exemplo: 01000111 (terceira linha e oitava coluna) 01000111 & 10001000 = 00000000 00101001 (terceira linha e nona coluna) 00101001 & 10001000 = 00001000

Representação híbrida Muitas vezes, por eficiência, é usado mais de uma representação do tabuleiro. Exemplo: Usar lista de peças para obter a casa de uma peça e usar 0x88 para verificar se o movimento é válido.

Buscas Para decidir o próximo movimento a ser feito, o motor consulta uma árvore de busca. Uma árvore de busca é um grafo direcionado com o nó contendo a pontuação desta posição e de quem é a vez, e a aresta representa o movimento feito. A busca é reponsável pela força tática do motor. Pois os programas mais fortes explora mais profundamente a árvore em tempo limitado, isto é, tem mais informações para decidir a melhor movimento.

Aprimoramentos de busca Para um jogo de duas pessoas, é usado a busca minimax. Para melhor eficiência, usamos o algoritmo alfa-beta, que define um intervalo (α,β) para cada nó. Se a pontuação do nó não pertencer em (α,β), a subárvore é removido da árvore.

Aprimoramentos de busca Tabela de transposição: Guarda os resultados de buscas anteriores. Uma transposição significa uma mesma posição de tabuleiro, mas com sequencia de movimentos diferentes. Sempre que a busca encontra uma posição repetida, em vez de continuar, consulta esta tabela para decidir o próximo movimento. Busca em profundidade iterativa: Expande nós de mesma altura para cada iteração. Melhor controle de tempo e facilita a ordenação das arestas a ser visitado na sequencia de melhor movimento.

Função de avaliação A função de avaliação é usada para calcular o valor de cada posição, isto é, a chance de vencer. Para cada nó é calculado o valor e usando este resultado o motor decide o próximo movimento.

Função de avaliação Existem várias funções: Material, que considera a soma do valor das peças do tabuleiro. Mobilidade, que considera o número de movimentos possíveis para um jogador. Estrutura dos peões, que considera a posição de todos os peões. Segurança do rei, que, usando alguns critérios, calcula se o rei está seguro.

Referências T. A. Marsland. Computer chess and search Stuart J. Russell e Peter Norvig. Artificial Intelligence A Modern Aproach. third edition Claude Shannon. Programming a Computer for Playing Chess Chess Programming WIKI - https://chessprogramming.wikispaces.com/, 2014 Wikipedia, the free encyclopedia.