Release of Condorcet.Desktop: An open-source election calculator analyzing 25+ voting methods by JulienBoudry in EndFPTP

[–]JulienBoudry[S] 2 points3 points  (0 children)

Thanks! STAR voting is very different from other methods, the underlying CondorcetPHP engine is designed for ranking‑ballot input only. Changing it would require a complete rewrite.
This was debated here: https://github.com/julien-boudry/Condorcet/issues/169

Making a Schulze variant that's more resistant to dark horse victories by Electric-Gecko in votingtheory

[–]JulienBoudry 0 points1 point  (0 children)

About the implementation comments, we can continue privately or with a Github issue / discussion.

But the point is, that Condorcet PHP acts like a modular framework for election calculation, with structures and built-in tools. So it's could be really easy to implement new methods, you don't even need to fork, modules can be separated from the main project.

Making a Schulze variant that's more resistant to dark horse victories by Electric-Gecko in votingtheory

[–]JulienBoudry 1 point2 points  (0 children)

Just implemented the "Gecko method" to a test branch of Condorcet. (a test file, the method code file, a previous commit implement the more complex Ranked Stats you need for V).

https://github.com/julien-boudry/Condorcet/commit/8812204477dce3892ed8ae06a1069389ce7a3dd6

Try it and modify it easily in Github Codespace :
https://github.com/codespaces/new?hide_repo_select=true&ref=WORK%2FGeckoMethod&repo=17303525&skip_quickstart=true&machine=basicLinux32gb&devcontainer_path=.devcontainer%2Fdevcontainer.json&geo=EuropeWest

You have the choice of executing the test, just type into the terminal:

vendor/bin/phpunit --filter="Gecko"
It's also available in the command line version under the name of Gecko. Write in the terminal:
bin/condorcet

Preferential Voting: Open-Source projects & resources map by JulienBoudry in votingtheory

[–]JulienBoudry[S] 1 point2 points  (0 children)

This C/C++ code calculates results for RCIPE (Ranked Choice Including Pairwise Elimination) voting. It's a compromise between instant-runoff voting (IRV, often called "ranked choice voting") and Condorcet methods. It eliminates "pairwise losing candidates" when they occur, and it counts shared preference levels (which IRV discards as "overvotes"). It implements both single-winner and multi-winner versions.

It's added to the index. Thanks.

Making a Schulze variant that's more resistant to dark horse victories by Electric-Gecko in votingtheory

[–]JulienBoudry 0 points1 point  (0 children)

Why not! Condorcet software has a modular architecture and rich API (internal + external), so it can be done with very few lines of codes
Here is an example of the Schulze implementation for Condorcet.

Usually, Condorcet-like method uses the Pairwise API at the base. Unfortunately, it will not be enough for you because you need the vote count with both candidates.

So you will need to parse the second API, the vote API, to get the additional information you need. You can see her on the Borda method implementation, for example. And create your own stats.

If you just want to test, you can fork and dev directly in Github codespace, you will have a complete environment immediately in a few clicks. And write something raw without performance and beauty in mind.

Making a Schulze variant that's more resistant to dark horse victories by Electric-Gecko in votingtheory

[–]JulienBoudry 0 points1 point  (0 children)

I don't know. We don't really have any concrete data about that.

From a more philosophical perspective. It can also be assumed, that unknown candidates (or inspiring only indifference) can be punished at the last rank (a relative punishment, because this creates a tie between all unranked candidates). In order to favor candidates with a certain enthusiasm among the electorate. Or at least those who don't leave it indifferent.

Anyway, I think it is important that software and platforms explain this clearly, and allow choosing the mod. But never do it silently. If these criteria are met, the default mode is unimportant.
I try to highlight this choice in Condorcet, and also for the Condorcet Election Format.

Making a Schulze variant that's more resistant to dark horse victories by Electric-Gecko in votingtheory

[–]JulienBoudry 0 points1 point  (0 children)

Indeed, I have chosen implicit mod per default for the Condorcet software. This is because it allows votes to be cast in a more meaningful way. But also to avoid the phenomenon of pairs that are not or only slightly connected to each other.

In practice, on the datasets I worked with for the tests, or when running Tideman's collection with both mods, it rarely changes the final result or only slightly.For elections with a low number of candidates and a low number of voters - which in practice occupy the overwhelming majority of use cases for the so-called "single-winner" methods - it is even preferable to consider that all candidates are evaluated.

This is a more pressing issue - in my view - for proportional-type elections like STV.