GrrrrrrrDann Corbit wrote:IID can be as simple as 3-4 lines of code and should give you good move ordering.

Moderator: Ras
GrrrrrrrDann Corbit wrote:IID can be as simple as 3-4 lines of code and should give you good move ordering.
I may be wrong but the above tables only help to generate moves faster while the main thought here is how to select the best move from all those generated. Ed talked about using piece square tables along with captures to do a preliminary sort. He said that this gretely speeded up his program.JP wrote:The most simple move ordering system I know about is piece-from-to tables. Ed uses them instead of LMR if I understand him right. Thanks!
Well, thank you for your interest. Alas, I put a temporary stop on the evolution experiment as I needed the laptop on which I was running it for other purposes, and progress on evolving a Chess engine from scratch was rather slow. In addition the program was very inefficient (comparing interpreted code, rather than compiled code), so I figured that if I would have to run it for 10 years, I would somewhere before that find the time to speed it up 10 times, and still produce a result earlier...JP wrote:The most simple move ordering system I know about is piece-from-to tables. Ed uses them instead of LMR if I understand him right. Depending on how you count your 2000 characters, maybe it can be used. If you read in the table it needs a few lines.
BTW. I looked into your site and found some interesting stuff. The Evolution experiment, Genetic Programming, is in my taste!
Even more your elaboration about EGDB generation is interesting as I have started to look at bitbase generation and probing.
Thanks!
I do not know.hgm wrote:Well, thank you for your interest. Alas, I put a temporary stop on the evolution experiment as I needed the laptop on which I was running it for other purposes, and progress on evolving a Chess engine from scratch was rather slow. In addition the program was very inefficient (comparing interpreted code, rather than compiled code), so I figured that if I would have to run it for 10 years, I would somewhere before that find the time to speed it up 10 times, and still produce a result earlier...JP wrote:The most simple move ordering system I know about is piece-from-to tables. Ed uses them instead of LMR if I understand him right. Depending on how you count your 2000 characters, maybe it can be used. If you read in the table it needs a few lines.
BTW. I looked into your site and found some interesting stuff. The Evolution experiment, Genetic Programming, is in my taste!
Even more your elaboration about EGDB generation is interesting as I have started to look at bitbase generation and probing.
Thanks!
As for uMax, the problem is not so much that I have no criterion to sort the moves by, but that the bare storing and sorting of the moves already causes a major increase of the code. In cut-moves IID provides uMax with very good move ordering as far as finding cut-moves is concerned. Better static move ordering would hardly improve that.
The problem, however, is that shallower searches do not help you to order moves in an all-node, as the scores were spoiled by alpha-beta pruning. So you have to fall back on static criteria, which are normally much less reliable than search scores, but at least are free of corruption by alpha-beta pruning.
I have my doubts, though, that it would be worth it to invest a lot of effort in move ordering just to be able to make the LMR decisions a little bit better. Especially since using order-independent criteria, such as the simple fact if the move is a capture or not, already seem to give you most of the advantage that LMR brings.
How many ELO does your engine gain from LMR?