Busca Contra Adversário ou Jogos

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

IA Importância da IA em jogos Aplicações.
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Lógica Fuzzy Aplicada a Sistemas de Diagnóstico
Sinais e Sistemas – Capítulo 3
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Inteligência Artificial
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
Busca informada (heurística) Parte 2
1 Inventando Funções Heurísticas Como escolher uma boa função heurística h? h depende de cada problema particular. h deve ser admissível não superestimar.
IA em jogos modelagem de comportamento de personagens
Busca Heurística - Informada
Busca Cega (Exaustiva)
Busca Heurística - Informada
Inventando Funções Heurísticas
FACENS – Engenharia da Computação Inteligência Artificial
Solução de problemas por meio de busca
Busca com informação e exploração
Busca A*: exemplo.
Capítulo 3 - Russell e Norvig
Othelo Alunos: Sávio Mendes de Figueiredo
Trabalho de Inteligência Artificial
Buscando Soluções Busca Heurística.
Inteligência Artificial
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.
Marco Antonio Montebello Júnior
INF 1771 – Inteligência Artificial
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Informática Teórica Engenharia da Computação
1 Introdução aos Agentes Inteligentes Flávia Barros.
I Iterated Local Search Helena R. Lorenço, Olivier Martinz
Resolução de problemas por meio de busca
Introdução e Busca Cega
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Introdução aos Agentes Inteligentes Busca Heurística (Informada)
Busca Contra Adversário ou Jogos
Introdução aos Agentes Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistema de equações lineares
Jogo do Nim DADOS Gracivane Pessoa Martha Ferraz Ross Nascimento
Disciplina Inteligência Artificial Defesa de Projeto Período
Jogo do Nim Gracivane Pessoa Martha Ferraz Ross Nascimento
Busca Combinatorial e Métodos de Heurística
Inteligência Artificial
Seleção de atributos Mariana Pinheiro Bento IA368Q.
PUCC 1 Tópicos em Sistemas Inteligentes. PUCC 2 Agenda - Aula 03 Buscas Agentes que Planejam.
Planejamento Ambiental 9º Semestre
Inteligência Artificial Aula 15 Profª Bianca Zadrozny
Resolução de Problemas de Busca
Busca com Informação e Exploração “Busca heurística”
1 Introdução aos Agentes Inteligentes Resolução de Problemas de Busca Flávia Barros.
Inventando Funções Heurísticas
Busca Competitiva Disciplina: Inteligência Artificial
Busca em Espaço de Estados Parte2 Algoritmos de Busca Cega
Ao final desta aula, a gente deve...
1 Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização) Flávia Barros.
Sistemas Inteligentes Algoritmos de Melhorias Iterativas (Otimização)
Sistemas Inteligentes Busca Cega (Exaustiva)
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
CIn- UFPE 1 Resolução de Problemas. CIn- UFPE ? Agente solucionador de problemas O agente reativo Escolhe suas ações com base.
PESQUISA OPERACIONAL II Professor: Dr. Edwin B. Mitacc Meza
IA em Jogos Clássicos Informalmente, a inteligência aplicada em jogos clássicos (xadrez, dama, reversi, etc) consiste em, dada uma configuração do tabuleiro,
Fernando NogueiraTeoria dos Jogos1. Fernando NogueiraTeoria dos Jogos2 Introdução A Teoria dos Jogos trata com situações de tomada de decisão em que dois.
Transcrição da apresentação:

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 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.

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 (perfect information): 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

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

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

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

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

Formulando um jogo – Mais formalmente... Um jogo do tipo two-player, zero-sum, discrete, finite, deterministic, with perfect information é uma quíntupla: (S, I, Succs, T, V), onde: S Um conjunto finito de estados (observação: com informação suficiente para deduzir quem vai jogar em seguida) I O estado inicial, que especifica como o jogo começa Succs Uma função que toma um estado como entrada e retorna um conjunto de estados seguintes possíveis disponíveis para quem vai jogar T Um subconjunto de S que indica os estados terminais: o conjunto de estados para os quais o jogo terminou V Um mapeamento de estados finais para números reais. A pontuação que o jogador A ganha de B (se é negativo então A perde para B) Convenção: Assume-se que A joga primeiro Por conveniência: assume-se turnos alternados: A joga, depois B joga

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

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

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

Algoritmo

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

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)

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

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

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

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)

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

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

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

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”

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

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!

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

Árvore do Jogo Gamão nós de acaso Probabilidades

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

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