I have seen 3 flavors of history tables. <piece><to>, a 512 entry table. <from><to>, a 4096 entry table, <piece><from><to> a 32,768 entry table.Don wrote:It's really ugly isn't it? I hate that too. I use what works best at the levels I test at! And I assume this is better than nothing at all.Edsel Apostol wrote: By the way, what I don't like with History is that as the time spent on search increases, the randomness of the values contained in the history table also increases, and I don't want to trust that value.
As an example, since those sources are handy, stockfish/glaurung uses the first example. I think that is probably the worst possible case. If Nf3xe5 fails high and gets entered, later in the tree do I really want to try moves like Nc4-e5? Or Re1-e7 fails high, do I really want to try moves like Re8-e7, or Ra7-e7 first, just because the original Re1-e7 failed high? For shallow searches, maybe. But not for 20+ ply searches.
The history numbers begin to become almost purely random after a couple of minutes of very deep searching at speeds of 20M nodes per second. I think the latter example with 32768 entries has the best hope, at least you keep trying the same piece from the same square to the same square, but is such a move played at ply 2 and failing high going to mean that playing the same move at ply 30 will have the same result?
The idea looks hopeless to me, and I have yet to find an approach that actually improves cluster test results. Most hurt, the rest didn't help. Not that it can't be made to work, but I have tried every idea ever mentioned here, and some that have not been mentioned, all with the same bad overall result. Some seemed to be quite reasonable, until you shine the "cluster light" on them.