演化路由算法框架的流程图如下图所示:
 图8 演化路由算法的框架流程图 那么,演化路由算法被定义如下: Algorithm EvoRoutCompute. //演化路由计算 BEGIN evoTime = 0; //演化代数 geneSet = NIL; //成熟基因集合 bestGeneSet = NIL; //较好基因集合 halfGeneSet = NIL; //基因缓冲集合 While ( evoTime < MAX_EVOTIME ) {// While ( geneSet.geneNumber < MAX_GENE_NUMBER ) {// Gene-Init; While ( gene IS NOT COMPLETE ) { // gene成长至成熟 Gene-Builder; If ( Gene-DECOMPLETE ) Gene-RANDOMDELETE; }; geneSet.AddRear( gene ); }; geneSet.Sort(); best = geneSet.GetBest(); bestGeneSet.AddRear( best ); geneSet.RemoveHalf(); /*在第二草稿的演化路由算法中,以下注释部分没有程序实现, 从而geneSet中的一半基因没有进一步演化直接进入下一代的竞争. While ( geneSet.geneNumber > 0 ) { gene = geneSet.GetFirst(); geneSet.RemoveFirst(); Gene-Evolution; halfGeneSet.AddRear( gene ); };
While ( halfGeneSet.geneNumber > 0 ) { gene = halfGeneSet.GetFirst(); geneSet.AddRear( gene ); halfGeneSet.RemoveFirst(); }; ***********************************************/ }; bestGeneSet.Sort(); BEST = bestGeneSet.GetBest(); 返回BEST; END. 由返回的BEST,便可以获得一个好的路由路径,进而可以得到路由器的路由表。演化路由算法the EvoRoutCompute Algorithm (第二草稿)的设计过程中借鉴了参考资料[3]的诸多思想,并已经通过C++编程实现,其后我们将通过实验数据来看算法的效率和可能的进一步改进处。

|