2017-11-27

Brown CS k-means Redistricting

K-Means redistricting at Brown U
https://news.brown.edu/articles/2017/11/redistricting

I tried this 10 years ago and it's fast and simple but it isn't good enough.

The solver in the article seems to completely ignore existing boundaries including the boundaries to which the Census has actually counted data called 'blocks' (sometimes a city block, sometimes an empty square mile of Montana). If they're assuming that population is fungible and uniformly distributed within a Census block I think that's invalid. My k-means solver drew those nice straight lines but then assigned whole blocks based on whether the center of the block was one side of the line or the other. All the districts thus had ragged edges.

Because the k-means algorithm has very few data points to fiddle (district center, district weight) it can't find complex solutions. When I ran a k-means solver it couldn't find districts with close enough to equal population in a few places.

I eventually went with a solver that considered one at a time each block on a border of two districts to see if a block would be better moved to the other district. That kind of detail and flexibility made maps that weren't as ideally simple, but still had good compactness, had much better equal-population constraint satisfaction, and should be much more workable for observing the same Census blocks that existing redistricting is done on.

3 comments:

  1. It has fully emerged to crown Singapore's southern shores and undoubtedly placed her on the global map of residential landmarks. I still scored the more points than I ever have in a season for GS. I think you would be hard pressed to find somebody with the same consistency I have had over the years so I am happy with that. 먹튀검증

    ReplyDelete
  2. I like to read this type of blog.This is really helpful and informative for me.If you are looking to buy an online send flowers to karachi service at a cheap rate turn out giftinday.com.They will provide you the better feedback and response.

    ReplyDelete