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/

Reply via email to