026 heuristica damas
TRANSCRIPT
Universidade Federal do Tocantins
SOLUÇÕES HEURÍSTICAS PARA O JOGO DE DAMAS
Diogo Rigo de Brito GuimarãesAlexandre Tadeu Rossini da Silva
Objetivo
● Implementar soluções heurísticas para o Jogo de Damas e aplicar os algoritmos em um ambiente gráficocapaz de confrontaras soluções.
O Jogo de Damas
● É um jogo disputado em turnos por dois jogadores, em uma matriz quadrada 8x8 (tabuleiro de 64 casas), dispondo de 12 peças para cada jogador.
Introdução
● O desenvolvimento de soluções heurísticas é motivado pelo alto custo computacional de se analisar, via busca cega, todas as possibilidades.
Motivação
● Estudar técnicas heurísticas e metaheurísticas● Damas foi escolhido por possuir características
semelhantes à de problemas mais complexos● Utilizar as técnicas estudadas em problemas
semelhantes– Xadrez– Caixeiro viajante– Passeio do cavalo– Go
Métodos
● Foram utilizados conceitos de teoria dos jogos, heurística (MiniMax com poda Alfa Beta) e metaheurística (algoritmo genético).– Algoritmo genético: Algoritmo evolutivo.– Minimax: Algoritmo de maximização do ganho.
01000110001110010,901010010101010010,800101101010101000,600100110101011010,601010101100101010,500010101010101110,3
Características
● Características do Jogo de Damas:– Simétrico: De mesmo peso para os jogadores.– Soma zero: Competição direta.– Seqüencial: Jogado em turnos.– Informação perfeita e finita: Conhecimento prévio
de todos os movimentos que podem ser feitos.
Algoritmo genético
● Algoritmo evolutivo que usa técnicas inspiradas pela biologia evolutiva como hereditariedade, mutação, seleção natural e recombinação.– Baseiase em uma codificação do conjunto das
soluções possíveis.– Os resultados são apresentados como uma
população de soluções.– Não necessitam de nenhum conhecimento
derivado do problema.– Usa transições probabilísticas.
Implementação por algoritmo genético
● Foi modelado o cromossomo com um conjunto de genes (a peça a ser movida e seu movimento). Cada gene representa um movimento de um jogador.
Implementação por algoritmo genético
● Exemplo de codificação:
47 45 43 4139 37 35 33
31 29 27 25
1723 21 19
15 13 11 97 5 3 1
Implementação por algoritmo genético
● Avaliação do cromossomo (fitness):– Soma( jogada * (número genesíndice) )
● Avaliação do estado do tabuleiro:– Soma(peça jogador*peso) – soma(peça oponente*peso)
4 4 4 44 3 3 3
3 2 2 44 2 1 3
3 1 2 44 2 2 3
3 3 3 44 4 4 4
Peso posicional
5
7
10
Implementação por algoritmo genético
● Para o cruzamento primeiro são selecionados dois indivíduos pelo método da roleta.– Os indivíduos estão ordenados de acordo com a
funçãoobjetivo.– A roleta atribui probabilidades decrescentes de
indivíduos menos aptos serem escolhidos.
População %Indivíduo 1 5 33,33%Indivíduo 2 4 26,67%Indivíduo 3 3 20,00%Indivíduo 4 2 13,33%Indivíduo 5 1 6,67%
Fitness
Implementação por algoritmo genético
● O cruzamento gera dois novos indivíduos e estes recebem o cromossomo dos pais recombinados por um corte.– O Corte pode dividir um gene ao meio ou não.– Na mutação um gene qualquer recebe uma nova
peça.
Minimax
● Pode ser considerado como a maximização do ganho mínimo.
Corte Alfa Beta
● Tem por objetivo reduzir a árvore de busca.
Desenvolvimento
● A fim de aplicar as soluções propostas pelos algoritmos desenvolvidos, foi necessária a criação de um ambiente gráfico.
● Nesse ambiente são feitas as simulações entre os algoritmos propostos e jogadores humanos.
Humano
Algoritmos genético Minimax
Desenvolvimento
● Tanto o ambiente quanto as soluções foram implementadas em C++.– Como biblioteca gráfica foi utilizada SDL.
Testes e resultados
● Não foram realizados testes para quantificar a eficiência e a qualidade das soluções propostas.
● O trabalho encontrase em fase de desenvolvimento.
Teste e resultados
● A solução por algoritmo genético foi proposta a fim de minimizar o tempo de resposta por buscas, mas não obteve resultado satisfatório.
● O resultado foi uma solução com defensiva baixa e ofensiva quase inexistente:– Peças movidas para posições seguras e de forma
ingênua.
Testes e resultados
● A solução por MiniMax com poda Alfa Beta encontrase em desenvolvimento.