Hello,
I have made before here posts about my ambitions for making an engine for my 10x10 upcoming variants. Because of external circumstances I have started doing it for 2 7x7 variants and it works (mostly) .
First the 2 games:
Common ground:
the boards are 7x7
there is no queen
the back rank is:
RNBKNBR
the right side bishop is switched with the right side knight so that the two bishops would not be bound to the same color.
the second rank is:
PPPGPPP
G stands for general
the third rank has a pawn ahead of the general.
The Silver Game
The General is a silver general
the Knight moves in it's forward half like and orthodox knight, 1 square laterally or one square back
The Gold Game
The General is a gold general
the Knight moves in it's forward half like and orthodox knight, 1 square diagonally back
More common ground:
To win, a player must capture or bare the enemy king. The victory is on spot (no counter baring)
The first repeated position is a draw. There is a 35 moves rule (akin to the 50 moves rule). Stalemate is a loss for the stalemate. Also for practical purposes a game that lasts 200 turns is a draw.
There is no pawn double move hence no en passant. There is no castle.
For the following gemini 3.1 has help at every step.
First I have created for each of the two games a database with 2500 games played with a 3 moves, deep no pruning. Then I have trained a simple MLP on them. First I wanted to build an alpha zero style engine for the games. But I was also curious about using RBFNN as nobody has used those, and I did. Because of the still pretty huge amount of moves that needed to be checked I have changed the activation function to a triangle function rather than a gaussian. That did not worked as there were no intersections between different centers. So I have used a "piecewise triangle" (ie a triangle on a trapezoid- with the trapezoid having a very large difference between bases). I have also build two MLP then, a bit larger than before, a deeper MLP and a one layer shallower MLP but with double the neurons in the first hidden layer. So I have decided to challenge the 3 engines in a round robin so they can learn from each other. The round robin should have contained 3 champions (the old versions) and 3 challengers (the version trained with the last games) for a total of 6 players, that play a six-tuple round robin (90 games in total). And when challengers placed above their type champion they should have replaced them. But due to a misunderstanding the champions ended up being trained for 3 epochs in continuation, and the challengers retrained from scratch for ten epochs. That has proven a very good strategy. RBF has proved the best network, probably due to it's stability. I still have some small bugs I think. Also the games were not timed. I'll do that later. The good thing is that the engines seem to improve (challengers win more often than not). I am very excited by this, even if it is more a learing tool for me for upcomming engines.
7x7 variants alpha-zero style engines
Moderator: Ras
-
catugocatugocatugo
- Posts: 40
- Joined: Thu Feb 16, 2023 12:56 pm
- Full name: Florea Aurelian
-
hgm
- Posts: 28502
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: 7x7 variants alpha-zero style engines
You describe the goal as King capture rather than checkmate, which implies there is no checking rule. That means you could bare your opponent through a move that exposes your King. You say there is no exception for counter baring, but is there also no rule for 'counter King capture'?
-
catugocatugocatugo
- Posts: 40
- Joined: Thu Feb 16, 2023 12:56 pm
- Full name: Florea Aurelian
Re: 7x7 variants alpha-zero style engines
No. The reason was to keep the game as simple as possible. But actually these have gave me a lot of headaches, because when random elements have been introduced, kings started wandering coldly into check.