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.