Thanks to both for the elaborate feedback! I was wondering about
pattern symmetry, too, and I also had a lookup table in mind since
there are only about 65000 combinations (and only a fraction of them
legal).
I had another idea for the zero weight problem: Keep a counter of how
many times this weight was "multiplied" by zero. This counter can be
stored in 1 byte or less, depending on the number of features. If the
counter is 0, the weight is the floating point value. Else, the weight
is zero. When adding a zero-weight-feature, increase the counter by
one, else decrease it by one.
This way, the weight doesn't have to be recomputed, although it uses
slightly more memory than nicely packing the features in an int like
in GNU Go. It seems like the rounding errors that are accumulated this
way are insignificant, according to my tests.
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/