mcostalba / FishCooking

GNU General Public License v3.0
10 stars 5 forks source link

node types #1

Closed lucasart closed 11 years ago

lucasart commented 11 years ago

Marco, Gary,

It would be a good idea to implement node type prediction in SF. Instead of PV/nonPV, you could use PV, All, Cut. The idea is that All and Cut are predicted node types really, and if the move ordering is good the prediction is good, and there is some room to treat the All and Cut nodes a little bit differently.

For example, I've found these two things to be good in DiscoCheck (see source code for details)

Lucas

glinscott commented 11 years ago

Hi Lucas,

Yes, this is definitely something that is very interesting to experiment with. I have a version of all/cut implemented for SF, but was not able to find any elo gain yet: https://github.com/glinscott/Stockfish/compare/master...all_cut_squash.

Definitely something I want to play around with some more though.

Gary

lucasart commented 11 years ago

Also to be noted, all other strong engines use PV/All/Cut nodes. Houdini does (Houdart said he got some elo out of it), and so does Komodo (according to Don Dailey), and so does IvanHoe. I don't know about Critter.

So Stockfish is the only top engine that does not take advantage of that information. IID and Move ordering are things among others. Michael Hoffman (author of Nemo) said he got some elo out of using slightly different reduction formulas for All and Cut node (I didn't manage to improve that in DiscoCheck, but my reduction mechanishm is pretty simplistic compared to SF).

lucasart commented 11 years ago

Maybe one simple patch you could test in SF is to use SEE for move ordering of captures in the search. For QS captures, however, you keep MVV/LVA. I have found this to be better in DiscoCheck to using MVV/LVA everywhere. Your mileage may vary, but we'll only know if we test :)

glinscott commented 11 years ago

Yes, it seems like all/cut should be a win for sure. Tough to find the magic combination to make it work :). I will play around with this some more, but please feel free to launch some tests on fishtest if you want too!