将2D阵列分为可行的总和的连续区域



我有一个浮点数的2D数组,我想将此数组分为任意数量的区域,以便所有区域的元素的总和更多或不等于。区域必须是连续的。我的意思是,应尽可能减少区域总和的标准偏差。

我之所以这样做,是因为我有与某个区域中"人口"相对应的值图,我想将该区域分为相对较平等的人群。

谢谢!

我会这样做:

1.加整个总和

2.组合质量(坐标)的本地中心

3.现在计算区域总和

  • 例如:

    region sum = whole sum / number of centers of masses
    

4.对于每个质量中心

  • 开始区域
  • 并逐渐增加尺寸,直到总和匹配区域总和
  • 避免区域的交集(为此使用一些用法图)
  • 如果区域具有所需的总和或无处可生产

您必须对此算法进行一些调整以适合您的需求和输入数据

希望它对...

有所帮助

标准偏差是衡量分区是否接近相等的方法。较低的标准偏差意味着更接近总和。

由于问题似乎是n-p,例如聚类问题,因此可以使用遗传算法来解决问题: -

  1. 标准偏差可以用作染色体的健身措施。
  2. 考虑k传染性区域,每个基因(元素)将具有维持区域传染性的k值之一。
  3. 在染色体上应用遗传算法,并在固定量后获得K的最佳染色体。
  4. k从2到n,并通过应用遗传算法获得最佳染色体。

最新更新