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.