about planned changes in Movei
Posted: 10 Jun 2005, 01:35
Possible improvement in Movei that I hope to make are:
1)Having mobility evaluation that is not dependent on the number of moves of the opponent in previous move(already done but it is slightly slower unless I do more changes)
2)not having evaluation as part of make move or part of the move generator(already done but some information like the value of the maximal capture is still calculated in the move generator and it means that now some pruning tests can be done only after generating moves).
3)Having functions to generate captures and to generate captures and checks(still not done and movei does qsearch by generating all moves and searching for captures and checks later)
4)changing the structure of the program so Movei delay generating moves when it does not need it(something of it was done but most of it was not done).
5)seperating the expensive part of the evaluation that is static and the cheap part of the evaluation that is dependent on the path(still not done)
The idea of step 5 is to continue to step 6
6)Storing the result of the expensive static part in the hash so next time that Movei get the same position it can skip calculating it(still not done)
Note that all these changes except change 1 are basically speed improvement and maybe they are not important because they are not supposed to change the number of nodes for a given depth but inspite of it I dislike the fact that Movei is slower in nps after the new mobility evaluation(311 calculates near 480,000 nodes per second in the opening position when 313 calculates only near 380,000 nodes per second on the same A3000).
Uri
1)Having mobility evaluation that is not dependent on the number of moves of the opponent in previous move(already done but it is slightly slower unless I do more changes)
2)not having evaluation as part of make move or part of the move generator(already done but some information like the value of the maximal capture is still calculated in the move generator and it means that now some pruning tests can be done only after generating moves).
3)Having functions to generate captures and to generate captures and checks(still not done and movei does qsearch by generating all moves and searching for captures and checks later)
4)changing the structure of the program so Movei delay generating moves when it does not need it(something of it was done but most of it was not done).
5)seperating the expensive part of the evaluation that is static and the cheap part of the evaluation that is dependent on the path(still not done)
The idea of step 5 is to continue to step 6
6)Storing the result of the expensive static part in the hash so next time that Movei get the same position it can skip calculating it(still not done)
Note that all these changes except change 1 are basically speed improvement and maybe they are not important because they are not supposed to change the number of nodes for a given depth but inspite of it I dislike the fact that Movei is slower in nps after the new mobility evaluation(311 calculates near 480,000 nodes per second in the opening position when 313 calculates only near 380,000 nodes per second on the same A3000).
Uri