Some time in 2005 I started tinkering on working out a solver for impartial compact redistricting. There was one big false start around trying to use genetic algorithms that worked okay at zip-code level data but didn't scale up to the finest resolution Census data. Now I have two different algorithms implemented that seem to work pretty well. There was a phase of using a mesh triangulation package to fake up adjacency between census block centers, but eventually I downloaded the full geographic data with the lat,lon coordinate shapes of everything in the country and processed that to get real adjacency. I took all that geometric data and wrote my own rasterizer because other packages seemed cumbersome and inefficient when dealing with 600,000 polygons of 4-20 edges each. There was a bug in that rasterizer that went unsolved for about six years. I wrote what could have been used as a distributed client, but I only ever ran it on one computer and that turned out to be enough. I had scripts collecting the best solutions I found and had a bug in which one they presented that went undetected for around five years. I got a few shout outs from minor tech bloggers and one article in a law journal. In 2014 I got cited by a washington post blogger declaring, "This Computer Programmer Solved Gerrymandering In His Spare Time". And most recently I got invited to speak at TEDx Cambridge where I gave a ten minute talk on gerrymandering in the US and an impartial alternative.
I'm not sure what's next, but there are a few things to try before 2020.
Standard Map: 226 places* split (24.1%)
My Map: 330 places split (35.2%)
Is that bad? I'm not sure. I would like to see a distribution of that over the size of the places split. Splitting a town of 4,000 people seems unnecessary, but splitting a city of 1,000,000 is inevitable. This is to be expected, given that the pure-compactness process explicitly does not care about any boundaries and any human process would at least look at that. If an official map broke up more cities, that would have to be the result of some horrific gerrymandering.
Given that I have this data, a future step would be to alter the solver to try not to split cities and towns. I might do a in-depth study of one state, such as Ohio, and see what the tradeoff between compactness and non-splitting is. At the limit would be following the hard rules in the new Ohio law that absolutely does not split unless there is no other way to make equal-population districts.
- Competitive elections: as many districts as possible should be close to 50%/50% split between The Two Parties.
- Proportional representation: Overall, across a state or nationally, the legislative body elected should reflect the party, ideology, race, or ethnicity of the populace. For example, a population that is 20% green Martians should elect a legislature with 20% of the representatives being green Martians.
- Compactness: districts should be geometrically nice, like soap bubbles.
- Follow existing boundaries: Counties and cities should be divided as little as possible.
- Regional identity: If a group of people in an area identify as a region, this should be observed.
- Fair Algorithm: Design a process to follow that can’t be subverted.
I think it’s obvious we can’t get all of those things at the same time. I think I hear the most desire for competitive elections and proportional representation the most, and I think districts aren’t the right solution for those things.
Ohio just amended its constitution to change how state legislature districts are drawn ( http://blog.bdistricting.com/2015/12/ohio-bipartisan-redistricting.html ). Compared to the US Constitution, state constitutions are being amended all the time. I want to see a state change the whole way its smaller legislative body is elected to be an at-large, non-districted proportional representation system using Single Transferrable Vote (or another proportional representation election method). Single Transferrable Vote and related methods take in votes where people rank the candidates (1st, 2nd, 3rd, etc.). In short, try to give everyone their first-choice representative. If your first-choice candidate didn’t get enough support to qualify for a seat, maybe your second choice will. If your first choice was wildly popular, you’re part of a large faction and you might get both your first and second choice. If electing 20 seats, any group that can get together 1/20th of the vote should be able to get someone elected. A major party might run a slate of candidates and get 8 out of 20.
That’s great, but what’s a district for? A district is inherently geographical. It isn’t ideological. It isn’t racial. It can be those things if you make it that way, but a district is just a line on the map (with some people inside). To me, a district should balance the three factors of regional identity, following existing boundaries, and compactness. I don’t think there’s a hard priority to those three issues. Existing boundaries make a district easier to administer. Regional identity is important. Either of these might not divide conveniently into the right size chunks. If you can’t get those two things, draw the line compactly, if for no other reason than that it’s the opposite of the far-reaching, gerrymandering tendrils of some mapping horrors out there.
This looks like it was a hand-tuned project, and as such has one person's understandings of what regions go together naturally. In some ways, this is better than an automated solution; it may be missing the mark in some places, but overall, I think it looks really good.