Rocinante 2.0 Release

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

Moderators: hgm, Harvey Williamson, bob

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Antonio Torrecillas
Posts: 90
Joined: Sun Nov 02, 2008 3:43 pm
Location: Barcelona

Rocinante 2.0 Release

Post by Antonio Torrecillas » Wed May 30, 2012 5:09 pm

Rocinante 2.0 is available at http://sites.google.com/site/barajandotrebejos/

Extracted from the readme.txt

Rocinante 2.0 is a cuasi complete rewrite of Rocinante.
There have been some refactoring and changes to optimize the
execution of the program without significantly altering the
underlying algorithms.
The version 1.01 was bitboard and this new release uses mailbox.
Some code has been stolen from Simplex (Zobrist, hashtable, PVS etc).
A new algorithm has been added. MCTS_AB: Monte Carlo Tree Search alpha beta.
Monte Carlo programs are successful in the game of Go, but are notoriously
ineffective in chess. I intend to add this algorithm to verify the veracity
of these claims.
I've added a new evaluation function. And a SeeEval that replaces a quiesce search.
This is configured using UCI protocol options.

2. UCI Options.
---------------
>uci
id name Rocinante 2.0
id author Antonio Torrecillas
option name cpus type spin default 1 min 0 max 256
option name threads type spin default 1 min 0 max 256
option name klevel type spin default 1 min 0 max 1
option name mcts_ab type check default true
option name probedepth type spin default 1 min -1 max 10
uciok

Option cpus and threads control the number of worker threads.

Option mcts_ab control the main algorithm.
true -> use of mcts_ab Monte Carlo Tree Search
false -> use PB* Probability Based B star.

Option klevel control the evaluation function
0 -> UFO material + Piece square tables.
1 -> Material + development + PST + Mobility + ...

Option probedepth
Both MCTS_AB and PB* have an alpha beta algorithm as a replacement
for a static evaluation. Probe Depth control the depth of this alpha beta.
-1 -> no alpha beta is used. Instead a static exchange evaluation is used.
0 -> quiesce evaluation. (MVLA).No checks.
1 -> one ply + quiesce.
2 -> two ply alpha beta + quiesce.
3 -> 3 plys AB+quiesce.
4 and up -> iterative deepening + LMR + nullmove etc.

Unfortunately I can't tell which parameter set is better for each time control. There is a hardcoded limit of 8000 expands.If this limit is reached, consider increasing the depth probe. A minimum of expanded nodes are needed for a correct work of the algorithm. (for PB* 112 expands).

Known bug: Multi procesor is broken in Linux platforms.

There are many changes so tell me of any issues that you can find.

Best Regards, Antonio.

Adam Hair
Posts: 3185
Joined: Wed May 06, 2009 8:31 pm
Location: Fuquay-Varina, North Carolina

Re: Rocinante 2.0 Release

Post by Adam Hair » Wed May 30, 2012 5:33 pm

Thanks, Antonio.

I will try out both search algorithms.

One question. How can I tell how many expanded nodes have been searched (if "searched" is the right word to use)?

Adam

Antonio Torrecillas
Posts: 90
Joined: Sun Nov 02, 2008 3:43 pm
Location: Barcelona

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas » Wed May 30, 2012 5:43 pm

In Rocinante output, nodes correspond to the number of performed Expands.(not standard in UCI :-))
The depth and seldepth are computed by the number of moves in the PV.

For example
>position startpos
>go movetime 1000
info depth 1 seldepth 1 pv d2d4 score cp 11 nodes 1 nps 500 hashfull 0 time 2
info depth 2 seldepth 2 pv e2e4 d7d5 score cp 21 nodes 4 nps 500 hashfull 0 time 8
info depth 2 seldepth 2 pv g1f3 d7d5 score cp 19 nodes 8 nps 444 hashfull 0 time 18
info depth 3 seldepth 3 pv e2e4 d7d5 b1c3 score cp 13 nodes 9 nps 450 hashfull 0 time 20
info depth 2 seldepth 2 pv b1c3 e7e5 score cp 19 nodes 10 nps 454 hashfull 0 time 22
info depth 3 seldepth 3 pv e2e4 d7d5 b1c3 score cp 13 nodes 11 nps 458 hashfull 0 time 24

an NPS of 500 means 500 expands per second. We can see that the depth can go up and down
as the engine think. There is no depth/iteration concept.

Adam Hair
Posts: 3185
Joined: Wed May 06, 2009 8:31 pm
Location: Fuquay-Varina, North Carolina

Re: Rocinante 2.0 Release

Post by Adam Hair » Wed May 30, 2012 6:11 pm

Thanks, Antonio.

rodolfoleoni
Posts: 263
Joined: Mon Nov 29, 2010 8:16 pm

Re: Rocinante 2.0 Release

Post by rodolfoleoni » Thu May 31, 2012 12:26 pm

Very interesting work, but.... no exe? only source code?
Rodolfo (The Baron Team)

User avatar
Jim Ablett
Posts: 1327
Joined: Fri Jul 14, 2006 5:56 am
Location: London, England
Contact:

Re: Rocinante 2.0 Release

Post by Jim Ablett » Thu May 31, 2012 12:35 pm

rodolfoleoni wrote:Very interesting work, but.... no exe? only source code?
Executables available on my website now.

Jim.

rodolfoleoni
Posts: 263
Joined: Mon Nov 29, 2010 8:16 pm

Re: Rocinante 2.0 Release

Post by rodolfoleoni » Thu May 31, 2012 1:22 pm

Jim Ablett wrote:
rodolfoleoni wrote:Very interesting work, but.... no exe? only source code?
Executables available on my website now.

Jim.
Many thanks, Mr Ablett !!
Rodolfo (The Baron Team)

peter
Posts: 1446
Joined: Sat Feb 16, 2008 6:38 am

Re: Rocinante 2.0 Release

Post by peter » Thu May 31, 2012 3:03 pm

Antonio Torrecillas wrote: There are many changes so tell me of any issues that you can find.
Hi Antonio!
Thanks for the engine!
Some questions: can it be used with GUIs like Shredder?
I tried Jim Ablett's x64 Win compile but didn't get Rocinante showing any output neither in analyse mode nor by move- command.
Any kind of hashtable setting?
Thanks again and in advance
Peter Martan

User avatar
Jim Ablett
Posts: 1327
Joined: Fri Jul 14, 2006 5:56 am
Location: London, England
Contact:

Re: Rocinante 2.0 Release

Post by Jim Ablett » Thu May 31, 2012 5:19 pm

I noticed all executables start displaying pv output from depth 8.
This is in Arena Gui. Debug window shows constant pv output though,
but is it not being sent to gui till depth 8. Is this by design ?

Jim.

Antonio Torrecillas
Posts: 90
Joined: Sun Nov 02, 2008 3:43 pm
Location: Barcelona

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas » Thu May 31, 2012 7:13 pm

Hi,
Dr. Peter Martan
I'm sorry, I don't own a 64 bit Windows platform.
So I can't test your exact configuration.
I expect that Rocinante be in 1800 elo range, so I don't have implemented/tested the go infinite
command of the UCI protocol. (I suppose this is the command for analyse). If you have an
option in Shredder to see the exchange GUI-engine, send me a PM and I'll dig in it.

I never expected Rocinante to be used for analyse. I Use a command for debug purpose so
if you're not afraid to use it in command line, there is a command to dump the searched tree.
for example:

Code: Select all

position fen 1b6/3k4/6p1/1NP2p1p/1p3P1P/3K2P1/8/8 w - -
>info depth 1 seldepth 1 pv d3c4  score cp 32 nodes 1 nps 1000 hashfull 0 time 1
>info depth 9 seldepth 9 pv d3c4 b8c7 b5c7 d7c7 c4b4 c7c6 b4c4 c6b7 c4b5  score cp 173 nodes 8001 nps 11818 hashfull 0 time 677
>bestmove d3c4
debug dumptree
quit
will generate a file tree.txt in the running folder like

Code: Select all

Root 1b6/3k4/6p1/1NP2p1p/1p3P1P/3K2P1/8/8 w - - 

       +---+---+---+---+---+---+---+---+
    8  | . |-B-| . | . | . | . | . | . |
       +---+---+---+---+---+---+---+---+
    7  | . | . | . |-K-| . | . | . | . |
       +---+---+---+---+---+---+---+---+
    6  | . | . | . | . | . | . |-P-| . |
       +---+---+---+---+---+---+---+---+
    5  | . |<N>|<P>| . | . |-P-| . |-P-|
       +---+---+---+---+---+---+---+---+
    4  | . |-P-| . | . | . |<P>| . |<P>|
       +---+---+---+---+---+---+---+---+
    3  | . | . | . |<K>| . | . |<P>| . |
       +---+---+---+---+---+---+---+---+
    2  | . | . | . | . | . | . | . | . |
       +---+---+---+---+---+---+---+---+
    1  | . | . | . | . | . | . | . | . |
       +---+---+---+---+---+---+---+---+
         a   b   c   d   e   f   g   h

White to move.
Root 1b6/3k4/6p1/1NP2p1p/1p3P1P/3K2P1/8/8 w - - 

Selected move d3c4

Root Node Value&#58;      -173 Opt 999999 Pess 999999 Prb 0.000 Fen 1b6/3k4/6p1/1NP2p1p/1p3P1P/3K2P1/8/8 w - - 
      d3c4 7438 173 Opt 999999 Pess 999999 Prb 0.000 Fen 1b6/3k4/6p1/1NP2p1p/1pK2P1P/6P1/8/8 b - - 
           b8c7 2054 -173 Opt 999999 Pess 999999 Prb 0.000 Fen 8/2bk4/6p1/1NP2p1p/1pK2P1P/6P1/8/8 w - - 
                b5c7 734 d7c7 733 c4b4 732 173 Opt 999999 Pess 999999 Prb 0.000 Fen 8/2k5/6p1/2P2p1p/1K3P1P/6P1/8/8 b - - 
                               c7c6 269 b4c4 268 173 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/2k3p1/2P2p1p/2K2P1P/6P1/8/8 b - - 
                                         c6b7 134 -173 Opt 999999 Pess 999999 Prb 0.000 Fen 8/1k6/6p1/2P2p1p/2K2P1P/6P1/8/8 w - - 
                                              c4b5 0 173 Opt 999999 Pess 999999 Prb 0.000 Fen 8/1k6/6p1/1KP2p1p/5P1P/6P1/8/8 b - - 
                                              c5c6 133 b7c6 132 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/2k3p1/5p1p/2K2P1P/6P1/8/8 w - - 
                                                        c4b4 49 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/2k3p1/5p1p/1K3P1P/6P1/8/8 b - - 
                                                             c6d5 15 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/3k1p1p/1K3P1P/6P1/8/8 w - - 
                                                                  b4b5 3 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/1K1k1p1p/5P1P/6P1/8/8 b - - 
                                                                       d5d4 1 b5a5 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K4p1p/3k1P1P/6P1/8/8 b - - 
                                                                       d5e4 1 b5a5 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K4p1p/4kP1P/6P1/8/8 b - - 
                                                                  b4a5 3 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K2k1p1p/5P1P/6P1/8/8 b - - 
                                                                       d5c4 1 a5a4 0 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/K1k2P1P/6P1/8/8 b - - 
                                                                       d5d4 1 a5b5 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/1K3p1p/3k1P1P/6P1/8/8 b - - 
                                                                  b4a4 3 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/3k1p1p/K4P1P/6P1/8/8 b - - 
                                                                       d5e4 0 3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/K3kP1P/6P1/8/8 w - - 
                                                                       d5d4 1 a4a5 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K4p1p/3k1P1P/6P1/8/8 b - - 
                                                                       d5c4 1 a4a5 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K4p1p/2k2P1P/6P1/8/8 b - - 
                                                                  b4a3 2 -15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/3k1p1p/5P1P/K5P1/8/8 b - - 
                                                                       d5d4 0 15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/3k1P1P/K5P1/8/8 w - - 
                                                                       d5c4 1 a3a4 0 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/K1k2P1P/6P1/8/8 b - - 
                                                                  b4b3 2 -15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/3k1p1p/5P1P/1K4P1/8/8 b - - 
                                                                       d5e4 0 15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/4kP1P/1K4P1/8/8 w - - 
                                                                       d5d4 1 b3a4 0 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/K2k1P1P/6P1/8/8 b - - 
                                                                  b4c3 1 d5e4 0 15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/5p1p/4kP1P/2K3P1/8/8 w - - 
                                                             c6b6 12 -3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/1k4p1/5p1p/1K3P1P/6P1/8/8 w - - 
                                                                  b4a4 4 3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/1k4p1/5p1p/K4P1P/6P1/8/8 b - - 
                                                                       b6c5 1 a4a5 0 3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/K1k2p1p/5P1P/6P1/8/8 b - - 
                                                                       b6a6 1 a4b4 0 12 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/k5p1/5p1p/1K3P1P/6P1/8/8 b - - 
                                                                       b6c6 1 a4a5 0 15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/2k3p1/K4p1p/5P1P/6P1/8/8 b - - 
                                                                  b4c4 3 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/1k4p1/5p1p/2K2P1P/6P1/8/8 b - - 
                                                                       b6c6 0 0 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/2k3p1/5p1p/2K2P1P/6P1/8/8 w - - 
                                                                       b6a5 1 c4c5 0 3 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/k1K2p1p/5P1P/6P1/8/8 b - - 
                                                                       b6a6 1 c4c5 0 15 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/k5p1/2K2p1p/5P1P/6P1/8/8 b - - 
                                                                  b4c3 1 b6a5 0 12 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/k4p1p/5P1P/2K3P1/8/8 w - - 
                                                                  b4a3 2 b6a5 1 a3b3 0 -12 Opt 999999 Pess 999999 Prb 0.000 Fen 8/8/6p1/k4p1p/5P1P/1K4P1/8/8 b - - 
.....
This is a raw dump so not very user friendly.


Jim, I just downloaded your compiles and looks fine in win32

Code: Select all

position startpos
go movetime 10000
info score cp 11 depth 1 nodes 1 time 189 nps 5 seldepth 1 hashfull 0 pv d2d4
info score cp 21 depth 2 nodes 4 time 193 nps 20 seldepth 2 hashfull 0 pv e2e4 d7d5
info score cp 19 depth 2 nodes 8 time 200 nps 40 seldepth 2 hashfull 0 pv g1f3 d7d5
info score cp 13 depth 3 nodes 9 time 201 nps 44 seldepth 3 hashfull 0 pv e2e4 d7d5 b1c3
info score cp 19 depth 2 nodes 10 time 202 nps 49 seldepth 2 hashfull 0 pv b1c3 e7e5
info score cp 13 depth 3 nodes 11 time 204 nps 53 seldepth 3 hashfull 0 pv e2e4 d7d5 b1c3
info score cp 11 depth 3 nodes 14 time 211 nps 66 seldepth 3 hashfull 0 pv d2d4 d7d5 c1f4
info score cp 17 depth 4 nodes 28 time 229 nps 122 seldepth 4 hashfull 0 pv b1c3 e7e5 d2d4 b8c6
info score cp 14 depth 3 nodes 29 time 231 nps 125 seldepth 3 hashfull 0 pv d2d4 g8f6 c1f4
info score cp 19 depth 4 nodes 34 time 237 nps 143 seldepth 4 hashfull 0 pv g1f3 d7d5 d2d4 c8f5
info score cp 21 depth 4 nodes 49 time 254 nps 192 seldepth 4 hashfull 0 pv d2d4 d7d5 c1f4 c8f5
info score cp 19 depth 4 nodes 50 time 259 nps 193 seldepth 4 hashfull 0 pv g1f3 d7d5 d2d4 c8f5
info score cp 21 depth 4 nodes 72 time 303 nps 237 seldepth 4 hashfull 0 pv d2d4 d7d5 b1c3 c8f5
info score cp 19 depth 4 nodes 241 time 601 nps 400 seldepth 4 hashfull 0 pv e2e4 e7e5 d2d4 d7d5
info score cp 17 depth 4 nodes 247 time 617 nps 400 seldepth 4 hashfull 0 pv d2d4 d7d5 d1d3 b8c6
info score cp 19 depth 4 nodes 248 time 619 nps 400 seldepth 4 hashfull 0 pv e2e4 e7e5 b1c3 f8c5
info score cp 17 depth 4 nodes 289 time 725 nps 398 seldepth 4 hashfull 0 pv d2d4 d7d5 d1d3 b8c6
info score cp 17 depth 4 nodes 297 time 739 nps 401 seldepth 4 hashfull 0 pv b1c3 b8c6 d2d4 e7e5
info score cp 17 depth 4 nodes 313 time 763 nps 410 seldepth 4 hashfull 0 pv d2d4 d7d5 d1d3 b8c6
info score cp 13 depth 5 nodes 452 time 1004 nps 450 seldepth 5 hashfull 0 pv b1c3 g8f6 d2d4 d7d5 c1f4
info score cp 12 depth 4 nodes 467 time 1043 nps 447 seldepth 4 hashfull 0 pv d2d4 d7d5 g1h3 c8f5
info score cp 11 depth 5 nodes 482 time 1067 nps 451 seldepth 5 hashfull 0 pv b1c3 d7d5 d2d4 b8c6 c1f4
info score cp 12 depth 4 nodes 489 time 1079 nps 453 seldepth 4 hashfull 0 pv g1f3 d7d5 b1c3 d5d4
info score cp 11 depth 5 nodes 490 time 1083 nps 452 seldepth 5 hashfull 0 pv b1c3 d7d5 d2d4 b8c6 c1f4
The output is triguered each time the pv change.
If you put a large probe depth it can take ages to show the first PV (first expand).


My tests are with:
VC++ 10 win32
gnu c++ win32.
Intel C++ linux 64
gnu C++ linux 64.

GUI: cutechess-cli and winboard
I'm right now downloading Arena 3.0 to test it.

Post Reply