Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: what does "fail high" mean?

Author: Uri Blass

Date: 00:20:39 11/30/02

Go up one level in this thread


On November 30, 2002 at 02:48:29, scott farrell wrote:

>On November 30, 2002 at 01:37:01, Uri Blass wrote:
>
>>On November 29, 2002 at 22:34:40, scott farrell wrote:
>>
>>>On November 29, 2002 at 21:12:55, Scott Gasch wrote:
>>>
>>>>On November 29, 2002 at 17:22:20, Will Singleton wrote:
>>>>
>>>>>2rr3k/1p4p1/1P2b2p/p1Bnpp1q/8/Q1P2PP1/P6P/RB3RK1 b - - 0 26
>>>>>
>>>>>Solution times (amd 1.6ghz):
>>>>>
>>>>>Yace       not in 5 min
>>>>>Crafty     not in 5 min
>>>>>Aristarch  3:48 min
>>>>>Gromit     3:12 min
>>>>>Ruffian    44 sec
>>>>>CM9000     5 sec
>>>>>
>>>>
>>>>Monsoon fails high in 2:16 and resolves a PV in 4:27.
>>>>
>>>> 1u   +0.35  00:00:00.02  11           PV= a4 <+0.00>
>>>> 1u   +1.35  00:00:00.05  57           PV= Nf4 <+0.00>
>>>> 1.   +1.35  00:00:00.08  77           PV= Nf4 <+0.00>
>>>> 2-   +0.57  00:00:00.13  190          **FL** --
>>>> 2u   -0.47  00:00:00.14  302          PV= Ra8 1. Bd3 <+0.00>
>>>> 2u   -0.36  00:00:00.15  380          PV= Rc6 1. Qxa5 <-1.00>
>>>> 2u   -0.10  00:00:00.16  448          PV= Nf6 1. Qxa5 <-1.00>
>>>> 2.   -0.10  00:00:00.21  508          PV= Nf6 1. Qxa5 <-1.00>
>>>> 3.   +0.59  00:00:00.27  1635         PV= Nf6 1. Qxa5 e4 <-1.00>
>>>> 4u   +0.64  00:00:00.31  6748         PV= Rc6 1. Bd3 Nxb6 2. Bxb6 Rxb6 [Q]
>>>>                                        > 3. Qxa5 [Q] <+0.00>
>>>> 4.   +0.64  00:00:00.38  9055         PV= Rc6 1. Bd3 Nxb6 2. Bxb6 Rxb6 [Q]
>>>>                                        > 3. Qxa5 [Q] <+0.00>
>>>> 5+   +1.40  00:00:00.47  22433        Nf6! ++
>>>> 5.   +1.49  00:00:00.63  42341        PV= Nf6 1. Bd6 Bc4 2. Re1 Qxf3 3. Bxe5
>>>>                                        > [Q] <+0.00>
>>>> 6.   +1.52  00:00:00.93  90963        PV= Nf6 1. Bd6 e4 2. fxe4 fxe4 3. Bc2
>>>>                                        > <+0.00>
>>>> 7.   +1.77  00:00:01.49  209895       PV= Nf6 1. Bc2 Rd2 2. Rf2 Rxf2 3. Bxf2
>>>>                                        > Qxf3 4. Qxa5 [Q] <+0.00>
>>>> 8.   +1.77  00:00:03.82  698640       PV= Nf6 1. Bc2 Rd2 2. Rf2 Rxf2 3. Bxf2
>>>>                                        > Qxf3 4. Qxa5 <+0.00>
>>>> 9+   +2.52  00:00:05.36  994464       Nf6! ++
>>>> 9.   +2.71  00:00:08.69  1812429      PV= Nf6 1. Bd6 Bc4 2. Rf2 e4 3. g4 Nxg4
>>>>                                        > 4. fxg4 Qxg4+ [+] 5. Bg3 Rd1+
>>>>                                        > [Q] 6. Kg2 [Q] <-1.00>
>>>>10.   +3.02  00:00:26.78  5824368      PV= Nf6 1. Bd6 Bc4 2. Rf2 e4 3. Bc2
>>>>                                        > e3 4. Rg2 Qxf3 5. Re1 <+1.00>
>>>>11+   +3.77  00:02:16.62  28726569     Nf4! ++
>>>>11.   +5.19  00:04:27.40  58248289     PV= Nf4 1. gxf4 Rd2 2. Bf2 [threat]
>>>>                                        > Qxf3 3. Qxa5 Bd5 4. Qxd5 [threat]
>>>>                                        > Qxd5 5. Bxf5 Rf8 6. c4 Qxc4 [Q]
>>>>                                        > <+3.00>
>>>
>>>How do you guys get this sort of output?
>>
>>I also do not understand it.
>>
>>Monson finished depth 10 with Nf6 in the pv but I do not see pv for Nf6 at depth
>>11.
>>
>I think they must be doing something like, start depth 11 with a window of say
>3.5 to 3.6. This "fails-high" where any one branch can prove it can do atleast
>as good at 3.6 using soft alpha/better bound, or they actually used say
>3.5-3.77. Assuming that fail-low are real fast, and the search ussually fails
>low, then they ussually dont waste much time. I report fail-low at the root, to
>see this sort of this, using -INFINITY to INFINITY, you dont get fail low at the
>root. So after the fail-high, they know atleast one move is dramatically better,
>but not exatly how much better, or if there is also another real good move which
>is better. When they re-search, they search with say 3.77-INFINITY.
>
>My hashtable/hash alorithm doesn't have data/smarts to do window searches like
>this. What extra info do I need, I current store the type of bound (a/b/exact),
>and the score, and do Robert H's fail low/fail hi routine if enough depth.
>
>>Does it start analyzing Nf4 and not Nf6 at depth 11?
>>>
>>>My engine doesnt report the final move Nf4 until it has fully analysed that
>>>move, and hence already has the PV.
>>
>>I do not understand.
>>
>>Do you use normal alpha beta?
>>
>>I try to find if other moves are better than the best move that I found.
>>For that purpose I use a window of 0.01 pawns.
>>
>>If they are better I have a fail high and increase the size of the window from
>>0.01 pawns to something bigger than 0.01 pawns.
>>
>We are saying the same thing, I use PVS, but have to have fully searched a move
>at each ply first. They did something smarter than us. Or are you saying 0.01
>pawns from previous iteration, say from ply 10 in this example.

I doubt if they did something smarter than us.

If you know that there is going to be fail high then it may be better to do what
they did but in games you do not know it and in most of the cases you are going
to waste time for nothing if you start by investigating if something is clearly
better.

It may be a good idea to do in part of the cases when you suspect that a move is
going to fail high but I do not know if they do it only in part of the cases.

Uri



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.