Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Knowledge is not elegant.

Author: Vincent Diepeveen

Date: 11:07:12 06/15/98

Go up one level in this thread



On June 15, 1998 at 10:45:32, Don Dailey wrote:

>On June 15, 1998 at 09:10:14, Guido Schimmels wrote:
>
>>
>>On June 14, 1998 at 13:50:19, Don Dailey wrote:
>>
>>>I think a knowledge based approach to computer chess is not elegant at
>>>all.  However I use  it because I  do not see a  better  approach.  My
>>>program  keeps accumulating more and more  knowledge and seems to keep
>>>improving as a result of it.  I'm forced to  use this ugly brute force
>>>technique because I do not know a better way.
>>>
>>>At the  rate we are going with  ram prices plummeting and our computer
>>>memories getting larger and larger, we may someday have as much memory
>>>in our  computers  as  humans have in   their  heads.   Already  chess
>>>programs use many megabytes  of memory, and if  we continue  this ugly
>>>trend toward modeling the human brain we will soon have chess programs
>>>requiring huge amounts of memory.  This is not a pleasing development
>>>at all and is so wasteful.
>>>
>>>The culmination of all  of this might  be the  32 man database.   This
>>>will be a sad day   indeed when a  simple table  lookup gives you  the
>>>right  answer  in every position.   Then  our  programs will play like
>>>super humans, having instant and perfect intuition in every position.
>>>
>>>My program used to have some clever rules to play king and pawn versus
>>>king correctly.   I now  have  a database,   but the  two  are exactly
>>>equivalent and both return the  right answer every time.  The  program
>>>plays the ending perfectly, just like most strong humans do.  In fact,
>>>it's better than the way humans do it because humans use a combination
>>>of search and knowledge.  Maybe it will be  more human that us because
>>>everyone knows humans shouldn't use  a search, only stupid programs do
>>>this.
>>>
>>>- Don
>>
>>I think, if knowledge is elegant or not depends on how you create and
>>apply it.
>>The amount of memory it takes is not the point. If I knew a way to
>>automatically
>>create a highly sophisticated evaluation function and searching rules
>>from playing games and from analysing games from databases I would
>>consider
>>it very elegant even if the resulting program code would take a gigabyte
>>of
>>memory. But the time consuming trial and error techniques we use are
>>definitly
>>ugly. Temporal differences to set the weights is interesting, but the
>>patterns
>>and rules still have to be done manually.
>>But even if we would succeed in automating knowledge generation, what
>>humans do when playing chess is something completely different. On
>>computers
>>we have algorithms and data (OOP doesn't really make a difference). For
>>brains
>>algorithms and data are the same thing. When humans play chess they are
>>not simply executing a program and using what they have learned, but
>>will have new
>>insights during they play - they think ! To express it in computer
>>terms, humans
>>change/enhance their program during that program is executed !
>>Flexibility
>>makes the difference.
>>What Kasparov knows about chess can't be downloaded into a computer as a
>>whole, that's what I'm completely convinced of.
>>
>>- Guido
>
>
>That last sentence hits the nail on the head.  If you've read my
>other posts you will see that I agree with you.  I believe it is
>not possible to simulate the human brain without a huge amount of
>memory.
>
>I used the analogy of rules to substitute for a database.  This
>was to reflect my belief that we can "code up"  this knowledge
>in innovative compact ways.   But the problem is the same.  The
>only substitute for memory is speed, the two are almost
>interchangable.  That is why a fast enough program can simulate
>any amount of chess knowledge you can give it.  So it's really
>not even a point worth arguing, it's an engineering decision.
>
>At some point, all roads will lead to Rome.

Consider this: knowledge is mainly O(1) or O(n) or O(n*n*n),
but search is O(a^b), where for every knowledge pattern
you need to improve b, and a is way more than 2, initially even 3 or 4.

Now the nature of chess is such that search takes care of a second
aspect: tactics, and tactics is an important positional aspect of the game.
Initially it is even the most important, but at a certain point you're so well
that other positional aspects become more important. that's where better
coded knowledge drops in.

Note that i said nothing about strategy. Strategy seems hard to code,
and even harder to search for.

At icc we see several types of wins against programs. Here a nice
strategical win at blitz by slowly hammering the black kings position.
Note that previous game rabid played almost the same game but lost
it somewhere in the middlegame. interesting to see that so many moves
were not predicted. very few moves are '0' seconds.

Yet the retry here won:

rabid (2213) vs. JudgeTurpin (2533) --- Mon Jun 15, 03:48 EDT, 1998
Rated blitz match, initial time: 5 minutes, increment: 3 seconds

Move  rabid              JudgeTurpin
----  ----------------   ----------------
  1.  d4       (0:02)    d5       (0:00)
  2.  Nf3      (0:01)    Nf6      (0:00)
  3.  e3       (0:01)    e6       (0:00)
  4.  Ne5      (0:02)    Bd6      (0:10)
  5.  Bd3      (0:02)    Nbd7     (0:12)
  6.  f4       (0:02)    c5       (0:04)
  7.  c3       (0:02)    c4       (0:11)
  8.  Bc2      (0:02)    b5       (0:06)
  9.  a3       (0:08)    Ne4      (0:11)
 10.  O-O      (0:02)    Ndf6     (0:03)
 11.  Nd2      (0:05)    O-O      (0:02)
 12.  Rf3      (0:03)    Bb7      (0:11)
 13.  Rh3      (0:03)    Qa5      (0:11)
 14.  Ndf3     (0:21)    h6       (0:10)
 15.  Bd2      (0:06)    Rac8     (0:10)
 16.  Be1      (0:06)    a6       (0:10)
 17.  Bh4      (0:22)    Qc7      (0:17)
 18.  Qe2      (0:24)    a5       (0:10)
 19.  Kh1      (0:05)    Ba6      (0:14)
 20.  Rg1      (0:03)    Bb7      (0:09)
 21.  g4       (0:03)    Kh8      (0:07)
 22.  g5       (0:02)    Ng8      (0:09)
 23.  gxh6     (0:05)    g6       (0:06)
 24.  h7       (0:17)    Bxe5     (0:02)
 25.  Nxe5     (0:43)    Ngf6     (0:09)
 26.  Bxf6+    (0:14)    Nxf6     (0:00)
 27.  Bxg6     (0:02)    a4       (0:07)
 28.  Bc2      (0:11)    Qd8      (0:08)
 29.  Rhg3     (0:15)    Rc7      (0:08)
 30.  Rg7      (0:03)    Ba6      (0:08)
 31.  h4       (0:18)    Bb7      (0:07)
 32.  h5       (0:03)    Ba6      (0:08)
 33.  h6       (0:02)    Bb7      (0:07)
 34.  Qf3      (0:05)    Ba6      (0:09)
 35.  Qh3      (0:04)    Bc8      (0:12)
 36.  Qh4      (0:07)    Ne4      (0:07)
 37.  Qxd8     (0:05)    Rxd8     (0:07)
 38.  Bxe4     (0:04)    dxe4     (0:07)
etc. 1-0

Hardware you run on doesn't matter here too much.

>- Don



This page took 0.05 seconds to execute

Last modified: Thu, 07 Jul 11 08:48:38 -0700

Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.