Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Questions for Mr. Hyatt about Deep Blue

Author: Uri Blass

Date: 08:26:51 02/19/02

Go up one level in this thread


On February 19, 2002 at 10:56:49, Robert Hyatt wrote:

>On February 19, 2002 at 01:30:42, Uri Blass wrote:
>
>>On February 18, 2002 at 23:02:49, Robert Hyatt wrote:
>>
>>>On February 18, 2002 at 15:33:14, Uri Blass wrote:
>>>
>>>>On February 18, 2002 at 14:24:18, Robert Hyatt wrote:
>>>>
>>>>>On February 18, 2002 at 12:47:19, Uri Blass wrote:
>>>>>
>>>>>>On February 18, 2002 at 08:57:47, David Dory wrote:
>>>>>>
>>>>>>>On February 18, 2002 at 06:35:53, Uri Blass wrote:
>>>>>>>>
>>>>>>>>I do not think that all of the programmers of today are stupid.
>>>>>>>>I guess that they found better ideas.
>>>>>>>>
>>>>>>>>Uri
>>>>>>>>
>>>>>>>
>>>>>>>Better ideas? That's a relative thing, and we have no way to really compare
>>>>>>>their ideas (on DB's hardware and software), with ideas used in Rebel, Fritz,
>>>>>>>CM, ChessTiger, etc., on a PC, except in a very artificial and abstract way.
>>>>>>>
>>>>>>>I believe in each case, the programmers found ideas that were APPROPRIATE for
>>>>>>>their system. After all, the GREAT idea's of today, would have been disastrous
>>>>>>>to implement on a Fidelity Chess Challenger running with a Zilog Z80 CPU at a
>>>>>>>BLINDING 4Mhz.
>>>>>>>
>>>>>>>The reasons DB would still be kicking ass today, were it still around and being
>>>>>>>updated, are:
>>>>>>>
>>>>>>>  1) Hsu and his team had a history of creating a fantastic chess computer, DT.
>>>>>>>     For all intents and purposes, they really had a doctorate in chess computer
>>>>>>>     science!
>>>>>>>
>>>>>>>  2) They used the considerable resources IBM gave them, not just for software
>>>>>>>     improvements, but to build a bunch of custom high speed micro-chips and
>>>>>>>     integrate them into the fastest chess computer of all time. (so far :-))
>>>>>>>
>>>>>>>  3) After a long time working out the bugs, they brought in GM Joel Benjamin
>>>>>>>     to fine tune the openings, etc.
>>>>>>>
>>>>>>>How many other developer's do this, to this extent, Uri?
>>>>>>>
>>>>>>>It isn't just that Hsu & team were brilliant, or had a TON of resources, or had
>>>>>>>such sensational experience building a custom chess computer. It was all these
>>>>>>>things together, and I believe the whole was equal to more than the sum of the
>>>>>>>parts, which were considerable, in this case.
>>>>>>>
>>>>>>>If you had several million to invest in a new fantastic chess playing computer,
>>>>>>>wouldn't you do what the DB team did?
>>>>>>>
>>>>>>>Dave
>>>>>>
>>>>>>No
>>>>>>
>>>>>>I believe in pruning rules and I would use the money to find better pruning
>>>>>>rules.
>>>>>>
>>>>>>
>>>>>>
>>>>>>Uri
>>>>>
>>>>>
>>>>>Pruning rules introduce error.  As you go deeper, those errors are
>>>>>summed.  The DB guys instead chose to design hardware to let them go
>>>>>deeper with _zero_ error in the software search, and some unknown level
>>>>>of error in the hardware search due to whatever kind of pruning they chose
>>>>>to implement there...
>>>>
>>>>I believe that the right pruning rules practically almost do not introduce
>>>>errors and searching not deep enough produce more errors.
>>>>
>>>>See the mistake of deeper blue in game 2 when it could not see the draw.
>>>>
>>>>Uri
>>>
>>>
>>>No program will see that draw during the next 10 years.  We don't have
>>>_any_ program that can search to 60+ plies down every critical path.
>>
>>
>>We do not need to search 60 plies in every path but only in the important lines
>>and it is doable.
>>
>>I believe that if you give the top programs of today 24 hours they will see
>>close to 0.00 evaluation.
>
>
>Test your hypothesis.  Others already have and after a _week_ of searching
>they found exactly _nothing_.  60 plies is too deep for something that is not
>narrow and forced.  And even for something forced, 60 plies is very tough to
>touch except for what are often called "straightjacket" positions where both
>sides have one legal move for an extended period of time.
>
>You aren't going to find _this_ draw in 24 hours from the original position
>where they moved their king to the wrong square.  I don't care what kind of
>hardware you have.

If you look at the position after Kf1 then programs cannot find draw score
mainly because of the fact that they do not know to evaluate other lines as a
draw and Deep Fritz evaluates it as a clear advantage for white but does not
choose deeper blue moves.

Here is Deep Fritz's analysis one ply after 44.Kf1 Rb8
After some minutes it changes it's mind and do not choose deeper blue move
45.Ra6

You can criticize deep Fritz for not evaluating correctly the endgame when it
gives evaluation of +1.56 for a drawn endgame but the problem that prevent Deep
Fritz to see the draw does not seem to be the 60 ply line.

Deep Fritz understands enough to choose the correct move at move 44
1.91 at depth 24 for 44.Kh1 compared to 1.56 at depth 22 for 45.Qd7+

[D]Rr6/5kp1/1qQb1p1p/1p1PpP2/1Pp1B3/2P4P/6P1/5K2 w - - 0 1

Analysis by Deep Fritz:

45.Qd7+!
  ±  (1.31)   Depth: 3/11   00:00:00  1kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 5/12   00:00:00  4kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6 49.g3
  +-  (1.44)   Depth: 6/16   00:00:00  9kN
45.Qd7+--
  ±  (1.13)   Depth: 7/15   00:00:00  22kN
45.Qd7+--
  ±  (1.13)   Depth: 7/15   00:00:00  25kN
45.Qxb6!
  ±  (1.16)   Depth: 7/15   00:00:00  27kN
45.Qxb6! Rxb6 46.Ra7+ Kf8 47.g3 h5 48.Ke2 h4 49.gxh4
  ±  (1.25)   Depth: 7/18   00:00:00  38kN
45.Ra6!
  ±  (1.28)   Depth: 7/18   00:00:00  48kN
45.Ra6! Qxc6 46.dxc6 Ke8 47.Ra7 Rc8
  ±  (1.38)   Depth: 7/18   00:00:00  53kN
45.Ra6 Qxc6 46.dxc6 Ke8 47.Ra7 Rc8
  ±  (1.38)   Depth: 8/18   00:00:00  80kN
45.Ra6 Qxc6 46.dxc6 Ke8 47.Ra7 Rd8
  +-  (1.44)   Depth: 9/21   00:00:00  157kN
45.Ra6 Qxc6 46.dxc6 Bc7 47.Ra7 Rc8 48.Rb7 Ke7 49.Ke2 Kd6 50.Rxb5
  +-  (1.44)   Depth: 10/24   00:00:00  303kN
45.Ra6 Qxc6 46.dxc6 Kg8 47.Ra7 Rc8 48.Rb7 Kf8 49.Rxb5
  +-  (1.53)   Depth: 11/28   00:00:01  839kN
45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rd8 48.Rb7 Ra8 49.Rd7 Be7 50.c7 Ra1+
  +-  (1.59)   Depth: 12/30   00:00:02  1617kN
45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.Rb7 Bc7 49.Rxb5 Ke7
  +-  (1.66)   Depth: 13/32   00:00:04  3128kN
45.Ra6 Qxc6 46.dxc6 Rc8 47.Ra5 Ke7 48.Rxb5 h5 49.Bd5
  +-  (1.78)   Depth: 14/34   00:00:11  7087kN
45.Ra6--
  +-  (1.47)   Depth: 15/40   00:00:59  37421kN
45.Ra6-- Qe3 46.Qd7+ Kg8 47.Qxd6 Rf8 48.Qe6+ Kh7 49.Qe7 Rg8 50.Bf3 Qc1+
  ±  (1.22)   Depth: 15/41   00:01:18  49651kN
45.Ra6 Qe3 46.Qd7+ Kg8 47.Qxd6 Rf8 48.Qe6+ Kh7 49.Bf3 Qc1+ 50.Kf2 Qd2+
  ±  (1.22)   Depth: 16/45   00:02:48  106539kN
45.Ra6 Qe3 46.Qxd6 Re8 47.h4 h5 48.Bf3 Qc1+ 49.Kf2 Qd2+ 50.Be2 Qf4+
  ±  (1.00)   Depth: 17/43   00:06:12  235347kN
45.Qd7+!
  ±  (1.03)   Depth: 17/43   00:07:40  293411kN
45.Qd7+! Kg8 46.Ra7 Bf8 47.Qe6+ Kh8 48.Qxb6 Rxb6 49.Bf3 Bd6 50.Ra8+ Kh7
  ±  (1.31)   Depth: 17/44   00:08:23  320283kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh8 48.Qxb6 Rxb6 49.Bf3 Bd6 50.Ra8+ Rb8
  ±  (1.28)   Depth: 18/42   00:09:56  379789kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Ke2 Kh7 48.Qf7
  +-  (1.47)   Depth: 19/44   00:17:16  662024kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qf7+ Kh8 48.Ke2 Qd6 49.Qe6 Qb6 50.Qxb6 Rxb6
  +-  (1.50)   Depth: 20/47   00:33:48  1297637kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qf7+ Kh8 48.Ke2 Qd6 49.Qe6 Qb6 50.Qxb6 Rxb6
  +-  (1.53)   Depth: 21/48   01:05:55  2543899kN
45.Qd7+ Kg8 46.Ra7 Bf8 47.Qf7+ Kh8 48.Ke2 Qd6 49.Qe6 Qb6 50.Qxb6 Rxb6
  +-  (1.56)   Depth: 22/52   02:25:04  5625115kN

[D]R7/1r3kp1/1qQb1p1p/1p1PpP2/1Pp1B3/2P4P/6P1/6K1 w - - 0 1

Analysis by Deep Fritz:

44.Qxb6 Rxb6 45.Ra7+ Kf8
  ±  (0.94)   Depth: 2/7   00:00:00
44.Qxb6 Rxb6 45.Ra7+ Kf8
  ±  (0.94)   Depth: 2/7   00:00:00
44.Qxb6 Rxb6 45.Ra7+ Kf8
  ±  (0.94)   Depth: 2/7   00:00:00
44.Qxb6 Rxb6 45.Ra7+ Kf8 46.Kf2
  ±  (1.13)   Depth: 3/9   00:00:00
44.Qxb6 Rxb6 45.Ra7+ Kg8 46.Kf2 Kh7
  ±  (1.03)   Depth: 4/9   00:00:00
44.Qxb6 Rxb6 45.Ra7+ Be7 46.Kf2 Rd6 47.g3
  ±  (0.84)   Depth: 5/11   00:00:00  2kN
44.Kf1!
  ±  (0.88)   Depth: 5/12   00:00:00  3kN
44.Kf1! Qxc6 45.dxc6 Rc7 46.Ra5 Ke7 47.Rxb5
  ±  (1.28)   Depth: 5/13   00:00:00  5kN
44.Kf1 Qxc6 45.dxc6 Rc7 46.Ra5 Ke7 47.Rxb5
  ±  (1.28)   Depth: 6/14   00:00:00  7kN
44.Kf1 Rb8 45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6
  ±  (1.34)   Depth: 7/16   00:00:01  17kN
44.Kf1 Rb8 45.Qd7+ Kg8 46.Ra7 Bf8 47.Qe6+ Kh7 48.Qxb6 Rxb6 49.g3
  +-  (1.44)   Depth: 8/18   00:00:01  37kN
44.Kf1 Rb8 45.Qxb6 Rxb6 46.Ra7+ Kf8 47.g3 h5 48.Ke2 h4 49.gxh4
  ±  (1.25)   Depth: 9/19   00:00:02  84kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.g3 Rc8 48.Ra5 Rb8 49.Ra7 Rc8
  ±  (1.38)   Depth: 10/25   00:00:03  212kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8
  ±  (1.38)   Depth: 11/25   00:00:03  392kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Bc7 47.Ra7 Rc8
  +-  (1.44)   Depth: 12/28   00:00:04  859kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8
  +-  (1.50)   Depth: 13/30   00:00:06  1917kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.Rb7 Ra8
  +-  (1.59)   Depth: 14/34   00:00:09  4077kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.Rb7 Rc7 49.Rxb5 Ke7
  +-  (1.66)   Depth: 15/38   00:00:16  8762kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.Rb7 Rc7 49.Rxb5
  +-  (1.78)   Depth: 16/37   00:00:38  22540kN
44.Kf1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.Rb7 Rc7 49.Rxb5 Ke7
  +-  (1.78)   Depth: 17/39   00:01:10  43120kN
44.Kf1--
  +-  (1.47)   Depth: 18/44   00:03:32  131479kN
44.Kf1-- Rb8 45.Qd7+ Kg8 46.Ra7 Bf8 47.Qf7+ Kh7 48.Ke2 Rd8 49.Qb7 Rb8
  ±  (1.31)   Depth: 18/45   00:07:15  272559kN
44.Kh1!
  ±  (1.34)   Depth: 18/45   00:09:10  346790kN
44.Kh1! Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.g3 Rc7 49.Ra8+ Kf7
  +-  (1.50)   Depth: 18/45   00:10:39  402006kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.g3 Rc7 49.Ra5 Ke7
  +-  (1.63)   Depth: 19/46   00:13:29  512685kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Kf8 47.Ra7 Rc8 48.g3 Rc7 49.Ra5 Ke7
  +-  (1.63)   Depth: 20/48   00:22:01  842954kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Rc8 47.Ra5 Ke8 48.Kh2 Ke7 49.Rxb5 Rb8
  +-  (1.78)   Depth: 21/50   00:40:58  1579956kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Rc8 47.Ra5 Ke7 48.Rxb5 h5 49.Kh2 h4
  +-  (1.81)   Depth: 22/51   01:44:09  4053399kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Rc8 47.Ra5 Ke7 48.Rxb5 h5 49.g3 Bc7
  +-  (1.88)   Depth: 23/53   03:11:14  7470799kN
44.Kh1 Rb8 45.Ra6 Qxc6 46.dxc6 Rc8 47.Ra5 Ke7 48.Rxb5 h5 49.g3 Bc7
  +-  (1.91)   Depth: 24/53   06:27:16  15175713kN

(Blass, Tel-aviv 04.09.2001)
>
>
>
>>
>>No way to see a forced draw because white can escape the forced draw by a line
>>when programs evaluate it as a small positional advantage for white.
>>
>>>
>>>Forward pruning, by its very definition, is error-prone.  No way around
>>>it.
>>
>>I believe that if the forward pruning is done correctly then it is not
>>error-prone
>
>Sorry, but I believe that is nonsense.  Otherwise you are saying that it is
>possible to do a perfect chess player with _no_ search at all, because the
>pruning rules are not based on search results.  In short, a 1 ply search should
>be able to play perfect chess with a pruning rule that never makes a mistake.

No
I did not say that the pruning rules are going to prune all the legal moves
except one.

The pruning rules should detect illogical moves and reduce the size of the chess
tree.

They should not resuce it to 0.

If you prune in every move only 40% of the possible moves you are goinbg to
reduce the size of the chess tree significantly but you are not going to solve
chess.
>
>It won't _ever_ happen.
>
>
>
>
>>You will need a lot of testing in order to correct cases when the forward
>>pruning generates errors but I expect after analyzing millions of positions and
>>correcting the mistakes in the pruning that caused errors to have forward
>>pruning with no errors or maybe only one error of practical demage in 1000
>>games.
>
>I expect you will end up with billions of lines of code, and if you think
>anyone can write billions of lines of code with no errors, then why can't
>we write thousands of lines today with no errors?

I do not think that you need billions of lines and I believe that some millions
may be enough because one rule can be good for many position.

a big part of the work will not be to write the code but to discover the right
pruning rules.
It is possible to write thousands of lines today and correct the errors without
million of dollars.

If you get some millions of dollars for a project then it may be possible to do
better.

Uri
>
>
>
>>
>>one simple example:
>>If you prune only rook promotions and bishops promotions when the number of
>>pieces of the opponent is big enough to avoid stalemate danger you will have
>>practically no errors.
>>
>>Uri
>
>And I'll bet someone can create a position where this fails miserably.  And
>that one error is all it takes...

Note that Junior5 pruned under promotions in it search and in I think that in
more than 99% of the games it caused no problems.

Most of the problems with pruning under promotions is underpromotion to a
knight.
pruning underpromotion to a bishop or rook may cause problems only when there is
a stalemate combination and if there are a lot of pieces in the board there is
no chance for stalemate.

if a rule cause problems only in 0.00001% of the games then you can safely have
1000 similiar rules with no practical problem.

Uri



This page took 0.01 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.