Fork me on GitHub

v0.0.3 of suffragium - a clojure vote counting library - now released. Added: more control over the resolution of ties and STAR voting.

👏 3

cool lib 🙂 I have a toy implementation of Schulze where I just followed the algorithm described in wikipedia with API adapted for a particular use case I’d appreciate if you could take a peek and tell me if you see any glaring issues with it


looking a the tiebreaking code: if two candidates pats have the same beatpath strength, do you not try to resolve the tie by forbidding that link and recalculating the new beatpath strength?


this is the tiebreaking method advocated in Schulze's paper


(also a very good source for worked examples - i.e. test cases!)


thanks for the pointer! I did the implementation mostly for fun and presenting ties to users instead of breaking them was good enough for us, but you made me curious about the “proper” method


full paper is on preprint here with ties discussed in section 5

👍 3

I see why you would want to present ties to the user, but I would distinguish between ties that can be resolved by fodbidding an edge and ties that cannot (i.e. you reach a point where there is no beatpath)


I would consider only the latter true ties in schulze (there are prescriptions on how to resolve them, but they rely on having a pre-specified tie resolution order of candidates)