The Score Algorithm

Our Score Algorithm is designed to emphasize two criteria of 'good' districts, 1) equal population and 2) compactness (minimum perimeter). Thus, we start by giving the districting plan a score for each of these criteria, and then multiply the two scores together. After multiplying by an arbitrary constant to get the score into the hundreds, we are left with a score that is higher for good districts and lower for bad ones.

  1. Equal Population. Since blocked sweepcircles can leave parts of the state outside of any district, the player is penalized for not covering the entire state's population with districts. The population part of the score, \(R\), is just the percent of the total population that lies inside some district. A perfect score is 100%.
  2. District Compactness. Measuring district compactness is a bit more tricky. Districting plans with smaller total perimeters are judged to be more compact, and they receive higher scores. Our perimeter measuring algorithm is roughly based on these unpublished notes [Benkrid and Crookes]. We examine each pixel that is on the perimeter of a district, and then add to the perimeter, \(P\), the distance between it and each other 'perimeter pixel' next to it.

The score is intentionally not very sensitive to the equal population parameter since, it is relatively easy to formulate districts that cover the whole population. The final score calculation then, is the following formula, where \(C\) is a constant chosen to make the score user friendly:

\[\text{Score} = C\frac{R}{P}\]