Jogos com Oponentes
Jogos com Oponentes
Problemas de busca: n˜ ao assumem a presen¸ ca de um oponente
Jogos: oponente → INCERTEZA!
Incerteza porque n˜ ao se conhece as jogadas exatas do oponente e n˜ ao por causa de falta de informa¸ c˜ ao.
Jogos s˜ ao diferentes de busca por duas raz˜ oes principais:
I
espa¸ co de busca muito grande
I
tempo para cada jogada
Ex: xadrez, em m´ edia fator de ramifica¸ c˜ ao = 35
em m´ edia, 50 jogadas para cada jogador, onde de cada
jogada devemos selecionar 1 de 35 → 35 100 n´ os!!!
Jogos
Um jogo pode ser definido como um tipo de problema de busca com os seguintes componentes:
I
estado inicial: configura¸ c˜ ao do tabuleiro e indica¸ c˜ ao de quem ´ e a vez
I
fun¸ c˜ ao para gerar os sucessores: retorna uma lista de sucessores para a jogada corrente
I
teste de termina¸ c˜ ao
I
Fun¸ c˜ ao utilidade (utility function) que devolve o valor num´ erico do jogo. Ex: ganhou, empatou, perdeu.
I
dependendo do tamanho do espa¸ co de procura: limite de profundidade
Jogo com dois jogadores: MIN e MAX
MAX inicia o jogo
Exemplo: jogo do galo
(velha - BR ou tic-tac-toe - US ou noughts and crosses - UK)
X X X X
X X X
X X
X X
O O X O
O X O X O
X
. . . . . . . . . . . . . . . . . .
. . . X
X
–1 0 +1
X X XOX
XOX XOX O O X XOX
O O
O O X X
MAX (
X)
MIN (
O)
MAX (
X)
MIN (
O)
TERMINAL
Utility
Exemplo: jogo do galo (fonte: Nilsson)
Observa¸ c˜ oes
Observa¸c˜ oes:
fator de ramifica¸ c˜ ao dos n´ os mais pr´ oximos da raiz pode ser reduzido removendo estados sim´ etricos
fator de ramifica¸ c˜ ao dos n´ os mais profundos da ´ arvore de procura vai automaticamente sendo reduzido (sem
necessidade de verifica¸ c˜ ao de simetrias, porque o n´ umero de posi¸ c˜ oes vagas no tabuleiro diminui)
se expandir todos os n´ os at´ e o ´ ultimo n´ıvel da ´ arvore, a fun¸ c˜ ao utilidade pode ser: 0 para empate, -1 para perdeu e +1 para ganhou
se n˜ ao expandir os n´ os at´ e o ´ ultimo n´ıvel, pode utilizar a
fun¸ c˜ ao utilidade que devolve o n´ umero de filas (linhas,
colunas e diagonais) vazias para o MAX menos o n´ umero
de filas vazias para o MIN.
Jogos: Minimax
MINIMAX-VALUE(n) =
U T ILIT Y (n) if n is a terminal state
max s∈successors(n) MINIMAX-VALUE(s) if n is a MAX node
min s∈successors(n) MINIMAX-VALUE(s) if n is a MIN node
Jogos: Algoritmo Minimax
functionMINIMAX DECISION(state): returns an action inputs: state→estado corrente no jogo
v←MAX-VALUE(state)
returnthe action in SUCCESSORS(state) with value v functionMAX-VALUE(state) returns a utility value ifTERMINAL TEST(state)then
returnUTILITY(state) end if
v←-infinito
fors in SUCCESSORS(state)do v←MAX(v, MIN-VALUE(s)) end for
returnv
functionMIN-VALUE(state) returns a utility value ifTERMINAL TEST(state)then
returnUTILITY(state) end if
v←infinito
fors in SUCCESSORS(state)do v←MIN(v, MAX-VALUE(s)) end for
returnv
Jogos: Algoritmo Alfa-Beta
functionALPHA-BETA-SEARCH(state): returns an action inputs: state→estado corrente no jogo
v←MAX-VALUE(state,-inf,+inf)
returnthe action in SUCCESSORS(state) with value v functionMAX-VALUE(state,alfa,beta) returns a utility value
inputs: state, alfa→melhor alternativa para MAX, beta→melhor alternativa para MIN ifTERMINAL TEST(state)then
returnUTILITY(state) end if
v←-infinito
fors in SUCCESSORS(state)do v←MAX(v, MIN-VALUE(s,alfa,beta))
if(v>= beta )then
returnv // momento da poda end if
alfa←MAX(alfa,v) end for
returnv
functionMIN-VALUE(state,alfa,beta) returns a utility value ifTERMINAL TEST(state)then
returnUTILITY(state) end if
v←+infinito
fors in SUCCESSORS(state)do v←MIN(v, MAX-VALUE(s,alfa,beta))
if(v<= alfa )then
returnv // momento da poda end if
beta←MIN(beta,v) end for
returnv
Exemplo: jogos com m´ ultiplos jogadores (fonte:
Russell)
to move A
B C A
(1, 2, 6) (4, 2, 3) (6, 1, 2) (7, 4,1) (5,1,1) (1, 5, 2) (7, 7,1) (5, 4, 5)
(1, 2, 6) (6, 1, 2) (1, 5, 2) (5, 4, 5)
(1, 2, 6) (1, 5, 2)
(1, 2, 6)
X
Exemplo: jogos com m´ ultiplos jogadores
Observa¸c˜ oes:
representa¸c˜ ao de valores para cada jogador em forma de vetor (tuplas), onde cada elemento indica a fun¸ c˜ ao utilidade para um jogador, na ordem de jogada
algoritmo aplicado similar ao minimax
complica¸c˜ oes:
I
mudan¸ cas dinˆ amicas de estrat´ egia durante o jogo quando acontecem alian¸ cas entre jogadores para derrubar o jogador mais forte e mais tarde estas alian¸ cas desaparecem (jogo flutua entre coopera¸ c˜ ao e competi¸ c˜ ao)
I