And what if someone uses do-move for computing SEE ? Should these moves be counted too ?Joost Buijs wrote:Every do-move() (also do-nullmove()) I call a node, and I evaluate every node except when the king is in check, which is only a small portion of the total number of nodes.Henk wrote:Yes you are right for instance Skipper currently counts illegal nodes where king might be captured too. Perhaps I have to change that first.WinPooh wrote:This approach can be a little bit misleading if different engines count nodes in different ways.matthewlai wrote:I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.
In my opinion a node is a position with a value. No matter how you get that value. If you get value from hash it is still a node. If you do a null move it is still a node for position has changed because side to move has changed.
Maximum speed
Moderator: Ras
-
- Posts: 7251
- Joined: Mon May 27, 2013 10:31 am
Re: Maximum speed
-
- Posts: 1641
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: Maximum speed
I don't think so, at least I would not count them.Henk wrote:And what if someone uses do-move for computing SEE ? Should these moves be counted too ?Joost Buijs wrote:Every do-move() (also do-nullmove()) I call a node, and I evaluate every node except when the king is in check, which is only a small portion of the total number of nodes.Henk wrote:Yes you are right for instance Skipper currently counts illegal nodes where king might be captured too. Perhaps I have to change that first.WinPooh wrote:This approach can be a little bit misleading if different engines count nodes in different ways.matthewlai wrote:I happen to have quite a few engines in my gauntlet, so I ran a search from start position on all of them. All single threaded.
In my opinion a node is a position with a value. No matter how you get that value. If you get value from hash it is still a node. If you do a null move it is still a node for position has changed because side to move has changed.
-
- Posts: 1641
- Joined: Thu Jul 16, 2009 10:47 am
- Location: Almere, The Netherlands
Re: Maximum speed
Yes, I fully agree with you on this. All that pruning going on doesn't necessarily make an engine play stronger, but the average user thinks 'hey that engine looks much deeper so it must be stronger'.WinPooh wrote:Yes, remember early Rybkas with their low nodecount.Joost Buijs wrote:Node-count doesn't mean anything with respect to playing strength.
More to say, depth of search also means almost nothing. Remember Junior
In the case of SF it seems to work though.
Rybka did something like printf("nps %d", nps / 10); And Junior printf("depth %d", depth * 2);
-
- Posts: 793
- Joined: Sun Aug 03, 2014 4:48 am
- Location: London, UK
Re: Maximum speed
And in Giraffe I have "depth = -log(probability_threshold)/log(2)" since the search is not actually depth-based, but both CECP and UCI assumes depth-based search.Joost Buijs wrote:Yes, I fully agree with you on this. All that pruning going on doesn't necessarily make an engine play stronger, but the average user thinks 'hey that engine looks much deeper so it must be stronger'.WinPooh wrote:Yes, remember early Rybkas with their low nodecount.Joost Buijs wrote:Node-count doesn't mean anything with respect to playing strength.
More to say, depth of search also means almost nothing. Remember Junior
In the case of SF it seems to work though.
Rybka did something like printf("nps %d", nps / 10); And Junior printf("depth %d", depth * 2);
Disclosure: I work for DeepMind on the AlphaZero project, but everything I say here is personal opinion and does not reflect the views of DeepMind / Alphabet.