Você está na página 1de 58

Jogos

Professor: Me. Anderson Priebe Ferrugem


Dr. Marilton Sanchotene de Aguiar
Computação UFPEL
ferrugem@inf.ufpel.edu.br
Fundamentos de Inteligência Artificial

marilton@inf.ufpel.edu.br
Jogos

Domínio para
experimentação da IA
 Memória
 Estratégia
 Conhecimento “ad hoc”

Bernstein.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Jogos

Clássicos:
 Xadrez;
 Damas;
 Otelo;
 Gamão;
 Go;
 Bridge.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Jogos

Jogos digitais:
 Pac-Man (Atari - 1979);
 Máquina de estados;
 Golden Axe (SEGA – 1987);
 Beneath a Steel Sky (Revolution
Software – 1994)
 Goldeneye 007 (Rare Ltd.,
19970;
 Thief: The Dark Project
(Looking Glass Studios-1998)
 Metal Gear Solid (Konami
Corporation-1998)

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Jogos

Jogos Digitais

Jogos de esportes e pilotagem possui


desafios próprios, sendo alguns deles
ainda sem solução:
 Cálculo dinâmico do caminho mais
rápido em uma pista de corrida.
RPGs
 Interações complexas entre
personagens

Necessidades da IA em jogos
mais modernos
 Habilidade de mover os
personagens;
 Habilidade de tomar decisões sobre
onde se mover;
 Habilidade para pensar tática ou
estrategicamente

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
IA x Humanos

1996 - Kasparov 4x2 DeepBlue


1997 - Kasparov 2.5 x 3.5 DeepBlue
2006- Kramnik x Deep Fritz
DeepBlue:
Deep Fritz
3 vitorias 2 empates 1 derrotas
2 vitórias
4 empates

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
História da IA nos jogos

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Árvores de jogos

 Diversos jogos para dois jogadores podem ser


representados utilizando árvores, chamadas de árvores
de jogos.
 Uma árvore de jogo é uma instância de uma árvore na
qual o nó raiz representa o estado antes que qualquer
movimento tenha sido feito, os nós da árvore
representam possíveis estados do jogo (ou posições) e
os arcos na árvore representam movimentos.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Árvores de jogos

 É comum representar os movimentos dos dois jogadores


em níveis alternados da árvore de jogos, de tal modo
que todos os arcos indo do nó raiz ao primeiro nível
representem possíveis movimentos para o primeiro
jogador e arcos do primeiro nível para o segundo
representem movimentos para o segundo jogador, e
assim por diante.
 Folhas da árvore representam estados finais, nos quais o
jogo foi ganho, perdido ou empatado. Em jogos simples,
um nó objetivo representaria um estado no qual o
computador ganhou, mas para jogos mais complexos,
como xadrez e Go, o conceito de um estado objetivo é
raramente utilizado.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Grafos E/OU

 Usados para representar a solução de problemas que


podem ser resolvidos através de sua decomposição em um
conjunto de problemas menores, que por sua vez devem
ser resolvidos;
 E – Qualquer número de sucessores sendo que todos
necessitam ser solucionados
 OU - Qualquer número de sucessores indicando várias maneiras
de pelas quais o problema original pode ser resolvido.
 Usados em redução de problemas;
 Árvores de jogos são grafos E/OU particulares onde E e OU
ocupam níveis alternados ;
 Em nós OU o mecanismo de busca é livre para escolher a

próxima jogada (jogada própria);


 Nós E representam a situação de jogo do adversário.
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
Grafos E/OU

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Grafos E/OU

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Grafos E/OU

A
(9)

B C D
(5) (3) (4)

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Soma Zero

Jogos de soma zero significa que se


um jogador ganha x,
obrigatoriamente o jogador
adversário perde x;
Se o placar geral ao final de um
jogo, para cada jogador, puder ser 1
(uma vitória), 0 (um empate) ou -1
(uma derrota), então a soma do
placar total de ambos os jogadores,
para qualquer jogo, deve ser sempre
0.
Em outras palavras, se um jogador
ganha, o outro deve perder. A única
alternativa é que haja um empate.
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
Funções de Avaliação

Funções de avaliação (também


conhecidas como avaliadores
estáticos, pois elas são utilizadas
para avaliar um jogo a partir
apenas de uma posição estática)
são vitais para a maioria dos
programas computacionais para
jogos. Isto porque é quase
sempre impossível realizar busca
de forma plena na árvore de jogo
devido ao tamanho desta.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Funções de Avaliação

Funções de avaliação são geralmente funções lineares


ponderadas, significando que diferentes pontuações são
determinadas para uma dada posição e simplesmente
reunidas de forma ponderada. Então, uma função de
avaliação bem simples para o xadrez seria contar o
número de rainhas, o número de peões, o número de
bispos, e assim por diante, e somá-los utilizando pesos
para indicar os valores relativos dessas peças:

q = número de rainhas

r = número de torres

n = número de cavalos

b = número de bispos

p = número de peões

pontuação = 9q + 5r + 3b + 3n + p

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Exemplo
 Jogo das moedas – coloca-se
uma pilha de cinco moedas
e cada jogador retira uma ou
duas moedas, quem tirar a
última moeda perde.
  derrota do jogador 1;
 O vitória do jogador 1.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Primeira técnica proposta;


Construção da árvore completa
Raiz = situação atual
Folha = situação sem sucessores
Avaliacao estática

+∞ vitória
-∞ derrota
0 empate

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Propagar avaliações em direção à raiz


Cada nó OU com sucessores já avaliados recebe o
valor máximo da avaliação dos sucessores;
Cada nó E com sucessores já avaliados recebe o
valor mínimo da avaliação dos sucessores;
Se supõe que o adversário irá escolher a
melhor jogada (minimax).

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax +∞ vitória
-∞ derrota
0 empate

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

fae – função de
avaliação estática
+∞ vitória
-∞ derrota
0 empate
concatena
seqüência vazia
para todo
pertence

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Os nodos da árvores são alternadas entre nodos “OU”


(mecanismo livre para escolher) e nodos “E”, grafo E/OU
Propaga as avaliações das folhas até a raiz;
Nodos OU maximizam as escolhas, nodos E minimizam a sua
escolha (ponto de vista do jogador 1);
Nós raiz é sempre do tipo OU;
Amazena o melhor caminho até o nodo raiz;
Usa-se o sinal – para tratar os nodos de forma igual (negmax)

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

 A diferença entre os dois algoritmos está


no tratamento dado no passo inicial que
trata nós não folhas como se não tivessem
sucessores;
 Retorna 0 para qualquer situação que não
for vitória ou derrota.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Jogo da velha

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

Jogo da velha (oponente não está usando mini max)

Simetria

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Minimax

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
Corte Alfa-beta

 Em alguns casos, é extremamente útil ser


capaz de podar seções da árvore de jogo.
Utilizando poda alfa-beta, é possível remover
seções da árvore de jogo que não valham a
pena examinar para tornar mais eficiente a
busca por um bom movimento.
 O princípio subjacente ao corte (poda) alfa-
beta é que, se um movimento for considerado
pior que outro movimento que já tenha sido
examinado, então é inútil ainda examinar as
possíveis consequências deste pior movimento.
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
Corte Alfa-beta

 Exemplo:
 Após calcular a

função de
avaliação estática
para as primeiras
quatro folhas,
deixa de ser
necessário avaliar
a pontuação para
a quinta.
FIA-UFPel Prof.: Me. Anderson Ferrugem
Dr. Marilton de Aguiar
Corte Alfa-beta

 Exemplo:
 Ao escolher o caminho da esquerda,

a partir da raiz, é possível atingir


uma pontuação de 3 ou de 5. Como
é o nodo min há a expectativa do
oponente escolher o movimento de
pontuação 3.
 Ao escolher o arco da direita, o
computador pode atingir uma
pontuação de 7 ou de 1 ou um valor
misterioso. Devido ao oponente ter
como objetivo minimizar a
pontuação, ele deveria escolher a
posição com pontuação de 1, a qual
é pior que o valor que o computador
poderia atingir escolhendo o
caminho da esquerda. Assim, o valor
da folha mais à direita não importa.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Corte Alfa-beta

 O método alfa-beta
fornece o seu melhor
desempenho quando a
árvore de jogo é
ordenada de modo que
a melhor escolha em
cada nível seja a
primeira.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Corte Alfa-beta

b = fator de ramificação da árvore


de jogo
d = profundidade da árvore de jogo
s = número de nós que devem ser
examinados
Isto significa que aproximadamente
s = 2bd/2
Sem poda alfa-beta, quando todos
os nós devem ser examinados:
s = bd
alfa-beta reduz o fator efetivo de
ramificação de b para

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta (Alfa)

Um valor alfa é o máximo (melhor) valor encontrado até


então nos descendentes dos nós max.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta (Beta)

Um valor beta é o mínimo (melhor)


valor encontrado até então nos
descendentes dos nós min.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Alfa beta

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Jogos de probabilidade

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Jogos com informação
perfeita

Damas:
 Chinnok (University of Alberta, Canada) é o primeiro programa a vencer
um humano no campeonato mundial;
 Em 2007 o jogo de damas foi resolvido. Por resolvido entenda-se a
criação de um programa de computador sofisticado o bastante para
escolher sempre a jogada perfeita entre todas as possíveis. E são muitas:
cerca de 500 quintilhões, ou cinco vezes dez elevado à vigésima
potência.
 https://webdocs.cs.ualberta.ca/~chinook/

Xadrez:
 Nos anos 1990 Deep Blue (IBM) venceu o campeão mundial Gary
Kasparov;
 A partir de 2009,temos engines de xadrez rodando em hardware lento
chegando a nível de grã mestre.
 Um telefone móvel venceu um torneio categoria 6 com taxa de
desenpenho igual a 2898.
 O engine Hiarcs 13 rodando com Pocket Fritz 4 em um telefone móvel
HTC Touch HD venceu o Torneio Copa Mercosur em Buenos Aires,
Argentina com 9 vitórias e um empate (2009).

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Jogos com informação
perfeita

Otelo(Reversi);
 Regularmente bate os campeões humanos. Por
exemplo em 1997, o programa Othello Logistello
venceu o campeão mundial Takeshi Murakami
(6x0).
Go
 AlphaGo = Deep Supervised Learning (with domain-specific
features) + Deep Reinforcement Learning + Monte Carlo Tree
Search + Hugely parallel processing

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Jogos com
informação imperfeita
(probabilísticos)
Gamão:
 Jogam no mesmo nível dos campeões humanos;
 O software TD-Gammon joga no nível grão mestre;
 O algoritmo de aprendizado é uma combinação hibrida
de uma MLP e uma diferença temporal chamada TD(λ);
Pôquer:
Muitas equipes de Texas hold são formadas por humanos e
máquinas;
DeeepStack recentemente alcançou desenpenho nível
“world-class”;

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Jogos com
informação imperfeita
(probabilísticos)
Bridge:
 Monte Carlo Tree Search (MCTS);
 Programa GIB, criado pelo cientista da computação
norte-americano Matthew Ginsberg em 1998 tornou-se
o campeão mundial em bridge de computador, e
também teve uma pontuação de 12º lugar (11210) no
em comparação com 34 dos principais humanos.
 Essa pontuação leva em conta a capacidade de análise
do participante.

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Jogos com
informação imperfeita
(probabilísticos)

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Videogame

Busca de caminho e movimentos:

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Videogame

Máquina de estado estática:

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Videogame

Arquitetura de comportamento em camadas:

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Estado da Arte – Videogame

Sistema baseado em regras:

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
Jogos

FIA-UFPel Prof.: Me. Anderson Ferrugem


Dr. Marilton de Aguiar
ferrugem@inf.ufpel.edu.br
Professor: Me. Anderson Priebe Ferrugem
Computação UFPEL
Fundamentos de Inteligência Artificial
Fundamentos de Inteligência Artificial
JogosUFPel
Me. Anderson Priebe Ferrugem Computação

Você também pode gostar