2022-03-21 14:27:16 +01:00
|
|
|
# Project vacuumDecay
|
|
|
|
|
|
|
|
Project vacuumDecay is a framework for building AIs for games.
|
|
|
|
Avaible architectures are
|
|
|
|
- those used in Deep Blue (mini-max / expecti-max)
|
|
|
|
- advanced expecti-max exploration based on utility heuristics
|
|
|
|
- those used in AlphaGo Zero (knowledge distilation using neural-networks)
|
|
|
|
|
|
|
|
A new AI is created by subclassing the State-class and defining the following functionality (mycelia.py provies a template):
|
|
|
|
- initialization (generating the gameboard or similar)
|
|
|
|
- getting avaible actions for the current situation (returns an Action-object, which can be subclassed to add additional functionality)
|
|
|
|
- applying an action (the state itself should be immutable, a new state should be returned)
|
|
|
|
- checking for a winning-condition (should return None if game has not yet ended)
|
|
|
|
- (optional) a getter for a string-representation of the current state
|
|
|
|
- (optional) a heuristic for the winning-condition (greatly improves capability)
|
|
|
|
- (optional) a getter for a tensor that describes the current game state (required for knowledge distilation)
|
|
|
|
- (optional) interface to allow a human to select an action
|
|
|
|
|
|
|
|
### Current state of the project
|
2022-04-15 14:35:58 +02:00
|
|
|
The only thing that currently works is the AI for Ultimate TicTacToe.
|
|
|
|
It uses a trained neural heuristic (neuristic)
|
2022-05-13 17:06:35 +02:00
|
|
|
You can train it or play against it (will also train it) using 'python ultimatetictactoe.py'
|
|
|
|
|
|
|
|
The performance of the trained neuristic is pretty bad. I have some ideas on what could be the problems but no time to implement fixes.
|
|
|
|
(Focus on the ending of games at the beginning of training; more consistent exploration-depth for expanding while training; ...)
|