Linguagem de descrição do jogo - Game Description Language

Jogo Description Language , ou GDL, é uma lógica de programação linguagem desenhado por Michael Genesereth como parte do jogo Geral Playing Projeto na Universidade de Stanford , Califórnia . A GDL descreve o estado de um jogo como uma série de fatos e a mecânica do jogo como regras lógicas. GDL é aqui uma das representações alternativas para problemas teóricos de jogos.

Objetivo do GDL

Citado em um artigo na New Scientist , Genesereth apontou que, embora o Deep Blue seja capaz de jogar xadrez em um nível de grande mestre , ele é incapaz de jogar damas porque é um jogador especializado. Tanto o xadrez quanto as damas podem ser descritos no GDL. Isso permite que jogadores gerais sejam criados para jogar esses dois jogos e qualquer outro jogo que possa ser descrito usando GDL.

Especificação

Sintaxe

GDL é uma variante do Datalog e a sintaxe é basicamente a mesma. Geralmente é fornecido em notação de prefixo . As variáveis ​​começam com " ?".

Palavras-chave

A seguir está a lista de palavras-chave no GDL, junto com breves descrições de suas funções:

distinct
Esse predicado é usado para exigir que dois termos sejam sintaticamente diferentes.
does
O predicado does(?r,?m)significa que o jogador (ou função ) ?rse move ?mno estado atual do jogo.
goal
O predicado goal(?r,?n)é usado para definir o valor da meta ?n(geralmente um número natural entre 0 e 100) para a função ?rno estado atual.
init
Este predicado se refere a um fato verdadeiro sobre o estado inicial do jogo.
legal
O predicado legal(?r,?m)significa que ?mé uma jogada legal para a função ?rno estado atual.
next
Este predicado se refere a um fato verdadeiro sobre o próximo estado do jogo.
role
Este predicado é usado para adicionar o nome de um jogador.
terminal
Este predicado significa que o estado atual é terminal.
true
Este predicado se refere a um fato verdadeiro sobre o estado atual do jogo.

Regras

Uma descrição do jogo no GDL fornece regras completas para cada um dos seguintes elementos de um jogo.

Jogadoras

Fatos que definem os papéis em um jogo. O exemplo a seguir é de uma descrição GDL do jogo Tic-tac-toe para dois jogadores :

(role xplayer)
(role oplayer)

Estado inicial

Regras que envolvem todos os fatos sobre o estado inicial do jogo. Um exemplo é:

(init (cell 1 1 blank))
...
(init (cell 3 3 blank))
(init (control xplayer))

Movimentos legais

Regras que descrevem cada movimento pelas condições da posição atual sob as quais ele pode ser executado por um jogador. Um exemplo é:

(<= (legal ?player (mark ?m ?n))
    (true (cell ?m ?n blank))
    (true (control ?player)))

Atualização do estado do jogo

Regras que descrevem todos os fatos sobre o próximo estado em relação ao estado atual e os movimentos realizados pelos jogadores. Um exemplo é:

(<= (next (cell ?m ?n x))
    (does xplayer (mark ?m ?n)))
(<= (next (cell ?m ?n o))
    (does oplayer (mark ?m ?n)))

Terminação

Regras que descrevem as condições sob as quais o estado atual é terminal. Um exemplo é:

(<= terminal
    (line x))
(<= terminal
    (line o))
(<= terminal
    not boardopen)

Estados de meta

Os valores da meta para cada jogador em um estado terminal. Um exemplo é:

(<= (goal xplayer 100)
    (line x))
(<= (goal oplayer 0)
    (line x))

Extensões

GDL-II

Com GDL, pode-se descrever jogos finitos com um número arbitrário de jogadores. No entanto, GDL não pode descrever jogos que contenham um elemento de sorte (por exemplo, rolar dados) ou jogos em que os jogadores têm informações incompletas sobre o estado atual do jogo (por exemplo, em muitos jogos de cartas, as cartas do oponente não são visíveis). GDL-II , a linguagem de descrição de jogos para jogos informativos incompletos , estende GDL por duas palavras-chave que permitem a descrição de elementos de sorte e informações incompletas:

sees
O predicado sees(?r,?p)significa que a função ?rpercebe ?pno próximo estado do jogo.
random
Esta constante se refere a um jogador predefinido que escolhe os movimentos aleatoriamente.

O seguinte é um exemplo de uma descrição GDL-II do jogo de cartas Texas hold 'em :

(<= (sees ?player ?card)
    (does random (deal_face_down ?player ?card)))
(<= (sees ?r ?card)
    (role ?r)
    (does random (deal_river ?card)))

GDL-III

Michael Thielscher também criou uma extensão adicional, GDL-III , uma linguagem de descrição geral de jogos com informações e introspecção imperfeitas , que suporta a especificação de jogos epistêmicos - aqueles caracterizados por regras que dependem do conhecimento dos jogadores.

Outros formalismos e linguagens para representação de jogos

Na teoria clássica dos jogos, os jogos podem ser formalizados em formas extensas e normais . Para a teoria dos jogos cooperativos , os jogos são representados usando funções características. Algumas subclasses de jogos permitem representações especiais em tamanhos menores, também conhecidos como jogos sucintos . Alguns dos desenvolvimentos mais recentes de formalismos e linguagens para representação de algumas subclasses de jogos ou representações ajustadas às necessidades da pesquisa interdisciplinar são resumidos na tabela a seguir. Algumas dessas representações alternativas também codificam aspectos relacionados ao tempo:

Nome Ano Meios Tipo de jogos Tempo
Jogo de congestionamento 1973 funções subconjunto de jogos de n pessoas, movimentos simultâneos Não
Forma sequencial 1994 matrizes Jogos de 2 pessoas com informações imperfeitas Não
Jogos cronometrados 1994 funções Jogos para 2 pessoas sim
Gala 1997 lógica jogos de n pessoas com informações imperfeitas Não
Jogos de efeito local 2003 funções subconjunto de jogos de n pessoas, movimentos simultâneos Não
Redes de Petri para jogos 2006 Rede de petri jogos determinísticos de n pessoas, movimentos simultâneos Não
Jogos contínuos 2007 funções subconjunto de jogos de 2 pessoas com informações imperfeitas sim
PNSI 2008 Rede de petri jogos de n pessoas com informações imperfeitas sim
Jogos de gráfico de ação 2012 gráficos, funções jogos de n pessoas, movimentos simultâneos Não
Jogos gráficos 2015 gráficos, funções jogos de n pessoas, movimentos simultâneos Não

Formulários

Um artigo de 2016 "descreve um algoritmo multinível que compila uma descrição geral do jogo em GDL em um raciocínio otimizado em uma linguagem de baixo nível".

Um artigo de 2017 usa GDL para modelar o processo de mediação de uma resolução para uma disputa entre duas partes e apresentou um algoritmo que usa as informações disponíveis de forma eficiente para fazer isso.

Veja também

Referências

links externos