Research Article

Energy Efficiency Performance Improvements for Ant-Based Routing Algorithm in Wireless Sensor Networks

Algorithm 1

IEEABR algorithm pseudocode.
Function 1: Initialization
 //Function: Initialization
 //prototype of Procedures
 Next-Hop-Selection;
 Calculate-Pheromone;
 //initialize the global variable
 S = Source ID;
 //initialize probability distribution table
= Number of nodes in network;
= the set of neighboring nodes of node ;
;
dp = distribution probability;
[ ][dp] = Source probability distribution table;
; // is the probability of jumping from node to node
//Initiate the routing table
For ( ; ; ){
[dp]· ;
D = Destination ID (sink ID);
FA [S, M , D] = forward ant [source ID, memory of forward ant, Destination ID];
Ph = amount of Pheromone;
= initial energy;
 BA [S, M , Ph, D] = Backward Ant [Source ID, Memory of backward ant,
   Pheromone value, Destination ID];
= visibility array;
= Intermediate node ID;
Function 2: Decision making
//If the intermediate node is equal to the destination node,
   then calculate the pheromone and construct the backward ant
L1:   If ( )
      Calculate-Pheromone;
      Construct the BA [S, M , Ph, ];
L2:       Next-Hop-Selection;
         If ( )
      Eliminate BA [ , M , Ph, ];
           //update the routing table
          
          
             = number of visited nodes by the backward ant
         
         Goto L3;
        Else
         Goto L2;
     Else
      Next-Hop-Selection;
      Goto L1;
L3: End
Function 3: Next hop selection
//procedure Next-Hop-Selection
Proc Next-Hop-Selection {
     = next Intermediate node
     = actual energy;
     = Number of nodes;
     = visibility of ;
     = ;
     ;
     = pheromone routing table;
     = probability of jump to s as a next hop;
    
    
     = ;
     = number of neighbors which are located in the destination direction;
     = array for storing probability amount of neighbors;
     ;
     = 0;
     For ( ; ; ++){
          If ( )
          ;
     }
     ;
     If ( ·FA)
          Loop happens then eliminate FA;
     Else
          {LastV= Count the member of M ;
           If (LastV = 2)
               Delete M[i];
               ;
               ;
          }
 }
Function 4: Update of source probability distribution table
//update the source probability distribution table
For ( ; ; ++){
     Check the RoutingTable · S;
     Find nodes which could be simultaneously Then
          = ;
          Update [dp]· ;
     For other neighbor
          = ;
          Update [dp]· ;
     //check the link failure
     If ([dp]· ) //it means the link is lost
     {
          ;
          );
         Update [dp]· ;
     }
}
Function 5: Pheromone calculation
// procedure Calculate-Pheromone
Proc Calculate-Pheromone{
     Min. ;
     Avg. ;
     = number of visited nodes by forward ant
     ;
     BA·Ph
}