【问题标题】:10 points within unit circle - finding optimal distribution with D3 force layout?单位圆内的 10 个点 - 使用 D3 力布局找到最佳分布?
【发布时间】:2014-05-11 09:34:31
【问题描述】:

与一些包装问题有关,出现以下问题:

在边长为 1 的正方形内分布 10 个点,使它们之间的最小距离最大化。

借助 D3 力布局模拟或任何其他方法,请提供这种分布的示例,并提供正方形和点的图形表示,以及这种分布的点之间的最小距离值。

具有最大最小距离分布的答案将赢得“答案徽章”! :)

(据我所知,这个问题目前无法用纯数学来解决,所以我来这里是为了寻求有关模拟等方面的宝贵和急需的帮助。)

【问题讨论】:

    标签: javascript optimization d3.js simulation force-layout


    【解决方案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。请注意,正如我所提到的,您可以旋转正方形以获得不同但等效的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-21
      • 2014-02-09
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多