81 lines
3.1 KiB
Markdown
81 lines
3.1 KiB
Markdown
|
|
# OpenSpiel
|
|||
|
|
|
|||
|
|
Google DeepMind · C++ core with Python bindings · Apache-2.0 `unverified` ·
|
|||
|
|
`checked` for scope and algorithms
|
|||
|
|
|
|||
|
|
## What it optimises for
|
|||
|
|
|
|||
|
|
**Research in reinforcement learning and search/planning in games**, with
|
|||
|
|
a strong game-theoretic algorithm library.
|
|||
|
|
|
|||
|
|
Supports n-player single- and multi-agent, **zero-sum, cooperative and
|
|||
|
|
general-sum**, one-shot and sequential, turn-taking **and
|
|||
|
|
simultaneous-move**, perfect and imperfect information — plus grid worlds
|
|||
|
|
and **social dilemmas**. `checked`
|
|||
|
|
|
|||
|
|
## How a game is defined
|
|||
|
|
|
|||
|
|
Games are implemented against a C++ (or Python) API. `checked` — this is
|
|||
|
|
a *programming* interface, not a description language, which is the axis
|
|||
|
|
where Ludii and Ai Ai differ from it.
|
|||
|
|
|
|||
|
|
## What it can analyse
|
|||
|
|
|
|||
|
|
The reason this profile matters for Track B. Implemented algorithms
|
|||
|
|
include **CFR** and its Monte-Carlo variants, **Deep CFR**, **exploitability**
|
|||
|
|
and best-response computation, fictitious play (XFP, NFSP), **PSRO**,
|
|||
|
|
**α-Rank**, replicator/evolutionary dynamics, minimax, MCTS, and
|
|||
|
|
value iteration. `checked`
|
|||
|
|
|
|||
|
|
**Exploitability** is the key one: how much an opponent gains by
|
|||
|
|
deviating to a best response — a direct, computable measure of *how far
|
|||
|
|
from equilibrium a strategy is*. `checked`
|
|||
|
|
|
|||
|
|
## What it does not do
|
|||
|
|
|
|||
|
|
- Nothing design-facing. It answers "how strong is this strategy" and
|
|||
|
|
"how far from equilibrium", not "is this rule doing its job".
|
|||
|
|
- No game description language, so no cheap path for a designer.
|
|||
|
|
- No evidence discipline: outputs are research data.
|
|||
|
|
|
|||
|
|
## Relevance to clay-borg
|
|||
|
|
|
|||
|
|
**Track B, and it is very likely the answer rather than a competitor.**
|
|||
|
|
|
|||
|
|
Our current instrument for "does ATTACK ever pay" is two hand-written
|
|||
|
|
policies and a rank parameter. **Exploitability and best-response are the
|
|||
|
|
principled versions of that question**, and they are implemented,
|
|||
|
|
tested and published here.
|
|||
|
|
|
|||
|
|
GROUND is simultaneous-move, imperfect-information, cooperative with a
|
|||
|
|
defection mechanic — **all four are inside OpenSpiel's stated scope**.
|
|||
|
|
|
|||
|
|
## What to steal
|
|||
|
|
|
|||
|
|
- **Exploitability as the replacement for "we tried three policies".**
|
|||
|
|
F17's question — does ATTACK earn its place — is a best-response
|
|||
|
|
question wearing a sweep's clothes.
|
|||
|
|
- The distinction between **cooperative, general-sum and zero-sum** as a
|
|||
|
|
first-class property of a game, which our kernel does not represent.
|
|||
|
|
|
|||
|
|
## What to avoid
|
|||
|
|
|
|||
|
|
**Quoting a solution concept without its assumptions.** An equilibrium
|
|||
|
|
computed over a policy class we chose is a statement about that class.
|
|||
|
|
This is the wrong-subject error in mathematical dress, and it is the
|
|||
|
|
specific risk `Positioning.md` §4 flags for Track B.
|
|||
|
|
|
|||
|
|
## Open questions
|
|||
|
|
|
|||
|
|
- Cost of expressing a GROUND-like game against its API versus our kernel.
|
|||
|
|
- Whether exploitability is meaningful for a co-operative game with a
|
|||
|
|
shared threshold — `open`, and it is the question that decides whether
|
|||
|
|
Track B adopts this or only borrows its vocabulary.
|
|||
|
|
- Licence.
|
|||
|
|
|
|||
|
|
## Sources
|
|||
|
|
|
|||
|
|
- OpenSpiel repository (https://github.com/google-deepmind/open_spiel)
|
|||
|
|
- *OpenSpiel: A Framework for Reinforcement Learning in Games*
|
|||
|
|
(https://www.researchgate.net/publication/335419770)
|