jogos.ppt [modo de compatibilidade] - inf.ufrgs.brengel/data/media/file/inf01048/jogos.pdf · •...

32
Inteligência Artificial Prof. Paulo Martins Engel Busca Competitiva Jogos 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.

Upload: lythuy

Post on 27-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

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