Rocinante 2.0 Release
Moderators: hgm, Harvey Williamson, bob
Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
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
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.
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.
Re: Rocinante 2.0 Release
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
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
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.
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.
Re: Rocinante 2.0 Release
Thanks, Antonio.
-
rodolfoleoni
- Posts: 263
- Joined: Mon Nov 29, 2010 8:16 pm
Re: Rocinante 2.0 Release
Very interesting work, but.... no exe? only source code?
Rodolfo (The Baron Team)
- Jim Ablett
- Posts: 1327
- Joined: Fri Jul 14, 2006 5:56 am
- Location: London, England
- Contact:
Re: Rocinante 2.0 Release
Executables available on my website now.rodolfoleoni wrote:Very interesting work, but.... no exe? only source code?
Jim.
-
rodolfoleoni
- Posts: 263
- Joined: Mon Nov 29, 2010 8:16 pm
Re: Rocinante 2.0 Release
Many thanks, Mr Ablett !!Jim Ablett wrote:Executables available on my website now.rodolfoleoni wrote:Very interesting work, but.... no exe? only source code?
Jim.
Rodolfo (The Baron Team)
Re: Rocinante 2.0 Release
Hi Antonio!Antonio Torrecillas wrote: There are many changes so tell me of any issues that you can find.
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
- Jim Ablett
- Posts: 1327
- Joined: Fri Jul 14, 2006 5:56 am
- Location: London, England
- Contact:
Re: Rocinante 2.0 Release
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.
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
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:
will generate a file tree.txt in the running folder like
This is a raw dump so not very user friendly.
Jim, I just downloaded your compiles and looks fine in win32
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.
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
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: -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 - -
.....
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
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.
