Author: Inmann Werner
Date: 16:04:26 11/02/98
Go up one level in this thread
On November 01, 1998 at 13:03:07, Inmann Werner wrote: >On October 31, 1998 at 19:53:46, Andrew Dados wrote: > >> >>On October 31, 1998 at 16:45:01, Inmann Werner wrote: >> >>>I have problems with "nearly mate" positions, where the opponent can do some >>>checks, so the mate gets beyond the horizon. >>> >>>One Example (really interesting!) >>> >>> >>>Position (LCTII CMB 01) >>> xrxxxxkx >>> xqxxbpxx >>> xxxpxxpx >>> xxpPxxxx >>> PxNxxxxR >>> xxPxxQPx >>> xPxxxPKx >>> xxxxxxxx >>> >>>Best: c4d6/e7d6/f3f6 white wins >>> >>>In depth 7 , my program should find the solution, but it does not! The problem >>>is, that black can make checks to bring the mate beyond the horizon. At each >>>check, I extend the search for 1 ply, but it is not enough. >>> >>>The computer thinks: >>>C4d6/e7d6/f3f6/b7d5+/g2h2/d6g3+!!/h2g3/d5d3+/g3h2/g8f8/ no h4h8 and black >>>"stands good" >>>7 plys plus 3 plys the checks end up at 10!! >>> >>>This things really often happen, and I am reall unhappy with it. When I tried to >>>extend at a check with 2 plys, this problem was solved very early. But the >>>overall searchdepth goes dramatically down, so the program plays worse. >>>On an attack, it is nearly always possible for the opponent to slow down the >>>attack with "senseless", but forced moves. >>>I thought about something like: >>>This is a mate in 1, therefore don“t let you disturb with "senseless " moves. >>>But I have no thought, how to implement such a thing. >>>Suggestions? >>> >>>Werner >> >> One solution I find acceptable is whenever you make null move generate all >>checks at next ply even if null throws you to quiescence... that way null >>returns 'being mated' score - and based on that you can extend your search >>deeper...hopefully going beyond all delaying moves. >> >>Andrew > >I also thought about using the null move for this problems. Now my program finds >the move at ply eight. >I do not agree, that "brute force and fast" going into deeper plys is always >better. If you make some "nice things", maybe the program finds something one >ply earlier, which means "speed increasing" by factor three. >So its worth to think about it, but always calculate the costs. >I will try something with null moves and extensions, lets look what comes out. > >Werner ********* I tried something with null move. Problem: you can make a mate with the next move, but the opponent checks you as long as it goes beyond the horizon. I now only talk about this specific problem. I think, it often occurs and know, that a "solution" for this problem does not stop horizon effect all. My thought: When the opponent is on move, I do a null move and one own move and then quiet search. If a mate occurs here, I remember it, and pass it to the next alpha_beta recursion which is my move. Only if a am checked at this time, I extend 2 moves (not only one for the check) as long as extensions are allowed. (Max Extensions...) So I only extend if I can mate in one and the opponent slides out with a check! There are also some limitations when doing the special null move, but there I am experimating. My position above then gets solved at ply 6!!!!! I tried some other positions with heavy threats and checks, where no real mate can be made (worse for my algoritm). There it slows down about 10%, because it looks deeper in maybe interesting things which in this case do not work. I must say, that I implemented above 3 hours ago, and 3 hours testing is not much, but it is worth to think about. Werner
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.