Author: Tim Foden
Date: 08:20:19 08/15/03
Go up one level in this thread
On August 15, 2003 at 10:33:11, Uri Blass wrote:
>On August 15, 2003 at 10:19:25, Tim Foden wrote:
>
>>On August 15, 2003 at 10:13:05, Uri Blass wrote:
>>
>>>On August 15, 2003 at 10:03:06, Anthony Cozzie wrote:
>>>
>>>>On August 15, 2003 at 09:56:35, Uri Blass wrote:
>>>>
>>>>>On August 15, 2003 at 08:36:00, Anthony Cozzie wrote:
>>>>>
>>>>>>[D]r4r1k/1b3p1p/pq3N1p/n3p2N/Pp6/3Bn3/1PP1Q1PP/R4R1K w - - 0 26
>>>>>>
>>>>>>1. Rg1 Rfc8 2. Bxh7 Qd4 3. Rab1
>>>>>> = (-0.89) Depth: 5/12 00:00:00.25 40kN
>>>>>>1. Rg1 Rfd8 2. Rae1 Bxg2 3. Rxg2 Nxg2 4. Qxg2 Qg1 5. Rxg1
>>>>>> = (-1.00) Depth: 6/16 00:00:00.70 153kN
>>>>>>1. Rg1 Rfd8 2. Rae1 Bxg2 3. Rxg2 Nxg2 4. Qxg2 Qb7 5. Rxe5 Qxg2
>>>>>> + (-0.70) Depth: 7/19 00:00:01.36 377kN
>>>>>>1. Rg1 e4 2. Bxe4 Bxe4 3. Nxe4 f5 4. Nef6 Rfd8
>>>>>> = (-0.09) Depth: 7/19 00:00:02.15 685kN
>>>>>>1. Rg1 e4 2. Bxe4 Bxe4 3. Nxe4 f5 4. Qxe3 Qxe3
>>>>>> = (0.00) Depth: 8/23 00:00:03.48 1192kN
>>>>>>1. Rf2 e4 2. Bxe4 Bxe4 3. Nxe4 f5 4. Nef6 Rfc8 5. Qd3 Rd8
>>>>>> = (-0.04) Depth: 9/30 00:00:20.53 7692kN
>>>>>>1. Rf3 Bxf3 2. Qxf3 Qd4 3. Re1 Qh4 4. g3 Nxc2
>>>>>> = (0.25) Depth: 10/33 00:00:42.98 16634kN
>>>>>>1. Rg1 Qd4 2. Rae1 Nec4 3. Bxc4 Nxc4 4. Rd1 Qc5 5. Nd7 Nb6 6. Nxf8 Rxf8
>>>>>> = (0.43) Depth: 11/39 00:01:25.00 33717kN
>>>>>>1. Rf3 Bxf3 2. Qxf3 Qd4 3. Re1 Qh4 4. g3 Nac4 5. gxh4 Ng4 6. Bxc4 Nf2
>>>>>> + (0.73) Depth: 12/48 00:05:37.18 133815kN
>>>>>>1. Rf3 Nxg2 2. Qxg2 Rg8 3. Qe2 Rg5 4. Be4 Rc8 5. h4 Rg6 6. Nd7 Qd4 7. Bxb7 Qxh4
>>>>>>8. Qh2 Qxh2 9. Kxh2
>>>>>> = (1.24) Depth: 12/48 00:12:16.28 298098kN
>>>>>>
>>>>>>Very tough for Zappa. 5 minutes. It changes its mind a lot here as well, which
>>>>>>never helps - Rg1, then Rf2, then Rf3, then Rg1, then Rf3 again.
>>>>>>
>>>>>>anthony
>>>>>
>>>>>I wonder how does zappa knows not to consider first Rg1 at depth 12.
>>>>>zappa has a score for Rg1 at depth 11 and the first output at depth 12 is a
>>>>>score for Rf3.
>>>>>
>>>>>Uri
>>>>
>>>>I'm not sure what is strange (other than the slow times): Zappa likes Rg1 at
>>>>depth 11, fails high on Rf3 at depth 12, and ends up with Rf3 as the best move
>>>>at depth 12.
>>>>
>>>>anthony
>>>
>>>The fact that I see no score for Rg1 at depth 12.
>>>Does zappa have a score for Rg1 at depth 12 before finding Rf3?
>>>
>>>If it has a score then I do not see it in the output and if it decides to search
>>>Rf3 before Rg1 at depth 12 then how does it know to do it.
>>>
>>>Uri
>>
>>The current GLC can also do this sometimes. If the first move score is lower
>>than alpha, it is not reported, and search continues. If a move is eventually
>>found that is greater than alpha, then it is reported. Thus you can change PV
>>at a given depth without printing a PV for the previous best move. It doesn't
>>happen often, but it happens. Maybe this is what is happening with Zappa's
>>output here.
>
>I always investigates fails low first but maybe it is better if I do not do it.
>
>>
>>And in my development version I've changed it to fail low immediately if the
>>first move fails low.
>>
>>Cheers, Tim.
>
>Do you mean that in the output you write that it fails low
>like the following output
>1. Rg1 --
>1.Rf3 +0.14
>
>or 1.Rg1 <0.13
>1.Rf3 +0.14
>
>Do you go back to the first move in the same iteration in case that you find
>nothing better than alpha for the other moves.
Yes. But this is done in Aspirate.
e.g. a simplified version...
int Aspirate( depth )
{
make alpha = last-search-value - 0.4;
make beta = last-search-value + 0.4;
value = SearchRoot( depth, alpha, beta );
if( value is fail low )
{
adjust alpha.
value = SearchRoot( depth, alpha, beta );
}
else if( value is fail high )
{
adjust beta.
value = SearchRoot( depth, alpha, beta );
}
etc....
return value;
}
int SearchRoot( depth, alpha, beta )
{
int best-value = -mate;
for( each move in root-moves )
{
make move
value = -Search(depth - 1, -beta, -alpha);
undo move
if( value > beta )
return value;
if( value > best-value )
best-value = value;
}
return best-value;
}
But in my devel version, I now do
if( value < alpha )
return value;
after the if( value > beta ) above.
Cheers, Tim.
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.