Check out Grant Acedrex, our featured variant for April, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Earlier Reverse Order LaterLatest
The birth of two variants: Apothecary chess 1 & Apothecary chess 2[Subject Thread] [Add Response]
Aurelian Florea wrote on Sun, Sep 18, 2016 07:43 AM UTC:

This post is in anticipation of two new (in 2016) variants.

The central discussion is about the values of the pieces involved in the two variants.

The main interest are the aanca and griffin from apothecary 1. Apothecary 2 has mainly known pieces with some enhacements.


Aurelian Florea wrote on Sun, Sep 18, 2016 07:48 AM UTC:

These are one of the initial positions allowed in apothecary 1 (top) and apothecary 2 (bottom). In both games switching knights and bishops in the initial position allows for a second initial setup.


Aurelian Florea wrote on Sun, Sep 18, 2016 08:02 AM UTC:

Pieces for apothecary 1:

Pawn - is the classic chess pawn with the catch that it promotes from the 8th rank to a minor piece, from the 9th rank to also a rook, and to the 10th rank where promotion is obligatory it promotes to also a strong piece (Queen, Griffin or AAnca).

Queen-classic chess queen

Aanca- bend rider that starts as an wazir and then if not blocked may move as a bishop

Griffin-  bend rider that starts as an ferz and then if not blocked may move as a rook

Wizard- taken from omega chess C+F

kNight- classic chess knight with a zebra just move enhancement

Champion- taken from omega chess W+D+A

Rook - classic chess rook


Aurelian Florea wrote on Sun, Sep 18, 2016 08:09 AM UTC:

Pieces for apothecary 2:

Pawn - is the classic chess pawn with the catch that it promotes from the 8th rank to a minor piece, from the 9th rank to also a rook, and to the 10th rank where promotion is obligatory it promotes to also a strong piece (Queen, Marshall or Archbishop).

Queen-classic chess queen

Marshall- rook and knight compound

Archbishop-  bishop and knight compound

Zebra - classic variants (3,2) zebra with ferz just move enhancement

cameL-classic variants (3,1) camel with wazir uncolorbounding just move enhancement

kNight- classic chess knight with a threeper just move enhancement

Elephant- modern elepahnt taken from modern shatranj with a threeleaper just move enhacement so FAmH in Betza funny notation

Rook - classic chess rook


Aurelian Florea wrote on Sun, Sep 18, 2016 08:15 AM UTC:

For now I'm doing the following experiment in order to find out how strong a pawn is:

delete a3 pawn in bishops in setup for 25 games

delete a3 pawn in knights in setup for 25 games

delete a8 pawn in bishops in setup for 25 games

delete a8 pawn in knights in setup for 25 games

delete b3 pawn in bishops in setup for 25 games

delete b3 pawn in knights in setup for 25 games

delete b8 pawn in bishops in setup for 25 games

delete b8 pawn in knights in setup for 25 games

and so on for each pawn.

I'll keep in touch with the results.


Aurelian Florea wrote on Sun, Sep 18, 2016 08:30 AM UTC:

The program of testing is Fairy-Max 5.0b2. The games are played at 2mins/30 moves. Fairy-Max 5.0b2 cannot implement the promotion rule so the promotion rule is promote to rook starting in the 8th rank.


H. G. Muller wrote on Sun, Sep 18, 2016 10:03 AM UTC:

Let me first explain how you can automate testing with WinBoard. Unfortunately this is still a bit cumbersome, because WinBoard does not yet correctly handle engine-defined variants (like 'Apothecary') in matches starting from a set-up position. (Both the engine and the tournament manager try to set up a position then, and this seems to happen in the wrong order.) So you would have to do it the 'old' way, not relying on the engine to relay the variant definition to the GUI, but define the game to the GUI also by hand.

This would require you to make a settings file 'apothecary.ini' where you specify 'parent variant', pieceToCharTable, and initial setup. Something like:

/variant=elven
/pieceToCharTable="PNBRQW.A..C......GKpnbrqw.a..c......gk"
/testLegality=false
/loadPositionFile=start.fen

for apothecary1. You would then duplicate the apothecary1 game definition in the fmax.ini file, and change the name to 'elven', so the first line of the definition becomes:

Game: elven

(i.e. you also removed the stuf after (and including) the # signs. 'Elven Chess' is a standard variant in WinBoard (which Fairy-Max does not happen to play), so WinBoard does not expect Fairy-Max to send a game definition when it selects variant elven (as it would, because of the /variant=elven setting in apothecary.ini). You would have overruled the list of participating pieces (to correspond with Fairy-Max' own definition of 'elven', which really is apothecary1) with the /pieceToCharTable option, and WinBoard would not care how the pieces move (which is also different from Elven Chess) because you switched legality testing off.

The crux is in the /loadPositionFile. You would have to create the mentioned file, start.fen, too, and it could contain:

r2wccw2r/1anbqkbna1/pppppppppp/10/10/10/10/PPPPPPPPPP/1GNBQKBNG1/R2WCCW2R w - - 0 1
r2wccw2r/1gnbqkbng1/pppppppppp/10/10/10/10/PPPPPPPPPP/1ANBQKBNA1/R2WCCW2R w - - 0 1

These are two poitions for Griffins vs Aancas, one where white has the Griffins, one where black has them.

Now you are set up to start an automatic match. You start WinBoard with the 'Additional option' (in the startup dialog)

@apothecary.ini

which would make it read and obey the options in that file. It could be useful to register a 'clone' of Fairy-Max to WinBoard, i.e. load it again as second engine, but with a different 'Nickname', so that you can later easily see which one won the match. Anyway, once WinBoard is started with Fairy-Max both as first and second engine, you can go to the Options->Tournament dialog. There you specify the "File with starting positions" as start.fen, tick "Step through lines/positions in file", and Specify "Rewind after" as 2. Then you must set the "Gamesper match / pairing" to the number of games you want (like 100). You can also specify a file to save the games on. After that you 'OK' the dialog.

From the Mode menu you then select Machine Match, and the games will start. As you instructed, the first FEN in the file will be used for game 1, the second for game 2, and then the position file 'rewinds', so thatgame 3 is again played from the first FEN. Because WinBoard alternates the colors, the same engine will always havethe Griffins, and the result of the match directly reflects the Griffin-vs-Aanca score. You could also put more starting positions in the file (and increase the specified Rewind correspondingly), e.g. swapping Knights with Bishops for one or both sides, or swapping Champions with Wizards, to drive up game diversity.


H. G. Muller wrote on Sun, Sep 18, 2016 11:29 AM UTC:

I looked into the timing problem, and it turns out that Fairy-Max' time management was indeed poorly adapted to such big games. Being a rather minimalistic engine, Fairy-Max has a very course algorithm for time management: it can only stop thinking after completing a depth iteration. So it must take the decision if it will try to go one ply deeper based on the time spent so far, and an expectation based on that for the duration of the next iteration. But with larger boards and more pieces the factor with which the tree size, and thus time use, grows with each ply increases. So it will be too optimistic in starting new iterations, and on the average use too much time.

The minimal thinking time on a move already contained a factor (0.6 - 0.06*(boardWidth - 8)), to speed up thinking by 20% in Capablanca Chess. But I had forgotten to also add such a correction factor for the board height, when in version 5.0 I finally made that adjustable too. So now I added an additional factor (1 - 0.1*(boardHeight - 8)), which in the case of Apothecary would give another 20% speedup.

Now Apothecary not only has larger board, but also a rather large number of pieces, because it does not only fill the first rank with pieces. I therefore introduced yet another factor in the time-per-move calculation, based on total material. In Chess, the point count M for that is initially 40 (P=0, N,B=2, R=3, Q=6). I now included a factor 50/(M+20). Unlike the other factors, this also does alter the time allocation in orthodox Chess, by increasing thinking time in the end-game at the expenseo of the opening. This might be good, because Fairy-Max was always speeding upin the end-game, but I will have to test it to make sure. In any case, it does speed up thinking in Apothecary even further.

With these changes, Fairy-Max does not seem to forfeit on time so often anymore, in Apothecary. I uploaded the new version (called 5.0b3) to the same link as before (append ?t=2 to the URL!).


Aurelian Florea wrote on Sun, Sep 18, 2016 11:47 AM UTC:

The time troble thing was more a nuissance than a problem as winboard doesn't take it into consideration, but I considered that it is good that you know. I hope I managed to help you H.G. Thanksm and see you soon!


H. G. Muller wrote on Sun, Sep 18, 2016 12:17 PM UTC:

It would be a problem in the following sense: If one engine exceeds time on, say, move 30 (for 40 moves/min), even if WinBoard does not forfeit it (Auto-flag switched off), that engine would still play 10 moves without thinking before its time gets positive again. This almost certainly means it will be slaughtered by the opponent, even if it was significantly ahead before.

Basically this means that the outcome of the game is decided by a coin toss, independent of the material balance, as it is not clear at all whether the tendency to think long correlates with being ahead or behind. If too large a fraction of the games has a random result, this will produce noise that will mask the effect of the material imbalance, and would strongly drive up the number of games needed to average out the noise.


Aurelian Florea wrote on Sun, Sep 18, 2016 12:21 PM UTC:

I have not considered the noise effect, you are correct I'll redo experiments from scratch, this time automated.


H. G. Muller wrote on Sun, Sep 18, 2016 01:13 PM UTC:

BTW, I tried the R+E vs B end-game from the following position, and white didnot have much trouble winning it at 40 moves/min:

10/10/10/10/4kb4/10/10/10/8E1/8KR w - - 0 1

It was mate after 43 moves, but the Bishop was already captured on move 32.


Aurelian Florea wrote on Sun, Sep 18, 2016 01:17 PM UTC:

That game must have been a fluke then!


Aurelian Florea wrote on Sun, Sep 18, 2016 01:48 PM UTC:

In order to clone FairyMax is it sufficient to just copy the .exe to say fm2.exe or is there something else?


Aurelian Florea wrote on Sun, Sep 18, 2016 01:54 PM UTC:

It seems yes, there you go I answered my own question!


Aurelian Florea wrote on Sun, Sep 18, 2016 02:09 PM UTC:

I assume that the pieceToChar used in apothecary2.ini should be the one used in fmax.ini under the apothecary2 game.


H. G. Muller wrote on Sun, Sep 18, 2016 02:39 PM UTC:

You would not even have to copy the exe. You would just have to browse to it again, and this time write something in the Nickname field of the Load Engine dialog before OK'ing it. You could tick "use nickname in PGN" too.

And indeed, the /pieceToCharTable should be the string in the fmax.ini definition. Ifsuch a string is given in fmax.ini, Fairy-Max will send WinBoard a 'setup' command at the start of the game, which will set the pieceToCharTable, and the initial position. But this in fact is just a recet enhancement of WinBoard; originally the pieceToCharTable could only be set through this option.


Aurelian Florea wrote on Sun, Sep 18, 2016 03:30 PM UTC:

Ok, I've done almost everything, I don't understand how to run with apothecary.ini set.


H. G. Muller wrote on Sun, Sep 18, 2016 04:46 PM UTC:

OK, you might never get to see the Startup Dialog because in the Sac Chess package WinBoard already finds all info needed to start up (e.g. what engines to use) in the winboard.ini file.

In that case you can just append the content of apothecary.ini to winboard.ini.

Since the engines are also indicated directly in that file, you could add an extra option in winboard.ini

/fn=Max1

to set the nickname of the first engine toMax1.

BTW, I have been running some Apothecary games at 40 moves/min with the new time management, and there were no time losses yet after 88 games.


Aurelian Florea wrote on Sun, Sep 18, 2016 04:58 PM UTC:

Also as now a pawn worth 60 and a queen worth 571 I might benefit from lowering the resign threshold from 800 to say 400 (a rook and a bit).


Aurelian Florea wrote on Sun, Sep 18, 2016 05:04 PM UTC:

I guess I should not have in the winboard.ini file both /variant=apothecary and /variant=eleven


Aurelian Florea wrote on Sun, Sep 18, 2016 05:14 PM UTC:

Ok, now I get the error, bad fen position in file, and the position in start.fen is ok!


Aurelian Florea wrote on Sun, Sep 18, 2016 05:21 PM UTC:

Which apothecary game were you running, and how did it seemed to you if you had the time to watch some?


Aurelian Florea wrote on Sun, Sep 18, 2016 06:22 PM UTC:

Now I can start the tournament but without proper setups.


H. G. Muller wrote on Sun, Sep 18, 2016 10:17 PM UTC:

If the FEN seems OK, but WinBoard complainsit is not, that usually means the pieceToCharTable is not OK, and there are characters in the FEN that WinBoard does not recognize as valid pieces. Make sure the length of the pieceToCharTable string is even; if an additional character would slip in, WinBoard would not know how to divide it in a white and black half, and ignores it entirely.

I was trying the version with Griffins and Aancas. The Griffins were leading by 101-66 (GG vs. AA). Which is only ~60%, which could be less than a Pawn. Next test would be to try GG vs. AAP. But I just wanted to know if the match would work.

- I guess I should not have in the winboard.ini file both /variant=apothecary and /variant=eleven

In principle not, but in such a case WinBoard would always obey the last one specified.


25 comments displayed

Earlier Reverse Order LaterLatest

Permalink to the exact comments currently displayed.