Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Interesting Idea To Improve Crafty

Author: Robert Hyatt

Date: 13:30:27 05/13/00

Go up one level in this thread


On May 13, 2000 at 15:25:21, blass uri wrote:

>On May 13, 2000 at 14:55:02, Robert Hyatt wrote:
>
>>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.
>
>I understood that the idea behind chest is that it has not to try all the ply=1
>moves to find that there is no mate in 2(it is obvious for mate in 1 when you
>need to generate only threat king moves but I understood that it is also
>possible to do it for mate in 2).
>
>Chest knows for every piece the squares that it controls so it knows the squares
>need to be controled in order to do mate.
>
>If it is obvious from the starting position of the pieces that they cannot
>control the relevant squares in 2 moves then you can discover that there is no
>mate in 2 without generating moves.
>
>Uri


what about zugzwang???



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.