Hiarcs-Ktulu, Leiden 2009

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jdart
Posts: 4367
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Hiarcs-Ktulu, Leiden 2009

Post by jdart »

Pretty impressive win by Hiarcs IMO:

[D] 1k1r1bnr/ppq2pp1/2n1p3/4P2p/Q1N3b1/p1B2N2/3PBPPP/R4RK1 w - -

bm Ba5
User avatar
Graham Banks
Posts: 41472
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Hiarcs-Ktulu, Leiden 2009

Post by Graham Banks »

Hi Jon,

Cock de Gorter was keen to show me this game because it stood out as an exceptional one.
Certainly a nice win by Hiarcs. 8-)

Cheers,
Graham.
gbanksnz at gmail.com
User avatar
Eelco de Groot
Posts: 4567
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: Hiarcs-Ktulu, Leiden 2009

Post by Eelco de Groot »

jdart wrote:Pretty impressive win by Hiarcs IMO:

[D] 1k1r1bnr/ppq2pp1/2n1p3/4P2p/Q1N3b1/p1B2N2/3PBPPP/R4RK1 w - -

bm Ba5
Very good,

Ancalagon only finds Ba5 after about one hour:

1k1r1bnr/ppq2pp1/2n1p3/4P2p/Q1N3b1/p1B2N2/3PBPPP/R4RK1 w - -

Engine: Ancalagon 1.3 WS180 Build 144 (Athlon 2009 MHz, 256 MB)
by Romstad, Costalba, Kiiski, de Groot

2.00 0:00 -1.39 1.Nd6 Bxf3 2.gxf3 Bxd6 3.exd6 (9.690) 38

2.00 0:00 -0.54 1.Nxa3 Bxf3 2.Bxf3 Nxe5 (10.593) 42

2.00 0:00 -0.31 1.Rfb1 Bf5 2.Rb5 f6 3.Nxa3 (60.316) 160

3.00 0:00 -0.31 1.Rfb1 Bf5 2.Rb5 f6 3.Nxa3 (142.201) 246

3.00 0:00 -0.30 1.Nxa3 (145.445) 251

4.01 0:01 +0.88 1.Nxa3 Bxf3 2.gxf3 Kc8 3.Rfb1 (478.463) 340

5.01 0:04 +1.96 1.Nxa3 Bxa3 2.Rxa3 Nh6 3.Rc1 Bxf3
4.Bxf3 (1.811.028) 408

6.01 0:05 +1.82 1.Nxa3 Kc8 2.Nb5 Qb8 3.Nxa7+ Nxa7
4.Qxa7 Bf5 (2.237.548) 428

7.01 0:06 +2.05 1.Nxa3 Bxf3 2.Bxf3 Bxa3 3.Rxa3 Nge7
4.Rb1 Nd5 (2.946.292) 446

8.01 0:10 +1.45 1.Nxa3 Bxa3 (4.818.848) 467

9.01 0:16 +0.49 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb1 Nd5
4.Rab3 b6 5.d4 Nxe5 6.Nxe5 Bxe2
7.Nc6+ Ka8 8.Nxd8 Rxd8 (7.807.982) 474

10.01 0:38 +0.49 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb1 Nd5
4.Rab3 b6 5.d4 Nxe5 6.Nxe5 Bxe2
7.Nc6+ Ka8 8.Nxd8 Rxd8 (17.835.670) 464

10.06 4:42 +1.25 1.Rfb1 Bf5 2.Ba5 Nxa5 3.Nxa5 Bxb1
4.Rxb1 Ka8 5.Rxb7 Qc1+ 6.Bf1 Qc8
7.Qe4 Rd5 8.Rxf7 (133.892.348) 474

11.01 5:35 +1.25 1.Rfb1 Bf5 2.Ba5 Nxa5 3.Nxa5 Bxb1
4.Rxb1 Ka8 5.Rxb7 Qc1+ 6.Bf1 Qc8
7.Qe4 Rd5 8.Rxf7 (160.781.742) 479

12.01 6:59 +0.70 1.Rfb1 Bf5 2.Rb5 h4 3.h3 b6 4.Nxa3 Bxa3
5.Rxa3 Nge7 6.Bb4 Nxb4 7.Rxb4 Ka8
8.Rc3 (203.614.666) 485

12.06 13:53 +0.72 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Rd7
4.Bb4 Bxf3 5.Bxf3 Rd4 6.Bd6 Rxa4
7.Rxa4 a6 8.Rf4 f5 9.Bxc7+ Kxc7 (401.680.507) 481

13.01 15:41 +1.01 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Rd5
4.Rb3 Na5 5.Rbb1 Bxf3 6.Bxf3 Rc5
7.Qa3 Rc8 8.Bxh5 (452.398.395) 480

14.01 28:05 +1.01 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Rb3 Nb6 5.Qa1 Qd7 6.d4 Kc8 7.Qa3 Bxf3
8.Bxf3 (812.776.681) 482

15.01 58:53 +0.90 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 g6
4.d4 Nf5 5.Rd1 Nh4 6.Rb3 Bxf3 7.gxf3 Nf5
8.Ba6 b6 9.Rbb1 (1.688.142.200) 477

15.02 65:15 +1.31 1.Ba5 (1.865.771.000) 476

16.01 74:10 +1.15 1.Ba5 Nxa5 2.Nxa5 Rd5 3.Nxb7 Qd7
4.Qa6 Qxb7 5.Rfb1 Bb4 6.Qxb7+ Kxb7
7.Rxb4+ Ka8 8.Rxa3 Ne7 9.Ba6 Rd7
10.Bb5 Rb8 (2.131.828.304) 478

17.01 167:58 +1.19 1.Ba5 Nxa5 2.Nxa5 Rd5 3.Nxb7 Qd7
4.Qa6 Qxb7 5.Rfb1 Bb4 6.Qxb7+ Kxb7
7.Rxb4+ Ka8 8.h3 Bf5 9.Nd4 Ne7
10.Bf3 Rhd8 11.Nxf5 Nxf5 12.Bxd5+ Rxd5
13.Rxa3 Rxd2 (4.820.441.387) 478


Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
chessfurby
Posts: 49
Joined: Thu Apr 26, 2007 1:41 pm
Location: Germany, Bavaria

Re: Hiarcs-Ktulu, Leiden 2009

Post by chessfurby »

Not impressed at all. Ktulu runs on SINGLE core whilst Hiarcs had an octa machine. So no reason to be excited with that big a difference...
Dann Corbit
Posts: 12542
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: Hiarcs-Ktulu, Leiden 2009

Post by Dann Corbit »

chessfurby wrote:Not impressed at all. Ktulu runs on SINGLE core whilst Hiarcs had an octa machine. So no reason to be excited with that big a difference...
Not Hiarcs fault. I don't feel sorry for single threaded engines that get blasted. There is excellent public chess code that demonstrates how to thread. Viper, in particular, was written for just this purpose.

And it does not detract from the beauty of the game.
jdart
Posts: 4367
Joined: Fri Mar 10, 2006 5:23 am
Location: http://www.arasanchess.org

Re: Hiarcs-Ktulu, Leiden 2009

Post by jdart »

I've seen lots of cases where better hardware got defeated by better search or eval.

Also, this is a pretty difficult move to find for many engines, even on an 8-core machine.

--Jon
User avatar
Harvey Williamson
Posts: 2011
Joined: Sun May 25, 2008 11:12 pm
Location: Whitchurch. Shropshire, UK.
Full name: Harvey Williamson

Re: Hiarcs-Ktulu, Leiden 2009

Post by Harvey Williamson »

Here is the full game:


[Event "Blitz:80'"]
[Site "?"]
[Date "2009.06.06"]
[Round "?"]
[White "HIARCS 12.280 MP"]
[Black "Ktulu"]
[Result "1-0"]
[PlyCount "49"]
[TimeControl "4800"]

{2048MB, Modified-Corrgames.ctg} 1. e4 {B/0 0} c6 {8} 2. Nf3 {B/0 0} d5 {23} 3.
e5 {B/0 0} Bg4 {9} 4. Be2 {B/0 0} c5 {7} 5. O-O {B/0 0} Nc6 {10} 6. c4 {B/0 0}
dxc4 {13} 7. Na3 {B/0 0} Qc7 {79} 8. Nxc4 {0.17/17 212} O-O-O {319} 9. a3 {
0.57/17 0} Kb8 {(h5) 300} 10. b4 {0.61/18 160} e6 {126} 11. Bb2 {0.65/18 0}
cxb4 {(Nh6) 83} 12. Qa4 {0.86/17 171} bxa3 {108} 13. Bc3 {0.78/17 0} h5 {99}
14. Ba5 {2.03/17 144} Nxa5 {132} 15. Nxa5 {2.02/18 0} Bf5 {(Rd5) 38} 16. Rfb1 {
2.84/17 142} Bxb1 {72} 17. Rxb1 {3.63/18 23} Rc8 {0} 18. Rxb7+ {4.35/18 270}
Qxb7 {0} 19. Nxb7 {4.36/19 71} Rc1+ {172} 20. Bf1 {4.56/20 0} Kxb7 {88} 21. Nd4
{4.58/18 0} Ne7 {(Nh6) 136} 22. Qxa3 {4.88/18 95} Rc7 {55} 23. Qa6+ {4.96/18 0}
Ka8 {107} 24. Nb5 {6.32/20 0} Rb7 {0} 25. g3 {6.58/20 101} 1-0

It was an interesting game 0-0-0?! was probably asking for trouble a3 Bc3 and of course Ba5 were all good moves IMHO.
User avatar
Eelco de Groot
Posts: 4567
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: Hiarcs-Ktulu, Leiden 2009

Post by Eelco de Groot »

jdart wrote:I've seen lots of cases where better hardware got defeated by better search or eval.

Also, this is a pretty difficult move to find for many engines, even on an 8-core machine.

--Jon
I let the analysis with build 144 continue but it seemed as if the engine got into some extension explosion problems, it took ages for the fifth move Rfc1 to complete at iteration 17, so eventually I stopped.

17.01 167:58 +1.19 1.Ba5 Nxa5 2.Nxa5 Rd5 3.Nxb7 Qd7
4.Qa6 Qxb7 5.Rfb1 Bb4 6.Qxb7+ Kxb7
7.Rxb4+ Ka8 8.h3 Bf5 9.Nd4 Ne7
10.Bf3 Rhd8 11.Nxf5 Nxf5 12.Bxd5+ Rxd5
13.Rxa3 Rxd2 (4.820.441.387) 478


best move: Bc3-a5 time: 929:14.750 min n/s: 457.323 nodes: 25.497.930.577

Maybe I should have let it continue to make sure no infinite loop bug is involved because the next tries also slowed down a lot resolving 17+ plies but eventually did produce output. I hope it is not a bug of this kind because it would seem extremely diffficult to find it by looking at any output I can make, it is probably better to take a close look at search directly. But first I simply tried limiting extensions, extension() can now, to obfuscate the Ancalagon code a little, also make negative extensions :P My apologies for this, but I did not find any equivalent part of the code that handles reductions only in case of an extension at the same point so I put it here in the extension() function

Code: Select all

	if (   pvNode
        && ply >= Iteration + 5)
    {
        result -= OnePly/2;
        *dangerous = true;
    }

    return Min(Max(result, Depth(0)), OnePly);
  } // End of extension() 
Note the -= for a negative extension.
Extension() in Ancalagon already knows locally what height we are, how far along a line the new search will start, in Glaurung this is "ply", in Fruit it is "height" so I could use that again for my negative extension code :)

I tried the new build but I'm not so sure this was an improvement, build 145 does not find Ba5 anymore it seems but on the other hand Rfb1 also gets a good score even better than what Ba5 got (with build 144). The last iteration was a bit lower though so it is not sure that Rfb1 is winning or as good as Ba5.

The CPU for the last part of the analysis only at 50% but to compensate a record 2124 minutes long, no Ba5 however...

1k1r1bnr/ppq2pp1/2n1p3/4P2p/Q1N3b1/p1B2N2/3PBPPP/R4RK1 w - -

Engine: Ancalagon 1.3 WS180 Build 145 (Athlon 2009 MHz 256 MB)
by Romstad, Costalba, Kiiski, de Groot

2.00 0:00 -1.39 1.Nd6 Bxf3 2.gxf3 Bxd6 3.exd6 (9.690) 11

2.00 0:00 -0.54 1.Nxa3 Bxf3 2.Bxf3 Nxe5 (10.593) 12

2.00 0:01 -0.31 1.Rfb1 Bf5 2.Rb5 f6 3.Nxa3 (60.316) 59

3.01 0:01 -0.31 1.Rfb1 Bf5 2.Rb5 f6 3.Nxa3 (142.201) 116

3.02 0:01 -0.30 1.Nxa3 (145.445) 117

4.01 0:02 +0.88 1.Nxa3 Bxf3 2.gxf3 Kc8 3.Rfb1 (478.463) 230

5.01 0:05 +1.31 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb3 Bxf3
4.Bxf3 (1.850.754) 352

6.01 0:07 +1.31 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb3 Bxf3
4.Bxf3 (3.025.652) 384

7.01 0:08 +1.74 1.Nxa3 (3.385.222) 394

8.01 0:10 +1.31 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb1 Nd5
4.d4 Bf5 5.Rb2 a5 (4.485.243) 419

9.01 0:12 +1.13 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rb1 Bf5
4.Rb2 b6 5.Ng5 a5 6.Nxf7 (5.497.808) 434

10.01 0:38 +0.92 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Bb4 Bxf3 5.Bxf3 Nb6 6.Qc2 a6
7.Bxc6 Qxc6 8.Qxc6 bxc6 9.Rxc6 (17.531.761) 461

11.01 1:10 +1.03 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Bb4 Bxf3 5.Bxf3 Nb6 6.Qb3 Qxe5
7.Bxc6 bxc6 8.Rxc6 (33.387.313) 472

12.01 5:34 +0.82 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Rb3 Bxf3 5.Bxf3 Nb6 6.Qa1 Nd5 7.d4 a5
8.Bd2 (156.974.244) 469

13.01 8:00 +0.90 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Rb3 Nb6 5.Qa1 Rd7 6.Bd4 Rxd4
7.Nxd4 Bxe2 8.Nxe2 Qxe5 (229.409.749) 477

14.01 20:56 +0.80 1.Nxa3 Bxa3 2.Rxa3 Nge7 3.Rc1 Nc8
4.Bb4 Rd5 5.Rb3 Ka8 6.Qa3 a5 7.Bf8 Bxf3
8.Bxf3 Rxd2 9.Bxg7 (588.144.171) 468

14.07 42:33 +1.27 1.Rfb1 (1.177.265.289) 461

15.01 60:10 +1.33 1.Rfb1 Bf5 2.Ba5 Qc8 3.Bxd8 Bxb1
4.Rxb1 Nxd8 5.Nxa3 Ne7 6.Nc4 Qc6
7.Qa5 Qc7 8.Qb5 Qc6 9.Qb2 Nf5 (1.671.652.065) 463

16.01 118:59 +1.39 1.Rfb1 Bf5 2.Ba5 Qc8 3.Bxd8 Bxb1
4.Rxb1 Nxd8 5.Nxa3 Ne7 6.Nb5 Nec6
7.Rc1 a6 8.Nbd4 Ka8 9.Nxc6 Nxc6
10.Nd4 Be7 11.Nxc6 bxc6 12.Bxa6 (3.346.261.794) 468

17.01 231:29 +1.82 1.Rfb1 (6.450.599.413) 464

18.01 402:15 +1.90 1.Rfb1 Bf5 2.Ba5 Qc8 3.Bxd8 Bxb1
4.Rxb1 Nxd8 5.Nd4 Bc5 6.Nxa3 Qc7
7.Nb3 Bb6 8.d4 Qc6 9.Qb4 Nh6 10.Rc1 Qd7
11.Nb5 (11.172.680.720) 462

19.01 1537:30+1.68 1.Rfb1 Bf5 2.Ba5 Qc8 3.Bxd8 Bxb1
4.Rxb1 Nxd8 5.Nd4 Bc5 6.Nxa3 Qc7
7.Nb3 Bb6 8.d4 Qc6 9.Qb4 Qc8 10.Qf8 Nc6
11.Qxf7 Nge7 12.Qxg7 Bxd4 13.Nxd4 Nxd4
14.Qxe7 (38.212.490.708) 414

best move: Rf1-b1 time: 2124:55.515 min n/s: 362.260 nodes: 46.186.590.350

I also tried the position with Stockfish, Stockfish 1.3.1 did think about Ba5 at some point but also could not find it, at 50% CPU in the background, only 64 Mb, the output shows of course incredible reached plydepths compared with Anacalagon, still for once it does not find the solution sooner :P Maybe with 256 Mb and full CPU power Stockfish would have reached 23 plies in time and found Ba5.

1k1r1bnr/ppq2pp1/2n1p3/4P2p/Q1N3b1/p1B2N2/3PBPPP/R4RK1 w - -

Engine: Stockfish 1.3.1 JA (64 MB)
by Tord Romstad, Marco Costalba

2.00 0:00 -0.96 14.Nxa3 Bxf3 15.Bxf3 Nxe5 (268)

3.00 0:00 -0.96 14.Nxa3 Bxf3 15.Bxf3 Nxe5 (1.343)

4.00 0:00 -0.96 14.Nxa3 Bxf3 15.Bxf3 Nxe5 (2.548)

4.00 0:00 -0.88 14.Rfe1 Bxf3 15.Bxf3 Nd4 (4.372) 273

5.00 0:00 -1.01 14.Rfe1 Bxf3 15.Bxf3 Nd4 16.Be4 (6.732) 420

5.00 0:00 -0.21 14.Nxa3 Bxf3 15.gxf3 Nxe5 16.Nb5 (8.089) 505

6.00 0:00 -0.19 14.Nxa3 Bxf3 15.gxf3 a6 16.f4 Bxa3
17.Qxa3 (14.105) 455

7.00 0:00 +0.37 14.Nxa3 Bxf3 15.Bxf3 Nxe5 16.Bxe5 Qxe5
17.Nb5 Bc5 (33.499) 267

8.00 0:00 +0.80 14.Nxa3 Bxf3 15.Bxf3 Bxa3 16.Rxa3 Nge7
17.Rb1 Nd5 18.Bd4 Nxd4 19.Qxa7+ Kc8
20.Qxd4 (76.138) 286

9.00 0:00 +0.25 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rb3 Bxf3
17.Bxf3 Nd5 18.Rfb1 b6 (156.205) 270

10.01 0:01 +0.37 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rb3 b6
17.d4 Nd5 18.Rc1 Bxf3 19.Bxf3 (359.256) 255

11.01 0:02 +0.27 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rc1 Bxf3
17.Bxf3 a5 18.Rb1 Nd5 19.Bxa5 Nxa5
20.Qxa5 Qxa5 21.Rxa5 (646.185) 255

12.01 0:04 +0.25 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rc1 Nd5
17.Bb2 Bxf3 18.Bxf3 Ka8 19.Bd4 a5
20.Rb3 (1.194.352) 259

13.01 0:11 +0.19 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rc1 Nd5
17.Bb2 a5 18.d4 Nb6 19.Qc2 a4 20.Bb5 Bxf3
21.Rxf3 (2.938.933) 258

14.01 0:34 +0.01 14.Nxa3 Bxa3 15.Rxa3 Nge7 16.Rc1 Nd5
17.Bb2 Bxf3 18.Rxf3 Qd7 19.Qa3 Qe7
20.Qb3 Qb4 21.Qxb4 Ndxb4 22.Rxf7 Rxd2 (8.997.322) 258

14.05 1:00 +0.39 14.Rfb1 (15.611.870) 256

15.01 1:23 +0.27 14.Rfb1 Bf5 15.Rb5 h4 16.Nxa3 h3
17.Nc4 Kc8 18.gxh3 Bd3 19.Bxd3 Rxd3
20.Ng5 Rh5 21.f4 Nd4 (21.284.143) 255

16.01 4:29 +0.49 14.Rfb1 Bf5 15.Rb5 h4 16.Nxa3 h3
17.Nc4 Kc8 18.g3 Nh6 19.d4 Be7
20.Ne3 Be4 21.Rb3 Nf5 (68.210.330) 252

17.01 7:50 +0.50 14.Rfb1 Bf5 15.Rb5 h4 16.Nxa3 h3
17.Nc4 Kc8 18.g3 Nh6 19.d4 Be7
20.Ne3 Be4 21.Rc1 Kb8 22.Ra1 (119.618.505) 254

18.01 22:10 +0.76 14.Rfb1 (341.084.735) 256

19.01 36:30 +0.68 14.Rfb1 Bf5 15.Ba5 Qd7 16.Bxd8 Bxb1
17.Rxb1 a2 18.Qxa2 Nxd8 19.Na5 Bc5
20.d4 Bb6 21.Nc4 Bxd4 22.Nxd4 Qxd4
23.Rd1 Qh4 24.Nd6 Nc6 25.Rb1 (561.957.157) 256

20.01 104:54 +0.68 14.Rfb1 Bf5 15.Ba5 Qc8 16.Bxd8 Bxb1
17.Rxb1 Nxd8 18.Nxa3 Ne7 19.Nb5 Nec6
20.Rc1 a5 21.Qf4 Qd7 22.d4 Ka8
23.Nd2 Bb4 24.Nc4 Kb8 (1.636.398.080) 259

21.01 687:54 +0.90 14.Rfb1 Bf5 15.Rb5 Rd5 16.Rxd5 exd5
17.Nd6 Bg4 18.Rxa3 Bxf3 19.Bxf3 Bxd6
20.exd6 Qxd6 21.Bxg7 Rh7 22.Bb2 Nge7
23.Rb3 f6 24.Qa6 b6 25.Be2 Nf5 (10.815.095.930) 262

22.01 1057:28+0.88 14.Rfb1 Bf5 15.Rb5 Rd5 16.Rxd5 exd5
17.Nd6 Bg4 18.Rxa3 Bxf3 19.Bxf3 Bxd6
20.exd6 Qxd6 21.Bxg7 Rh7 22.Bb2 Nge7
23.Re3 f6 24.Ba3 Qc7 25.Bc5 b6
26.Rb3 (18.764.001.170) 295

best move: Rf1-b1 time: 1531:03.922 min n/s: 365.890 nodes: 33.612.060.350

Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan