Author: Uri Blass
Date: 06:47:55 11/03/03
Go up one level in this thread
On November 03, 2003 at 08:55:56, José Carlos wrote: >On November 02, 2003 at 15:26:06, Christophe Theron wrote: > >>On November 02, 2003 at 05:38:58, Kurt Utzinger wrote: >> >>>On November 02, 2003 at 04:54:06, Gian-Carlo Pascutto wrote: >>> >>>>On November 02, 2003 at 03:44:09, Ricardo Gibert wrote: >>>> >>>>>On November 02, 2003 at 03:20:26, Kurt Utzinger wrote: >>>>> >>>>>>A good example where Chess Tiger 15 needs much more time than >>>>>>most other engines to evaluate the position as a draw: >>>>>> >>>>>>[D]8/8/r7/3K4/3Q4/5p2/5p2/6k1 b - - 0 1 >>>>>> >>>>> >>>>>This is also a good example of a type of position of negligible practical >value. >>>>>I don't think CT15's programmer needs to worry about it at all. >>>> >>>>*cough* *cough* *cough* >>>> >>>>IsiChess - ChessTiger, Dutch Open 2003 >>>> >>>>-- >>>>GCP >>> >>>IsiChess MMX - Chess Tiger >>>[D]8/1k6/p5q1/4P3/1P3P2/7Q/3K3p/8 b - - 0 1 >>> >>>Analysis by Chess Tiger 15.0: (P4 1.8/24 MB hash) >>> >>>64...Qg1 65.e6 Qd4+ 66.Kc1 Qa1+ 67.Kd2 >>> µ (-0.88) Depth: 1 00:00:00 >>> -+ (-7.51) Depth: 4 00:00:00 2kN >>>64...Qb1 65.Qd7+ Kb6 66.Qd6+ Kb5 67.Qc5+ Ka4 68.e6 Qf1 >>> -+ (-7.80) Depth: 4 00:00:00 5kN >>> -+ (-7.41) Depth: 6 00:00:00 15kN >>>64...Qg1 65.Qd7+ Kb6 66.Qd8+ Kb5 67.Qa5+ Kc4 68.Qxa6+ Kxb4 69.Qb7+ Kc5 70.Qa7+ >>>Kc4 71.Qa4+ Kd5 72.Qa8+ Ke6 >>> -+ (-8.02) Depth: 6 00:00:00 47kN >>> -+ (-7.80) Depth: 15 00:02:16 55491kN, tb=187 >>> >>>(Utzinger, MyTown 02.11.2003) >>> >>> >>>IsiChess MMX - Chess Tiger >>>8/1k6/p5q1/4P3/1P3P2/7Q/3K3p/8 b - - 0 1 >>> >>>Analysis by Deep Sjeng 1.5: >>>*************************** >>> >>>64...Qg1 65.Qd7+ Kb6 66.Qd8+ Kc6 67.Qd6+ Kb5 68.Qb8+ Kc6 >>> ² (0.40) Depth: 3/12 00:00:00 >>> = (0.21) Depth: 5/18 00:00:00 >>>64...Qf7 65.Kc3 Qxf4 66.Qd7+ Kb8 67.Qd8+ Ka7 68.Qd7+ Ka8 69.Qc6+ Kb8 70.Qe8+ Ka7 >>>71.Qd7+ >>> = (0.06) Depth: 5/19 00:00:00 >>> = (0.00) Depth: 9/29 00:00:05 1986kN, tb=162 >>>64...Qg1 65.Qd7+ Kb6 66.Qd8+ Kb5 67.Qa5+ Kc6 68.Qxa6+ Kd5 69.Qb7+ Ke6 70.Qc8+ >>>Kd5 71.Qb7+ Ke6 72.Qc8+ Kd5 73.Qb7+ >>> ³ (-0.48) Depth: 9/29 00:00:07 2593kN, tb=163 >>> = (0.00) Depth: 13/38 00:00:49 17560kN, tb=1597 >>> >>>(Utzinger, MyTown 02.11.2003) >> >> >> >>It's the problem when you allow a huge speculative evaluation of passed pawns. >>You have to add an almost infinite number of exceptions if you want to handle >>this perfectly. >> >>And I don't think it is possible to program even this exception. I'm pretty sure >>you could, by moving just one pawn, turn this position from a draw to a win. >> >>On the other hand, when I tried to add a speculative evaluation of perpetuals I >>got worse results. Yes it would look smarter in positions like this one, but the >>winning rate dropped. >> >>Which probably only means that I did not do it right. >> >>In the same vein, the following position has always been a nightmare for Tiger: >> >>[D]8/1KP5/3q2k1/8/6p1/8/8/8 b - - >> >>This position comes from a real game between the Modular Game System Sargon 2.5 >>and Mike III, played in September 1980 during the Personal Computer World Fair. >>Mike III continued the game with a long series of checks leading to a draw. >> >>Chess Tiger is not smarter than Mike III here. It is something that I had fixed >>in the 16 bits version, to the expense of some added complexity in the passed >>pawns evaluation code. I have not transfered this code to the 32 bits version >>because it was not general enough (add another black pawn and the code did not >>work). >> >>I am interested in results of other (amateur and commercial) programs. >> >> >> >> Christophe > > Anubis 0.00.0030 > PIII - 933 > 30Mb hash > >4 9.99 0.13 2458 d6b4 b7c8 b4f8 c8d7 f8g7 d7d8 g7h8 d8e7 >5 9.99 0.18 5877 d6b4 b7c8 b4f8 c8d7 f8g7 d7d8 g7h8 d8e7 > h8f6 e7d7 >5 10.98 0.24 20232 d6c7 b7a8 c7d8 a8b7 g4g3 b7a7 g3g2 >6 104.28 0.28 22418 d6c7 b7c7 g4g3 c7b8 g3g2 b8a8 g2g1Q >7 106.20 0.42 68874 d6c7 b7a6 g4g3 a6b5 g3g2 b5a4 c7c4 a4a3 > c4b3 a3b3 g2g1Q > > The trick is very easy in this case: I have a special function to evaluate >KQK. The first line is: > > SINT32 s32Eval = pPos->s32EvalMaterial * 10; > > After that, I add / substract bonus for the normal things we evaluate there >(king proximity to the edge, etc...) > I hope this helps Tiger somehow... ;) > > José C. I also have similiar trick but I do not have the same good trick for KP vs K when the pawn is unstoppable. I also think that it may be better to add a constant and not to multiply. Today I also multiply but I will probably change it and it may be better to add 50 pawns for positions of KQ vs K or KR vs K or KP vs K when the pawn is unstoppable or KX vs K when X include more than a queen or more than a rook. I can imagine cases when stalemate is a problem [D]1k6/n7/KPP5/PP6/8/8/1P6/Q7 w - - 0 1 bxa7+ is leading to a draw and it is a mistake that programs can do at small depths but I guess that in practical cases they will not be a problem. If you care about that problem you can add stalemate danger recognizer before giving the bonus and if the program detect no possible moves for the lonely king it can avoid giving the 50 pawns bonus. 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.