OT: Roman boardgame deciphered with help from AI

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Ajedrecista
Posts: 2209
Joined: Wed Jul 13, 2011 9:04 pm
Location: Madrid, Spain.

Re: OT: Roman board game deciphered with help from AI.

Post by Ajedrecista »

Hello:

Following my notation, b2 and c2 do not exist, just in case they appear in former posts. They would likely refer to a2 and d2, respectively.

------------

Assuming an empty board on the 10-spot variant, a piece can move from any spot to any spot in three moves at most:

Code: Select all

·—·—·—·  3
|/   \|
·—————·  2
|\   /|
·—·—·—·  1

a b c d

0123   1012   2101   3210
1  2   1  2   2  1   2  1
2233   2233   3322   3322

1122                 2211
0  1                 1  0
1122                 2211

2233   2233   3322   3322
1  2   1  2   2  1   2  1
0123   1012   2101   3210
With a higher mobility (less moves needed) of a2 and d2, as we already know, just the opposite of the corners.

------------

I toyed a little with Google free, online IA mode, explaining this exact variant. Then, inspired by this thread, I asked it to apply the Burnside's lemma, which I do not fully understand, so I copy the conclussions almost blindly: there could be 810 unique positions.

Code: Select all

N = (3150 + 30 + 30 + 30)/4 = 810

Where:

3150 is for identities: (10 over 4)*(6 over 2)
I guess that 10 spots and 4 pieces of the strong side, then 6=10-4 available spots and 2 pieces of the weak side.

30 for vertical reflections: (5 over 2)*(3 over 1)
Looks like 5 being the spots of one half of the board (left or right), then place one half of the pieces of the strong side (4/2=2), then 3=5-2 available spots in this half of the board and half of the pieces of the weak side (2/2=1).

30 for horizontal reflections: (5 over 2)*(3 over 1)
Probably 4 being the spots of one half (top or bottom) plus 1 of a2 or d2, with the same reasonment than for vertical reflections.

30 for 180º rotations: (5 over 2)*(3 over 1)
I could not understand why.
The IA also told that 200 of these unique positions where with both a2 and d2 empty; 160 with a2 and d2 occupied; and the remaining 450 with one occupied and one empty. I did not check manually, understandably.

------------

Inspired by the same thread than before, I asked the IA to apply the cycle index polynomial, which I also do not fully understand:

Code: Select all

Klein's group V4 (or C2 × C2) and order |G| = 4 according to the IA.

Identity: 10 fixed nodes.
10 cycles of length 1 (f_1;10)

Vertical reflections: swap left and right (a↔d and b↔c). 5 pairs (a1,d1), (b1,c1), (a2,d2), (a3,d3), (b3,c3).
5 cycles of length 2 (f_2;5)

Horizontal reflections: swap bottom and top (1↔3). 4 pairs (a1,a3), (b1,b3), (c1,c3), (d1,d3); plus 2 fixed nodes a2 and d2.
4 cycles of length 2 (f_2;4) and 2 cycles of length 1 (f_1;2), which result in (f_2;4)*(f_1;2)

180º rotation: the composition of both reflections. 5 pairs (a1,d3), (b1,c3), (c1,b3), (d1,a3), (a2,d2)
5 cycles of length 2 (f_2;5)

Polynomial:
Z(G) = (1/4) * [(f_1;10) + (f_2;5) + (f_2;4)*(f_1;2) + (f_2;5)]
Z(G) = (1/4) * [(f_1;10) + 2*(f_2;5) + (f_2;4)*(f_1;2)]
Taking a look to the thread of TalkChess, calling e to empty nodes, S to the pieces of the strong side and w to the pieces of the weak side, it should be:

Code: Select all

Z(G) = (1/4) * [(e+S+w)^10 + 2*(e^2+S^2+w^2)^5 + (e^2+S^2+w^2)^4 * (e+S+w)^2]
Expanding Z(G) and picking the coefficient of e^4 S^4 b^2, it is 810 indeed! Since this game does not allow captures, this is the only coefficient that matters and we have bounded the size of the game.

------------

I took some time to dig into the game without software analysis, i.e. without downloading the Ludii app, which in practice means that anyone who learns the game in five minutes by his/her own will get better strategies than me in some hours, such is life.

Thinking from the strong side POV, I initially thought that keeping a piece in one of the central spots (a2 or d2) forever was good for getting fast wins, as is the aim of the game; later, I changed my mind and while being very important, I let some incursions abandoning these spots in order to create zugzwangs to finally block the pieces of the other side. Given the small size of the board and how much crowded it is, I feel it is the same few maneouvres once and again, once and again... although I sometimes shuffles a bit because I have not solved the game.

One curious thing is that I came with a tactic once a piece is trapped and go for the other, that I leave only two spots for the weak side, blocking in the next move regardless of where it moves. I randomly called it 'pinza' (a Spanish word) and while toying with the IA and playing some games, the IA called it 'pinza' too without writing anything! I wrote in English and the IA answered in Spanish. It was funny, like great minds think alike, although the IA sometimes played illegal moves from time to time and I had to told why was wrong despite I described a precise topology of the board and rules.

I still think that once you can trap the first piece, trap it instead of search other moves in order to get faster wins, because it might not. Please remember that I do not master the game, so I might be wrong. Once you have a piece trapped, for example on d3, I analyzed some positions:

Code: Select all

w to move

·—·—S—w  3
|/   \|
w—————S  2
|\   /|
S—S—·—·  1

a b c d

     w      S
1. a2-a3  a1-a2  // Moving the piece of the rank where w moved.
2. a3-b3  a2-a3  // Creating the zugzwang.
3. b3-a2  a3-b3  // What I call the 'pinza', leaving only two corners available and blocking in the next move.
4. a2-a1  b3-a2  // Alternatively, 4. a2-a3  b1-a2

===============

w to move

·—·—S—w  3
|/   \|
w—————S  2
|\   /|
S—S—·—·  1

a b c d

     w      S
1. a2-b3  b1-a2  // Moving the piece of the rank where w moved.
2. b3-a3  a2-b3
3. a3-a2  a1-b1  // The 'pinza' again, creating the zugzwang and leaving only two corners available for blocking in the next move.
4. a2-a1  b3-a2  // Alternatively, 4. a2-a3  b1-a2

===============

S to move

·—·—S—w  3
|/   \|
w—————S  2
|\   /|
S—S—·—·  1

a b c d

     w      S
1.  ...   b1-c1
2. a2-b1  a1-a2  // Bad move by w, letting cornered faster.
3. b1-a1  c1-b1  // S wins.

===============

S to move

·—·—S—w  3
|/   \|
w—————S  2
|\   /|
S—S—·—·  1

a b c d

     w      S
1.  ...   b1-c1
2. a2-a3  a1-a2
3. a3-b3  a2-a3
4. b3-a2  c1-b1  // A variant of the 'pinza', explained below. S wins in the next move.
5. a2-b3  b1-a2  // Alternatively, 5. a2-a1  a3-a2

===============

S to move

·—·—S—w  3
|/   \|
w—————S  2
|\   /|
S—S—·—·  1

a b c d

     w      S
1.  ...   b1-c1
2. a2-b3  a1-a2
3. b2-a3  a2-b3
4. a3-a2  c1-b1  // The 'pinza' again. S wins in the next move.
5. a2-a1  b3-a2  // Alternatively, 5. a2-a3, b1-a2
The comment on the first strong side's move must serve as a rule of the thumb to help the stronger side and not waste moves.

There are positions of a double zugzwang or double 'pinza', with the two pieces of the weak side on the centre spots and all the corners empty (the double 'pinza'), with the weak side to move (the zugzwang or double zugzwang because one piece move and is trapped, and the weak sides faces other zugzwang again). Proof game:

Code: Select all

     w      S
1. a3-a2  d1-d2
2. d3-c3  d2-d3
3. a2-d2  b1-a2
4. c3-b3  d3-c3
5. b3-a3  a2-b3  // Setting the trap!
6. a3-a2  a1-b1  // Double zugzwang. The strong side blocks in 2 moves, winning the game in 8 moves.

w to move

·—S—S—·  3
|/   \|
w—————w  2
|\   /|
·—S—S—·  1

a b c d
The weak side has other moves after 5. ... a2-b3, of course. If 6. d2-d3, d1-d2 (traps the piece on d3); 7. a3-a2 (only move), a1-b2 (the 'pinza' again) and the strong side wins in the next move (8 moves again). If 6. d2-d1, there are more choices including a variant of the 'pinza':

Code: Select all

S to move

w—S—S—·  3
|/   \|
·—————·  2
|\   /|
S—·—S—w  1

a b c d

     w      S
6.  ...   c3-d2  // Traps the piece on d1.
7. a3-a2  a1-b2  // After the only move for w, the 'pinza' strikes again. S wins in 8 moves again.

     w      S
6.  ...   a1-a2  // Traps the piece on a3.
7. d1-d2  c3-d3  // After the only move for w, here appears a variant of the 'pinza' that does not leave two corners (only one) and blocks in the next move.
8. d2-c3  c1-d2  // Alternatively, 8. d2-d1  d3-d2
I played more than once this last blocking pattern against Ludii UCT online, not the typical pattern on two corners but this one on one file with w-S-w-S (or the symmetrical S-w-S-w) and the remaining S pieces on the centre spots.

If you look carefully, the weak side locked one piece of the strong side after 3. a2-d2 (contrary to the expected), but this could be considered greedy and triggered the variations shown above. My play on both sides might be suboptimal until the very end, of course.

I usually win Ludii UCT online in 7 to 9 moves, sometimes 10 if I get confused. Assuming 20 plies of play in this small board with low branching factor, I expect that a computer can solve the game and create DTM EGTB in few time. Please remember that there should be 810 unique positions only and, with reflections and rotations included, few thousands (3240). Optimal strategies shall be found easily, leaving this simple game with a status of more difficult than tic-tac-toe, but affordable to remember all the tricks, trap and shots to anyone who wants to take it seriously.

Regards from Spain.

Ajedrecista.