[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gnugo-devel] address@hidden: Re: GNU go and Artificial Intelligence
Re: [gnugo-devel] address@hidden: Re: GNU go and Artificial Intelligence?]
Wed, 29 Sep 2004 02:50:24 -0200
> 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.