[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [computer-go] A chess programmer at the Go-Olympiad



> I've seen  many comments from computer chess  programmers that imply
> that  go programmers  are  just clueless  and  haven't bothered  to
> understand  or apply  the  lessons from  computer  chess.  This  is
> simply not true :)

The lessons from computer chess is that most of us are clueless.  Even
the smartest people were saying  the stupidest things and we can laugh
at them now.   I don't think most  of us have learned from  this and I
include myself too.  The lessons I  talk about have nothing to do with
specific programming  techniques.  It has  to do with  glib statements
about  how wonderful  and deep  and  difficult something  is and  will
always be.

Now if I thought you were really clueless I wouldn't tell you, I would
show you  by writing  a much better  GO program.   But as you  know, I
haven't done this.


- Don





   X-Sender: fotland%smart-games.com@xxxxxxxxxxxxxxxxx
   Date: Sun, 07 Dec 2003 11:29:27 -0800
   From: David Fotland <fotland@xxxxxxxxxxxxxxxxx>
   Content-Type: text/plain; charset="us-ascii"; format=flowed
   X-BeenThere: computer-go@xxxxxxxxxxxxxxxxx
   X-Mailman-Version: 2.1.2
   Precedence: list
   Reply-To: computer-go <computer-go@xxxxxxxxxxxxxxxxx>
   List-Id: computer-go  <computer-go.computer-go.org>
   List-Unsubscribe: <http://computer-go.org/mailman/listinfo/computer-go>,
	   <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=unsubscribe>
   List-Archive: <http://computer-go.org/pipermail/computer-go>
   List-Post: <mailto:computer-go@xxxxxxxxxxxxxxxxx>
   List-Help: <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=help>
   List-Subscribe: <http://computer-go.org/mailman/listinfo/computer-go>,
	   <mailto:computer-go-request@xxxxxxxxxxxxxxxxx?subject=subscribe>
   Sender: computer-go-bounces@xxxxxxxxxxxxxxxxx


   I don't understand the comment that go programs don't use search.  Go 
   programs do a tremendous
   amount of search for local tactics and tsumego.  They do small searches at 
   the full board.  If you try to
   build a go program using full width alpha-beta with all the trimmings, you 
   will soon find out that it will collapse
   tactically against a pretty weak player, and start implementing things like 
   ladder search in your evaluation,
   then string stability search, then connection search, and you will 
   eventually be where the rest of us
   have ended up after many years of development.

   Don't think that go programmers don't understand the state of the art in 
   search algorithms.  You can
   take a look at arimaa.com and see that my arimaa program is much stronger 
   than others written
   by chess programers.  This program uses alpha-beta PVS search with a big 
   hash table, null move,
   selective search extensions, killer and history heuristic for move sorting, 
   etc. and searches about 300K NPS.

   The computer chess techniques are very powerful, and let you make a strong 
   program for most games in less
   than a year (as I did for arimaa).  But they don't apply well to computer 
   go.  I've seen many comments from
   computer chess programmers that imply that go programmers are just clueless 
   and haven't bothered to understand
   or apply the lessons from computer chess.  This is simply not true :)

   Regards,

   David Fotland

   At 02:54 PM 12/7/2003 +0100, Arend Bayer wrote:

   >Dear Chrilly Donninger,
   >
   > > Like every chess programmer I am a believer in search and I do not 
   > really understand why Go programms do not use it (Martin gave me some 
   > good reasons, but the believe is too deep that one can be converted while 
   > drinking one beer). I was therefore deeply impressed by Aya. It seems to 
   > be one of the first real searchers. GA had not much trouble with Aya on 
   > 19x19, but it was helpless against the 7 Ply search in 9x9. The same 
   > holds with NeuroGO. On 19x19 it was a clear-cut win of GA. In 19x19 
   > NeuroGo searches 1 Ply. In 9x9 the 3 Ply searching NeuroGo was clearly 
   > better than GA.
   >
   >I am also a believer in search. But there are a lot of other things that
   >I believe one has to do for a go program as well :)
   >
   > > The node count of Go-programs is unbelievable slow. I also thought that 
   > the number 620 on Ayas screen means 620 Kilo-Nodes. But Hiroshi explained 
   > me, its nodes. My impression from looking at the Gnu-Go and the GA code 
   > is. It is not only the complexity of the game. Go programmers obviously 
   > do not spend months to save a few nano-seconds in their time critical 
   > parts (maybe because there is no time critical part).
   >
   >Of course I cannot tell about GA, in GNU Go, we do care about optimizing
   >performance critical parts (which is a pretty small amount of the actual
   >code) of GNU Go. We don't care much about speedups of about 1% or so,
   >but everything higher than that is us worth some effort.
   >(But we are not yet doing global search.)
   >
   >I would offer you a different bet:
   >1. That you will pretty soon give up on the idea of making an
   >evaluation function as fast as you are thinking of now. Really the only
   >thing you can do without doing some tactical reading is s.th. like
   >Benson's algorithm of unconditional life, and this is just not
   >sufficient on 9x9.
   >2. That you won't beat GNU Go on 19x19 within 2 years.
   >3. That after 1 year, I can beat your program on 9x9 giving it a 2 stone
   >handicap on 9x9 after 4-5 training games for me. (I am 4d, and 2 stones
   >is about the handicap I would give to an 8k.)
   >
   >Anyway, good luck!
   >Arend
   >
   >P.S.: In case someone hasn't heard about Brutus: It has been a remarkably
   >successful project as work on it started AFAIK only 3 years ago, and it's now
   >competing with the absolute top programs.
   >
   >--
   >Arend Bayer, Flodelingsweg 27a, 53121 Bonn, 0228-9813803
   >arend.bayer@xxxxxxxxxxxxxxxxx
   >
   >_______________________________________________
   >computer-go mailing list
   >computer-go@xxxxxxxxxxxxxxxxx
   >http://computer-go.org/mailman/listinfo/computer-go


   _______________________________________________
   computer-go mailing list
   computer-go@xxxxxxxxxxxxxxxxx
   http://computer-go.org/mailman/listinfo/computer-go

_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://computer-go.org/mailman/listinfo/computer-go