Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva Universidade Federal de Alagoas Mestrado...
Transcript of Mozart de Melo Alvez Júnior Rosângela Teixeira da Silva Universidade Federal de Alagoas Mestrado...
1
Busca Competitiva - MiniMaxJogo-da-Velha
Mozart de Melo Alvez JúniorRosângela Teixeira da Silva
Universidade Federal de Alagoas
Mestrado em Modelagem Computacional do Conhecimento
2
RoteiroJogos
Busca ou JogosTipos de JogosIncertezasFormulação
Funcionamento do jogoJogo-da-velhaMiniMaxFunção de AvaliaçãoPoda Alfa-Beta
3
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
4
Busca ou JogosBusca – 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árioSoluçã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.
5
Tipo de Jogos
Determinístico Baseado em Sorte
Informação Perfeita Xadrez, Damas,Jogo da Velha
Gamão, Banco Imobiliário
Informação Imperfeita
Pôquer, Palavras Cruzadas, Guerra
6
Incertezas devido a ...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
7
JogosFormulação
Estado inicial: posições do tabuleiro + de quem é a vez
Estado final: posições em que o jogo acabaOperadores: jogadas legaisFunçã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 profundidadeO agente é MAX e o adversário é MIN
8
Funcionamento do JogoDois jogadores : MAX e MINMAX começa e os jogadores alternam até que o jogo termine.O vencedor leva uma recompensa, o perdedor uma penalidade Jogos como busca:
Estado InicialFunçã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.
9
Grafo de espaço de estados do Jogo-da-Velha1. Número finito de
movimentos que um jogador pode fazer.
2. Cada um dos movimentos produz uma configuração de tabuleiro diferente que permitirá oito respostas possíveis do adversário, e assim por diante.
3. Podemos representar esta coleção de jogadas e respostas possíveis considerando cada configuração de tabuleiro como um nó de um grafo.
4. Os elos do grafo representam as jogadas válidas que levam de uma determinada configuração para uma outra.
5. Estes nós correspondem a diferentes estados do tabuleiro. A estrutura resultante é chamada de um grafo de espaço de estados.
10
Jogos-da-Velha
... .........
Max(X)
x xx x x
x
x
x x
Min(O)
x o ...x o x ox x
xMin(O)
x o x o xo ...Max(X)
-1 0 +1 Função de utilidade...x o x x o xx o x
x xxx x
xoo
o oo oo
11
MiniMaxPassos:
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
1412 23
12 3 8 2 4 6 14 2 7
MAX 3
2MIN
12
MiniMaxCaracterí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
13
Propriedades do Minimax
Critério Minimax
Completo? Sim
Tempo O(bm)
Espaço O(bm)
Ótimo Sim
15
Função de avaliação – Jogo-da-velhaX
OX tem 6 possibilidades
de vitória
X
O
O tem 5 possibilidadesde vitória
X
Oh = 6 - 5 = 1
X O h = 4 - 6 = -2 X
Oh = 5 - 4 = 1
16
Função de AvaliaçãoNó inicial
1
-1 1
-2
5 – 6 = -1 6 – 6 = 05 – 5 = 0 4 – 6 = -25 – 6 = -1
6 – 4 = 26 – 5 = 1 5 – 5 = 05 – 5 = 0 4 – 5 = -16 – 5 = 1 5 – 4 = 1
MAX
MIN
MIN
MIN
17
Função de AvaliaçãoQuando 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”
18
Poda Alfa-BetaFunção: Não expandir desnecessariamente nós
durante o minimaxIdéia: não vale a pena piorar, se já achou algo
melhorManté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)
19
Poda alfa-beta = 0 = 20
14
12
2123
12 3 8 2 14 2
MAX 3
2MIN
= 0 = 12
= 0 = 3 = 3 = 20
= 3 = 14
20
Valor Minimax RaizVALOR-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
21
ReferênciasRUSSELL, S.; NORVIG, P. Inteligência
Artificial. Ed. Campus, 2004.LUGER, G. inteligência Artificial. Ed.
Bookman, 2004Resoluçã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.
22