事实证明,这个问题已经在Math Overflow上被问到,人们认为这可能是一个难题。甚至还有一些悬而未决的基本问题,比如这样的形状是否独一无二。
所以我没有一个确切的解决方案,但希望这会让你更接近或至少给你一些想法。
背景
为简单起见,我们可以不失一般性地假设初始多边形的直径为 1。
关于磁盘多边形的 Blaschke-Lebesgue 定理的推广(M. Bezdek, 2009) 描述了许多有用的概念。相关的包括:
- 圆盘多边形是非正式的,形成一个“胖”多边形的凸集,其中边缘被曲率弧 1 替换。
- 我们可以添加到一组点D中的一组点,使得所得形状的直径最多为 1,称为 D 的对偶圆盘多边形D *。
- 对偶D**的对偶称为D的主轴凸包:它是包含D的最小圆盘多边形。
不用多边形,用圆盘多边形就足够了:我们总是可以用它的主轴凸包替换原始多边形而不改变结果。
当D的直径为 1时,我们有D ⊆ D* ,当且仅当D具有恒定宽度 1 时, D = D*。解S将具有恒定宽度 1(尽管这当然是不够的)。因此D ⊆ S当且仅当D ⊆ S ⊆ D*:特别是,要逼近S,我们只需要找到 S 的足够大的圆盘多边形子集D。这是非常强大的,因为正如我们将看到的,说某个点属于或不属于S转换为S(以及其面积)的上限和下限。
理论问题
理想情况下,要找到一种有效的算法,回答以下问题会很有用:
- 全局最优形状,即解决方案,一定是唯一的吗?
- 局部最优形状一定是唯一的吗?
- 多边形的等径外壳一定是直径为 1 的圆还是宽度为 1 的鲁洛多边形?
- 如果是这样,Reuleaux 多边形的顶点是否源自有限多个单位半径圆的交点,从原始多边形的顶点开始?
- 作为原始多边形顶点数的函数,鲁洛多边形的顶点数是否存在界限?
关于圆盘多边形面积的问题可能很困难:将圆盘分开 - 平面中的 Kneser-Poulsen 猜想(K. Bezdek, R. Connelly, 2001) 中解决的问题是关于圆盘相交面积的简单问题在很久没有解决的飞机上。
实用(?)方法
全局搜索:
从多边形的主轴凸包开始,懒惰地构建一个无限增长的磁盘多边形搜索树,其中每个节点划分满足D ⊆ X ⊆ D*的所有等宽X的集合,取决于某个点是否D* \ D的x属于或不属于X。左分支是D ∪ { x } 的主轴凸包。右分支是D* ∩ { y : x ∉ [ y , z ] 的对偶圆盘多边形Z在D } 中。
除非您选择x非常差(例如在D* \ D的边界上),否则该树的每条无限路径都应收敛到恒定宽度曲线。
这个想法是以某种广度优先的方式探索树。希望如果以合理的方式选择x,您将能够丢弃 D* 的所有分支,其中D*的面积小于迄今为止找到的D的最大面积,因为这些分支不能包含解决方案。然后,当您在树中深入时,您将拥有一组圆盘多边形,它们会收敛到问题的一组解决方案,希望不会增长太快。
x的一些启发式方法可能是:取一个尽可能靠近D* \ D内部的点,取一个随机点,等等。结合一定数量的深度优先搜索以获得更精确的解决方案区域下限也可能很有趣,这将允许更快地丢弃树的整个分支。
局部搜索:
我们也可以只使用等宽的圆盘多边形(Reuleaux 多边形),并查看小偏差的影响。但是搜索空间非常大,所以不清楚如何做到这一点。