与某些包装问题相关,出现以下问题:
在边1的正方形内分布10个点,以使它们之间的最小距离最大化。
借助D3力布局模拟或任何其他方法,请提供此类分布的示例,包括方形和点的图形表示,以及此类分布的点之间的最小距离值。
具有最大最小距离的分布的答案赢得了#34;答案徽章"! :)
(据我所知,到目前为止这个问题无法通过纯数学来解决,所以我来这里寻求有关模拟等方面的宝贵和迫切需要的帮助。)
答案 0 :(得分:1)
TL; DR 一个最佳解决方案如下:
[{x: 0, y: 0},
{x: 0, y: 0.22222},
{x: 0, y: 0.44444},
{x: 0, y: 0.66667},
{x: 0, y: 0.88889},
{x: 0.11111, y: 1},
{x: 0.33333, y: 1},
{x: 0.55556, y: 1},
{x: 0.77778, y: 1},
{x: 1, y: 1}]
长解释:您可以将此问题解决为mixed integer program(尽管在这种情况下该名称有点误导,因为没有整数)。基本模型非常简单:
其中 P 是一组点。需要将各个点约束在单位平方内:
目标是:
对于这个问题有许多等效的解决方案,例如,您可以通过旋转方块从一个解决方案中获得另一个解决方案。为了使解决更容易,我们可以通过在点上强加一个顺序来打破一些对称性:每个点的坐标必须至少与其前一个点的坐标一样高。
这意味着我们现在可以使用曼哈顿距离而不是欧几里德,并且在计算坐标之间的差异时不必担心负数,这会消除令人讨厌的正方形:
将模型输入到您最喜爱的MIP系统中,然后出现如上所述的解决方案,点之间的曼哈顿距离最小为0.22222。请注意,正如我所提到的,您可以旋转方块以获得不同但等效的解决方案。