README.md for the code used in the paper Split Cycle: A New Condorcet Consistent Voting Method Independent of Clones and Immune to Spoilers by Wes Holliday and Eric Pacuit.
The notebooks use the Python package pref_voting
. Consult https://pref-voting.readthedocs.io/ for an overview of this package.
- 01-SplitCycle.ipynb: An efficient algorithm for computing Split Cycle.
- 02-SplitCycleExamples.ipynb: All the examples from the paper.
- 03-AppendixCExamples.ipynb: All the examples from Appendix C.
- 04-AppendixDIrresolutenessData.ipynb: The code to produce the graphs in Appendix D.
- 05-Tables.ipynb: The code to generate the three tables in the paper.
All the code is written in Python 3. The notebooks use the following libraries:
- Preferential Voting Tools
- The notebooks and the pref_voting library is built around a full SciPy stack: MatPlotLib, Numpy, Pandas, numba, networkx, and tabulate
- tqdm.notebook