创新实训团队记录 : 为BR-MTC问题设计近似算法
阅读书籍和论文
《computational complexity》
- chapter 1、2 P versus NP(季炜丹)
《approximate algorithms》
- chapter 1 Introduction 近似比、最大匹配和最小点覆盖(季炜丹)
- chapter 2 Set Cover 分层技术求解顶点覆盖问题(刘忠航)
- chapter 3 Steiner Tree and TSP 斯坦纳树和旅行商问题(孙凡雯)
- chapter 4 Multiway Cut and k-Cut 最小割和K割问题(黄舒漪)
- chapter 5 k-center k-中心问题(季炜丹)
- chapter 6 Feedback Vertex Set 反馈顶点集问题(刘忠航)
- chapter 7 Shortest Superstring 最短超串问题(孙凡雯)
- chapter 8 Knapsack 背包问题的多项式时间近似解(黄舒漪)
“A 2+ε approximation algorithm for the k-MST problem”
近似算法设计思路变化总结
算法框架
- 1). 输入:输入一个给定的加权无向图 G = ( V , E ) G=(V,E) G=(V,E) ,在图的结点中给定一个根结点 r ∈ V r \in V r∈V,并且给定一个最大的预算范围B
- 2). 初始化: V n e w = V_{new}= Vnew= { r r r}, E n e w = E_{new}= Enew= { }为空;
- 3). 重复下列操作,直到 V n e w = V V_{new}=V Vnew=V:
- a. 在集合E中选取权值最小的边 < u , v > <u,v> <u,v>,其中 u u u为集合 V n e w V_{new} Vnew 中的元素,而 v v v不在集合 V n e w V_{new} Vnew 当中,并且 v ∈ V v \in V v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);
- b.将 v v v加入集合 V n e w V_{new} Vnew中,将 < u , v > <u,v> <u,v>边加入集合 E n e w E_{new} Enew中;
- c.将集合 E n e w E_{new} Enew中的边权值相加,未超过B则返回步骤a;超过B,则将新加入的边移出集合 E n e w E_{new} Enew中,跳出循环;
- 4). 输出:使用集合 V n e w V_{new} Vnew