[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: computer-go: How to evaluate unbalanced alphabeta tree?
At 2002.03.22.l 01:12, you wrote:
I am wondering how to evaluate the minmax tree with alphabeta pruning when
the subtrees are not of the equal size. For instance, when you have such a
tree:
B(3,3)
/ \
W(3,4) W(4,3)
/ \
B(4,4) B(4,5)
Note the subtrees of B(3,3) are of different depth. This is what I call
unbalanced.
Interesting that you should ask that because I have recently been
analysing the minimaxing of game trees to discover how it works, when it
works and what can go wrong!!
I can't actually answer the question, but I do have two observations.
1. Your evaluation function should really take into account whose move it
is because often, even in positions at the same depth, the fact that it is,
say, black's move makes a lot of difference to the evaluation of a
position. E.g. black may have an absolute sente move which is worth 10
points in a particular position.
2. If you backup from an odd ply your values tend to be high whereas
backing up from even plies tends to be low. This effect attenuates as you
look deeper into the game tree.
As a matter of interest, having generated and analysed a few million trees
of various shapes and sizes, I have discovered that, for my rather uniform
trees, minimax does indeed improve your chances of selecting a better move.
However, if you want a more accurate value for a particular position then a
small modification to minimax gives a better result. As you are handling
node N, take
0.7*"backed-up value" + 0.3*"evaluation at N"
and pass that up the tree. I don't know why this works, but I'm looking
into it. It is interesting that this modified minimax is "not" very good
for selecting a better move.
I would like to stress that I have only tested my modified minimax on my
experimental trees. I haven't tried it on real go trees yet.
Cheers
David