Page 1 of 1

ICT13 programmer's report: Rookie v3.7

Posted: Tue Jun 04, 2013 2:16 am
by marcelk
This weekend the 13th International CSVN Tournament was held in Leiden. Of course Rookie was going to play.

During my registration I had some wild programming plans, but as motivation was lacking to realize them I decided to play with the same version as in the last HGM blitz tournaments. So no planned Trojanbases (sorry Ronald), and no check generation in the quiescence search yet. Those have to wait for later this year. But also no stress because the playing version had proved to be stable and doing quite well in the blitz tournaments.

Also the book I used was the same as during HGM's May blitz tournament, with the same settings and no updates between rounds. I had planned an update but the new book iteration couldn't finish in time. I normally update Rookie's book in batches of about one month.

Also no hardware upgrade, as I had no ambition to go for a win among some much stronger competition. This was about having a good time with other hobbyists. The AMD Phenom 1100T is now about three years old, but still quite decent.

Day 1

Round 1: Dirty - Rookie


For the ICT I used the same machine and OS installation as the previous on-site tournament two years ago (Tilburg), with the same installation of XBoard. I can't be bothered to upgrade systems when there is no functional need. With Linux (Ubuntu in this case) you always see that afterwards things don't work anymore the way you expect and a lot of frustration is caused by that. "Linux is only free if your time is worth nothing", is a well-known saying. I do Rookie's programming on a MacBook Pro by the way.

So the motto is "what works works". Can't go wrong there. Except when it does...

The opening against Dirty played fine until Rookie had to make its first move out of book: Instead of moving after about two minutes or so, all cores went idle and XBoard showed the game had ended in a draw... what is that???

Ok, nothing in my setup had indeed changed, except the chess program... And what changed is that on the chess servers Rookie can offer and accept draws, because that is really needed for unsupervised server play.

For debugging the courtesy draw rules the program outputs some of its internal state after each search. You guessed it: this information contains the word 'draw' and xboard happily accepts that as a command, ending the game right away. A recompile to suppress this output fixed it and the game could continue. Those were anxious minutes.

The actual game never left the draw margins and ended in an unwinnable endgame with all pawns on the King side and only Queens. I proposed the draw to Fons as I didn't feel like playing it out and I had given myself too little operator time for a long game. For the remainder of the tournament I changed that from 10 minutes to 15, which is very comfortable. No stress is more important than winning.



Round 2: Rookie - Kallisto

Kallisto is always a dangerous opponent, tactically very sharp and well-balanced. It hasn't been updated since Aegon days, even running in 16-bit DOS mode (but with 32-bit hash tables). On the i3 laptop it still easily reaches 1 to 2 milion nodes per second, so you have to be careful. Bart mentioned he was planning to change his DOS dependency because of the trouble modern computers give him to run DOS natively.

During the previous encounter several years ago Rookie couldn't break Kallisto's defense. This time it was much easier and the first full point was in. The bruter force won.



Round 3: The King - Rookie

More or less the same as the last Chessmaster release. Johan is running on somewhat older hardware, so here lies an opportunity for Rookie. Rookie went for the attack but misplaced its Rook on h5, which got cut off by White's f5. Rookie has no individual piece mobility evaluation so this had to be resolved by search. The Rook was rescued in exchange for an unbalanced endgame with Pawns for a piece, but with serious weaknesses of the White's Queen-side Pawns. Rookie seemed to hesitate, but eventually the Pawns become mightier, pieces could be sacrificed for unstoppable connected passers and the game was over.

Personally this game is a big milestone: The King's performance in the DOCCC of 1992(!) was one of the motivations to convert my mate solver into a playing program at the time. My first tournament in 1993 didn't go too well for Rookie and the gap with the top programs of the time seemed unbridgeable. This point is Rookie's first against The King. After two decades it is about time one would say... Of course hardware makes a big difference, but so was the case in 1993.



Day 2

Round 4: Spartacus - Rookie


HGM's program searches deep but its evaluation is not as advanced and many programs eventually take advantage of that. The real problem playing Spartacus is to demonstrate that you don't have bugs progressing towards mate. This is notoriously buggy in many programs and HG always plays out until mate. This tournament Dirty exposed some difficulties with that for example.

I just hoped my game wouldn't end in KRK because I have seen some cases where the null move prevents Rookie from executing this. It is easy to solve, but not high on the todo list. Fortunately Rookie could mate before that.



Round 5: Rookie - Booot

At this point Rookie was leading the ranking because Dirty had just beaten The Baron. I wasn't too excited about that because there was some major opposition still to be faced. Alex's Delphi program is very strong with a fully developed modern search and evaluation. I was just hoping for a single draw from one of the games against Booot and The Baron, not expecting too much after losing helplessly to both of them in Tilburg.

How different events turned out: Rookie played the Sicilian with 3.d4 flawlessly and step by step strangled Black with logical moves and no wild adventures. White didn't give Black counterplay and took initiative on both flanks and center. Once the b-file could be opened and taken Black's fate was sealed. I'm very happy with the style of this game.



Round 6: Arminius - Rookie

Arminius is the successor to Hermann by Volker. A classical computer game, Ruy Lopez slapstick style with White's Rook capturing a Knight on e4, followed by a Knight capture on f7 and taking the Rook on h8. Rookie managed to trap that Knight, not because of the individual piece mobility (which as mentioned, is still absent in this version), but because Rookie's piece/square tables give that Knight a whopping 0.9 pawn penalty. Long live the eval tuner: this was one of the first things I got right with the rewrite into version 3 a couple of years ago.



Round 7: Rookie - The Baron

Morituri te salutant. In my mind this game was going the be the end of the unbeaten record. The Baron doesn't have underdeveloped aspects like Rookie: it is well-rounded and always plays strong in every phase of the game. Its weakest point from my point of view is that it still relies on a human book making process. Taking the human out of the design loop is exactly where I have put a lot of effort in during the past few years. Rookie is not an "engine", I object to that term, and strictly speaking it is not even a "program" as I usually call it. It is a developing entity that, when not playing online games, uses its idle time to continuously explore chess in order to improve its play. Opening development is an important part of that.

Now this is the last round, I'm using narrow book settings with very little randomization (hence all White games begin with 1.e4), and the book hasn't been updated for more than a month. The Baron wants to win and has a motivated book maker. Should I interfere and change the affinity of already-played book lines? I decided not to. Just let the program do what it wants and enjoy with an Affligem instead, following Richard's example.

1.e4 c5 2. h3!!

A fantastic suprise by the program, any of Black's preparation is now out of the window. Rookie stays in its self-prepared book for 10 full moves and exits with a very healthy position and opposite Kings. This is not going to be boring.

Rookie pushes ahead and on move 28 evaluation had rised to +2.4 where the exchange is sacrificed for a King attack. Black's King manages to escape but White gets a dangerous passer on the h-file instead. After that it turns out that White has overplayed. The Black Queen can enter White's ranks and disturb things. The passer falls and scores drop back into zero land.

Now Rookie has to be careful not to lose. It has many repetition lines, but rejects them all for an unbalanced end game. White's Pawns are only supported by a Bishop. Black's Rook is adequately fending off any danger, and Rookie eventually trades into an drawn end game table ending.



In the meantime Dirty had to win against The King to keep up with Rookie in the tournament. Fortunately The King kept the draw.

Image

Re: ICT13 programmer's report: Rookie v3.7

Posted: Tue Jun 04, 2013 12:20 pm
by Harvey Williamson
marcelk wrote: The Baron doesn't have underdeveloped aspects like Rookie: it is well-rounded and always plays strong in every phase of the game. Its weakest point from my point of view is that it still relies on a human book making process.
Hi Marcel,

Congratulations! I saw most of the games and enjoyed the tournament. Richard and Tessa were using hardware at my house, here in Manchester.

I half agree with you about the book. I think the best way is to have a small highly tuned book prepared by a human. Sebi who books for Richard is one of the best! Then a large more general book that sits underneath that small book to catch the odd novelty or unusual opening.

Best Wishes,
Harvey

Re: ICT13 programmer's report: Rookie v3.7

Posted: Tue Jun 04, 2013 8:23 pm
by User923005
Some excellent results against formidable opponents.
By now, Rookie is no longer a rookie. Perhaps we should start calling him "manager" or "chief".
;-)

Re: ICT13 programmer's report: Rookie v3.7

Posted: Sat Jun 08, 2013 5:12 pm
by marcelk
User923005 wrote:Some excellent results against formidable opponents.
By now, Rookie is no longer a rookie. Perhaps we should start calling him "manager" or "chief".
;-)
"Stubborn" would be more appropriate.