Hi, I have some questions regarding the crazystone-like playouts I'm
trying to implement.
1. What data type should I use for the weights? So far I tried
integers, floats and doubles.
Integers are good because they have no precision issues, but I think I
might have problems with overflowing later on, when adding more
weights. If I have weights between 0-10000, that might be the case,
especially for the row/total sums.
Floats don't have the problem, but I got some precision issues that
are not so easy to fix.
Doubles have neither problem (or not as pronounced), but I think
they're a bit slower, and they also take twice the space.
2. When a position becomes illegal, should I stop updating its weight
and recalculate it when it becomes legal again? The other way is to
update the weight anyway. This question only concerns certain features
such as patterns, but maybe also "distance to last move".
On one hand, updating anyway might be a bit faster per update but
slower over all.
On the other hand, recalculating when a position becomes legal again
should be faster, but it requires the handling of more special cases
like ko, and certain dead group shapes.
Do you have any tips for making the playouts faster? My goal is 20k/s,
so far I've only reached about 15k/s (using the method of always
updating described at 2.) with a bit of optimizing. I have a mercy
rule. I also read about using patterns as much as possible, but I only
use the 3x3 patterns for eye knowledge.
Thanks and regards,
Isaac Deutsch
_______________________________________________
computer-go mailing list
computer-go@computer-go.org
http://www.computer-go.org/mailman/listinfo/computer-go/