Page 168 - 《软件学报》2021年第8期
P. 168

2450                                   Journal of Software  软件学报 Vol.32, No.8,  August 2021

                 其他组员加入后,当前的宣布离开的组员才会真正地离开,或者等整个切换机制即第 9 步完成以后,真正地离开
                 当前组.
                    第 4 种算法,组主切换如算法 4 所示.
                    算法 4.  组主切换.
                    输入:GONodeSet;GMNodeSet.
                    初始化:TempGONodeSet←GONodeSet.
                    BEGIN
                    1.   reset GONodeSet;
                    2.    rank the consumption of GMNodeSet;
                    3.   for i=0 to the length of TempGONodeSet do
                    4.      Choosing the node from GMNodeSet[i][⋅];
                    5.      if GMNodeSet[i][⋅] wants to be GO then
                    6.         update GONodeSet, GMNodeSet and group size;
                    7.         continue;
                    8.      else
                    9.         choosing next node;
                    10.     end if;
                    11. end for
                    12. for i=0 to the length of GONodeSet do
                    13.     for i=0 to each group members in GMNodeSet do
                    14.        NodeSwitch(GONodeSet[i],GMNodeSet[i][j]);
                    15.     end for
                    16. end for
                    17. return 0;
                    END
                    在算法 4 中,使用 NetConfiguration 作为算法 4 的函数名.它拥有两个参数:GONodeSet 和 GMNodeSet.算法
                 4 每 10min 被调用一次.当被调用以后,为每一组选择下一任组主,该算法是作为组主切换.当被调用时,初始化一
                 个临时的组主数组 TempGONodeSet,并把目前的组主序列 GONodeSet 赋予 TempGONodeSet.随后,算法重置
                 GONodeSet 的序列为空,然后开始将每组的组员消耗开始进行排列.从 TempGONodeSet 的第 1 个组主开始,首先
                 从各自的组员中选择消耗最低的组员.如果选择的组员想成为新组主,开始更新组主、组员列表以及组大小,随
                 后从当前组的循环跳出,开始下一个组的循环.如果当前被选择的组员不愿意作为新组主,则选择下一个成员.
                 当所有的新组主被选择完毕以后,从新组主的第 1 个组主开始,剩下的组员中选择是否加入当前组主,每次选择
                 完成以后,都需要更新所有的数组以及组大小.
                 4    实   验


                 4.1   实验设置
                    在实验过程中,为了清楚地观察到不同组大小下的性能差异,节点被直接按照组大小分为若干个组,在实验
                 过程中,可能会出现不同组大小的现象.例如,当组大小为 6 时,有 8 个组大小为 6 的组,有一个组大小为 2 的组.
                 因此,进行性能评价时,本文按照当前网络的平均组大小进行评价.运行实验时,将运行两个实验,分别是:a.  禁用
                 节能机制;和 b.  启用节能机制.其中,禁用节能机制中将会作为对照组.除了禁用节能机制外,两个实验中,除了发
                 射功率,其他设置完全一样.对于提出的节能机制,每 10min 进行一次组主切换,组员切换和功率调控则实时控
                 制.在节能机制禁用时,其发射功率被设置为 20dBm,这是正常用户使用时的默认值                          [25] .当节能机制启用并且组
   163   164   165   166   167   168   169   170   171   172   173