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/

Reply via email to