Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interesting Idea To Improve Crafty

Author: Robert Hyatt

Date: 11:55:02 05/13/00

Go up one level in this thread


On May 13, 2000 at 10:30:24, blass uri wrote:

>On May 13, 2000 at 09:22:40, Robert Hyatt wrote:
>
>>On May 13, 2000 at 02:39:33, blass uri wrote:
>>
>>>On May 12, 2000 at 23:14:33, Robert Hyatt wrote:
>>>
>>>>On May 11, 2000 at 12:50:39, Graham Laight wrote:
>>>>
>>>>>On May 11, 2000 at 10:43:57, blass uri wrote:
>>>>>
>>>>>>On May 11, 2000 at 10:20:34, Graham Laight wrote:
>>>>>>
>>>>>>>On May 11, 2000 at 10:07:56, blass uri wrote:
>>>>>>>
>>>>>>>>On May 11, 2000 at 08:33:26, Mogens Larsen wrote:
>>>>>>>>
>>>>>>>>>On May 11, 2000 at 05:36:42, blass uri wrote:
>>>>>>>>>
>>>>>>>>>>I also believe that other beta testers did not think about part of my productive
>>>>>>>>>>ideas for chess programs.
>>>>>>>>>
>>>>>>>>>Out of curiosity, what productive ideas have you been suggesting?
>>>>>>>>>
>>>>>>>>>Sincerely,
>>>>>>>>>Mogens
>>>>>>>>
>>>>>>>>I will repeat one idea that I posted here:
>>>>>>>>
>>>>>>>>
>>>>>>>>Many programs are null movers and they prune moves when they see no threat.
>>>>>>>>
>>>>>>>>I found that Crafty could not find some tactics in practical games because it
>>>>>>>>pruned threat mate moves.
>>>>>>>>
>>>>>>>>I suggested that before the decision if to prune by null move to check also if
>>>>>>>>there is a mate threat to bigger depth(If it seach d plies for regular threat it
>>>>>>>>can search d+1 or d+2 plies for mate threat)
>>>>>>>>
>>>>>>>>I think this will help crafty to see tactics when there is a mate attacks and I
>>>>>>>>think that crafty will not be significantly slower when there is no mate threat
>>>>>>>>because checking if there is a d+1 plies mate threat is easier than checking if
>>>>>>>>there is a d plies not mate threat).
>>>>>>>>
>>>>>>>>Crafty can call chest(a free program that is the best mate solver) to check if
>>>>>>>>there is a mate threat and chest is a very fast mate solver(it tries to prove
>>>>>>>>that there is no mate with the smallest possible tree and it helps it to see
>>>>>>>>that there is no mate very fast).
>>>>>>>>
>>>>>>>>I read that it is a slow searcher and search only 20000 nodes per seconds on
>>>>>>>>a slow hardware p166(I am not sure if I am right about the hardware) but it can
>>>>>>>>solve 1500 mate in 2 in one second.
>>>>>>>>
>>>>>>>>
>>>>>>>>Crafty on p166 needs significantly more than 1/1500 second in order to search 3
>>>>>>>>plys threat when these threats can miss mate in 2 because crafty's evaluation
>>>>>>>>also has no idea if the position is mate so it may need more than 2d-1 plies to
>>>>>>>>see mate in d threat not only because of null move.
>>>>>>>>
>>>>>>>>Uri
>>>>>>>
>>>>>>>This is a good idea, but I don't think Bob will go for it.
>>>>>>>
>>>>>>>Firstly, it's difficult to know whether there's a possible mate threat. If there
>>>>>>>is, there's a high probability that a chess program would stumble upon it
>>>>>>>anyway.
>>>>>>
>>>>>>It is not so difficult to know when there is a mate threat
>>>>>>
>>>>>>There are positions when it is more common when the king is exposed
>>>>>>and it take less time to check if there is amate threat than checking if there
>>>>>>is another threat so crafty will not be significantly slower.
>>>>>>
>>>>>>>
>>>>>>>Secondly, I think Bob likes to control everything that's happening so that he
>>>>>>>can ensure that it's all done in the minimum amount of time. Having a cuckoo in
>>>>>>>the nest doing unpredictable things with unpredictable quantities of resources
>>>>>>>is hardly likely to please Bob, from my readings of his postings over the years.
>>>>>>
>>>>>>It is possible to control the time.
>>>>>>You can decide to call chest to search for a mate threat not more than 1/10 of
>>>>>>the time that you search for other threats(It will often search deeper and even
>>>>>>if it does not search deeper it can see mate threats that the regular search of
>>>>>>crafty does not see because of null move pruning because crafty is using null
>>>>>>move recursively)
>>>>>>
>>>>>>Crafty will be slightly slower in cases when there is no mate threats but the
>>>>>>fact that it will find  some important tactics that it did not find before is
>>>>>>more important.
>>>>>>
>>>>>>Uri
>>>>>
>>>>>Perhaps chess programmers will have to accept an "object oriented" approach to
>>>>>programming to make their programs much better - with different programmers
>>>>>doing different objects.
>>>>>
>>>>>I have already stated my case that programmers should consider using knowledge
>>>>>management tools (I suggest http://www.haley.com might be a good place to start)
>>>>>because at least one top programmer has admitted that building the knowledge in
>>>>>a non-systematic way has resulted in the same knowledge being used more than
>>>>>once in evaluating position nodes.
>>>>>
>>>>>I remember in the 1970s when people would build a hi-fi system. They would get
>>>>>the turntable from one supplier, the tape deck from another, the tuner from
>>>>>another, the amplifier from another, and the speakers from yet another!
>>>>>
>>>>>Maybe we have to go this way in building "chess systems" to get the best
>>>>>possible players.
>>>>>
>>>>>-g
>>>>
>>>>
>>>>THe problem here is that null-move searches are done at _every_ node in the
>>>>tree.  Now, before allowing a null-move fail high, it would need to do a
>>>>search to detect threats.  That would _definitely_ slow it down significantly.
>>>
>>>It depends on the time that you search for mate threats.
>>>If you search for mate threats only 1/10 of the time that you search for regular
>>>threats than it slows it down by less than 10%(I do not know how much because I
>>>do not know how much time does crafty use for null move searches)
>>
>>You are forgetting this is a _tree_.  This time is added for a _bunch_ of
>>nodes interior to the tree.  It wouldn't just cost 10%.  It would probably
>>cost a factor of 2-3 (at least one ply).
>
>For every node you can decide that the time to search for mate threat is not
>more than 1/10 of the time to search for regular threat.
>>
>>
>>
>>>
>>>searching for mate threats is clearly more easy than searching for regular
>>>threats so you can see deeper inspite of the fact that you use less time.
>>
>>Not always.  Even a mate in 2 can have the first move as a non-check.  Now,
>>that 3 ply search for mate is no easier than a normal 3 ply search, since there
>>is no clue that the first move leads to mate...
>
>This is not the case if you use chest(the best mate solver)
>
>I remember from a post of the programmer of chest that chest can see 20,000
>nodes per second on p166(I am sure that it was a slow hardware but I am not sure
>if it was p166) but can solve 1500 mate in 2.
>
>Simple calculation show that the average number of nodes that it needs to see if
>there is a mate in 2 is less than 14  that is eqvivalent to about 50 nodes for
>crafty(because chest is slower than crafty).
>
>I asked the programmer how it is possible and he explained that the idea of
>chest is to try to prove that there is no mate by the smallest possible tree.
>I understand that chest often can see that the first move is not leading to mate
>without calculating forward because there is no way to cover the escape squares
>of the opponent king.
>
>Chest does not need to generate all the possible moves in the first ply when it
>search for a mate in 2.
>
>Chest is a free chess program and everyone can look in the source code of it and
>try to understand how does it do it.
>
>Uri


It may not have to generate _all_ the ply=1 moves to find the mate.  It
certainly has to try them _all_ before it can prove there isn't a mate.
And that is the problem..  99% of null-move positions cause no problems at
all...  it is the <1% that is the issue.  But the test has to be done for
_all_ positions.



This page took 0.01 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.