[EM] "An impractical suggestion for redistricting", redux

Kristofer Munsterhjelm km-elmet at munsterhjelm.no
Wed Oct 23 14:03:38 PDT 2024


In June 2022, I wrote a post about a way to optimally assign people to 
districts as long as the district centers are known beforehand.

Let the "region" be the area to be districted.
Then for notation let centerx_i and centery_i be the ith district's 
center x and y coordinates respectively; let pop[x, y] be the population 
at coordinates (x,y), and let tpop be the total population. The 
algorithm is to essentially solve the following linear problem:

minimize sum over coordinates x,y in the region:
	sum over districts i = 1..n:
(1)		assign[i, x, y] * dist^2(centerx_i, centery_i, x, y)

subject to
(2)	for all i, x, y: 0 <= assign[i, x, y] <= 1
(3)	for all i: (sum over x, y: assign[i, x, y] * pop[x, y]) = tpop/n
(4)	for all x, y: (sum over i: assign[i, x, y]) = 1



(1) says: minimize the total squared distances between each point x,y 
and the assigned district's center. assign[i, x, y] is a free variable.

(2) says: a point can at worst be 0% claimed by a district, at most 100%.

(3) says: each point has to be assigned to *some* district.

According to the paper I referenced in 2022, 
https://arxiv.org/pdf/1901.04628.pdf, if pop[x,y] is binary for every 
x,y, then the assignment weights will also be binary, i.e. every point 
definitely belongs to one of the districts.

I then concluded that for practical regions (states), the number of 
points would be so large as to make this impractical.

But I just had a thought: it seems that if we work on a coarser scale 
(e.g. each point being a rectangle), then the solution would contain 
definite points as well as mixed points; mixed points being ones where 
assign[i, x, y] is neither zero or one, and definite points being binary 
assign[i, x, y] points.

Then any point definitely assigned to a district, and surrounded by 
points also definitely assigned to that district, is known to belong to 
that district. (This because if the true boundary between district A and 
B cuts through a square, then some adjacent square next to it, closer to 
A, would belong at least partially to A, and an adjacent square closer 
to B would belong at least partially to B.)

So we should be able to run this program on a coarse map, exclude large 
fractions of that map, then refine to a higher level of detail along the 
boundaries, rinse, and repeat. The total size of the linear programs 
should then, hopefully, be manageable.

To find a reasonable districting, we could try with just random centers. 
Doing a k-means update would be pretty tough for general distances, but 
I imagine it could be done for the Euclidean distance.

This is mostly for fun, since, as I also said back in 2022, algorithmic 
districting is probably an answer to the wrong question, with PR being 
the proper way to do it.

Maybe I should test it one day - just for fun. I would have to dig up 
maps and population distributions for the states of the US, though.

-km


More information about the Election-Methods mailing list