damas - home | instituto de computaÇÃorocha/teaching/2011s1/mc906/trabalhos… · •usa poda...

Post on 30-Jun-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Damas

121778 - Héctor Poblete Rojas

Introdução à inteligência artificial

Desafio

• Tabuleiro de damas

• Que movimento fazer?

• Muitos movimentos possíveis com efeitos no futuro

• Os humanos não conhecem com certeza o que pensa o inimigo

Solução

• Implementação do jogo de damas

• Damas brasileiras

– Igual as damas internacionais, mas em tabuleiro 8x8 com 12 peças

• Humano VS Máquina

Problema de IA

• Com uma entrada gera uma saída (movimento) maximizando seu rendimento

• Problema de busca

• Maquina imita um humano

Jogo: Damas

• Tabuleiro 8 x 8

• 2 jogadores

• 12 peças por jogador

• Objetivo: Acabar com peças do inimigo

– Ou oponente sim movimentos

• Regras básicas:

– Peça normal

– Dama

Movimento peça normal

Captura peça normal

Captura obrigatória

Coroação

Coroação

Movimento dama

Captura dama

Capturas seqüenciais

• Os movimentos possíveis se representam como nodos

• O seguinte movimento será representado como um nodo filho

Analogia: Nodos - Tabuleiros

Analogia: Nodos - Tabuleiros

Tabuleiro

Nodo

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Analogia: Nodos - Tabuleiros

Analogia: Nodos - Tabuleiros

Solução proposta

• Busca com profundidade limitada

• Busca com poda

• Algoritmo minimax

• Função de utilidade

Busca com profundidade limitadaL = 1

Busca com profundidade limitadaL = 2

Busca com profundidade limitadaL = 2

Busca com profundidade limitadaL = 2

Busca com profundidade limitada

• Controlar tempo de busca

• Controlar dificuldade do jogo

Busca com podaLimite = n, expansão = 2

Busca com podaLimite = n, expansão = 2

Busca com podaLimite = n, expansão = 2

Busca com poda

• Busca limitada custosa

• Expande os melhores filhos, melhores jogadas

Utilidade

• Número que determina o valor do tabuleiro

• Permite fazer a poda

• Usado em algoritmo minimax

Minimax

Minimax

Minimax

Minimax

Minimax

Minimax

• Usado em jogos entre dois, três ou mais inimigos

• Escolhe melhor movimento segundo função de utilidade

Minimax

Importância da função de utilidade

• Define:

– Uma boa posição das peças

– Boa jogada

– Bom estado do tabuleiro

– Boa combinação de peças

Utilidade

• Numero de peças normais e damas amigas e inimigas

• Peças ameaçadas

• Peças que ameaçam

• Quadros para chegar ao final

Numero de peças

peça normal: 3Peça Dama: 9

U = 3+3+3+3+3-3-9-9-9U = -15

Peças ameaçadas

peça normal: 3Peça Dama: 9- Ameaça: 1 ou 3

U = 3+3+3+3+3 +1 -3-3-3-3-3U = +1

Pecas ameaçadas

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3

U = 3+3+3+3+3-3-3-3-3-3-3U = +3

Cobertura tipo 1

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3- Cobertura1: 0.5

U = 3+3+3+3+3+0.5-3-3-3-3-3-3-0.5-0.5-0.5U = -1

Cobertura tipo 2

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5- Cobertura2: 1.5 ou 2

U = 3+3+3+3+3+1.5-3-3-3-3-3-3U = +1.5

Cobertura tipo 2

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2

U = 3+3+3+3+3+1.5-3-3-3-3-3-3-1U = -1

Cobertura tipo 2

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2

U = 3+3+3+3+3+1.5-3-3-3-3-3-3U = 0

Bônus 1

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2- Bônus1= 1

U = 3+3+3+3+3+1-3-3-3-3-3-3U = 1

Bônus 2

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2Bônus1= 1- Bônus2 = 2.5

U = 3+3+3+3+3+2.5-3-3-3-3-3-3U = 2.5

Bônus 3

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2Bônus1 = 1Bônus2 = 2.5- Bônus3 = 3.5

U = 3+3+3+3+3+3.5-3-3-3-3-3-3U = 3.5

peça normal: 3Peça Dama: 9Ameaça: 1 ou 3Cobertura1: 0.5Cobertura2: 1.5 ou 2Bonus1 = 1Bonus2 = 2.5Bonus3 = 3.5

U = 3+3+3+3+9-3-3-3-3-3-3U = 6

Bônus 3

Outras soluções: Arthur Samuel

• 1952, IBM

• Jogo de damas

• Aprendeu função de utilidade– Jogava contra ele mesmo

• Começo como um principiante

• Depois de auto-jogar foi melhor que Samuel

• Em 1962 derroto a Robert Nealy, campeão de damas cegas

• Usa poda alfa-beta, minimax, buscas

• IBM 704

• 10.000 palavras de memória principal

• Processador de 0,000001 GHz

Outras soluções: Arthur Samuel

Outras soluções: Jonathan Schaeffer

• Cria Chinook

– Usa poda alfa-beta, minimax, buscas

– Base de dados de 444 bilhões de posições com oito ou menos peças .

• Fase final perfeita

• Em 1994 derroto a Marion Tinsley

– Campeão mundial por 40 anos

• Só perdeu três partidas

– Sofreu seu quarta e quinta derrota

– Chinook foi o novo campeão mundial

Outras soluções: Jonathan Schaeffer

• Melhor movimento em cada momento do jogo– Heurística com ajuda de expertos

• 2007, Mega base de dados– Substitui aprendizagem e heurística por um

sistema de conhecimento perfeito

• Quando oponente joga à perfeição, então empata– Chinook nunca perde

Outras soluções: Jonathan Schaeffer

Estado atual

• Joga maquina VS humano, considerando as regras

• Usuário usa limite y expansão a vontade

• Faze busca limitada, busca com poda

• Usa algoritmo minimax

• Usa função de utilidade

– Função de utilidade incompleta

• Resultado final depende da função

• Falta melhorar usabilidade

• Maquina joga como principiantea b c d e f g h

________________1| 1 0 1 0 1 0 2 0 2| 0 1 0 2 0 2 0 1 3| 1 0 2 0 1 0 2 0 4| 0 0 0 0 0 0 0 0 5| 0 0 0 0 0 0 0 0 6| 0 6 0 6 0 7 0 6 7| 6 0 7 0 6 0 7 0 8| 0 6 0 7 0 7 0 6

Estado atual

Conclusão

• É uma implementação que faze uma busca inteligente

• O resultado dependerá das características de hardware

• Função de utilidade é crítica

• A implementação é possível

• A máquina jogara num nível mediano

top related