Вы находитесь на странице: 1из 7

Busca com Adversários Jogos Clássicos em IA

„ Múltiplos Agentes „ Características “gerais” dos Jogos Clássicos


„ Ambiente Competitivo ‰ Determinísticos, completamente observáveis
‰ Objetivos Conflitantes ‰ 2 Jogadores, turn taking
‰ Jogos de Soma-Zero (Zero-Sum Games)
„ A função de utilidade dos jogadores adversários no final
„ Jogos Clássicos do jogo tem valor igual e oposto.
‰ Xadrez, Damas, Jogo da Velha, Gamão, Go,
Reversi (Othelo), etc...
‰ Um caso especial do conceito matemático de
‰ Sempre foram um grande desafio em IA Teoria dos Jogos

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Jogos Clássicos em IA Árvore do Jogo da Velha


„ Em geral, são problemas difíceis.
‰ Xadrez:
„ Jogadas possíveis: 35 (em média)
„ Tempo de jogo: 50 jogadas, cada jogador
„ Árvore com 35^100 nodos (=10^154). 10^40 distintos
„ Árvore do Jogo
‰ Estado inicial: tabuleiro, primeiro jogador
‰ Função sucessora: <ação, estado>
‰ Teste de fim: chegou a um estado terminal?
‰ Função de utilidade: valor do estado terminal

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Estratégias Ótimas Estratégias Ótimas


„ O movimento do adversário é imprevisível „ Mais formalmente, função recursiva
„ Portanto a estratégia ótima leva ao melhor
resultado considerando que o adversário
sempre faz a melhor jogada possível
„ Algoritmo MiniMax
‰ Jogadas alternam entre Max e Min
‰ Valor MiniMax: utilidade daquele estado
considerando jogadas ótimas
„ Utilidade(s) se s é um nodo terminal
„ Maior MiniMax dos sucessores de s, se s é Max
„ Menor MiniMax dos sucessores de s, se s é Min

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

1
Exemplo: jogo com 2 jogadas Algoritmo MiniMax

„ A estratégia ótima para Max, na verdade é a


melhor solução para o pior caso
„ O que ocorre se Min não jogar otimamente?
‰ Max poderá jogar ainda melhor…
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Algoritmo MiniMax Multiplayer games


„ Faz uma caminhamento em profundidade „ O MiniMax pode ser estendido para jogos com
completo da árvore! múltiplos jogadores
‰ Uso de um vetor de utilidades
„ Se a profundidade é m e em cada estado
existem b jogadas possíveis, a ordem de
complexidade é O(bm)
„ Ou seja esse algoritmo não é prático para
jogos reais
‰ Mas serve para análise matemática e como base
„ Alianças
para algoritmos mais eficientes
‰ Podem ocorrer naturalmente no processo de maximizar a
função de utilidade

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Alpha-Beta Pruning α-β pruning example


„ Problema com o MiniMax
‰ # de estados é exponencial
„ Pruning = Poda
‰ Não examinar grandes partes da árvore,
diminuindo assim o custo
„ Alpha-Beta Prunning
‰ Retorna a mesma ação do MiniMax, mas elimina
caminhos que não influenciam a decisão

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

2
α-β pruning example α-β pruning example

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

α-β pruning example α-β pruning example

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Alpha-Beta Pruning Alpha-Beta Pruning


„ α = o maior valor já
encontrado no caminho
(melhor alternativa p/ MAX)
„ β = o menor valor já
encontrado no caminho
(melhor alternativa p/ MIN)
„ Se v é pior que alpha, MAX
vai evitá-lo

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

3
Alpha-Beta Pruning Alpha-Beta Pruning
„ A eficiência do algoritmo depende da ordem
em que os nodos são examinados
„ Na média, considerando que uma ordenação
boa pode ser feita, o número de nodos a ser
examinado é O(bm/2)
‰ é como se o branching factor fosse reduzido para
√b, ao invés de b
„ 6 ao invés de 35 no xadrez

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Estados Repetidos Decisões Imperfeitas, em Tempo Real


„ Uma causa do crescimento exponencial de „ Minimax mesmo c/ Alpha Beta Prunning não
estados e a ocorrência de estados repetidos é factível para jogos complexos
‰ <a1,b1,a2,b2> = <a1,b2,a2,b1> „ Solução:
„ Uma forma de evitar isso é construir uma Parar a busca antes de chegar ao final
“Tabela de Transposição”, que guarda a „ É necessário:
utilidade de estados já computados ‰ Função de Avaliação (Evaluation Function):
„ Tradeoff: Espaço x Tempo fornece uma estimativa da utilidade daquele
‰ Tentar guardar apenas os mais significativos estado (Heurística)
‰ Teste de Parada (Cutoff Test): decide em quando
parar a busca

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Funções de Avaliação Funções de Avaliação


„ Devem tentar manter a mesma ordenação da „ Análise de características (features) do estado
função de utilidade final corrente
„ Não podem demorar muito „ Divisão em classes de equivalência
„ Devem estar relacionadas com as “chances ‰ Conjuntos de estados com características similares
de ganhar o jogo” ‰ Para cada classe, determina-se por experiência:
‰ Chances? Jogo é determinístico!? „ %Vitórias, %Empates, %Derrotas

‰ Incerteza computacional ao invés de incerteza da ‰ Função de avaliação é calculada como uma média
informação ponderada.
„ Ex. 72% Vitória, 20% Derrota, 8% empate
Eval(S) = (0.72 x 1) + (0.2 x -1) + (0.08 x 0) = 0.52
‰ Requer muitas classes e experiência...
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

4
Funções de Avaliação Teste de Parada
„ Uma forma mais fácil é dar valor diretamente as „ If Cutoff-Test(State, Depth) return Eval(state)
features
‰ Xadrez: Peão = 1, Cavalo / Bispo = 3, etc... „ Forma mais comum: profundidade fixa
‰ “Estrutura de peões”, “Proteção do rei”, etc... „ Problemas: e se na próxima jogada...
„ A função de avaliação é computada através de uma
combinação linear ponderada
‰ Eval(S) = w1.f1 (s) + w2.f2 (s) + ... + wn.fn (s)
‰ Funções não lineares também podem ser usadas
„ Um par de bispos tem mais valor que o dobro de um só
„ Leva em consideração as outras peças
„ De novo, experiência / aprendizado é necessário

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Teste de Parada Poda


„ A função de avaliação somente deve ser „ Singular Extensions
aplicada a estados que não vão sofrer ‰ Ultrapassar a profundidade limite para ações que
mudanças bruscas de valor são “claramente melhores”
‰ Quiescence Search ‰ Na prática, diminui o branching factor (poda)

„ Efeito Horizonte: jogada „ Forward Prunning


catastrófica que vai ‰ Ignorar certos movimentos possíveis
acontecer inevitavelmente
‰ Humanos fazem isso inconscientemente
em um futuro próximo, fora
‰ Não há garantias...
do horizonte de busca
‰ Interessante para movimentos simétricos
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Xadrez na Prática Jogos Não-Determinísticos (sorte)


„ Suponha uma função de avaliação e um PC que „ Exemplo: Gamão
consiga investigar 10^6 nodos/s „ As jogadas possíveis são determinadas
„ 200 x 10^6 nodos por jogada (3 minutos) depois que se jogam os dados
„ Branching Factor: 35: 35^5 = 50 x 10^6 „ Não é possível construir uma árvore como no
„ Minimax = 5 jogadas (jogador mediano) caso do xadrez e aplicar o minimax
„ Alpha-Beta = 10 Jogadas (expert) „ Solução:
„ Para virar um Grande-Mestre: ‰ Incluir nodos intermediários com as chances
‰ Função de avaliação bem ajustada ‰ Algoritmo: ExpectiMinimax
‰ Banco de jogadas (abertura e término)
‰ Supercomputador...

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

5
Jogos Não-Determinísticos (sorte) ExpectiMinimax

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

ExpectiMinimax Estado da Arte de Alguns Jogos


„ Xadrez
‰ Deep Blue bateu Kasparov em 1997
„ Máquina paralela: 30 RS/6000 + 480 Custom
„ 126 Milhões de nodos/s (330 Max) = média 14 níveis
„ Com uso de Extensions podia chegar a 40 níveis
„ Alpha-Beta c/ função de avaliação com 8000 features
„ Banco de dados
‰ 4000 aberturas
‰ Todos os fechamentos possíveis p/ 5 peças (muitos p/ 6)
‰ Análise de 700.000 jogos (consensus)
‰ Hardware x Software : qual é mais importante?
„ Desde 92, PC’s tem batido supercomputadores
„ Programa Fritz em um PC x Kasparov em 2003: empate
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Estado da Arte de Alguns Jogos Estado da Arte de Alguns Jogos


„ Damas „ Othello (Reversi)
‰ Em 1952 Arthur Samuel (IBM) fez um dos ‰ Espaço de busca: 5 a 15 movimentos
primeiros programas ‰ Logistello (1997) 6 x 0 Campeão Mundial
„ Função de avaliação aprendida em jogos consigo mesmo
‰ Computadores são melhores que humanos
‰ Chinook (Vice-Campeão US-Open em 1990)
„ Roda em PC’s
„ Alpha-Beta Search
„ Banco com 444 bilhões de posições (<8 peças)
„ Chinook x Tinsley
‰ Com o uso de bancos de posições, uma pequena
busca leva a um resultado já resolvido

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

6
Estado da Arte de Alguns Jogos Estado da Arte de Alguns Jogos
„ Go „ Gamão
‰ Até 1997 não existiam programas bons ‰ Incerteza faz com que técnicas de busca não
‰ Hoje em dia, são melhores sejam satisfatórias
„ Go4++ (nível amador fraco) ‰ Esforço na construção de funções de avaliação
„ Reconhecimento de padrões + pequena busca sofisticadas
‰ Programas irão requerer técnicas mais ‰ TD-Gammon está entre os 3 melhores do mundo
sofisticadas de tomada de decisão „ Aprendizado por reforço
„ Redes Neurais
„ Busca de 2 a 3 níveis

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz

Estado da Arte de Alguns Jogos


„ Bridge
‰ Difícil para computadores
‰ Parcialmente Observável
„ Cartas escondidas
„ Blefes
„ Comunicação
‰ Bridge Baron (1997)
‰ GIB (2000)
„ 12o lugar em 35 contra humanos

Inteligência Artificial para Jogos Prof. Luiz Chaimowicz