On Dec 4, 2007 3:57 PM, Zach Wegner <[EMAIL PROTECTED]> wrote: > On Nov 13, 2007 2:44 PM, Jason House <[EMAIL PROTECTED]> wrote: > > > > > > > On Nov 13, 2007 3:32 PM, John Tromp <[EMAIL PROTECTED]> wrote: > > > > > > Is there any known way to get the best of the both worlds? :-) > > > > > > Yes, you can generalize pseudoliberties by extending them > > > with another field, such that if the (summed) pseudoliberty field > > > is between 1 and 4, then the other (summed) field will tell you if all > > > these > > > are coming from a single true liberty. > > > > > > Can you elaborate on this? > > > > I'm a bit late on this, and I'm not sure if this hasn't been suggested > yet. But, instead of these complicated codes, you could store in the extra > field both the AND and the OR of all pseudoliberties. Then if they are > equal, you have one real liberty. > > Example: > Pseudoliberties at 27, 17, and 9 (binary 11011, 10001, and 01001), > AND=00001 and OR=11011. AND != OR so there's more than one pseudoliberty. >
How do you keep that updated cheaply as moves are made? For instance, if I put a black stone next to a white chain, how do I update the OR and AND pseudoliberty values for that chain? John's complicated solution only requires storing a sum, which is always easy to update (in my example, susbtract the value associated with the point where black just played). Álvaro.
_______________________________________________ computer-go mailing list computer-go@computer-go.org http://www.computer-go.org/mailman/listinfo/computer-go/