Rocinante 2.0 Release

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

Moderator: Ras

Antonio Torrecillas
Posts: 92
Joined: Sun Nov 02, 2008 4:43 pm
Location: Madrid
Full name: Antonio Torrecillas

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas »

Run 4 games in Arena 3.0 without issue. (win 32).Windows\Intel\rocinante-20-32-ja.exe
I try now mingw by now running correctly.
Adam Hair
Posts: 3226
Joined: Wed May 06, 2009 10:31 pm
Location: Fuquay-Varina, North Carolina

Re: Rocinante 2.0 Release

Post by Adam Hair »

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

Jim.
Thanks, Jim!

I could have compiled it (I think :) ), but the resulting compile would have been an insult to Antonio and Rocinante.
peter
Posts: 3570
Joined: Sat Feb 16, 2008 7:38 am
Full name: Peter Martan

Re: Rocinante 2.0 Release

Post by peter »

Antonio Torrecillas wrote:
If you have an option in Shredder to see the exchange GUI-engine, send me a PM and I'll dig in it.
Hi Antonio!

Thanks for the prompt answer.
About Shredder I know the logfile only, but in case Rocinante did not answer, only "waiting for Rocinante" is written several times together with the graphical notation of position.

In the meantime I found out, it seems to be a matter of klevel only as for my installation with Shredder.
My mistake was to start with maximum (10) and even storing this setting. With lower klevels up to three, output is there almost at once, taking more an more time to gain depth, from 3 upward it takes more than a few minutes (4) to see any output at all, for longest I waited 7 minutes with kleven 4 without an output to arise.
That might be the reason I simply could not wait long enough for 10.
Sorry, my mistake, could have found out by myself before posting.
Maybe I should say I was using 12 cores from the very start, which seems to work properly as for taskmanager showing 99% of cpu usage.

May I ask again about hash?
By default taskmanager notates about 140Mb, Shredder GUI 0, which I know as a result of missing UCI option from other engines, for example Winboard based ones
Peter.
rodolfoleoni
Posts: 263
Joined: Mon Nov 29, 2010 9:16 pm

Re: Rocinante 2.0 Release

Post by rodolfoleoni »

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

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.
................................................................

That looks similar to what the Baron does with a console command. A tree is generated, scored and backpropagated. All data are then stored for later use.

You can think to upgrade this feature by importing a pgn. The generated tree should then be expanded and scored. This could give engine good hints, if games are top quality ones. E.G., if you have a key position you can give it to top engines for playing it some hundreds games with move limit, just 20-30 plies deep. Then you can import the resulting tree and give it to your Monte Carlo feature. Could be interesting. ;)
Rodolfo (The Baron Team)
Antonio Torrecillas
Posts: 92
Joined: Sun Nov 02, 2008 4:43 pm
Location: Madrid
Full name: Antonio Torrecillas

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas »

Hi Peter,
May I ask again about hash?
By now, the tree is of a fixed size. I intend to refactor this data structure
for a Rocinante 2.1. I'll delay this configuration parameter until then.

How long it takes to get 8000 expand for a probe depth 3 in your box?

If you have a concrete need, changing the size is a matter of changing a
couple of constant in the sources and recompile.
Maybe I should say I was using 12 cores from the very start, which seems to work properly as for taskmanager showing 99% of cpu usage.
I'm not particularly proud of my MP algorithm. It's a master for PB* and MCTS
and then I allot slaves for probing each move (expand). So there is only a part
that is paralleled, and there are limitation if the position don't have the
right number of moves. Think in a blocked pawns endgame with more than 8 cores.
if the probe depth is too short, the first job allotted can be finished before
all the cpus are scheduled. I never observed this one, but it can be funny.

I expect diminishing returns as the number of cores or threads grows
here my results:
Same parameters for all cases.
MCTS WIN32
1 cpu 293
2 cpus 435 so 1.48

PB* WIN32
1 cpu 143
2 cpus 213 so 1.48

In linux MP looks broken, a bug or I use something that is cheap in windows
and expensive in linux.

Can you please report how it scale with more cpus?
I don't want a complete study, say from a concrete position
how many nodes or expands are explored in 10 seconds with 1,2,..,n cpus.

Many thanks in advance for this valuable info.
Best regards, Antonio.
Antonio Torrecillas
Posts: 92
Joined: Sun Nov 02, 2008 4:43 pm
Location: Madrid
Full name: Antonio Torrecillas

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas »

Hi Rodolfo,
That looks similar to what the Baron does with a console command. A tree is generated, scored and backpropagated. All data are then stored for later use.
Yes, this is the nature of chess programming, explore a tree, score some leaf nodes , and backpropagate (minimax in the end) to the root. This is true for minimax,alpha beta, B*, MCTS ...
You can think to upgrade this feature by importing a pgn. The generated tree should then be expanded and scored. This could give engine good hints, if games are top quality ones. E.G., if you have a key position you can give it to top engines for playing it some hundreds games with move limit, just 20-30 plies deep. Then you can import the resulting tree and give it to your Monte Carlo feature. Could be interesting.
This is only viable for analysis purposes.
I've plugged Simplex as probe engine, with disastrous result.
Then I've tried Fruit 2.1, then Crafty. Discouraging.

So take some distance, if in a concrete position you have 36 moves available (average). You need to do 36 probes. Say that a probe depth of 3 needs 1000 nodes.(just round numbers here). You need 36000 nodes for an expand. If 100 expands are needed for an algorithm to show up. thats 3.600.000 nodes. Feel free to estimate the computing power you need for a 20 plies probe.

A more subtle question is: what is better ? improve the probe depth or add heuristic knowledge into MCTS. That the main reason there is a -1 probe depth (static evaluation + see)
a 0 probe depth (just a quiesce search), probe 1,2,3 for an alpha beta, 4 and up for a iterative deepening + null move + LMR etc.
For the next release I'll add progressive bias to MCTS. So it becomes more tactic. By now I find that this weaken the engine. It perform better in test suites but drops considerable ELO. This weekend I'll reconsider my moves categories...
Well this start to be a lot off topic. Sorry.

best regards, Antonio.
rodolfoleoni
Posts: 263
Joined: Mon Nov 29, 2010 9:16 pm

Re: Rocinante 2.0 Release

Post by rodolfoleoni »

Everything you wrote seems really interesting, but it sounds a bit discouraging.. I guess all depends on engine architecture.

Being not a programmer, I can only believe you! :)
Rodolfo (The Baron Team)
Antonio Torrecillas
Posts: 92
Joined: Sun Nov 02, 2008 4:43 pm
Location: Madrid
Full name: Antonio Torrecillas

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas »

yes, this is a bit tecnical and pessimist. Let me try another time.
Putting Fruit as probe engine! What did you expect, Antonio?
you're putting F1 tires in a mountain byke. Come on, you have to do homework.
Do you understand what you are doing ?
But you must try every idea that look plausible. It's imperdonable don't try if it was that easy. ;-)
rodolfoleoni
Posts: 263
Joined: Mon Nov 29, 2010 9:16 pm

Re: Rocinante 2.0 Release

Post by rodolfoleoni »

I want to give you a link that, maybe, could interest you. It's the old 2.23 old Baron page, where you can download it.

http://rpijl.home.xs4all.nl/

It can be run in console mode too. And it tries to build a tree for learning purposes.

The readme file contains all possible console commands. Those which could interest you are:

setboard <FEN>

learn <PLY>

This system has been upgraded in Baron 3.X series (private engines). Next upgrade will be to adapt it to an existing pgn file, by importing the tree, performing an alpha/beta on it, expanding it, scoring it backwards.

;)
Rodolfo (The Baron Team)
Antonio Torrecillas
Posts: 92
Joined: Sun Nov 02, 2008 4:43 pm
Location: Madrid
Full name: Antonio Torrecillas

Re: Rocinante 2.0 Release

Post by Antonio Torrecillas »

Thanks Rodolfo, i'll go to dig in it. This new approach can drive me to new and interesting ideas. ;-)

I have my own project to analyse pgn files. Jiminy ( after Jiminy Cricket). The first idea was to have a kind of quick test, to detect things wrong after a cutechess-cli tournament. Now it's becoming a chess tool set: tuning methods for evaluation function (a lots of them), run genetical programming ideas, detect lack of features, analyse redundancy between evaluation features, generate a summary report of a game with the terms of the static evaluation ply by ply and save it in HTML format and so on.
Often, I think I spend more time on this than on improving the engine. What you need to work to do nothing.