mggg / VoteKit

A Swiss Army Knife for computational social choice research
https://votekit.readthedocs.io/en/latest/
MIT License
10 stars 12 forks source link

V2.0.0 #121

Closed cdonnay closed 6 months ago

cdonnay commented 6 months ago

Pull request for v2.0.0 of votekit. We break backwards compatibility here, and hence raise the version number.

  1. We implement MCMC sampling for both Bradley-Terry models to allow for sampling with larger numbers of candidates.
  2. We construct two classes of ballot generators; name and slate. We deprecate PL and BT to name_PL and name_BT.
  3. We add a name_Cumulative ballot generator which generates cumulative ballots in the name style.
  4. We generally improve the speed of different ballot generators as well as the ballot class.
  5. We implement a PreferenceInterval class to handle common uses of preference intervals.
  6. We change pref_interval_by_bloc to pref_intervals_by_bloc. This is now a dictionary of dictionaries, where the both sets of keys are the blocs, and the values of the sub-dictionaries are PreferenceInterval objects. The slate models require that we sample from the uncombined PreferenceInterval objects, while the name models require that we combine the PreferenceInterval objects using cohesion parameters.
  7. We change the mds plot functionality to allow users access to the underlying coordinates. This avoids having to recompute each time. We also add a random seed.
  8. We update the documentation.