Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: What to do with Horizon effect?

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.