Installation
Using pip:
pip install abcvoting
Latest development version from source:
git clone https://github.com/martinlackner/abcvoting/
pip install .
Requirements:
Python 3.8+
The following pip packages are required and installed automatically: gurobipy, mip, networkx, numpy, ruamel.yaml, preflibtools, and prefsampling.
Optional requirements:
gmpy2: Some functions use fractions (e.g., compute_seqphragmen). These compute significantly faster if the module gmpy2 is available. If gmpy2 is not available, the much slower Python module fractions is used.
pip install gmpy2
ortools: Ortools can be used as an alternative solver for some ABC voting rules (Monroe, CC, Minimax AV). Advantage: open source, faster than CBC. Disadvantage: not as reliable as Gurobi (proprietary).
pip install ortools
Gurobi (gurobipy): Most computationally hard rules are also implemented via the ILP solver Gurobi. The corresponding functions require gurobipy. While gurobipy is installed by default (together with abcvoting), it requires a license to solve larger instances (academic licenses are available). If Gurobi is not available, the open-source solver CBC is a slower alternative (that is installed automatically as part of mip).
Developer tools (unit testing, etc):
pip install .[dev]