Damas 121778 - Héctor Poblete Rojas Introdução à inteligência artificial
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