[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [computer-go] The "standard techniques" of go playing programs
David wrote:
> According to the computer go ladder the four best programs (on 19x19) are:
> Go4++, GoAhead, ManyFaces and GnuGo.
There are other strong engines, maybe even stronger than all of those
you listed. KGS and Haruka are what come to mind.
> Would it be accurate to describe these programs as something akin to expert
> systems, that is, the go knowledge of individual people encoded in program
> form? Is it correct that they don't use any fancy machine learning
> techniques but are hand-tuned by humans(the pattterns etc.) for optimal
> performance? Each new pattern has to added by a human?
I would think that differences between the strongest engines are not
principal, i.e. they use similar algorithms. There are of course
variations but I'd bet there is nothing that would make one of them
really stand out.
GNU Go doesn't use machine learning and, assuming the above paragraph
is correct, none of the strongest engines can learn from its games in
a way that provides a major boost to its strengths.
> I am doing an investigation were I try to answer the question "Given
> incremental improvement on the current standard techniques in go
> programming, and incremental improvment in computer performance, is it
> likely that we will ever get a professional level program?". My working
> hypothesis is no... I will attempt to test it by taking old versions of
> e.g. gnugo and see how large the difference in strength is between
> different vesions when run on the same hardware and also how much better it
> gets with increased computing power. I will then try to estimate how much
> better programs are likely to become in the next 5, 10, 20, 50 years.
> However, first I need to know if my assumption that there is such a thing
> as a set of "standard techniques" in go programming is correct and that
> they are something similar to what I described above. Are they?
You should remember that directly encoded Go knowledge--patterns--are
not the only thing that influences engine's strength. Algorithms are
also very important. They of course present some Go knowledge too,
but after all you cannot program Go in a game-independent fashion,
because it's too complicated to be solvable with general-purpose deep
search. And some algorithm work in such a way a person never thinks
about Go position, so the knowledge encoded in them is not like humans'
knowledge.
Very important for strength is the number and quality of different
goal-specific readers. For instance, GNU Go 3.4 features 3 new readers
at once: connection, semeai and break-in/block-out readers (the last's
purpose is to penetrate potential territory border or prevent such
penetration).
One major thing that is still absent from GNU Go is a whole board global
lookahead/reader. It might provide a solid increase in strength once
implemented. A joseki (or preferably, but unlikely, fuseki) reader
would certainly help too.
Paul
_______________________________________________
computer-go mailing list
computer-go@xxxxxxxxxxxxxxxxx
http://computer-go.org/mailman/listinfo/computer-go