【问题标题】:Merging two Convex Hulls with minimum perimeter合并两个具有最小周长的凸包
【发布时间】:2021-11-26 12:17:13
【问题描述】:

假设我们在平面上有两个(或更多)凸包,我们想要合并它们。但凸包结果具有最小周长。有没有可用的算法?

【问题讨论】:

  • 凸包是唯一定义的。实际上,它是包含相关点的所有凸集的任意交集。因此,没有“最小”或“最大”周长。
  • 有点牵强,但我认为帖子可能要问的是:给定 2 个以上的凸包,确定如何覆盖它们以使它们形成的凸包具有最小周长。换句话说,点的位置仅相对于同一凸包中的其他点定义;不是全球性的。
  • “但是凸包结果有最小周长”:你为什么这么说呢?

标签: algorithm merge computational-geometry convex-hull convex


【解决方案1】:

你可以在两个凸包的边界点上运行任何优化的凸包算法,你应该得到一个覆盖之前两个凸包的新凸包。为了保持凸属性,将有一个唯一的结果凸包,因此最小周长不应成为约束。

【讨论】:

    【解决方案2】:

    将所有 K 船体拆分为上下船体。现在你有 2K 排序的顶点序列。使用 K-way 合并分别合并上下序列。这是在 O(N log(K)) 时间内完成的,其中 N 是顶点的总数。

    现在两次 Graham 扫描在 O(N) 时间内给出了全局船体。

    [这是对单调链算法的改编。]

    【讨论】:

      猜你喜欢
      • 2013-10-09
      • 2011-03-06
      • 2012-11-09
      • 2019-01-26
      • 2019-02-23
      • 1970-01-01
      • 2013-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多