Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: MVV/LVA Duh? (Peter)

Author: Tony Werten

Date: 01:26:21 02/26/99

Go up one level in this thread



On February 25, 1999 at 20:54:52, Larry Griffiths wrote:

>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.

Larry,

Maybe another thing to try, is putting the capture of the last moved piece in
front of the MVV/LVA captures. The idea is that a lot of times, the last move
was just one that put this piece in the wrong place. In my case I save a few %
this way.

Tony



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.