[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
An AI program that doesn't learn
Mousheng Xu wrote:
> "speed of evolution" should more correctly be "speed of progress" or
> "speed of learning". :) I assume any AI program tries to "learn" and it
> will "learn", but how fast can it "learn"? That's what I worry about first
> for any "learning" program.
> I always like the variety of ways of thinking. So far, AI go algorithms
> don't show promising results, but who knows? So, maybe I should have asked
> "how do you overcome the speed of learning" instead. :)
> Good luck, folks.
While it is certainly true that an AI program could be a learning program this is
not necessarily the case. My Go program is an AI program which has nothing to do
with learning. It is basically a rule-based system. What I do at each move is to
first compute various abstractions of the board such as:
1. A measure of the influence of each stone on the board
2. Strings (orthogonally connected stones of the same colour) and their liberties
3. Groups of stones - I'm finding this hard to refine enough to be useful
4. Boundaries between stones of the opposing players - I've found this very useful
5. Live and dead stones (currently very crude)
6. Identification of cutting points
Then I run a set of rules which make use of this abstractions. At the moment I have
some simple strategic rules which cover the fuseki (opening) moves such as:
1. Play in the centre at the start of a game (on a 9x9 or 13x13 board)
2. If a corner is empty, play on the (3,3) point
and tactical moves like:
1. If a stone on the 3rd line is threatened, extend along the 3rd line
2. Capture the opponents stones whenever you can unless they cannot escape
3. Play on "important" boundary points (the notion of "important" is not very good
yet)
4. Defend your cutting points
I am developing my program by devising useful abstractions, refining existing rules
and adding new ones.
Basically my program is an Expert System which contains an explicit representation
of some of my knowledge of Go. As soon as I get ALL of my knowledge into my program
it will be as strong as me (3kyu) and it will also be the strongest Go program in
the world.
But, it may take me a year or two !!
Regards
David