Skip to content

Python tools for visualizing and generating examples of "circular societies" in approval voting.

Notifications You must be signed in to change notification settings

tiasondjaja/circular_societies

Repository files navigation

Circular Societies Visualization Tool

Kristen Mazur, Mutiara Sondjaja, Matthew Wright, and Carolyn Yarnall

This github repostory contains a set of python tools for visualizing and generating examples of "circular societies" in approval voting.

Try online: examples-Google_Colab.ipynb Open In Colab

Contents

  • Background
  • The circularsocieties module
    • Documentation
    • Requirements

Background

The development of this tool is motivated by the following papers, which study approval voting in a mathematical context.

  • Deborah E. Berg, Serguei Norine, Francis Edward Su, Robin Thomas, and Paul Wollan. "Voting in agreeable societies." The American Mathematical Monthly 117, no. 1 (2010): 27-39. [link]
  • Christopher S. Hardin, "Agreement in circular societies." The American Mathematical Monthly 117, no. 1 (2010): 40-49. [link]
  • Kristen Mazur, Mutiara Sondjaja, Matthew Wright, and Carolyn Yarnall. "Approval voting in product societies." The American Mathematical Monthly 125, no. 1 (2018): 29-43.[link]
  • Francis Edward Su and Shira Zerbib. "Piercing numbers in approval voting." Mathematical Social Sciences 101 (2019): 65-71. [link]

The circularsocieties module

Documentation

Requirements

  • numpy (for linear algebra computations)
  • matplotlib (for plotting/visualization)
  • cvxpy (for computing piercing numbers via integer programming)
  • cvxopt (allows cvxpy to use the open source mixed-integer program solver 'GLPK_MI')
  • itertools (for generating combinations of k objects from a collection of m objects)

About

Python tools for visualizing and generating examples of "circular societies" in approval voting.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published