Distributed Dynamic Memetic Algorithm Based Coding Aware Routing for Wireless Mesh Sensor Networks

Network coding has been confirmed as a potential technology to improve performance of wireless mesh networks (WMNs); network coding has great advantages for sensor networks like minimization of communication needed to collect sensor data and error recovery. A few network coding aware routings have been proposed. However, these mechanisms detect coding opportunities through local traffic pattern checking, which hardly obtains optimal routes. This paper proposes a Distributed Dynamic Memetic Algorithm Based Coding Aware Routing (DDMCAR) for wireless mesh networks, which employs memetic algorithm to optimize routes and coding opportunities. This paper proposes an improvement over GCAR algorithm by employing memetic algorithm and also meme sharing among nodes to increase the chance of finding optimal solution and continuous monitoring and update of meme fitness to achieve a dynamic tracking of network conditions, and finally using most fit memes for load balancing elevating congestion. Through simulations on randomly generated wireless mesh networks, DDMCAR is to be shown to find optimal routes within a short time and achieve more improvements than GCAR.


Introduction
Wireless network capacity can easily be extended with little cost if access points are connected to each other using wireless links; also communication bandwidth and energy requirements can be minimized through network coding which is very important for Wireless Sensor Networks as depicted in Figure 1. Such networks are called wireless mesh networks (WMNs) [1,2]. Network coding takes advantage of the opportunistic nature and spatial diversity of the wireless medium and copes with unreliable transmissions [3], where Opportunistic Routing (OR) can greatly improve the throughput of multihop wireless network by using shared radio medium. In the Opportunity Routing protocols, all neighboring nodes closer to the target listen to probe packet and also forward the packet to the destination node as a candidate node [4]. Optimization algorithm for WMNs coding aware routing using GCAR genetic algorithms is described in [5] with simulation results showing improvement over local traffic pattern checking algorithms and over DCAR as shown in [6], where the authors describe issues related to genetic algorithms like chromosome representation, genetic operation of crossover and mutation, and fitness function considering coding opportunity and interference. In our work, we propose an improvement over the GCAR algorithm that uses memetic algorithm; the new algorithm does not terminate once finding an "acceptable" solution but instead continues to find more optimal routes and share its information (memes) among other nodes; the continuous observation and improvement enable the algorithm to handle the issue of changing network conditions; hence we propose a memetic algorithm to improve the results of GCAR by employing a local search to improve on the results of chromosomes crossover and mutations just before population reduction; this step (memetic algorithm) has shown generally considerable improvement over genetic algorithms; another improvement is to keep the optimization process running indefinitely and continuously update the QoS data collected from the WMN and use it to recalculate the fitness values for the current population, hence modifying the optimal routes through the new fitness values; another improvement is sharing of memes among node's immediate neighbors  where it can be added to the gene pool just before population reduction step resulting in continuous improvement over time and exploitation of newly discovered routes for optimizing other routes. As the algorithm requires running the process continuously over all router nodes it can be claimed that it will reduce the nodes data processing power; this issue can be mitigated by giving the route optimization process a very low priority, hence preventing it from consuming node's resources affecting node data processing power during high load periods while taking advantage of idle time. Lastly we propose using all memes in the gene pool instead of only the best one but through a stochastic process that will favor memes with high fitness over low fitness memes; this will enable the algorithm to test memes fitness in real-time and get feedback from the WMN that will be used to update each meme's fitness over time; also this will reduce congestion usually affecting optimal routes as proposed in [7] through route diversification.

Related Work
The authors in [8] first proposed the concept of network coding, and the authors in [6] proposed COPE, the first practical XOR coding system. The limitations of COPE under practical physical layer and link-scheduling algorithms were described in [9], and therefore the authors proposed the concept of coding-efficient link scheduling for practical network coding. The ETT (Expected Transmission Time) routing metric was investigated in [10]. The authors in [11] analyzed several routing metrics, including hop count, ETX, ETT, WCETT, and MIC. The authors in [12] proposed DCAR, an algorithm that is based on passing RREQ (Route Request)/ RREP (Route Reply) messages to determine the route with the highest coding gain; also it provides necessary and sufficient conditions for opportunistic network coding, hence allowing opportunistic coding for more than two packets; simulation showed that it produces higher throughput compared to previous algorithms. In [13], the authors proposed improvements upon HWMP with a new network coding aware routing protocol (CAHWMP) for WMN. The authors in [14] proposed a network coding aware queue management scheme (NCAQM) at intermediate nodes whereas the authors in [15] proposed an efficient error recovery scheme that couples network coding and multipath in underwater sensor networks. Analysis and simulation results confirm that the scheme is efficient in both error recovery and normalized energy. The authors in [16] presented partial network coding (PNC) as a generic tool for storage restricted continuous data collection sensor network applications. PNC generalizes the existing network coding (NC) paradigm. The authors in [5] proposed a genetic algorithm based coding aware routing (GCAR) for wireless mesh networks; GCAR is an improvement on DCAR, which employs genetic algorithm to optimize routes and coding opportunities using genetic algorithm. In addition, the key ingredients in GCAR, for example, chromosome representation, genetic operation of crossover and mutation, and fitness function considering coding opportunity and interference, are formalized and used in this paper. Through simulations on a randomly generated wireless mesh network, GCAR is shown to find optimal routes within a short time and achieve more improvements than the previously proposed methods on route setup time, throughput, and load balancing. A new algorithm to overcome congestion problem that faces WMNs due to the abrupt use of single path due to its optimality was proposed in [7]. In this algorithm priority based selection mechanism for the paths is adopted which can ensure the performance of the network; simulation results shows reduced congestion.

The Proposed Method for Distributed Dynamic Memetic Coding Aware Routing
We propose a new coding aware routing algorithm, Distributed Dynamic Memetic Algorithm Based Coding Aware Routing (DDMCAR), that improves the coding gain and throughput while reducing the route setup time; the algorithm ( Figure 4) is described in the following sections.

Memetic Algorithms.
Memetic algorithms are a variant over genetic algorithms where a local search step is used after the crossover and mutation steps to improve upon the resulting chromosome, this technique generally produces better solutions and faster convergence, hence using memetic algorithm for routing in WMNs should give better results over GCAR algorithm.

Local Search.
The algorithm employs a local search algorithm that attempts to improve the solution just after crossover and mutation steps (Figures 2 and 3); the local search algorithm will (1) inspect all links in the route and attempt to add a common neighbor node if it improves the fitness of the meme; (2) try to remove links from the route that do not contribute to meme fitness; (3) repeat steps (1) and (2) until no further improvement is possible.

Initializing Nodes Population.
Once a node starts it will contact its immediate neighbors and collect all available memes; the node will combine these memes with available QoS data (or a prior) to generate local memes with new fitness values, the node immediately performs population reduction keeping only a population of the fittest memes.

Meme Sharing.
It is more probable to find better routes by running memetic algorithms in parallel (one per node) on subpopulations and share only newly discovered memes that survived population reduction and improved fitness with the nodes immediate neighbors; once a meme is received it will be combined with the extra link with the sender node and the memes fitness is recomputed; then memes are added to the local population just before the population reduction step; if the newly added meme survives the population reduction step, it will be used in crossover with the rest of the population, hence adding to the diversity of the gene pool, making it more probable to reach improved solutions.

Continuous Optimization.
If network topology and conditions do not change a node's local population will reach an equilibrium after some time, but if network topology changes by adding or removing nodes or by node movement or by change of network conditions like noise or interference, that could reduce a link throughput; hence the changes will be captured locally and incorporated in the meme fitness or by creation of new memes (for new nodes); then the updated memes are transmitted to immediate neighbors; hence the new knowledge is propagated to all nodes that will benefit from the new knowledge; over time the change in network topology or conditions will result in the creation of new memes that will make use of new routes or abandon less fit routes. This enables the WMN to respond to changes faster and maintain dynamic routing optimality.

Congestion Control.
Usually using one optimal path to transmit introduces the problem of congestion; hence by diversification of routes traffic is divided on multiple routes. Author in [7] described an algorithm where best routes are prioritized according to optimality and the sender node chooses to send traffic by stochastically alternating between them, hence less probability for congestion; we propose to have a similar solution to the congestion problem by allowing the node to choose stochastically between best routes with a probability proportional to the fitness of each route (meme). memes at the source node that traverse the network from source to destination nodes; memes are constructed randomly using the network topology (based on network state database (NSB)) and the heeling function; if there is already a route to destination existing in the meme pool go to step (2).

Algorithm Description
(2) Perform several cycles of memetic optimization on the destinations meme pool.
(3) Select a meme randomly from the destinations meme pool with probability equal to the ratio of its fitness value to the total fitness of all the memes of that destination.
(4) Use the route associated with selected meme for sending the message.
(5) Upon receiving a meme from a neighbor add the link between the current node and its neighbor to beginning of the route producing a new meme and use the healing function to remove loops; if the meme does not already exist in the meme pool, then add the new meme to the meme pool of the destination.
(6) Perform memetic optimization for all destinations while node is idle (the percentage of idle time used by this step can be configured to reduce power consumption).
(7) If step (2) or (6) produces a new meme with higher fitness value, share that meme with immediate neighbors.
(8) When sending a new message go to step (1).
(9) When receiving a new meme go to step (5).
(10) While idle go to step (6).  802.11b MAC layer with CD and pseudoacknowledgments and performance are measured and compared to GCAR and DCAR performance on the same network as a reference; the number of chromosomes in GCAR population is 100 while DDMCAR meme population has only 5 memes (since the algorithm will take advantage of continuous optimization and meme sharing a smaller number of memes can be used); also less than 1% of the processor idle time was used for continuous optimization assuring that more than 99% of processing time is reserved for other tasks. Figure 5 shows MCAR consistent increase in throughput over GCAR. This is due to the local search step in the memetic method that enhances the result of the genetic method and very big enhancement over DCAR; this is due to MCAR, the memetic local search step finding paths with lower queue size; this leads to both lower congestion and more utilization and throughput.

Performance Evaluation
In Figure 6, MCAR shows more delay at lower loads as it focuses more on coding gain optimization over delay; GCAR has the same tendency but its delay is smaller; this is due to MCAR achieving higher gain paths that are longer; all algorithms show lower delay as the load is increased; this is due to interference preventing selection of longer routes.
In  compared to MCAR and GCAR, hence we resorted to log scale to show the comparison.
In Figure 8, MCAR shows a considerable decrease in route setup time (5-fold) compared to GCAR; this is due to saving the memes for future use and because of continuous optimization which make the memes keep up with the changing network conditions and also to meme sharing which expedites finding more optimal paths; hence MCAR does not need to spend too much time setting up the route, while GCAR has to start rout setup from scratch every time.
In Figure 9, MCAR shows an increase in transmission time over GCAR which is consistent with higher throughput, leading to MCAR consuming more power for data transmission.
In Figure 10, there is almost a mirror of the Avg Transmission Time graph; this is due to MCAR spending more time listening to data transmission.
In Figure 11, MCAR increased coding gain efficiency leads to more interference, hence spending more time on collision detection.
In Figure 12, MCAR shows increased queue time trend with increase of load; this is due to higher arrival rate with increased load and consistent with higher throughput.
In Figure 13, MCAR shows a decreasing congestion trend with increase in load due to congestion control mechanism proposed through stochastic route diversification along with more efficient congestion avoidance (in the fitness function) due to the memetic local search step that produces more efficient congestion avoidance.
In Figure 14, MCAR shows lower retransmission rate over GCAR; this is due to MCAR avoiding interference more  efficiently through the local search step in the memetic method performed after the genetic method, hence giving higher coding gain and lower interference routes.

Conclusions
Our proposed method (MCAR) shows increase throughput over GCAR and DCAR; also it shows considerably lower route setup time and lower congestion than GCAR, yet MCAR shows higher end to end delays at lower loads due to overoptimization of coding gain leading to longer routes; this can be improved by introducing route length in the memetic algorithm cost function, but with lower cost as the load increases.
The memetic optimization method showed increased performance in coding gain and in reduced interference.
Meme sharing and continuous optimization resulted in considerably faster route setup time; the continuous optimization cost was less than 1% of the processing time, which is an acceptable cost for such increase in performance.
Also stochastic route diversification showed lower congestion.