我有一个浮点数的二维数组,我想把这个数组分成任意数量的区域,这样所有区域元素的总和大致相等。这些地区必须是连续的。尽可能相等,我的意思是应尽可能减少区域总和的标准偏差。
我这样做是因为我有一个与某个地区的“人口”相对应的价值图,我想将这个地区划分为相对平等的人群。
谢谢!
答案 0 :(得分:0)
我会这样做:
1.计算全部金额
2.计算当地质心(坐标)
3.现在计算区域总和
例如:
region sum = whole sum / number of centers of masses
4.对于每个质心
您必须稍微调整此算法以满足您的需求和输入数据
希望它有点帮助...
答案 1 :(得分:0)
标准偏差是衡量分歧是否接近相等的方法。较低的标准偏差意味着总和越接近。
由于问题似乎与群集问题类似,因此可以使用Genetic algorithms来解决问题: -
- 标准偏差可用作染色体的适应度量。
- 考虑k个传染性区域,然后每个基因(元素)将具有保持区域传染性的k值之一。
- 在染色体上应用遗传算法,并在固定的世代后获得k值的最佳染色体。
- 将k从2变为n,并通过应用遗传算法获得最佳染色体。
醇>