jogos.ppt [Modo de Compatibilidade] - inf.ufrgs.brengel/data/media/file/inf01048/jogos.pdf · •...
Transcript of jogos.ppt [Modo de Compatibilidade] - inf.ufrgs.brengel/data/media/file/inf01048/jogos.pdf · •...
Inteligência Artificial
Prof. Paulo Martins Engel
Busca CompetitivaJogos
Informática
UFRGS Prof. Paulo Martins Engel
2
Busca Competitiva
• Num ambiente multiagente, é necessário considerar as ações de outros agentes e o modo como essas ações nos afetam.
• A imprevisibilidade de outros agentes pode introduzir contingências no processo de resolução de problema.
• Em ambientes competitivos, as metas dos agentes estão em conflito, dando origem a problemas de busca competitiva, onde se enquadram os jogos.
Informática
UFRGS Prof. Paulo Martins Engel
3
Jogos em IA• Em IA, os jogos são determinísticos, de revezamento
de dois jogadores, com informações perfeitas.
• A posição (favorável ou desfavorável) de um jogador num determinado instante (estado) do jogo pode ser medida por uma função de utilidade.
• Os valores de utilidade dos agentes no fim do jogo são iguais e opostos (simétricos): +1 (ganha), ou –1 (perde).
• O objetivo da busca competitiva é planejar com antecedência num mundo em que outros agentes estão fazendo planos contra nós.
Informática
UFRGS Prof. Paulo Martins Engel
4
Jogos• Entre os primeiros domínios de aplicação, pois:
- É fácil representar o estado de um jogo.
- Em geral, os agentes estão restritos a um pequeno número deações com resultados definidos por regras precisas.
- Constituem uma tarefa estruturada em que é fácil medir osucesso ou fracasso.
- Supunha-se que os jogos podiam ser solucionados por umabusca direta do estado inicial para a posição vencedora, semgrandes quantidades de conhecimento.
• Exceção aos jogos simulados: O futebol de robôs é umjogo físico, com descrições muito mais complicadasenvolvendo ações bastante imprecisas.
Informática
UFRGS Prof. Paulo Martins Engel
5
Jogos• Por volta de 1950, o xadrez foi estudado por Konrad Zuse,
Claude Shannon, Norbert Wiener e Alan Turing.
• Atualmente, as máquinas ultrapassaram os seres humanos nosjogos de damas e Othello, derrotaram campeões do mundo(embora não todas as vezes) em xadrez (Deep Blue Kasparov1997) e gamão, e são competitivas em muitos outros jogos.
• Damas: Arthur Samuel (IBM) desenvolveu um programa queaprendia a sua própria função de avaliação, derrotando ocampeão humano em 1962 (graças a um erro de Robert Nealy).
• O programa Chinahook (Jonathan Schaeffer) se tornou campeãomundial em 1994.
• A principal exceção é Go, em que os computadores seenquadram no nível amador.
Informática
UFRGS Prof. Paulo Martins Engel
6
Exemplo: xadrez
• Fator médio de ramificação: 35
• Número médio de jogadas: 50 para cada jogador.
• Assim, a árvore completa de busca de um jogo terá aproximadamente 35100 ou 10154 nós.
• Portanto, uma busca cega é inviável, mesmo para realizar o primeiro movimento.
• Se deve fazer o melhor uso possível do tempo disponível para uma jogada: tomar alguma decisão, mesmo que a jogada ótima não seja determinada em tempo.
Informática
UFRGS Prof. Paulo Martins Engel
7
MINIMAX
• Algoritmo mais usado em jogos com dois jogadores, chamados MAX e MIN.
• MAX faz o primeiro movimento, e depois eles se revezam até o jogo terminar.
• Um jogo como problema de busca com os componentes:– Estado inicial: posição do tabuleiro, identifica jogador que fará o
movimento.
– Função sucessor: retorna lista de pares (movimento, estado).
– Teste de término: determina quando o jogo termina (estados terminais)
– Função utilidade (ou objetivo): dá valor numérico aos estados terminais. No xadrez: +1 (vitória), 0 (empate), –1 (derrota).
Informática
UFRGS Prof. Paulo Martins Engel
8
Uma árvore de busca do jogo da velha
MAX(X)
X X X
X X X
X X X
OX OXOX
...
MIN(o)
MAX(X)XOX
X
OX
X
OX
...
... .........
XO
O
XOX
X
XOO
XOX
MIN(o)
TERMINAL
Utilidade –1 0 +1
X X O
O XO
XOX
Jogo da velha:765 posições diferentes26.830 jogos distintos138 estados terminais:
91 (+1, X)44 (1, O)3 empates (0)
Informática
UFRGS Prof. Paulo Martins Engel
9
MINIMAX
• MINIMAX é uma estratégia de contingência para MAX que especifica o movimento de MAX de modo a otimizar o valor de utilidade, quando está enfrentando um oponente com estratégia ótima.
• A estratégia ótima é determinada pelo exame do valor minimax de cada nó n: valor-minimax(n).
• O valor minimax de um nó é a utilidade (para MAX) de se encontrar naquele estado, supondo-se que ambos os jogadores têm desempenho ótimo.
• O valor minimax é obtido, recursivamente, pela propagação dos valores dos nós sucessores:
MIN nó um é se ),(minimaxvalormin
MAX nó um é se ),(minimaxvalormax
terminalestado um é se ,)(utilidade
)(minimaxvalor
ns
ns
nn
n
sucessoress
sucessoress
Informática
UFRGS Prof. Paulo Martins Engel
10
Uma árvore de jogo
A
B C
D E F G
MAX
MIN
LIH J K M N
MAX
• Árvore com 3 jogadas (MAX, MIN, MAX)• Um movimento são 2 jogadas: MAX, MIN
Informática
UFRGS Prof. Paulo Martins Engel
11
Aplicando uma função de avaliação nos nós folhas
A
B C
D E F G
MAX
MIN
LIH J K M N
MAX
(2) (10) (5) (5)(7) (2)(3)
A função de avaliação é em relação ao jogador de maximização
Informática
UFRGS Prof. Paulo Martins Engel
12
Propagando as avaliações
10
A
B C
D E F G
MAX
MIN
LIH J K M N
MAX
(2) (10) (5) (5)(7) (2)(3)
3 7 5
Informática
UFRGS Prof. Paulo Martins Engel
13
Propagando as avaliações
10
A
B C
D E F G
MAX
MIN
LIH J K M N
MAX
(2) (10) (5) (5)(7) (2)(3)
3 7 5
3 5
Informática
UFRGS Prof. Paulo Martins Engel
14
g2g1f1e1
c1 c2
a1 a2
b2b1
d2d1 d3
Propagando as avaliações e decisão minimax
• A jogada seria de “A” para “C”
• Decisão minimax: ação a1
10
A
B C
D E F G
MAX
MIN
LIH J K M N
MAX
(2) (10) (5) (5)(7) (2)(3)
3 7 5
3 5
5
Informática
UFRGS Prof. Paulo Martins Engel
15
Algoritmo Minimaxfunção DECISÃO-MINIMAX(estado) retorna uma ação
entradas: estado, estado corrente no jogov VALOR-MAX(estado)
retornar a ação em SUCESSORES(estado) com valor v
função VALOR-MAX(estado) retorna um valor de utilidadese TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)v para cada s em SUCESSORES(estado) façav MAX(v, VALOR-MIN(s))
retornar v
função VALOR-MIN(estado) retorna um valor de utilidadese TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)v para cada s em SUCESSORES(estado) façav MIN(v, VALOR-MAX(s))
retornar v
Informática
UFRGS Prof. Paulo Martins Engel
16
Algoritmo Minimax• O algoritmo minimax calcula a decisão minimax a partir do estado corrente.
• Utiliza a computação recursiva dos valores minimax de cada estado sucessor.
• Percorre inicialmente todo o caminho até as folhas e depois propaga os valoresminimax de volta pela árvore, à medida que a recursão retorna.
• O algoritmo minimax executa uma exploração completa da árvore de jogofazendo uma busca em profundidade.
• Se a profundidade máxima da árvore é m e existem b movimentos válidos emcada ponto, a complexidade de tempo do algoritmo é O(bm).
• A complexidade de espaço é O(bm) para um algoritmo que gera todos ossucessores de uma vez.
• Na busca com retrocesso, apenas um sucessor é gerado por vez. Cada nóexpandido memoriza apenas o sucessor que deve ser gerado em seguida.
• Neste caso, a complexidade de espaço é O(m) .
Informática
UFRGS Prof. Paulo Martins Engel
17
Algoritmo Minimax (com avaliação)função DECISÃO-MINIMAX(estado, profundidade) retorna uma ação
entradas: estado, estado corrente no jogo; profundidade correntev VALOR-MAX(estado)
retornar a ação em SUCESSORES(estado) com valor v
função VALOR-MAX(estado) retorna um valor de avaliaçãose TESTE-PARADA(estado, profundidade) então retornar AVAL(estado)v para cada s em SUCESSORES(estado) façav MAX(v, VALOR-MIN(s))
retornar v
função VALOR-MIN(estado) retorna um valor de avaliaçãose TESTE-PARADA(estado, profundidade) então retornar AVAL(estado)v para cada s em SUCESSORES(estado) façav MIN(v, VALOR-MAX(s))
retornar v
TESTE-TERMINAL(estado) TESTE-PARADA(estado, profundidade)UTILIDADE(estado) AVAL(estado)
Informática
UFRGS Prof. Paulo Martins Engel
18
Algoritmo Minimax
• GERMOV (posição, jogador) - gera todas as jogadasválidas a partir da situação do jogo definida por posição econsiderando que a jogada atual é de jogador.
• ESTÁTICA (posição, jogador) - retorna um valor quequantifica o estado atual das peças do jogo.– A função de avaliação é em relação ao jogador que faria a jogada
– Quanto maior o valor melhor a situação
• PROFUNDO_SUFICIENTE (posição, profundidade) -pode considerar vários fatores:– número de níveis na árvore
– um jogador ganhou
– quão promissor é o caminho
– quanto tempo ainda há disponível para a jogada
Informática
UFRGS Prof. Paulo Martins Engel
19
MINIMAX (POSIÇÃO, PROFUNDIDADE, JOGADOR)1- se PROFUNDO_SUFICIENTE (POSIÇÃO, PROFUNDIDADE)
então retorna estrutura:
VALOR ESTÁTICA (POSIÇÃO, JOGADOR) CAMINHO nil
senão SUCESSORES GERMOV (POSIÇÃO, JOGADOR)
fim_se2- se SUCESSORES =
então retorna estrutura: VALOR ESTÁTICA (POSIÇÃO, JOGADOR)
CAMINHO nil senão
MELHOR_CONTAGEM VALOR MÍNIMO DE ESTÁTICA (X,Y) para cada elemento SUC de SUCESSORES faça:
RESULTADO_SUCMINIMAX(SUC,PROFUNDIDADE+1,OPOSTO(JOGADOR)) NOVO_VALOR - VALOR.RESULTADO_SUC se NOVO_VALOR > MELHOR_CONTAGEM então
MELHOR_CONTAGEM NOVO_VALOR MELHOR_CAMINHO SUC + CAMINHO.RESULTADO_SUC
fim_se fim_paracada
fim_se3- retorna estrutura:
VALOR MELHOR_CONTAGEM CAMINHO MELHOR_CAMINHO
Informática
UFRGS Prof. Paulo Martins Engel
20
Poda Alfa-Beta
• Um aperfeiçoamento do algoritmo minimax corresponde a não pesquisar um ramo da árvore que comprovadamente não pode levar a um resultado melhor que o atual.
• : o valor da melhor escolha (mais alto), até o momento, ao longo do caminho para MAX.
• : o valor da melhor escolha (mais baixo), até o momento, ao longo do caminho para MIN.
Informática
UFRGS Prof. Paulo Martins Engel
21
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[, +]
• Busca em profundidade
intervalo de valores de avaliação possíveis
?
MIN(, v)
Informática
UFRGS Prof. Paulo Martins Engel
22
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[, 3]
Informática
UFRGS Prof. Paulo Martins Engel
23
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[, 3]
12
?
Informática
UFRGS Prof. Paulo Martins Engel
24
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[, 3]
12
Informática
UFRGS Prof. Paulo Martins Engel
25
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[, 3]
12 8
?
último sucessor
Informática
UFRGS Prof. Paulo Martins Engel
26
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[, +]
[3, 3]
12 8
?
v = 3
MAX(, v)
Informática
UFRGS Prof. Paulo Martins Engel
27
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, +]
[3, 3]
12 8
: o valor da melhor escolha (mais alto), até o momento, ao longo do caminho para MAX.
=3
Informática
UFRGS Prof. Paulo Martins Engel
28
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, +]
[3, 3]
12 8
[, +]
2
? MIN(, v)
Informática
UFRGS Prof. Paulo Martins Engel
29
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, +]
[3, 3]
12 8
[, 2]
2
Conclusão: o caminho C será sempre pior que B
v ?
Interrompe a busca deste ramo
Informática
UFRGS Prof. Paulo Martins Engel
30
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, +]
[3, 3]
12 8
[, 2]
2
[, +]
?
14
Informática
UFRGS Prof. Paulo Martins Engel
31
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, +]
[3, 3]
12 8
[, 2]
2
[, 14]
14
?
MIN(, v)
Informática
UFRGS Prof. Paulo Martins Engel
32
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 14]
[3, 3]
12 8
[, 2]
2
[, 14]
14
: o valor da melhor escolha (mais alto), até o momento, ao longo do caminho para MIN.
Informática
UFRGS Prof. Paulo Martins Engel
33
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 14]
[3, 3]
12 8
[, 2]
2
[, 14]
14 5
?
Informática
UFRGS Prof. Paulo Martins Engel
34
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 14]
[3, 3]
12 8
[, 2]
2
[, 5]
14 5
?
Informática
UFRGS Prof. Paulo Martins Engel
35
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 5]
[3, 3]
12 8
[, 2]
2
[, 5]
14 5
Informática
UFRGS Prof. Paulo Martins Engel
36
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 5]
[3, 3]
12 8
[, 2]
2
[, 5]
14 5 2
?
Informática
UFRGS Prof. Paulo Martins Engel
37
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 5]
[3, 3]
12 8
[, 2]
2
[2, 2]
14 5 2
?
v ?
Informática
UFRGS Prof. Paulo Martins Engel
38
Exemplo de poda alfa-beta
E F H I J
3
MAX
MINB
A
C
K L M
D
G
[3, 3]
[3, 3]
12 8
• Escolhe o ramo com o maior valor.
[, 2]
2
[2, 2]
14 5 2
Informática
UFRGS Prof. Paulo Martins Engel
39
função BUSCA-ALFA-BETA (estado) retorna uma açãoentradas: estado, estado corrente no jogov VALOR-MAX(estado, , +)
retornar a ação em SUCESSORES(estado) com valor v
função VALOR-MAX (estado, , ) retorna um valor de utilidadeentradas: estado, estado corrente no jogo
, valor da melhor alternativa para MAX ao longo do caminho até estado, valor da melhor alternativa para MIN ao longo do caminho até estado
se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)v para cada s em SUCESSORES(estado) façav MAX(v, VALOR-MIN(s, , ))se v então retornar v MAX(, v)
retornar v
função VALOR-MIN (estado, , ) retorna um valor de utilidadeentradas: estado, estado corrente no jogo
, valor da melhor alternativa para MAX ao longo do caminho até estado, valor da melhor alternativa para MIN ao longo do caminho até estado
se TESTE-TERMINAL(estado) então retornar UTILIDADE(estado)v +para cada s em SUCESSORES(estado) façav MIN(v, VALOR-MAX(s, , ))se v então retornar v MIN(, v)
retornar v
Poda alfa-beta
Informática
UFRGS Prof. Paulo Martins Engel
40
Busca Alfa-Beta
Informática
UFRGS Prof. Paulo Martins Engel
41
Refinamentos adicionais [RIC 94]
• Esperando por quietude: não parar a busca no meio de uma troca de peças, por exemplo
• Busca secundária: após decidir qual o melhor movimento, investigar este movimento 2 jogadas além do verificado inicialmente, para ter certeza que não há uma “armadilha”
• Usar movimentos de livros: por exemplo, aberturas e encerramentos
Informática
UFRGS Prof. Paulo Martins Engel
42
Tabela de transposição
• Estados repetidos na árvore de busca podem causar um aumento exponencial no custo da busca.
• Em jogos, estados repetidos ocorrem frequentemente devido a transposições, permutações diferentes da mesma sequencia que terminam na mesma posição.
• Armazena-se a avaliação da posição final que pode ser alcançada por diferentes configurações iniciais, numa tabela hash, na primeira vez em que ela for encontrada, de forma a não recalculá-la em ocorrências subsequentes.
• A tabela hash de posições já vistas é chamada de tabela de transposição.
• Como não é prático manter todos os nós já avaliados na tabela de transposição, existem diversas estratégias para escolher os mais importantes.
• O efeito do uso da tabela de transposição é bastante importante, chegando a duplicar a profundidade da busca.
Informática
UFRGS Prof. Paulo Martins Engel
43
Aprofundamento progressivo
• Procedimento usado para evitar o problema de jogar com tempo definido
• Base: encontrar a melhor solução com profundidade 1, depois com profundidade 2 e assim sucessivamente.
• Ao terminar o tempo disponível, apresenta-se a melhor solução encontrada até o momento.
• Com o aprofundamento progressivo pode-se determinar a variação principal corrente, que é a sequencia de movimentos mais vantajosa, assumindo que cada jogador maximize as suas jogadas.
• Algoritmos de busca como o Negascout, otimizam a poda investigando inicialmente nós que estão na variação principal.
Informática
UFRGS Prof. Paulo Martins Engel
44
Aprofundamento progressivo
+4
-2 +4+1
-3 +5+4-2
+2 +5+1 -2 +4
+4
-2 +4+1
-3 +2+1
max
+2 +5+1 -2 +4
+4
-2 +4+1
max
min
max
min
max
variação principal
Informática
UFRGS Prof. Paulo Martins Engel
45
Problemas do Minimax
• Baseia-se fortemente em que o oponente escolherá sempre o melhor movimento– aceitável em situação de vitória
– em situação de derrota pode ser melhor arriscar que o oponente cometerá um erro
Informática
UFRGS Prof. Paulo Martins Engel
46
Função de Avaliação
• Retorna uma estimativa da utilidade a partir da posição.• Deve ordenar os estados terminais do mesmo modo que a
função utilidade verdadeira.• Nos estados não-terminais, a função de avaliação deve estar
fortemente correlacionada com as chances reais de vitória.• A maiorias das funções calcula características do estado.• As características em conjunto definem categorias de estados
equivalentes, com uma distribuição de resultados esperados:
• 72% dos estados levam a vitória (+1); 20% derrota (1); 8% empate (0).
• Avaliação dos estados da categoria é dada pelo valor esperado:
(0,72 +1) + (0,20 1) + (0,08 0) = 0,52
Informática
UFRGS Prof. Paulo Martins Engel
47
Função de Avaliação
• Em vez de definir muitas categorias de estados, que exigiria muita estimação das distribuições de resultados, a maioria das funções calcula separadamente diversas características do estado, fi(s).
• Agrupa estas características por uma função linear ponderada:
n
iiinn sfwsfwsfwsfwsAVAL
12211 )()()()()(
• No xadrez fi(s) poderia representar o número de peças i (peão, cavalo, etc.) ou ainda: domínio do centro, mobilidade, etc
• wi é o peso da característica i e pode ser ajustado por aprendizado• Ex. xadrez: peão (1), cavalo (3), bispo (3), torre (5), rainha (9)• Em muitos programas, a função de avaliação é não-linear, para
refletir dependência de peças (dois bispos valem um pouco mais que um bispo).
Informática
UFRGS Prof. Paulo Martins Engel
48
Alguns jogos específicos
Os melhores programas de jogos jogam, em geral, muito bem, mas eles utilizam técnicas bastante diferentes das técnicas humanas:– Nós determinamos as melhores posições a analisar por um
processo de identificação de estruturas (pattern matching),que é um processo realizado em paralelo
– A exploração de um conjunto de jogadas possíveis, como realizado pelo computador, não é paralelizável
Informática
UFRGS Prof. Paulo Martins Engel
49
Busca e Conhecimento
Conhecimento• Função de Avaliação
• Banco de Dados
• Livro de Abertura
Busca• Minimax
• Corte Alfa-Beta
• Ordenação
• Tabela de Transposição
• Velocidade do Código
• Forward Pruning
• Extensões de Busca
• Pensar na Vez do Oponente
Informática
UFRGS Prof. Paulo Martins Engel
50
Busca versus Conhecimento
Informática
UFRGS Prof. Paulo Martins Engel
51
Aprofundando a Busca
• Aumentar tempo de busca
• Aumentar a capacidade do hardware
• Otimizar o código do programa
• Pensar na vez do oponente
• Corte alfa-beta
• Ordenação da árvore
• Tabela de Transposição
Informática
UFRGS Prof. Paulo Martins Engel
52
Tabela de Transposição
• Funciona como uma “cache” de posições já analisadas.
• Utilizada para ordenar a árvore.
• Reutiliza escores.
• Utilizada para fazer o computador pensar na vez do adversário.
• Redução de ~40% no tamanho da árvore.
• Desempenho aumenta conforme a profundidade da busca.
Informática
UFRGS Prof. Paulo Martins Engel
53
Forward Prunning
• Ignora certos movimentos possíveis
• Humanos fazem isso inconscientemente
• Não há garantias de que a melhor jogada não será excluída
• Interessante para movimentos simétricos
Informática
UFRGS Prof. Paulo Martins Engel
54
Cortes do Espaço de Busca
• Minimax mesmo c/ Alpha Beta Prunningnão é factível para jogos complexos
• Solução: Parar a busca antes de chegar ao final
• Função de Avaliação (Evaluation Function):
• fornece uma estimativa da utilidade daquele estado (Heurística)
• Teste de Parada (Cutoff Test): decide quando parar a busca
Informática
UFRGS Prof. Paulo Martins Engel
55
Pensar na vez do oponente
• Aplica diversas técnicas para melhorar a busca enquanto o oponente pensa (ouprocessa)
• Avança na busca para evitar armadilhas
• Acessa banco de jogada
• Recalcular
Informática
UFRGS Prof. Paulo Martins Engel
5656
Problemas na Busca
• Teste de Parada
• A função de avaliação somente deve ser aplicada a estados que não vão sofrer mudanças bruscas de valor– Quiescence Search
• Efeito Horizonte:
• Não previsão de jogada catastrófica que
vai acontecer inevitavelmente em um
futuro próximo, fora do horizonte de busca
56
Informática
UFRGS Prof. Paulo Martins Engel
57
Bitboards
• Utilizado largamente.
• Permite operações lógicas entre tabuleiros.
• Funções para descobrir captura e mobilidade de peças são mais velozes.
• Pré-cálculo de tabelas de bitboards.
Informática
UFRGS Prof. Paulo Martins Engel
58
Estado da Arte de Alguns JogosXadrez• 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 com 4000 aberturas e 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?
Informática
UFRGS Prof. Paulo Martins Engel
59
Estado da Arte de Alguns Jogos
Damas
• Em 1952 Arthur Samuel (IBM) fez um dos primeiros programas
• Função de avaliação aprendida em jogos consigo mesmo
• Chinook (Vice-Campeão US-Open em 1990)
• Alpha-Beta Search
• Banco com 444 bilhões de posições (<8 peças)
• Com o uso de bancos de posições, uma pequena busca leva a um resultado já resolvido
Informática
UFRGS Prof. Paulo Martins Engel
60
Estado da Arte de Alguns Jogos
Othello (Reversi)
• Espaço de busca: 5 a 15 movimentos
• Logistello (1997) 6 x 0 Campeão Mundial
• Computadores são melhores que humanos
Informática
UFRGS Prof. Paulo Martins Engel
61
Estado da Arte de Alguns Jogos
Go
• Até 1997 não existiam programas bons
• Hoje em dia, são melhores
• Go4++ (nível amador fraco)
• Reconhecimento de padrões + pequena busca
• Programas irão requerer técnicas mais sofisticadas de tomada de decisão
Informática
UFRGS Prof. Paulo Martins Engel
62
Estado da Arte de Alguns Jogos
Gamão• Incerteza faz com que técnicas de busca nãosejam satisfatórias• Esforço na construção de funções de avaliação
sofisticadas• TD-Gammon está entre os 3 melhores do mundo• Aprendizado por reforço• Redes Neurais• Busca de 2 a 3 níveis
Informática
UFRGS Prof. Paulo Martins Engel
63
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
Informática
UFRGS Prof. Paulo Martins Engel
64
• Contém informação perfeita.
• Pode ser atingido mesmo em posições da abertura.
• Indispensável para a construção de um jogo de damas.
• Construído com o algoritmo de análise retroativa.
• Proporciona cortes na busca.
• Melhora a qualidade da estimativa.
• Garante vitórias ou empates em finais de partidas.
• Mestres humanos memorizam finais de até 5 peças.
• Eventualmente será responsável pela resolução do jogo de damas.
Banco de Dados de Fim de Jogo
Vantagens
Características