Ernie P. wrote: It depends on how sophisticated you want to be (and for the record, I have a Ph.D. in particle physics). But I think one could get a fairly good algorithm coded in, say, Python with < 100 man-hours of work. It may not be optimal, but it could at least generate reasonably good districts, and allow us to test gerrymandering ideas. For example, it could answer questions like: Matt: Although you say the technical details are not the issue I won't be completely convinced until I hear more details about what optimization methodology you will be using. My guess is that this is a NP-Hard problem. Therefore, finding and using a credible minimization method is key IMO to the credibility of your results. As for the political (stability of districts across census) aspect - I think this is where using real census and map data would help. How many of the census tracts are unchanged each census? What is the distribution of road count changes for redrawn census tracts? What is the census tract size distribution? What is the distribution of road counts for census tracts? And if you want to try perimeter compactness then what is the distribution of perimeter size segments for adjoining tracts? What is the distribution of the number of neighboring tracts? etc. Then you can make up your data in accord with those distributions.