1、运筹学里面一般提到:加边法(避圈)和破圈法
2、不知道数学模型怎么表达。看例子:
分析:主要看约束怎么表达。
第一;边的个数和是点的个数-1,就是不能成圈;
第二:每个圈小于等于边的个数-1;
3、知道有两种算法:prim(普里姆)和Kruscal (克鲁斯卡尔)两种算法。
不知道分别对应上面的哪个?
参考 https://zhuanlan.zhihu.com/p/136387766
我觉的这个将的比较好!
4、prim的思路:加边法? 每次找一个最短的边加入,当然要注意标记点和未标记点的集合问题,好像和最短路的dikstra的很像。临时加一下区别,看图:
听说,Prim算法适合用于边稠密度高的连通网,也就是说,点不多,边比较多的连通图;这样,计算步骤不会太多?
5、Kruscal的思路:这种方法不是破圈法?不是,还是加边法,和书上的加边法一样。但是,这种加边,和prim的不一样的啊。这种加边,是把所有的边罗列重来,然后排序,进行挑选,找最小的加边,这个和书上的加边法是一致的。所以,边少的比较好用这种方法,快点。
6、因此,手动求解的时候,还是用加边法吧,破圈有点不可靠啊,特别是边太多了,要命啊。