我希望将美国 50 个州划分为n区域。划分的要求是:
- 每个状态都将被分配一个值
- 每个区域中的状态值应相加以使组总数相等(尽可能接近)。这似乎使这成为一个装箱问题的变体。
- 每个区域中的州需要在地理上进行聚类,例如,CA+OR+WA 应该聚类,即使 CA+GA+RI 产生的区域总值的标准差较小。
这篇文章提出了类似的问题。K-Means 聚类似乎有点矫枉过正,因为州只需要成为邻居,但我对统计数据很陌生。
作为旁注,我最终希望在 Ruby(它有一个 R 库插件)中实现它。
更新
集群背后的动机是为了方便旅行,因此集群紧凑性比状态邻接更重要(即应避免长、窄、串形的集群)。