[论文解读] Convex Covering Using Collections of Convex Polygons and Set Cover
本文提出了一种用于凸覆盖问题的两阶段启发式方法,即使用最少数量的凸多边形来覆盖带有孔洞的多边形。首先通过改进的Bron-Kerbosch算法或基于约束Delaunay三角剖分的随机膨胀法生成大量极大凸多边形,然后通过整数规划与模拟退火结合迭代生成约束的方法求解集合覆盖问题。该方法在CG:SHOP 2023挑战赛中获得第二名,对各类多边形实例均生成了高质量解。
In the convex covering problem, we are given a convex polygon with holes $P$ and the goal is to cover $P$ using a small number of convex polygons that lie inside $P$. In this paper, we solve the problem using the following strategy. We find a big collection of large (often maximal) convex polygons inside $P$ and then solve several set cover problems to find a small subset of the collection that covers the whole polygon. The quality of our heuristics is confirmed by winning the second place in the CG:SHOP 2023 Challenge.
研究动机与目标
- 为解决NP难的凸覆盖问题,最小化覆盖带孔多边形所需的凸多边形数量。
- 开发一种高效方法,用于在输入多边形内部生成大量极大凸多边形集合。
- 通过迭代约束生成与混合优化技术,有效求解由此产生的集合覆盖问题。
- 在包括正交多边形与带孔多边形在内的多样化多边形实例上实现具有竞争力的性能,如在CG:SHOP 2023挑战赛中所展示的。
提出的方法
- 通过在多边形顶点的可视图上应用改进的Bron-Kerbosch算法,构建一组大尺寸凸多边形C。
- 或通过约束Delaunay三角剖分的随机膨胀方法生成集合,以确保覆盖范围与可扩展性。
- 使用带动态生成约束的整数规划求解集合覆盖问题,迭代覆盖未覆盖区域。
- 采用带温度调度的模拟退火算法探索解空间,并在困难实例上改进整数规划解。
- 通过合并独立运行所得解,迭代优化集合,形成更全面的候选解集。
- 使用顶点见证与基于点的约束检测未覆盖区域,引导求解器实现完全覆盖。
实验结果
研究问题
- RQ1能否通过基于可视性的枚举方法,高效地为带孔多边形枚举出大量多样化的极大凸多边形?
- RQ2不同的集合构建策略——Bron-Kerbosch与随机膨胀——对最终解的质量与可扩展性有何影响?
- RQ3迭代约束生成与混合优化(整数规划 + 模拟退火)在求解凸覆盖的集合覆盖阶段有多高效?
- RQ4对于具有u个顶点的多边形,其V-极大凸多边形集合中边的数量是否存在次二次时间复杂度的上界?
- RQ5将多个独立运行所得解进行合并,是否能显著提升最终凸覆盖的质量?
主要发现
- 该方法在CG:SHOP 2023挑战赛中获得第二名,在206个实例中的128个上优于其余21支队伍。
- 使用4次复制的约束Delaunay三角剖分进行集合生成,所得解质量几乎与Bron-Kerbosch方法相当,但对所有实例规模均展现出更好的可扩展性。
- 在小型实例上,模拟退火所得解仅略逊于整数规划,但在大型奶酪型实例上显著更优。
- 通过合并多个独立运行所得的高质量解,形成更优的候选集合,使最终解的规模相比单次运行集合减少高达10%。
- 约束生成过程的迭代次数通常较少,表明在见证需求方面可能存在理论上的上界。
- 对于无孔多边形,V-极大凸多边形的枚举等价于可视图中最大团的枚举,但该类多边形的高效枚举算法仍是开放问题。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。