Scorpio 2.8

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

Moderators: hgm, Rebel, chrisw

Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8

Post by Daniel Shawul »

_a1_a1 is a null move in the tree. Unfortunately, i haven't figured out how to classify nodes as PV, CUT and all nodes due to lack of efficient implementation of negascout, so null move is also tried in PV nodes. It is perfectly Ok to have a nullmove in the PV; however null move is not tried at the root node which would have caused a problem.

Parameters to play with :

frac_alphabeta = fraction of time to use for alpha-beta search, currently set to 100%. If you set it to 50% it will use first half to alpha-beta and second half to MCTS.

mcts_strategy_depth = Once alpha-beta half of the search is finished, the MCTS part looks ahead this many plies looking for strategy ,currently defaults to 20

treeht = The maximum size of memory to use for storing the upper parts of the tree. If set to 0 it will effectively become the standard alpha-beta search with only the root and its children stored.
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Scorpio 2.8

Post by carldaman »

Daniel Shawul wrote:I only did self play with previous version and it seems +40 but I am sure it will come out to much less than that, maybe +20 or less. Damir, why you care so much about elo anyway? :lol:
Good that A0 came into picture and showed the value of thinking outside the box. If you chase that elo aggresively and have a tunnel vision, you might be stuck in a local optima, plus it is not fun atleast not for me...
I appreciate it if someone can test the MCTS version instead of the standard branch with "montecarlo 1" and "treeht" not set to 0.

Daniel
+1!

Thanks, Daniel. Very interesting work! :)
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Scorpio 2.8

Post by Dann Corbit »

Thanks,
I can't wait to try it.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
Dayffd
Posts: 424
Joined: Wed Sep 30, 2009 5:30 am

Re: Scorpio 2.8

Post by Dayffd »

Damir wrote:I can not create Scorpio as new engine in Fritz GUI. The engine field is empty... :( :(
Did you try installing it with winboard? It installed with Wb2Uci under Fritz 11 here.
David S.
Norbert Raimund Leisner
Posts: 1643
Joined: Tue May 20, 2008 4:57 pm
Location: Augsburg - Germany

Re: Scorpio 2.8

Post by Norbert Raimund Leisner »

It seems that the Mac OS X folder has only a configuration file, but not a binary for Scorpio 2.8.

Norbert
Damir
Posts: 2801
Joined: Mon Feb 11, 2008 3:53 pm
Location: Denmark
Full name: Damir Desevac

Re: Scorpio 2.8

Post by Damir »

Dayffd wrote:
Damir wrote:I can not create Scorpio as new engine in Fritz GUI. The engine field is empty... :( :(
Did you try installing it with winboard? It installed with Wb2Uci under Fritz 11 here.
Is Scorpio Winboard engine? Sorry I did not know that. I thought it was UCI engine. :( :(
Rodolfo Leoni
Posts: 545
Joined: Tue Jun 06, 2017 4:49 pm
Location: Italy

Re: Scorpio 2.8

Post by Rodolfo Leoni »

Daniel Shawul wrote:Hi all,

I have released new version of Scorpio 2.8. The major change is that ScorpioMCTS is now greatly improved thanks to alpha-beta rollouts. From the readme:

MCTS
The montecarlo tree search engine uses alpha-beta rollouts according to Huang paper. This is much stronger than standard MCTS in games like chess which ar full of tactics. ScorpioMCTS storing all the tree in memory has become very close in strength to the standard alpha-beta searcher due to alpha-beta rollouts. It can actually become same strength as the standard if we limit the amount of tree stored in memory via "treeht" parameter in the scorpio.in. When the MCTS search runs out memory, it will spawn standard recursive alpha-beta search at the leaves so setting treeht = 0 stores only root node and its children, effectively becoming same strength as the standard alpha-beta method. If we set treeht = 128 MB, upper parts of the tree will be stored in memory and MCTS used there. Note that 128MB of memory are not allocated immediately at start up; it only specifies the maximum memory to use for storing tree. Don't forget to set montecarlo=1 if you want to experiment with MCTS.

Code: Select all

##################################################################
# montecarlo - Use montecarlo tree search (MCTS) if set to 1
# treeht - Maximum size of tree to store in memory given in MB.
#          Note that this memory is not allocated at start up; it only
#          specifies the maximum limit the tree could grow to.
#          Note: Don't think you are making scorpio weak by not setting
#          this memory to high value, infact treeht=0 is the strongest 
#          MCTS setting.
##################################################################
montecarlo            0
treeht              128
The parallel search for MCTS uses virtual loss to distribute work among threads in standard MCTS rollouts, and ABDADA like BUSY flag for alpha-beta rollouts. ABDADA and parallel MCTS from the Go world are very similar in nature.

Standard
The standard search is also improved (which btw is still the default) with regard to search parameters tuning with CLOP, fixing ABDADA bug, turning on singular extensions etc. No evaluation changes, but I plan to couple Leela Chess neural nets with ScorpioMCTS if I can find someone to work with me.

regards,
Daniel
Among all the recent news this seems the most interesting. A new search pattern that looks a lot like the analyzes I do manually with the special Daniel Jose code in Stockfish_savehash. Congratulations! :D
F.S.I. Chess Teacher
User avatar
Werner
Posts: 2871
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Scorpio 2.8

Post by Werner »

Daniel Shawul wrote:I only did self play with previous version and it seems +40 but I am sure it will come out to much less than that, maybe +20 or less. Damir, why you care so much about elo anyway? :lol:
Good that A0 came into picture and showed the value of thinking outside the box. If you chase that elo aggresively and have a tunnel vision, you might be stuck in a local optima, plus it is not fun atleast not for me...
I appreciate it if someone can test the MCTS version instead of the standard branch with "montecarlo 1" and "treeht" not set to 0.
Daniel
Hi thanks Daniel for the new Version.
I think, MCTS is not good for engine testing:

Ethereal 8.61 x64 1CPU 2200 - Scorpio 2.8mc x64 1CPU 2200 10.0 - 0.0 +10/=0/-0 100.00%
Ethereal 8.61 x64 1CPU 2200 - Scorpio 2.8 x64 1CPU 2200 5.5 - 4.5 +3/=5/-2 55.00%

best wishes
Werner
Daniel Shawul
Posts: 4185
Joined: Tue Mar 14, 2006 11:34 am
Location: Ethiopia

Re: Scorpio 2.8

Post by Daniel Shawul »

Hi Wener,
It is good enough if you set "treeht = 0" (have to test this but I expect it to be very similar to 2.8 unless i have a bug). However, if you have treeht>0, it gets weaker with every increase of memory; lower values of treeht are better strengthwise.

My goal is to gauge how much progress the mcts version made from tscp level in v2.7.9, I expect some 500/600 elos improvement to a level of 2400-2500 elos i think but i could be wrong.

thanks
Daniel
User avatar
Marek Soszynski
Posts: 582
Joined: Wed May 10, 2006 7:28 pm
Location: Birmingham, England

Re: Scorpio 2.8

Post by Marek Soszynski »

Daniel Shawul wrote:_a1_a1 is a null move in the tree. [...] treeht = The maximum size of memory to use for storing the upper parts of the tree. If set to 0 it will effectively become the standard alpha-beta search with only the root and its children stored.
So, if treeht=0 will there be no null moves at all anywhere?
Marek Soszynski