Author: Larry Griffiths
Date: 17:54:52 02/25/99
Go up one level in this thread
On February 25, 1999 at 15:24:04, Peter McKenzie wrote: >On February 25, 1999 at 09:21:57, Larry Griffiths wrote: > >>On February 25, 1999 at 06:53:37, Vincent Diepeveen wrote: >> >>>On February 24, 1999 at 21:39:53, Larry Griffiths wrote: >>> >>>>On February 24, 1999 at 18:41:24, Vincent Diepeveen wrote: >>>> >>>>>On February 24, 1999 at 17:48:23, Larry Griffiths wrote: >>>>> >>>>>>Greetings CCC Chess Programmers! >>>>>> >>>>>>How long does it take your chess programs to go 10 full plys >>>>>>from whites opening move of E2-E4? >>>>> >>>>>few seconds, depending upon selectivity it can take up to 1 minute. >>>>> >>>>Hi Vincent, >>>> >>>>What do you mean by selectivity? My program ran for 22 minutes >>>>(Using a hash table and alpha-beta pruning with a killer heuristic). >>>>I have used the CM6000 auto-analysis with 10 seconds per move and have >>>>seen it go 10-14 plys deep at times. It sounds like your program is >>>>also very fast. Do you mean that you go a few full plys and then >>>>do secondary searches? >>>> >>>>It sounds like I would have to improve the speed of my program by >>>>100 to 1000 times to catch up with you fellows. >>>> >>>>Larry :-) >>> >>>I get 20k nodes a second at a PII-450. >>> >>>But about getting deeply. >>>a) improve move ordering >>>b) use nullmove >>> >>>especially a is important when using b >> >>Thanks Vincent. >> >>My current move order is: >> HashTable, One Killer move, Capture GT, Capture LE, and then the rest >> of the moves. I have read that using a history killer is better than >> just saving the last cut-off move. I want to implement it but >> I have to make major changes to the code to do this. > >Put captures in front of killers, this should significantly reduce your node >count straight off. > >What sort of capture ordering are you doing? Unless you are using a static >exchange evaluator, the best is probably MVV/LVA which stands for Most Valuable >Victim, Least Valuable Attacker. This means, first order by the value of the >piece you are capturing then by the piece doing the capturing. King is a >special case, it is treated as the least valuable attacker. > >So you'd try captures in this order: > >KxQ, PxQ, NxQ, BxQ, RxQ, QxQ, KxR, PxR, NxR, BxR, RxR, QxR, KxB, PxB, etc > >cheers, >Peter > >> >>Larry. Peter, I started working on the code for sorting MVV/LVA and noticed that I was testing to see if the Victim was GT the Attacker. If it was, then I put it in the GT list. If it was not, then I put it in the LE list. I must of been thinking that the Attacker would be re-captured or something. A real case of the Duh's. I even wrote this code with research done about MVV/LVA. I did something dumb with hash tables this month also. I could not figure out why the code was not working until I noticed a compiler message one day. "Function should return a value." If you ever want your program to make piece offerings (pardon the pun) just return random sucess or failure code from your hash probe code. It goes something like this... Hi, I'm the hash probe routine. Sorry, I don't have a matching hash entry right now, but here, take this "offer the opponent your Queen" and hang two other pieces score. Thanks again. Larry. :] ear to ear grin.
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.