220 likes | 476 Views
Busca Competitiva - MiniMax Jogo-da-Velha. Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva. Universidade Federal de Alagoas Mestrado em Modelagem Computacional do Conhecimento. Roteiro. Jogos Busca ou Jogos Tipos de Jogos Incertezas Formulação Funcionamento do jogo
E N D
Busca Competitiva - MiniMaxJogo-da-Velha Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva Universidade Federal de Alagoas Mestrado em Modelagem Computacional do Conhecimento
Roteiro • Jogos • Busca ou Jogos • Tipos de Jogos • Incertezas • Formulação • Funcionamento do jogo • Jogo-da-velha • MiniMax • Função de Avaliação • Poda Alfa-Beta
Jogos • Uma forma de um ambiente multi-agente. • Qualquer agente dado precisará considerar as ações de outros agentes e o modo como essas ações afetam seu próprio bem-estar. • Ambientes cooperativos X competitivos • Ambientes competitivos levam a problemas de confrontos, também conhecidos como jogos. • Por que estudar os jogos? • Divertido. • Fácil de representar com os agentes sendo restritos a um pequeno número de ações. • Jogos oferecem ... • Engajamento intelectual • Abstração • Medida de desempenho
Busca ou Jogos • Busca – sem adversário • Solução é um método (heurístico, às vezes) de encontrar um objetivo. • Função de avaliação: estimativa do custo do começo até o objetivo passando por um nó. • Jogos – existe pelo menos um adversário • Solução é uma estratégia que especificia um movimento para cada possível resposta do oponente. • Limites de tempo obrigam a uma solução aproximada. • Função de avaliação: avalia quão boa é uma posição de um jogo. • Exemplos: xadrez, damas, jogo da velha, gamão.
Presença de um adversário Não se sabe o que o adversário fará até que ele o faça Complexidade Os jogos mais interessantes são simplesmente complexos demais para serem resolvidos por meios exaustivos (Xadrez tem um grau de expansão de ordem 35) Estratégias de busca Em problemas de busca normais, busca-se uma seqüência de movimentos que maximizem a qualidade da solução para jogos isso não é factível, pois o adversário sempre buscará uma situação que minimize as chances de se chegar à vitória Incertezas devido a ...
Formulação Estado inicial: posições do tabuleiro + de quem é a vez Estado final: posições em que o jogo acaba Operadores: jogadas legais Função de utilidade: valor numérico do resultado (pontuação) Busca: algoritmo minimax Idéia: maximizar a utilidade (ganho) supondo que o adversário vai tentar minimizá-la Minimax faz busca cega em profundidade O agente é MAX e o adversário é MIN Jogos
Funcionamento do Jogo • Dois jogadores : MAX e MIN • MAX começa e os jogadores alternam até que o jogo termine. • O vencedor leva uma recompensa, o perdedor uma penalidade • Jogos como busca: • Estado Inicial • Função Sucessora: lista de movimentos legais. • Teste Terminal: O jogo terminou? • Função de Utilidade: Dá um valor aos estados terminais. Por exemplo, no jogo da velha: • vitória=+1 • derrota=-1 • empate=0. • MAX usa uma árvore de busca para determinar seu próximo movimento.
Grafo de espaço de estados do Jogo-da-Velha Número finito de movimentos que um jogador pode fazer. Cada um dos movimentos produz uma configuração de tabuleiro diferente que permitirá oito respostas possíveis do adversário, e assim por diante. Podemos representar esta coleção de jogadas e respostas possíveis considerando cada configuração de tabuleiro como um nó de um grafo. Os elos do grafo representam as jogadas válidas que levam de uma determinada configuração para uma outra. Estes nós correspondem a diferentes estados do tabuleiro. A estrutura resultante é chamada de um grafo de espaço de estados.
Min(O) x x x x x x x x x x x x x x Max(X) o o o ... o o Min(O) x o x ... x x ... ... ... ... Função de utilidade -1 0 +1 x o x x x ... o x o x o x x x o o o x x o x o o Jogos-da-Velha Max(X)
Passos: Gera a árvore inteira até os estados terminais Aplica a função de utilidade nas folhas Propaga os valores subindo a árvore através do minimax Determinar qual o valor que será escolhido por MAX 12 3 8 2 4 6 14 2 7 MiniMax MAX 3 MIN 3 12 14 2 2
Características: Ideal para jogos determinísticos e com informação perfeita Completo, se a árvore é finita Encontra a estratégia para MAX assumindo que MIN é infalível. Premissa: Os dois jogadores jogam de forma ótima. Problemas: Tempo gasto é totalmente impraticável, porém o algoritmo serve como base para outros métodos mais realísticos Supondo m – profundidade máxima da árvore, b - movimentos Complexidade de tempo: O(bm) Complexidade de espaço: O(bm) (exploração em profundidade) Para melhorar: Substituir a profundidade n de minimax(n) pela estimativa de minimax(n): função de avaliação Podar a árvore onde a busca seria irrelevante: poda alfa-beta MiniMax
X O h = 6 - 5 = 1 h = 4 - 6 = -2 X O O h = 5 - 4 = 1 X Função de avaliação – Jogo-da-velha X X O tem 5 possibilidades de vitória X tem 6 possibilidadesde vitória O O
1 -1 1 -2 Nó inicial 6 – 5 = 1 5 – 5 = 0 6 – 5 = 1 5 – 5 = 0 4 – 5 = -1 5 – 4 = 1 6 – 4 = 2 5 – 6 = -1 5 – 5 = 0 5 – 6 = -1 6 – 6 = 0 4 – 6 = -2 Função de Avaliação MAX MIN MIN MIN
Quando aplicar a função de avaliação? Definir uma profundidade máxima ou iterativa não funciona devido à incerteza inerente ao problema Solução: Procura Tranqüila Idéia: evitar avaliação em situações a partir das quais pode haver mudanças bruscas No caso do jogo da velha, toda posição é tranqüila mas no xadrez não.... (ex. um peça de xadrez pode ser comida) Algoritmo: Se a situação (nó) é “tranqüila”, então aplica a função de avaliação, senão busca até encontrar uma situação “tranqüila” Função de Avaliação
Função: Não expandir desnecessariamente nós durante o minimax Idéia: não vale a pena piorar, se já achou algo melhor Mantém 2 parâmetros: - melhor valor (no caminho) para MAX - melhor valor (no caminho) para MIN Teste de expansão: não pode diminuir (não pode ser menor que um ancestral) não pode aumentar (não pode ser maior que um ancestral) Poda Alfa-Beta
12 3 8 2 14 2 Poda alfa-beta = 3 = 14 = 0 = 12 = 0 = 3 = 3 = 20 = 0 = 20 12 3 MAX 12 3 14 2 2 MIN
Valor Minimax Raiz VALOR-MINIMAX (raiz)= max(min(12,3,8),min(2,x,y), min(14,2,w) = max(3,min(2,x,y),min(14,2,w) = max(3,z,w) onde z<=2 e w<=2 = 3
Referências • RUSSELL, S.; NORVIG, P. Inteligência Artificial. Ed. Campus, 2004. • LUGER, G. inteligência Artificial. Ed. Bookman, 2004 • Resolução de problemas. Disponível em: http://www.ucb.br/prg/Professores/Rogerio/FIA/fia-03-03.ppt Acesso em: 01 de Julho de 2007.