Autores: Rafael Renato

Slides:



Advertisements
Apresentações semelhantes
Prof. José Junior Barreto TEORIA DOS DETERMINANTES
Advertisements

João Luiz Fernandes e Aura Conci Universidade Federal Fluminense
Inteligência Artificial
5º CAMPEONATO BRASILEIRO OFICIAL DE CUBO MÁGICO
ANA PAULA FELIX ANDREI RIGOBELI JAQUELINE SAMY
Circuitos Lógicos e Organização de Computadores Capítulo 4 – Implementações Otimizadas de Funções Lógicas Ricardo Pannain
Aprendo a Dividir.
Triângulos Triângulos Triângulos Triângulos Abre em «Vista normal»
Escolhe a opção que julgues ser a correcta!
O TABULEIRO de xadrez na posição inicial
Damas3D Programação em Lógica Nelson Jorge Silva Rodrigues – ei00070
Nome Data Matemática Calcula as operações. 1 56x3 x 48x2 2x 92x5 x 37x4 x 73x3 x 62x2 x 68x5 x 84x4 x 41x3 x 73x2 x 37x5 x 65x4 x 89x3 x 50x2 x 45x5 x.
Determinantes.
CÁLCULO DA INVERSA DA BASE
CÁLCULO DA INVERSA DA BASE
SISTEMAS DE EQUAÇÕES.
Cobrança Registrada / Cobrança Não Registrada
Curso de ADMINISTRAÇÃO
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Árvore Binária de Busca
IA em jogos modelagem de comportamento de personagens
Transformações Geométricas
MGattass Rotações e Quatérnios. MGattass Objetos compostos hierarquicamente.
esquerda p/ direita,read only
Transformações Geométricas Coordenadas Homogêneas e Rotações.
Estruturas de Dados e Algoritmos
FACENS – Engenharia da Computação Inteligência Artificial
Cobrança Registrada e Cobrança Não Registrada
Decomposição em fatores primos
Busca A*: exemplo.
Othelo Alunos: Sávio Mendes de Figueiredo
Trabalho de Inteligência Artificial
Construção de Compiladores
Universidade Federal de Itajubá
Ernesto F. F. Ramírez e Saide J. Calil
Jogo de Damas Alex Saito Leonardo Bezerra Bruno Rocha Maria Gabriela
Matrizes Definição Mat Fis Qui João 7,0 5,0 6,0 Maria 9,0 4,0
INF 1771 – Inteligência Artificial
Busca Competitiva - MiniMax Jogo-da-Velha
Projeto Jogo da Velha Maria Aparecida Amorim Sibaldo Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva Universidade Federal de Alagoas Mestrado em.
Revisão do conceito de matrizes
INF 1771 – Inteligência Artificial
A álgebra dos números de identificação
MATEMÁTICA UNIDADE 2 Conteúdo: Matrizes Duração: 10 40’ 04/04/13
Busca Contra Adversário ou Jogos
MATRIZES.
workshop nacional de sanidade apícola
UNIVERSIDADE FEDERAL DE UBERLÂNDIA ENGENHARIA CIVIL INTRODUÇÃO À ALGORITMOS Professora: Fabíola Gonçalves.
XADREZ O JOGO DE XADREZ DESENVOLVE A IMAGINAÇÃO, A CONCENTRAÇÃO E CONTRIBUI PARA FORMAR O ESPÍRITO DE INVESTIGAÇÃO, ALÉM DE INSTIGAR A CRIATIVIDADE E DESENVOLVER.
Estruturas de Dados com Jogos
Aula 02 Variáveis, Matrizes, Gráficos
Estruturas de Dados com Jogos
Progressão Geométrica Matrizes Questão nº01  Na P.G., a posição do termo é...
Introdução e Busca Cega
Busca Contra Adversário ou Jogos
Disciplina Inteligência Artificial Defesa de Projeto Período
Conceitos, princípios e sistemas
JOGOS MATEMÁTICOS 1.AvançoAvanço 2.RastrosRastros 3.HexHex.
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Divisão Sonia Regina de Souza Guedes Vamos dividir Vamos dividir por 1 algarismo?
Campus de Caraguatatuba Matemática Discreta 2 – MD 2
 A INSTITUIÇÃO NÃO POSSUI SISTEMA PARA O CONTROLE DOS SEUS CUSTOS, PORTANTO, FARÁ USO DA FERRAMENTA DETACUSTO.  NOSSOS OBJETOS DE CUSTOS SERÃO CONSTRUÍDOS.
Jogo do 24.
Satisfação de problemas restritos (CSP)
Resolução de Problemas de Busca
Busca Competitiva Disciplina: Inteligência Artificial
Evoluir e Formar 4. Autores: Paulo Roque e Márcio Castro.
Xx. x x xxx.
Transcrição da apresentação:

Autores: Rafael Renato Implementação dos Algoritmos Minimax e AlfaBeta aplicados ao Jogo da Velha Autores: Rafael Renato

Introdução Definição do Problema Análise dos Algoritmos Implementação Resultados Discussão

Definição do Problema Jogo com adversário Definir Estado Inicial Grupo de Operadores Teste de terminação Função Utilidade

O Jogo Estado Inicial Grupo de Operadores Teste de Terminação posição atual e uma indicação do próximo estado 06 casas vazias a serem preenchidas intercaladamente Grupo de Operadores movimentos aceitos pelas regras, que o jogador pode fazer Marcar um ´X´ (jogador A) ou um ´0´ (jogador B) em qualquer casa vazia Teste de Terminação define quando o jogo terminou e se houve um ganhador Termina quando uma linha, coluna ou diagonal está totalmente preenchida por ´X` ou ´0´ Função Utilidade analisa quantitativamente uma jogada através de pesos +1 , 0, -1 respectivamente, ganhar, empatar e perder

Árvore de Decisão Tabela 1 Nível Nó (n0 de Jogadas) Resultado 1 2 9 3   Árvore de Decisão Nível Nó (n0 de Jogadas) Resultado 1 2 9 3 9x8 72 4 9x8x7 504 5 9x8x7x6 3.024 6 9x8x7x6x5 15.120 7 9x8x7x6x5x4 60.480 8 9x8x7x6x5x4x3 181.440 9x8x7x6x5x4x3x2 362.880 10 9x8x7x6x5x4x3x2x1   986.410 X Nível 1 Nível 2 Nível 10

MINIMAX 2 7 1 8 2 7 1 8 2 1 2 7 1 8 C.T. = O(b**d) C.E. = O(b*d) 3 4 5 6 2 7 1 8 MAX MIN 3 4 5 6 2 1 2 7 1 8 MAX MIN 3 4 5 6 C.T. = O(b**d) onde b é o Fator de Ramificação e d é a profundidade da árvore C.E. = O(b*d)

AlfaBeta 2 2 7 1 8 A B 3 4 5 6 <=1 2 7 1 8 A B 3 4 5 6 2 2

Implementação seleciona_algoritmo – permite que se escolha qual o algoritmo a ser executado jogada_humana – a inserção dos valores escolhidos pelo humano no programa jogada_maquina – o valor que a máquina escolheu inicializa – a inicialização do algoritmo teste_terminacao – a verificação se a última jogada levou a um ganhador ou a um empate imprime – impressão de cada uma das matrizes para orientação gráfica do humano imprime_vencedor – impressão das mensagens de quem foi o ganhador ou se deu empate (velha) gerar_filhos – a cada jogada é necessário calcular os filhos a paritr daquele nó para fazer a execução dos algoritmos MINIMAX ou ALFABETA avaliacao – verifica se nas folhas o resultado foi 1(´0´ – a máquina ganhou) ‑1(´X´ – o humano ganhou) ou 0 (empate – deu velha) apagar_filhos – a cada jogada temos que apagar os filhos e recomeçar copia - Está função copia a matriz de jogo de um nó para outro com o intuito de propagar uma jogada

Exemplo da Implementação

Resultados Foram realizados 09 testes com o algoritmo MINIMAX e 02 com o algoritmo AlfaBeta

Teste 1 MM Teste 1 Jogadas 1a – Humano 0/0 2a – Máquina 1/1   Jogadas 1a – Humano 0/0 2a – Máquina 1/1 3a – Humano 2/2 4a – Máquina 0/1 5a – Humano 2/1 6a – Máquina 2/0 7a – Humano 0/2 8a – Máquina 1/2 9a – Humano 1/0 10a – Final - Velha X 1 2 3 4 5 6 7 8 9 59.704 1.052 46 4

8 Teste 2 MM   X 1 2 3 4 5 6 7 8 9 549.945 7.331 197 13 1 Teste 2   Jogadas 1a – Máquina 0/0 2a – Humano 1/1 3a – Máquina 0/1 4a – Humano 0/2 5a – Máquina 2/0 6a – Humano 1/0 7a – Máquina 1/2 8a – Humano 2/1 9a – Máquina 2/2 10a – Final - Velha

Teste 3 MM Teste 3 Jogadas 1a – Humano 1/1 2a – Máquina 0/0   Jogadas 1a – Humano 1/1 2a – Máquina 0/0 3a – Humano 1/2 4a – Máquina 1/0 5a – Humano 2/0 6a – Máquina 0/2 7a – Humano 0/1 8a – Máquina 2/1 9a – Humano 2/2 10a – Final - Velha     X 1 2 3 4 5 6 7 8 9 55.504 830 48 4

Teste 4 MM Jogadas 1a – Máquina 0/0 2a – Humano 2/2 3a – Máquina 0/2 X   Jogadas 1a – Máquina 0/0 2a – Humano 2/2 3a – Máquina 0/2   X 1 2 3 4 5 6 7 549.945 7979 4a – Humano 0/1 5a – Máquina 2/0 6a – Humano 1/0 E 1/1 7a – Máquina 1/1 8a – Final – Máquina Ganhou   257 11

Teste 5 MM Teste 5 Jogadas 1a – Humano 0/1 2a – Máquina 0/0   Jogadas 1a – Humano 0/1 2a – Máquina 0/0 3a – Humano 2/2 4a – Máquina 1/1 5a – Humano 1/0 6a – Máquina 0/2 7a – Humano 2/0 8a – Máquina 2/1 9a – Humano 1/2 10a – Final - Velha     X 1 2 3 4 5 6 7 8 9 63.904 1.456 60 4

Teste 6 MM 8 X 1 2 3 4 5 549.945 7.979 173 Teste 6 Jogadas X 1 2 3 4 5 549.945 7.979 173 Teste 6   Jogadas 1a – Máquina 0/0 2a – Humano 2/2 3a – Máquina 0/2 4a – Humano 1/1 5a – Máquina 0/1 6a – Final – Máquina Ganhou

Teste 7 MM X 1 2 3 4 5 6 7 8 9 Teste 7 Jogadas 1a – Humano 1/0 1 2 3 4 5 6 7 8 9 Teste 7   Jogadas 1a – Humano 1/0 2a – Máquina 0/0 3a – Humano 2/2 4a – Máquina 0/2 5a – Humano 0/1 6a – Máquina 1/1 7a – Humano 2/0 8a – Máquina 2/1 9a – Humano 1/2 10a – Final - Velha 63.904 1.456 60 4

Teste 8 MM 8 X 1 2 3 4 5 6 7 549.945 7.979 257 10 Teste 8 Jogadas X 1 2 3 4 5 6 7 549.945 7.979 257 10 Teste 8   Jogadas 1a – Máquina 0/0 2a – Humano 2/2 3a – Máquina 0/2 4a – Humano 0/1 5a – Máquina 2/0 6a – Humano 1/0 E 1/1 7a – Máquina 1/0 8a – Final – Máquina Ganhou

Teste 9 MM Teste 9 X 1 2 3 4 5 6 7 8 9 59.704 1.052 46 4 Jogadas   X 1 2 3 4 5 6 7 8 9 59.704 1.052 46 4   Jogadas 1a – Humano 2/2 2a – Máquina 1/1 3a – Humano 0/0 4a – Máquina 0/1 5a – Humano 2/1 6a – Máquina 2/0 7a – Humano 0/2 8a – Máquina 1/2 9a – Humano 1/0 10a – Final - Velha

Teste 1 AB Teste 1 Jogadas 1a – Humano 0/0 2a – Máquina 1/1   Jogadas 1a – Humano 0/0 2a – Máquina 1/1 3a – Humano 2/2 4a – Máquina 0/1 5a – Humano 2/1 6a – Máquina 2/0 7a – Humano 0/2 8a – Máquina 1/2 9a – Humano 1/0 10a – Final - Velha X 1 2 3 4 5 6 7 8 9 3.463 432 44 4

Teste 2 AB 8 X 1 2 3 4 5 6 7 8 9 25.226 1.193 93 11 1 Teste 2 Jogadas   X 1 2 3 4 5 6 7 8 9 25.226 1.193 93 11 1  Teste 2 Jogadas   1a – Máquina 0/0 2a – Humano 1/1 3a – Máquina 0/1 4a – Humano 0/2 5a – Máquina 2/0 6a – Humano 1/0 7a – Máquina 1/2 8a – Humano 2/1 9a – Máquina 2/2 10a – Final - Velha

Discussão Baseados no resultado dos testes realizados podemos ver que o algoritmo ALFABETA tem expansões muito menores do que o algoritmo MINIMAX (ALFABETA = 25.256, quando a máquina inicia, contra MINIMAX = 549.945 o que nos dá uma ordem de grandeza 20 vezes maior, e ALFABETA = 3.463, quando o humano inicia, contra MINIMAX = 59.704 o que nos dá uma ordem de grandeza 17 vezes maior.)   Um valor que resultou diferente da análise teórica foi, quando a máquina inicia (MINIMAX = 549.945), pois este valor deveria ter dado 986.410. A explicação para esta discrepância vem do fato do algoritmo MINIMAX estar cortando a continuação da geração dos filhos quando algum jogador ganha, não chegando ao nível 10, mas parando no nível 7 ou 5 como visto nos resultados “teste 6” e “teste 8”. Outra análise que podemos fazer é que o jogo da velha tem simetria em torno de algumas posições, portanto não haveria necessidade de se expandir todos os ramos pois estes são simétricos e, utilizando técnicas de álgebra linear tais como rotação e translação, poderíamos chegar ao resultado sem ocupar tanta memória. Este fato pode ser visto comparando os testes 7 e 5 (MINIMAX) e 1 e 10 (MINIMAX), neles podemos ver que no teste 7 a jogada 4/5/6 é invertida do teste 5, jogada 4/5/6, e o resto das posições é igual. O mesmo ocorre para o teste 1 e 10 nas jogadas 1/2/3.