Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: how do I determine 'mate in' depth?

Author: Uri Blass

Date: 03:26:01 09/11/02

Go up one level in this thread


On September 11, 2002 at 04:46:56, Sune Fischer wrote:

>On September 11, 2002 at 00:01:16, scott farrell wrote:
>
>>On September 10, 2002 at 02:56:01, Sune Fischer wrote:
>>
>>>On September 09, 2002 at 20:01:29, scott farrell wrote:
>>>
>>>
>>>>I have tried a variation on that, being :  INFINITY+(100-ply) - so it stays over
>>>>infinity, so if it finds mate it returns nice a quickly. I guess your way
>>>>continues to look for a shorter mate.
>>>>
>>>>But I still get the same sympton, the first move in the mate sequence returns
>>>>INFINITY+99 (ie. INFINITY+100-1).
>>>>
>>>>I guess is something to do with wierd hashing, or my replacement scheme or
>>>>something. i hope its not another bug in the hashtable.
>>>
>>>You never ever want to go higher than INFINITY, the signs are important here.
>>>
>>>Use INFINITY-ply (why add 100?)
>>>So that INFINITY-1 is mate in 1 ply
>>>INFINITY-2 mate in 2 plies (1 move) and in general INFINITY-x mate in x plies.
>>>
>>>This works well for the a-b algorithm, your opponent will choose the move with
>>>the highest score as always, so he will pick the move INFINITY-4 rather than
>>>INFINITY-7, always the shortes way to the mate (you never mate if you take the
>>>longest (instability)).
>>
>>I dont see the big advantage of picking a shorter mate - mate is mate - I win -
>>thanks for coming - (or more often, oops I lose) - maybe I can loose slower
>>though.
>
>Well, programs are a little different in this respect.
>If you reverse the scores it will consistently pick the longest way to the mate.
>That way you are _sure_ never to checkmate.

No

You will finally have no choice because there is not going to be longer mate
because of the 50 move rule or repetition.

>
>>I just liked when I returned over mate, the search function exited nice and
>>quickly, if i do INFINITY-ply, wont it continue looking really hard? isnt there
>>chance the time control will stop the current play from searching? (what do
>>normal programs do when the ply doesnt finish anyway?)
>
>I'm not sure I understand the problem.
>You can stop doing iterative deepening if the search returns a mate score, or
>you can let it go on and try to find a shorter mate.
>Don't kill your search just because it finds one mate in one branch, use the
>mate score like any other score and let the algorithm do its job.
>
>You should note there is an important difference between INFINITY-ply and
>INFINITY+ply. If you use INFINITY+ply you are telling your program to search for
>the _longest_ mate all the time (because those numbers are higher). You need to
>let the shorter mate have a higher score so the algorithm will prefer those
>(that is why you _subtract_ the distance, distance is *bad*).

Prefering the longer mate does no demage for rating and the only problem is that
people may find long games annoying.

I thought that using this idea may be even good to test for bugs because if you
fail to mate then it means that you may have a bug in the 50 move
rule detection but I did not use that idea to check for bugs.

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.