Computer Chess Club Archives


Search

Terms

Messages

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

Author: scott farrell

Date: 23:48:29 11/29/02

Go up one level in this thread


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.
>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.