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

59
Damas 121778 - Héctor Poblete Rojas Introdução à inteligência artificial

Upload: others

Post on 30-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Damas

121778 - Héctor Poblete Rojas

Introdução à inteligência artificial

Page 2: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 3: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 4: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Problema de IA

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

• Problema de busca

• Maquina imita um humano

Page 5: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 6: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Movimento peça normal

Page 7: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Captura peça normal

Page 8: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Captura obrigatória

Page 9: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Coroação

Page 10: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Coroação

Page 11: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Movimento dama

Page 12: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Captura dama

Page 13: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Capturas seqüenciais

Page 14: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

• Os movimentos possíveis se representam como nodos

• O seguinte movimento será representado como um nodo filho

Analogia: Nodos - Tabuleiros

Page 15: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Analogia: Nodos - Tabuleiros

Tabuleiro

Nodo

Page 16: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Page 17: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Page 18: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Tabuleiro

Nodos

Analogia: Nodos - Tabuleiros

Page 19: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Analogia: Nodos - Tabuleiros

Page 20: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Analogia: Nodos - Tabuleiros

Page 21: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Solução proposta

• Busca com profundidade limitada

• Busca com poda

• Algoritmo minimax

• Função de utilidade

Page 22: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com profundidade limitadaL = 1

Page 23: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com profundidade limitadaL = 2

Page 24: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com profundidade limitadaL = 2

Page 25: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com profundidade limitadaL = 2

Page 26: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com profundidade limitada

• Controlar tempo de busca

• Controlar dificuldade do jogo

Page 27: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com podaLimite = n, expansão = 2

Page 28: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com podaLimite = n, expansão = 2

Page 29: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com podaLimite = n, expansão = 2

Page 30: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Busca com poda

• Busca limitada custosa

• Expande os melhores filhos, melhores jogadas

Page 31: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Utilidade

• Número que determina o valor do tabuleiro

• Permite fazer a poda

• Usado em algoritmo minimax

Page 32: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 33: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 34: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 35: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 36: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 37: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Minimax

Page 38: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

• Escolhe melhor movimento segundo função de utilidade

Minimax

Page 39: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 40: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 41: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

Numero de peças

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

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

Page 42: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 43: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 44: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 45: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 46: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 47: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 48: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 49: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 50: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 51: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 52: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 53: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

• 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

Page 54: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 55: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

• 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

Page 56: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

• 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

Page 57: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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

Page 58: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

• 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

Page 59: Damas - Home | INSTITUTO DE COMPUTAÇÃOrocha/teaching/2011s1/mc906/trabalhos… · •Usa poda alfa-beta, minimax, buscas •IBM 704 •10.000 palavras de memória principal •Processador

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