here's my attempt to talk about how a 9x9 algorithm should be expected
to scale on a bigger board, and what limits we can expect to have on
perfect algorithms.  i'm kind've trying to bridge the divide here.  maybe
it's silly.  hopefully the experts can correct me.

saying that doubling computer time won't result in a constant increase
in skill at any particular task is another way of saying that there is a
good exponential approximation to the effort function E(s) over some
particular range (say, the early skill levels), but that after some point
the effort function function will increase *more quickly* than the
exponential approximation.  (here E(s) is the effort for a particular
algorithm to play at least as well as skill level "s".)

one somewhat muddying fact is that both chess and go should
belong to EXPTIME.  this means that to find a winning move for a fixed
board position at a fixed boardsize n will require O(2^p(n)) steps, where
p is a polynomial in n.  to play either game "perfectly" such that the
algorithm would apply to a 19x19 board, or a 9x9 board, or a 13x13 board,
or an NxN board would imply that you had constructed an algorithm with at
least such a running time.

Lets imagine that 9x9 go has been effectively* solved by some algorithm that
we all love, called algorithm X.  applying algorithm X unchanged to boardsize
13x13, we will find that it takes:

2^(p(13)) / 2^(p(9)) times longer to find "the best move" for a given board 
position.

taking the log base 2 of this we find that the difference in the doubling
constants between the different boardsizes is:

p(13) - p(9)

if the polynomial in question is linear, then we will still observe the same
doubling phenomenon for a 13x13 board as we would have on a 9x9 board.
if the polynomial in question is anything other than linear, we won't, although
depending upon the coefficients involved in this term and smaller terms, it
may be well-approximated, again, through some number of skill levels.

mitigating factors: 

*effectively solved is my hand-waving way of not dealing with the fact that
solving the game and winning against opponents of some fixed skill level
are not the same problem.

what this additionally means is that any algorithm with enough _encoded
knowledge_ that applies to a fixed boardsize can play arbitrarily well (note
that this neatly captures the case of a pure lookup table solution).

so we have two competing ideas: one is that if i double the thinking time for
my existing algorithm that works quite well at size 9 and get linear 
improvement,
what will happen to the improvement for that unmodified algorithm on a larger 
board?
the answer is that it will definitely get better, although it may no longer 
gain the
same amount of strength with each doubling of cpu time, or for as far across the
skill level range.

the other idea is that if i encode enough knowledge about details that apply
to one particular boardsize into my algorithm, i can reduce its running time
by an arbitrary amount.  an example would be a joseki library for 19x19
boards that wouldn't have existed (or even made sense) in the same form
in the code of a 9x9 program.

so anyone looking for an analytic solution that will perfectly solve go
needs to cope with the fact that if it works great (in the running-time sense)
for a 9x9 board, it might work quite a bit less well for a 13x13 board, and
significantly less well for a 19x19 board.

with no knowledge about the size of the _coefficients_ of the terms in the
complexity function, the possibility still exists that for the board sizes in 
question,
the complexity is dominated by terms much smaller than 2^p(n), and so all 
boardsizes
and skill levels are easily approximated with the 'doubling technique' until n 
is
large.

s.




 
____________________________________________________________________________________
Get your own web address.  
Have a HUGE year through Yahoo! Small Business.
http://smallbusiness.yahoo.com/domains/?p=BESTDEAL
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/

Reply via email to