Fork me on GitHub
#announcements
<
2020-07-14
>
lunik120:07:12

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

👏 3
rakyi16:07:10

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 https://github.com/rakyi/votemeal/blob/master/src/votemeal/schulze.clj I’d appreciate if you could take a peek and tell me if you see any glaring issues with it

lunik118:07:50

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?

lunik118:07:12

this is the tiebreaking method advocated in Schulze's paper

lunik118:07:32

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

rakyi21:07:57

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

lunik121:07:11

full paper is on preprint here https://arxiv.org/ftp/arxiv/papers/1804/1804.02973.pdf with ties discussed in section 5

👍 3
lunik121:07:33

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)

lunik121:07:52

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)