1 / 37

Busca Contra Adversário ou Jogos

Busca Contra Adversário ou Jogos. Adversarial Search or Game playing. Jogos. Em ambientes multiagentes, há pouca previsibilidade Ações dos outros agentes É preciso tratar as contingências Em ambiente competitivos, há conflito de objetivos Ex. negociação em comércio eletrônico

Download Presentation

Busca Contra Adversário ou Jogos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Busca Contra Adversário ou Jogos Adversarial Search or Game playing

  2. Jogos • Em ambientes multiagentes, há pouca previsibilidade • Ações dos outros agentes • É preciso tratar as contingências • Em ambiente competitivos, há conflito de objetivos • Ex. negociação em comércio eletrônico • Nestes casos, temos “Busca contra adversário, ou simplesmente “jogo” • Em economia, na “teoria dos jogos”, considera-se um “jogo” qualquer ambiente multiagente onde o impacto de um agente sobre os outros é considerado “significativo”, não importa se os agentes são competitivos ou cooperativos.

  3. Jogos – Exercício • Tradicionalmente, a IA interessou-se sobretudo com um tipo particular de jogo • Dois jogadores (Two-player) • Soma-zero (Zero-sum): se um ganha, o outro perde • Discreto (discrete): todos os estados do jogo bem como as decisões possíveis são valores discretos • Finite (finito): somente um número finito de estados e decisões • Determinístico (deterministic): sem “lançamento de dados” • Observável (perfectinformation): observável por ambos os jogadores • Histórico • Xadrez: desde anos 50, hoje atingiu nível de mestre • Damas e Othelo: hoje, melhor que qualquer humano • Gamão: hoje, nível de campeão • Go, nível amador

  4. Exercício: Quais desses são jogos: two-player, zero-sum, discrete, finite, deterministic, withperfectinformation Fonte: http://www.cs.cmu.edu/~awm/tutorials

  5. Exercício: Quais desses são jogos: two-player, zero-sum, discrete, finite, deterministic, withperfectinformation Fonte: http://www.cs.cmu.edu/~awm/tutorials

  6. Jogos • Aplicações atrativas para métodos IA desde o início. • Sinônimo de inteligência • Ações bem definidas e ambiente acessível • Abstração (representação simplificada de problemas reais) • Porém desafiador: • Complexidade • Xadrez: 35 movimentos possíveis por turno, 25 jogadas por jogador por partida => 3550 10154 (1040 nós distintos) • Incerteza devido ao outro jogador; • Problema “contingencial”: agente deve agir antes de completar a busca

  7. Formulando um jogo • Elementos essenciais da formulação de um jogo • Estado inicial: posições do tabuleiro + de quem é a vez • Estado final: posições em que o jogo acaba • Operadores: jogadas legais para um dado estado da partida • Função de utilidade (objetivo ou payoff): valor numérico para os estados finais (pontuação) • Xadrez = +1, 0, -1; gamão = [-192,+192] • Busca: algoritmo minimax • Idéia: maximizar a utilidade (ganho) supondo que o adversário vai tentar minimizá-la (todos jogam otimamente!) • O agente é MAX e o adversário é MIN • Minimax faz busca cega em profundidade

  8. Formulando um jogo – Mais formalmente... • Um jogo do tipo two-player, zero-sum, discrete, finite, deterministic, withperfectinformationé uma quíntupla: (S, I, Succs, T, V), onde: Convenção: Assume-se que A joga primeiro Por conveniência: assume-se turnos alternados: A joga, depois B joga

  9. Formulando um jogo • Busca: algoritmo minimax • Idéia: maximizar a utilidade (ganho) supondo que o adversário vai tentar minimizá-la (todos jogam otimamente!) • O agente é MAX e o adversário é MIN • Minimax faz busca cega em profundidade

  10. x x x x x x x x x x x x x x o o o ... o o x o x ... x x ... ... ... ... x o x x x ... o x o x o x x x o o o x x x o o Função utilidade -1 0 +1 Jogo da velha (min-max) Max(X) Min(O) Max(X) Min(O)

  11. Algoritmo Minimax • Passos • Gera a árvore inteira até os estados terminais. • Aplica a função de utilidade nas folhas. • Propaga os valores dessa função subindo a árvore através do minimax • Determinar qual o valor que será escolhido por MAX • Formalmente: o valor minimax de um nó n é dado por • Minimax-Value(n) = Utility(n), se n é terminal maxssucesssors(n)Minimax-Value(s), se n é um nó Max minssucesssors(n)Minimax-Value(s), se n é um nó Min

  12. Algoritmo

  13. Críticas • É completa e ótima mas... • Problemas • Tempo gasto é totalmente impraticável, porém o algoritmo serve como base para outros métodos mais realísticos. • Complexidade: O(bm). • Para melhorar (combinar duas técnicas) • Podar a arvore onde a busca seria irrelevante: poda alfa-beta (alfa-beta pruning) • Substituir a profundidade n de min-max(n) pela estimativa de min-max(n): função de avaliação

  14. Alpha-Beta Pruning (poda alfa-beta) • Função: • Não expandir desnecessariamente nós durante o minimax (mas devolvendo o mesmo resultado) • Idéia: não vale a pena piorar, se já achou algo melhor • Mantém 2 parâmetros •  - melhor valor (mais alto) encontrado até então para MAX •  - melhor valor (mais baixo) encontrado até então 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)

  15. [-∞,+∞] O melhor para MIN é 3e para MAX é +∞ [-∞,3] B B [-∞,+∞] A [-∞,3] Nada mudou... 3 12 Lembrar que min-max faz busca em profundidade Alfa-Beta A 3

  16. [-∞,2] C B B [3,+∞] A Não vale mais a pena para MAX explorar C, porque MIN vai escolher no máx. 2e MAX já tem 3 [3,3] 3 12 2 8 Alfa-Beta [3,+∞] A [3,3] Agora dá para saberque MIN vai escolher no máx. 3 3 12 8

  17. D C C D B B [3,3] A [3,3] [-∞,2] [2,2] 3 12 2 5 2 8 14 Alfa-Beta [3,14] A Realisticamante, 14 é o melhor para max por enquanto [3,3] [-∞,2] [-∞,14] 3 12 2 8 14

  18. Balanço da poda alfa-beta • Poda não afeta o resultado final • Com um ordenamento perfeito das jogadas, complexidade = O(bm/2) • Bom exemplo de raciocínio sobre a relevância de se cálcular coisas (forma de meta-raciocício)

  19. Funções de Avaliação • Reflete as chances de ganhar: baseada no valor material • ex. valor de uma peça independentemente da posição das outras • Exemplo: Função Linear de Peso de propriedade do nó: • w1f1+w2f2+...+wnfn • Ex. Os pesos (w) no xadrez poderiam ser o tipo de pedra do xadrez (Peão-1, ..., Rainha-9) e os (f) poderiam ser o número de cada peça no tabuleiro. • Escolha crucial: compromisso entre precisão e eficiência

  20. X X 0 tem 5 possibilidades X tem 6 possibilidades X 0 0 0 h = 6 - 5 = 1 0 h = 4 - 6 = = -2 X 0 h = 5 - 4 = 1 X Função de avaliação (h) para o jogo da velha: sugestões?

  21. Uso da Funções de Avaliação Minimax de duas jogadas (two-ply) aplicado à abertura do jogo da velha

  22. 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 (Quiescence search): • 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 a 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”

  23. E aí: é útil mesmo? • Ainda pode ser complexo... • bm = 106, b=35  m=4 • Olhar para frente 4-ply (quatro lances) é pouco para um nível profissional! • 4-ply ≈ novato humano • 8-ply ≈ PC típico, mestre humano • 12-ply ≈ Deep Blue, Kasparov

  24. Jogos com elementos de acaso • Há jogos com elementos de imprevisibilidade maior do que os tratados • Ex. gamão • Não sabemos quais são as jogadas legais do adversário • A árvore de jogos (game tree) usada não vai servir!

  25. Jogos com elementos de acaso • Nova árvore de jogos • Inclui nós de acaso, além dos nós MAX e MIN • Os ramos dos nós de acaso, correspondem ao resultados do jogar dos dados do gamão, por exemplo • Cada ramo pode ter uma probabilidade associada • Não podemos mais falar de valor-minimax de um nó, mas sim de valor-minimax esperado (expectiminimax value) • Expectiminimax (n) = Utility(n), se n é terminal maxsSucesssors(n) Expectiminimax(s), se n é um nó Max minsSucesssors(n) Expectiminimax(s), se n é um nó Min sSucesssors(n) P(s).Expectiminimax(s), se n é um nó de acaso

  26. Árvore do Jogo Gamão nós deacaso Probabilidades

  27. Conclusões • Jogos é uma área excitante para se trabalhar • Ela ilustra várias questões importantes da IA • A perfeição é impossível => é preciso aproximar • Uma boa idéia é pensar sobre o que pensar

  28. Fontes • AIMA: Ler capítulo “Adversarial Search” • Tutorial “Game Tree Search Algorithms, including Alpha-Beta Search”, disponívelemhttp://www.autonlab.org/tutorials/

More Related