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. 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.

I am most proud of fine-tuning local search techniques and adding county and municipality awareness to the Markov chains that GerryChain supports.

# pyei

Developed in collaboration with Dr. Karin C. Knudson (DISC) 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 and friends, which uses the ZDD data structure given in Kawahara and friends 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.