Author: Robert Hyatt
Date: 08:59:10 06/05/00
Go up one level in this thread
On June 05, 2000 at 09:18:29, Steffen Jakob wrote:
>Hi Bob!
>
>On June 05, 2000 at 09:09:51, Robert Hyatt wrote:
>
>>On June 05, 2000 at 08:22:44, Steffen Jakob wrote:
>>
>>>Hi!
>>>
>>>This is a position from an interesting standard game MissSilicon - Hossa, played
>>>today at ICC:
>>>
>>>[D]5k2/7K/6P1/1p3p2/1P5P/1Pb5/8/8 w
>>
>>
>>
>>I think there are times where you have to depend on your search. Normally
>>this is won by black, because black has a bishop to stop white's pawns. I
>>suspect that if you try to write special-purpose code to catch this, it will
>>end up being wrong more than it is right. This is a precise tempo-counting
>>issue that just barely lets the 'loser' win.
>>
>>I'd likely just take the loss and run. It takes Crafty 9 plies (0 seconds
>>of course) to see that the bishop is not winning. I don't see an obvious
>>evaluation trick to make this show up faster...
>
>The problem here is not only speed but mainly depth! You are right that it might
>be difficult to catch this faster by eval than by evaluation. But what if this
>position appears deep in the search and you have to trade some pieces to reach
>this position (so the actual board position might be complex)? Then you simply
>dont search deep enough to see that white is winning. The board position might
>be complex enought so that you stop after lets say 7 plies of the line above and
>evaluate that as good for black. If you catch it by evaluation you wont make the
>bad trades.
>
>Best wishes,
>Steffen.
>
True. But if you slow it down too much with special-case code, you won't get
deep enough to see that you can reach this position (as white) so you still
don't win.
This one looks like nothing but special-case... black bishop defends queening
square, white h-pawn can advance to make g7 passable for white's g-pawn. (ie
you evaluate that after h5 Bg7 h6 Bxh6 Kxh6 Kg8 that you are winning. This is
not too hard. But can the h-pawn get there in time to make this work? Does
the other plan fail because g7 is a check? This seems hard to determine in a
static manner...
I use a few eval terms that work in a prove/disprove way: IE the trapped
bishop at a2 code says if the bishop gets to a2, gets trapped by a pawn at b3,
and it can't escape by search, then it is bad. In this case, I have an eval
term that leans on the search heavily to help it out. "I am going to count
this as bad for the bishop if you can't find a way to extricate the bishop
within your search horizon." That is not very time-consuming overall. In
other cases, I don't eval something period, I rely on the search to see the
outcome. And in some cases, I end up doing both, such as in passed pawn races
where the eval knows the pawn can't be stopped, and then the search proves that
it can't be stopped.
So yes, I might fall for this deep in the tree. But I am afraid that if you try
to special-case too many things, then you really get too slow to accomplish
much, if you aren't very careful. Many of my scoring terms are working against
recognizing this position. Black is a piece up. A bishop in fact, with pawns
on both sides of the board. White isn't going to win very many such positions.
>
>>>White is obviously winning. The static evaluation of this position of my program
>>>is totally wrong because Hossa thinks that the pawn f5 is running. Even after
>>>some improvements Hossa needs 8 plies to see a positive score!
>>>
>>> depth value time nodes pv
>>> 1 -6.07 0.00 3 1.g7 c3xg7
>>> 2/1 -3.62 0.00 6 1.h5 c3xb4
>>> <1> -3.62 0.00 7 1.h5 c3xb4
>>> 2 -3.62 0.00 24 1.h5 c3xb4
>>> <2> -3.62 0.00 40 1.h5 c3xb4
>>>! 3 -1.77 0.01 544 1.h5 f4 2.h6 c3xb4
>>>! <3> -1.77 0.01 551 1.h5 f4 2.h6 c3xb4
>>> 4 -1.87 0.03 1214 1.h5 f4 2.h6 f8e8 3.h7g8 c3xb4
>>> <4> -1.87 0.03 1245 1.h5 f4 2.h6 f8e8 3.h7g8 c3xb4
>>> 5 -1.67 0.05 2303 1.h5 c3g7 2.h6 g7xh6 3.h7xh6
>>> <5> -1.67 0.05 2375 1.h5 c3g7 2.h6 g7xh6 3.h7xh6
>>> 6 -1.81 0.09 4316 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f4
>>> <6> -1.81 0.09 4691 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f4
>>> 7 -1.81 0.20 9875 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f4
>>> <7> -1.81 0.21 10423 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f4
>>>! 8 0.76 0.61 31734 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f8g8
>>> 4.h6g5
>>>! <8> 0.76 0.61 31775 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f8g8
>>> 4.h6g5
>>>! 9 2.19 0.85 47414 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f8g8
>>> 4.h6g5 g8f8 5.g5xf5
>>>! <9> 2.19 0.85 47456 1.h5 c3g7 2.h6 g7xh6 3.h7xh6 f8g8
>>> 4.h6g5 g8f8 5.g5xf5
>>>
>>>
>>>Does your engine perform better here? Any ideas how to handle such positions?
>>>
>>>Best wishes,
>>>Steffen.
>>>
>>>P.S.: Here is the complete game score:
>>>
>>>[Event "ICC 30 20"]
>>>[Site "Internet Chess Club"]
>>>[Date "2000.06.05"]
>>>[Round "-"]
>>>[White "MissSilicon"]
>>>[Black "Hossa"]
>>>[Result "1-0"]
>>>[ICCResult "Black checkmated"]
>>>[WhiteElo "2437"]
>>>[BlackElo "2358"]
>>>[Opening "Bird's opening"]
>>>[ECO "A03"]
>>>[NIC "VO.07"]
>>>[Time "01:51:53"]
>>>[TimeControl "1800+20"]
>>>
>>>1. f4 d5 2. Nf3 Nf6 3. b3 d4 4. c3 c5 5. Qc2 Nc6 6. e3 Bd7 7. cxd4 cxd4 8.
>>>Nxd4 Nxd4 9. exd4 Bc6 10. Bb2 Rc8 11. Nc3 Qxd4 12. Nb5 Qb6 13. Bd4 Qd8 14.
>>>Qb2 Be4 15. Nxa7 Rc2 16. Bb5+ Nd7 17. Qb1 e5 18. O-O exd4 19. Re1 Qe7 20.
>>>Nc8 Qc5 21. Rxe4+ Kd8 22. b4 Qxc8 23. Rxd4 Rc7 24. Qb3 Be7 25. Re1 Bf6 26.
>>>Rde4 Rc1 27. Qxf7 Rxe1+ 28. Rxe1 Qc7 29. Kh1 Kc8 30. Bxd7+ Qxd7 31. Rc1+ Kd8
>>>32. Qh5 b6 33. d3 Re8 34. h3 Bb2 35. Rc4 Qxd3 36. Qb5 Qd6 37. Qf5 Qd7 38.
>>>Qxh7 Re1+ 39. Kh2 Bf6 40. Qc2 Bd4 41. Kg3 b5 42. Rc6 Re6 43. Rxe6 Qxe6 44.
>>>Kf3 Qe3+ 45. Kg4 Qc3 46. Qb1 Qd2 47. g3 Qe2+ 48. Kf5 Qf3 49. Qb3 Qxb3 50.
>>>axb3 Ke7 51. Kg6 Kf8 52. g4 Bf2 53. f5 Bh4 54. g5 Ke7 55. Kh5 Bg3 56. Kg6
>>>Be5 57. h4 Bc3 58. Kh7 Kf8 59. f6 gxf6 60. g6 f5 61. h5 Bg7 62. h6 Bc3 63.
>>>g7+ Kf7 64. g8=Q+ Ke7 65. Kg6 Bxb4 66. Qg7+ Ke6 67. h7 Be7 68. h8=Q Kd7 69.
>>>Qd4+ Kc7 70. Qc3+ Kb6 71. Qb8+ Ka6 72. Qa1+ Ba3 73. Qxa3# {Black checkmated}
>>>1-0
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.