具有共享边界的最小连接区域的图论算法
Graphy Theory Algorithm for minimally connecting areas with shared boundaries
我有一个多个"动物笔"的加权图,每个笔至少有3个边/点和至少两个笔。为了连接所有笔,我必须计算出要移除的最小加权边(你也可以通过移除未连接到其他笔的外边缘来连接它们)。
有人能推荐一种算法或流程吗?我可以用它来找到要拆除的最小重量墙。我在考虑Prim的算法,但我甚至不完全确定如何应用它。
这是关于的问题S4http://cemc.math.uwaterloo.ca/contests/computing/2010/stage1/seniorEn.pdf
我不希望答案只是关于如何接近
你正朝着正确的方向前进。
将问题建模为无向图G=(V,E)
,其中V = { all pens }
、E = { (u,v) | there is a wall between u and v }
与w((u,v)) = cost of wall between u and v
为了"连接所有的笔",你实际上正在寻找一个子图:G'=(V,E')
,这样子图G'
就会连接[每两个节点之间有一条路径],并且E'中的墙的成本最小。
为了以最低的成本得到这个-你正在寻找最小生成树。[很容易看出,你确实需要一棵树,因为创建树后的任何额外边缘都是多余的,可以在不损害图形连接的情况下删除,或者从问题的角度来看,你可以恢复一面墙,笔将保持连接]
两种可能的算法将为您提供MST是Prim和Kruskal
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 基于ELO的团队匹配算法
- C++选择排序算法中的逻辑错误
- 有没有办法将谓词中的元素偏移量传递给 std 算法?
- C++A*算法并不总是在路径中具有目标节点
- 排序算法c++
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 算法问题:查找从堆栈中弹出的所有序列
- 下面是排序算法O(n)吗
- KMP算法和LPS表构造的运行时间
- 为什么我的排序算法会更改数组值
- 求最大元素位置的分治算法
- 是否有有效的标准算法来栅格化面,包括其内部区域
- 用于信任区域反射算法的库
- 利用OpenGL、c++实现了绕线数算法计算内外部区域
- 用于在黑白图像上查找未连接区域(岛屿)的算法
- 具有共享边界的最小连接区域的图论算法
- 包围区域算法的运行时错误
- GJK算法陷入了不同Voronoi区域情况的循环中
- 是否存在一种算法来确定二维空间中的一组点是否形成一个封闭区域