一、sph算法简介
1.最小代价树算法
SPH算法也叫做MPH( minimum path heuristic)算法, 用于构造时延约束最算法小代价组播树. 该算法中每 个目的结点通过与当前组播树有最小代价的路径加入组播树,直到所有的目的节点全的进入树。
最小代价树算法中最经典的算法有 3 个: KMB 算法、ADH 算法、 MPH 算法.
- KMB 算法是由 Kou 等人提出的求解 Steiner 组播树算法, 其复杂度为 O(mn2);
- ADH ( average distance heuristic)算法复杂度为 O( n3);
- MPH 算法复杂度为 O( mn2).
2.MPH算法过程
到目前为 止,从降低组播生成树的代价方面考虑,MPH 仍是 一个非常优秀 的求解 Steiner 树问题 的启发式 算法. MPH 算法基本思想如下:
- 1) 初始化组播树 T,开始时只包括源结点 s;
- 2) 从余下的目的结点中选取到树 T 具有最小 代价路径的目的结点,将该结点及其最小代价路径 加入树 T ;
- 3) 重复 2) ,直到所有目的结点加入组播树 T
3.SPH算法过程
具体包括如下几个 步骤:
- 1)运用 Dijkstra算法,以点集S(初值为源点first)计算到所有结点的最小代价路径 ;
- 2)选出目的节点中间的代价最小的minNodes;
- 3)将到点minNodes的路径上的全部节点压进点集S;
- 4)重复1