Author: Uri Blass
Date: 13:25:12 11/23/01
Go up one level in this thread
On November 23, 2001 at 15:43:24, Michel Langeveld wrote: >On November 22, 2001 at 15:52:22, Uri Blass wrote: > >>The times of my program in calculating perft(number of legal games of fixed >>number of plies) are not bad. >> >>I get on p800 33 seconds for finding perft 6=119060324 in the initial position >>and also 33 seconds for finding perft 5=193690690 in another known position >> >>this is not a mistake and my program needs similiar time because it generates >>only legal moves so it needs less nodes to calculate perft 5. >> >> >>[D]r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq - 0 1 >> >> >>I am interested to know what is the speed of the best free or commercial program >>in calculating perft. >> >>Yace is the fastest free program that I know. >>I do not know about a commercial programs with this function. >> >> >>My move generator is not 100% correct because it has some probelms with the en >>passant rule that I did not care to fix but it finds the right numbers and it is >>clear that fixing the errors is not going to change significantly the speed of >>the program. >> >> >>yace is slightly faster than my program in caculating perft 6 in the initial >>position(32 seconds) but has no chance in the second position and I plan to >>improve the algorithm(there wer important things that I did not do because of >>more important things). >> >>The main improvement that I worked about in the last days was improvement in >>generating moves(my previous version generated only piece go to square when I >>started from the target square and now I start from the piece except checks). >> >>second improvement that I found was a mistake of generating move twice when I >>did not need to do it. >> >>I calculate perft 4 in the following ways: >>1)generate all legal moves >>2)make a3 >>3)generate all legal moves >>4)make a6 >>5)generate all the legal moves >>6)make a4 >>7)generate all the legal moves and add their number into perft >>8)undo a4 >>9)generate all the legal moves >>10)make b3 >>11)generate all the legal moves and add their number to perft >>12)undo b3 >>13)generate all the legalmoves >>14)make b4 >> >>I understood that I can save time by not doing 9,13,... because it was exactly >>the same job that I did in 5 and it saved me almost half of the job of >>generating moves(it was not close to 50% improvement because my program also >>make moves and not only generates them but it was a big improvement). >> >>Uri > >I needed 36 hours for this: >http://www.it.ro/ccc_search/ccc.php?art_id=57423 1)Did you use hash tables for this? If not then 36 hours for number that is more than 20,000 times bigger than the number than mine means that without hash you may need less than 6.5 seconds to calculate perft 6 in the initial position. 2)How much time do your program need to calculate perft 6(it seems that it is faster than mine)? Note that my program still has bugs and I found one bug that I did not know about thanks to calculating perft 7 from the initial position I needed few hours to find that the problem was the following game: 1.d4 c5 2.Kd2 Qc7 3.Kc3 cxd4+ when my program believed that 4.Kxd4 is illegal because of the fact that I wrote > instead of < in my function of replies to double check. I still have bugs and I guess that I have more bugs that I do not know about and the initial position or the second position that I posted are not the best position to test move generator. Good position to test complicated move generator should include things like double checks,enpassant moves in reply to check,illegal enpassant moves inspite of the fact that the pawn is not pinned and close distance between the pieces in moves so the king should be careful against everything(the kings cannot get distance of 2 squares in few plies in the initial position or the second position). Uri
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.