[Top][All Lists]

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

Re: [gnugo-devel] address@hidden: Re: GNU go and Artificial Intelligence

From: Paul Pogonyshev
Subject: Re: [gnugo-devel] address@hidden: Re: GNU go and Artificial Intelligence?]
Date: Wed, 29 Sep 2004 02:50:24 -0200
User-agent: KMail/1.4.3

> Earlier, I have been speaking with John McCarthy, professor emeritus from
> Stanford University, and he told me that go sometimes is characterized as
> 'the fruit fly of artificial intelligence’, thereby referring to the area
> of genetics where researches have used fruit flies as a research object.
> There aim here was obviously not to create the perfect fruit fly, but to
> contribute to the progress in the field of genetics.

There is a branch of programming called ``genetic programming.''
Generally it looks like this: you have a problem that is not solvable
by standard algorithms.  You write a parametrizeable set of algorithms
that aim to ``more or less solve'' your problem, i.e. work
heuristically.  Then a ``population'' of these algortihms is generated
and they are interbred and mutated, with the algortihms showing better
results having higher probabity to ``survive.''  This is not so easy
as explained, though, since it is usually quite difficult to encode
algorithms so that their crossing produces another valid algorithm and
not a meaningless string.  Another problem is that if your set of
algorithms doesn't contain a good enough solution to begin with, there
is no way for genetic procedure to create one.  And finally, this all
usually takes lots of time.

Having said that, I believe there is no way one can use genetic
programming to create a strong Go program.  Maybe for some small
subtasks---yes,---but nothing larger.

So, I bet he meant that since Go is difficult to program, various
approaches and algorithms are tried.  And those which give stronger
programs ``survive'' and can spread to other programs.  In this
respect term ``genetics'' can be applied to every complicated field
as this is just the normal course of development.

> Since my article is for a popular science journal, I am hoping to make my
> readers relate to the go-subject by using some real world examples on where
> this kind of techniques could be applicable some time in the future. In the
> fruit fly-example from before, it is of course hard to determine the exact
> future usage, but it is not difficult to guess on using genetics for e.g.
> curing diseases, inventing medicine, developing crops etc. etc.

Well, in this case GNU Go doesn't seem like a good pick.  I don't
think any of the techniques used in GNU Go are particularly useful for
anything else but another game-playing program.

One can speculate about how pattern matching is close to ``computer
vision'' problems (but it is not.)  Or that war is just another game
(military needs pushed game theory development at some stage)---but
war is a bad game, better stick to Go.

So, I cannot frankly suggest such a potential connection.  GNU Go is
written just to play the game of Go and I'm not aware of Pentagon,
NASA or WHO paying particular attention to it. ;) The only interesting
thing GNU Go is linked to is the game of Go, as far as I can tell.

> If you should try to think about computer-go in the same way, what do you
> think could possibly be the usage of the techniques described?

Computer-go is probably not much better in this respect.  I can recall
only one technique used in computer go that is substantially different
from what you can see in GNU Go: neural networks.  (But then, I may
not know something.)

Again, I don't think that computer-go creates a demand for
sophisticated general-purpose algorithms or that it pushes development
in any other field.  I know that at least some search algorithms were
developed specifically with Go in mind, but search algorithms are
useful in game programming and hardly anywhere else.  From what I saw,
computer-go mainly capitalizes on existing methods and algorithms,
rather than creating anything really new.

Let's hope someone can give you an answer better suited to your needs.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]