178 lines
7.7 KiB
Markdown
178 lines
7.7 KiB
Markdown
|
|
---
|
|||
|
|
id: CB-RES-0009
|
|||
|
|
capability: analysis.gametheory
|
|||
|
|
status: draft — survey only, no decision taken
|
|||
|
|
tier: M
|
|||
|
|
chaos: not rolled — this is a survey, not a pass that changes the loop
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# CB-RES-0009 — extensive form is the lingua franca
|
|||
|
|
|
|||
|
|
Surveyed 2026-08-08. Answers two questions put by the maintainer:
|
|||
|
|
**is there a good game-theory mapping to Ludii's game description
|
|||
|
|
language**, and **is that language formal enough to derive one from?**
|
|||
|
|
|
|||
|
|
**Short answers: yes, and no — but the second does not matter, because
|
|||
|
|
the first already gives us the object we want.**
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. The mapping exists, and it is the extensive-form game
|
|||
|
|
|
|||
|
|
*The Ludii Game Description Language is Universal* proves that Ludii's
|
|||
|
|
language **can represent an equivalent game for any arbitrary finite,
|
|||
|
|
non-deterministic, imperfect-information game**, extending earlier work
|
|||
|
|
that covered only *"finite, deterministic, fully observable extensive-form
|
|||
|
|
games"*. The paper is explicitly grounded in **extensive-form games**.
|
|||
|
|
|
|||
|
|
So the mapping is not something to invent. **It is the theorem.**
|
|||
|
|
|
|||
|
|
An extensive-form game (EFG) is the standard game-theoretic object:
|
|||
|
|
|
|||
|
|
| EFG component | what it is |
|
|||
|
|
|---|---|
|
|||
|
|
| **histories** | sequences of actions from the root |
|
|||
|
|
| **information sets** | histories a player cannot tell apart — where imperfect information lives |
|
|||
|
|
| **chance nodes** | nature's moves, with probabilities |
|
|||
|
|
| **payoffs** | utilities at terminal histories |
|
|||
|
|
|
|||
|
|
**Simultaneous moves are already covered**: the standard EFG encoding
|
|||
|
|
sequences them and hides the earlier move in an information set. GROUND's
|
|||
|
|
commit/reveal *is* that encoding.
|
|||
|
|
|
|||
|
|
## 2. And it is the same object OpenSpiel uses
|
|||
|
|
|
|||
|
|
This is the part that makes it useful rather than merely true.
|
|||
|
|
|
|||
|
|
[OpenSpiel](../simulators/openspiel.md)'s API is an EFG interface, and
|
|||
|
|
its algorithms — CFR, best-response, **exploitability** — operate on EFG
|
|||
|
|
structure. It states support for simultaneous-move,
|
|||
|
|
imperfect-information and cooperative games, which is all four of
|
|||
|
|
GROUND's awkward properties.
|
|||
|
|
|
|||
|
|
> **Ludii → EFG ← OpenSpiel.** The extensive-form game is the interchange
|
|||
|
|
> format between "describing a game" and "analysing it", and both
|
|||
|
|
> neighbours already speak it.
|
|||
|
|
|
|||
|
|
## 3. Is Ludii's language formal? Syntax yes, semantics no
|
|||
|
|
|
|||
|
|
This is the sharp part of the answer.
|
|||
|
|
|
|||
|
|
**The syntax is formal, and unusually so.** Ludii uses a **class grammar**:
|
|||
|
|
the grammar is *automatically derived from the source code*, so keywords
|
|||
|
|
(ludemes) and their permitted argument types come from the class
|
|||
|
|
hierarchy. A game is a quintuple of ludemes — Name, Players, Mode,
|
|||
|
|
Equipment, Rules.
|
|||
|
|
|
|||
|
|
**The semantics are the implementation.** In the surveyed material's own
|
|||
|
|
words, *"Ludii effectively makes its programming language (Java) the game
|
|||
|
|
description language, and as a result, it can theoretically support any
|
|||
|
|
rule, equipment or behaviour that can be programmed in Java."* A ludeme
|
|||
|
|
means what its Java class does. Compilation yields a forward model —
|
|||
|
|
legal moves, apply, copy.
|
|||
|
|
|
|||
|
|
So:
|
|||
|
|
|
|||
|
|
> **There is no independent mathematical semantics to extract.** The
|
|||
|
|
> formality lives in the *universality result*, which is a statement about
|
|||
|
|
> what the language can express, not in a calculus defining what a
|
|||
|
|
> description means.
|
|||
|
|
|
|||
|
|
**Contrast with GDL**, which has a genuine logical semantics defined
|
|||
|
|
independently of any interpreter — and pays for it in verbosity and
|
|||
|
|
speed: Ludii is measured as **six times faster** on Gomoku 15×15, twenty
|
|||
|
|
on Amazons and Hex, and **over two hundred** on Chess.
|
|||
|
|
|
|||
|
|
**That is the real trade, and it is not "Ludii vs GDL". It is:**
|
|||
|
|
|
|||
|
|
| you can have | you give up |
|
|||
|
|
|---|---|
|
|||
|
|
| semantics defined independently (GDL) | speed, concision, readability |
|
|||
|
|
| speed and a machine-derived grammar (Ludii) | a definition of meaning that survives the implementation |
|
|||
|
|
|
|||
|
|
## 4. The conclusion for clay-borg
|
|||
|
|
|
|||
|
|
**Do not derive a description language from Ludii.** There is nothing
|
|||
|
|
semantic to derive, and copying its approach would make *our* Rust the
|
|||
|
|
definition of meaning — which is what we already have, unlabelled.
|
|||
|
|
|
|||
|
|
**Target the EFG directly.** It is the formal object, the universality
|
|||
|
|
proof says it is expressive enough for anything we will model, and it is
|
|||
|
|
what buys the game theory.
|
|||
|
|
|
|||
|
|
### 4.1 We are closer than the tracks assumed
|
|||
|
|
|
|||
|
|
clay-borg already has most of an EFG, under other names:
|
|||
|
|
|
|||
|
|
| EFG component | what we already have |
|
|||
|
|
|---|---|
|
|||
|
|
| histories | the **journal** — `Applied { actor, command, events }` in order |
|
|||
|
|
| legal actions | `bot::legal_commands(state, seat)` |
|
|||
|
|
| **information sets** | **`state.project(Viewer::Player(seat))`** — the projection *is* the information partition |
|
|||
|
|
| payoffs | `Outcome` / `score()` |
|
|||
|
|
| terminal | `outcome.is_some()` |
|
|||
|
|
|
|||
|
|
**The projection is the find.** `Project`/`Viewer` was built so a player
|
|||
|
|
is not shown another's hand ([INTENT](../INTENT.md) decision 7). It is,
|
|||
|
|
unremarked, the machinery an EFG needs for imperfect information.
|
|||
|
|
|
|||
|
|
### 4.2 Three gaps, and one of them is checkable today
|
|||
|
|
|
|||
|
|
**Chance is folded, not explicit.** `setup` shuffles the deck, deals, and
|
|||
|
|
draws the Lead from a seeded RNG; the mid-game reshuffle derives from seed
|
|||
|
|
and round. So **a clay-borg game is one chance realisation, not a game
|
|||
|
|
with chance nodes** — and our panels approximate the chance distribution
|
|||
|
|
by sampling seeds. That is legitimate Monte Carlo, and it is *not* an EFG
|
|||
|
|
with a chance player. CFR needs the latter.
|
|||
|
|
|
|||
|
|
**Perfect recall is unasserted.** CFR and exploitability assume **perfect
|
|||
|
|
recall**: a player remembers their own past actions and observations.
|
|||
|
|
Whether our per-seat projection sequence satisfies it is **a property of
|
|||
|
|
this engine that nobody has checked**, and it is checkable —
|
|||
|
|
reconstruct each seat's observation sequence from the journal and require
|
|||
|
|
that no two histories in one information set disagree about that seat's
|
|||
|
|
own past.
|
|||
|
|
|
|||
|
|
> **This is the concrete next step for Track B**, and it is small. If
|
|||
|
|
> perfect recall fails, every equilibrium concept we might quote is
|
|||
|
|
> unsound here, and that is worth knowing before adopting anything.
|
|||
|
|
|
|||
|
|
**Simultaneity is encoded but not stated.** Commit/reveal is the textbook
|
|||
|
|
EFG encoding of simultaneous moves. Saying so costs nothing and removes a
|
|||
|
|
question a reviewer would otherwise have to ask.
|
|||
|
|
|
|||
|
|
## 5. What this does to the tracks
|
|||
|
|
|
|||
|
|
- **Track A**: the description-language question narrows. The choice is
|
|||
|
|
not "our language or Ludii's" but **"what is the cheapest thing that
|
|||
|
|
emits an EFG"** — and Ludii is then a possible *front end*, not a rival.
|
|||
|
|
- **Track B**: was "build a game-theory agent". It is now **close the
|
|||
|
|
three gaps in §4.2, then adopt**. The first task is a checkable
|
|||
|
|
property, not a design.
|
|||
|
|
|
|||
|
|
## 6. What was not checked
|
|||
|
|
|
|||
|
|
- **The universality paper's proof itself** — only its abstract and
|
|||
|
|
framing were read. The theorem statement is quoted second-hand.
|
|||
|
|
- **Whether OpenSpiel's exploitability is meaningful for a co-operative
|
|||
|
|
game with a shared threshold.** Still open, still the question that
|
|||
|
|
decides whether Track B adopts or only borrows vocabulary.
|
|||
|
|
- **Ludii's licence**, and whether a front-end use is permitted.
|
|||
|
|
- Whether Ludii can express a **binding multi-round state machine** like
|
|||
|
|
DARVO concisely. Universality says it *can* be expressed; it says
|
|||
|
|
nothing about whether the description stays readable, which is Ludii's
|
|||
|
|
actual selling point.
|
|||
|
|
|
|||
|
|
## Sources
|
|||
|
|
|
|||
|
|
- *The Ludii Game Description Language is Universal*
|
|||
|
|
(https://arxiv.org/abs/2205.00451)
|
|||
|
|
- *An Overview of the Ludii General Game System*
|
|||
|
|
(https://arxiv.org/pdf/1907.00240) and *Ludii Game Logic Guide*
|
|||
|
|
— for the class grammar and Java-as-semantics point
|
|||
|
|
- *Game Description Languages: the Good, the Bad, and the Ugly*, Björnsson
|
|||
|
|
(https://ludii.games/TalksWorkshop/Bjornsson.pdf)
|
|||
|
|
- OpenSpiel (https://github.com/google-deepmind/open_spiel)
|
|||
|
|
- *A note on the empirical comparison of RBG and Ludii*
|
|||
|
|
(https://arxiv.org/pdf/1910.00309) — the speed figures
|