Regular Games

Język Ogólnego Opisu Gier Oparty o Automaty Skończone

DUKAI, 12 grudnia 2025

Klasyczne Game Playing

Osobny program dla każdej gry.

General Game Playing

Jeden program dla wszystkich gier.

Dlaczego GGP?

  1. Krok w kierunku silnej sztucznej inteligencji.​
  2. Solidna baza dla uczenia nienadzorowanego.
  3. Brak ograniczeń na złożoność problemów.
  4. Generowanie gier i ich wariantów.
  5. Tematyka przystępna dla studentów.
  6. ...

Dzisiaj jest to dość niszowa dziedzina
z ogromną historią.

Dlaczego GGP?

  1. Search, Planning, Learning, and Explainability
  2. Cultural Heritage of Games
  3. Automated Game and Puzzle Design
  4. Mathematics in Games
  5. Implementation, Dissemination, and Education

CA22145 - Computational Techniques for Tabletop Games Heritage (GameTable)

Regular Boardgames

AAAI 2019

Regular Boardgames

Formalnie, gra jest zadana wyrażeniem regularnym, opisującym wszystkie legalne ciągi ruchów.

Opisywalna klasa gier obejmuje wszystkie deterministyczne, skończone turowe gry z pełną informacją. W praktyce mieści się tutaj większość popularnych gry planszowe jak Go czy Szachy, ale nie ma tu gier karcianych jak Poker.

AAAI 2019

Ludii

ECAI 2020

Ludii

Formalnie, gra jest złożona z ludemów, opisującym jakąś część gry, jak pionki czy warunek zakończenia.

ECAI 2020

Opisywalna klasa gier obejmuje wszystkie skończone turowe gry z niepełną informacją. W porównaniu z Regular Boardgames możemy opisać Pokera ale też nowoczesne strategiczne gry planszowe jak Catan czy Monopoly.

Ludii

Regular Games

AAAI 2026

Regular Games

Formalnie, gra zadana jest automatem skończonym z etykietami na krawędziach, opisującym legalne ciągi ruchów.

Opisywalna klasa gier jest taka sama jak w przypadku Ludii, więc wszystkie skończone turowe gry z niepełną informacją.

Gry z ruchami symultanicznymi można symulować korzystając z niepełnej informacji.

AAAI 2026

Regular Games

System Regular Games

System Regular Games

Przebieg symulacji

Sam automat służy nam jako tak zwany forward model, pozwalający symulować rozgrywki.

start: () => State







moves: (State) => Move[]







apply: (State, Move) => State








is_terminal: (State) => boolean








get_scores: (State) => Scores

7

4

7

0

-3

-2

Narzędzia

Narzędzia

Narzędzia

Narzędzia

Narzędzia

Wydajność

Pytania?