research projects

go back ↰

# gerrychain
# pyei
# enumerating graph partitions

# gerrychain

I have been a long-time and active contributor to GerryChain, a Python library that uses Markov chain Monte Carlo (MCMC) sampling to build ensembles of political districting plans. In particular, I have worked on fine-tuning local search techniques, and added county and municipality awareness to our Markov chains. I’m proud that our software has been used extensively in recent legal cases concerning partisan and racial gerrymandering. In particular, GerryChain was used in Allen v. Milligan, where the Supreme Court struck down Alabama’s Congressional districting plan for violating Section 2 of the Voting Rights Act.

# pyei

Developed in collaboration with Dr. Karin C. Knudson and Dr. Amy Becker, PyEI is a Python package for ecological inference and ecological regression. We developed this tool with two goals in mind:

In conjunction with GerryChain, PyEI has been used in several legal cases after the 2020 redistricting cycle, including Allen v. Milligan.

# enumerating graph partitions

I’m deeply interested in the empirical validation study from Fifield et al, which uses the ZDD data structure given in Kawahara et al to compactly express all connected, population-balanced partitions of a given map graph. I’ve worked with Dr. Amy Becker and Bhushan Suwal on a Julia implementation of the “enumpart” algorithm, which can help us better understand the districting state space for “toy” problems and help us benchmark modifications to our Markov chains.