OpenSpiel é uma coleção de ambientes e algoritmos para pesquisa em aprendizagem por reforço geral e busca/planejamento em jogos. OpenSpiel suporta jogos de soma zero para n jogadores (único e multiagente), cooperativos e de soma geral, one-shot e sequenciais, estritamente turnos e movimentos simultâneos, jogos de informação perfeitos e imperfeitos, bem como ambientes multiagentes tradicionais tais como mundos de grade (parcialmente e totalmente observáveis) e dilemas sociais. OpenSpiel também inclui ferramentas para analisar a dinâmica de aprendizagem e outras métricas de avaliação comuns. Os jogos são representados como jogos procedimentais de formato extensivo, com algumas extensões naturais. A API principal e os jogos são implementados em C++ e expostos em Python. Algoritmos e ferramentas são escritos em C++ e Python.
Para experimentar o OpenSpiel no Google Colaboratory, consulte o subdiretório open_spiel/colabs
ou comece aqui.
Escolha entre as seguintes opções:
Para uma introdução mais longa aos principais conceitos, formalismos e terminologia, incluindo uma visão geral dos algoritmos e alguns resultados, consulte OpenSpiel: A Framework for Reinforcement Learning in Games.
Para uma visão geral do OpenSpiel e exemplos de uso da API principal, confira nossos tutoriais:
Se você usa OpenSpiel em sua pesquisa, cite o artigo usando o seguinte BibTeX:
@article { LanctotEtAl2019OpenSpiel ,
title = { {OpenSpiel}: A Framework for Reinforcement Learning in Games } ,
author = { Marc Lanctot and Edward Lockhart and Jean-Baptiste Lespiau and
Vinicius Zambaldi and Satyaki Upadhyay and Julien P'{e}rolat and
Sriram Srinivasan and Finbarr Timbers and Karl Tuyls and
Shayegan Omidshafiei and Daniel Hennes and Dustin Morrill and
Paul Muller and Timo Ewalds and Ryan Faulkner and J'{a}nos Kram'{a}r
and Bart De Vylder and Brennan Saeta and James Bradbury and David Ding
and Sebastian Borgeaud and Matthew Lai and Julian Schrittwieser and
Thomas Anthony and Edward Hughes and Ivo Danihelka and Jonah Ryan-Davis } ,
year = { 2019 } ,
eprint = { 1908.09453 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.LG } ,
journal = { CoRR } ,
volume = { abs/1908.09453 } ,
url = { http://arxiv.org/abs/1908.09453 } ,
}
Usamos versionamento semântico.