Professional Documents
Culture Documents
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
1
Exemplo: jogo com 2 jogadas Algoritmo MiniMax
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
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
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
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
Inteligência Artificial para Jogos Prof. Luiz Chaimowicz Inteligência Artificial para Jogos Prof. Luiz Chaimowicz
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
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
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