Research on Innovating, Applying Multiple Paths Routing Technique Based on Fuzzy Logic and Genetic Algorithm for Routing Messages in Service - Oriented Routing

MANET (short for Mobile Ad-Hoc Network) consists of a set of mobile network nodes, network configuration changes very fast. In content based routing, data is transferred from source node to request nodes is not based on destination addresses. Therefore, it is very flexible and reliable, because source node does not need to know destination nodes. If We can find multiple paths that satisfies bandwidth requirement, split the original message into multiple smaller messages to transmit concurrently on these paths. On destination nodes, combine separated messages into the original message. Hence it can utilize better network resources, causes data transfer rate to be higher, load balancing, failover. Service Oriented Routing is inherited from the model of content based routing (CBR), combined with several advanced techniques such as Multicast, multiple path routing, Genetic algorithm to increase the data rate, and data encryption to ensure information security. Fuzzy logic is a logical field study evaluating the accuracy of the results based on the approximation of the components involved, make decisions based on many factors relative accuracy based on experimental or mathematical proof. This article presents some techniques to support multiple path routing from one network node to a set of nodes with guaranteed quality of service. By using these techniques can decrease the network load, congestion, use network resources efficiently.


Introduction
In the SBR routing, the sender does not indicate message's receiver by the unicast or multicast use.Instead, it simply pushes messages to the network.It defines the routing based on the messages it carries.It determines the appropriate message class based on message content based on its keyvalue pairs or regular expressions.Therefore, in SBR routing the receiver determines the transmission of messages, not by the sender.Communication based on content services increases the independence, flexibility in the distributed architecture.In order to perform service based routing, we have to organize data into messages, there are some message types will be constructed.That are: 1. Subscription/ unsubscription message: In order to register/ unregister node's requested content.
2. Content message: for publishing node's content.3. Advertisement message: Use this message to advertise node's content, direct subscription from subscribers to match publishers, avoid flooding subscription all over the networks.When a node needs to advertise its content: (i) Make an advertisement message; (ii) It will broadcast this content advertisement message to the network.(iii) It's content advertisement will be cached with nodes of the network.
4. Update request and reply sender message pair: in order to update the routing table of content based routing protocol.By using minimum spanning trees to forward data from source node to a set of destination nodes in the service based routing.To maintain this multicast tree, the source node periodically has to send an update request message to destination nodes.When the destination node receives this request, it will reply with a reply sender message.
5. Route request and route reply message pair: in order to detect routes (network topology), We use a pair of messages: route request and route reply message.When We want to forward data from one source node to a set of destination nodes in the case of transmitting matched content to subscribers.We have to build a multicast tree with the root is the current node, leaf nodes are destination nodes.We have to make update request message, broadcast this message to the network.When this message reaches destination nodes or forwarding nodes that have up-to-date route information, a reply message is created to send to the source node.After specified time-out the source node has received enough route information from destination nodes to the source node.We use these received routes to build multiple paths by using some techniques below.

Multiple Paths Routing
Routing process is the process to find some routes from a source node to one or more destination nodes.In order to build multiple path routing, in this paper mention the clustering technique based on fuzzy logic.When many paths exist between a pair of source and destination nodes, use the genetic algorithm to find the optimal path.

Multiple path routing model
Assume network is defined by a weighted graph G(T)={V(T), L(T)}, V(T) and L(T) are vertex and edge sets.Divide network into n clusters: G = { 1 ,  2 , …,   }, in each cluster   use an inner routing protocol to find the set of routes: RS = { ,1 ,  ,2 , …,  , },  , is the route set between the cluster head CH and a node member i.So in order to find routes between two nodes (p, r) that belong to two clusters (  ,   ), use the formula: Where x is the Descartes operator of two sets.So we have multiple paths between node p and r.
Assume the number of routes in   ,   ,   are  1 ,  2 ,  3 respectively, the number of routes from p to r is:

Fuzzy logic model
A fuzzy logic controller has some components: 1) Conversion functions: that convert input values into fuzzy values, fuzzy value is in the range [0, 1]. 2) Use member functions to estimate fuzzy values.Calculate fuzzy outputs by some conversion formulas.3) Inference functions: that use some inference rules to make decision outputs.4) The conversion function converts membership functions' results into a fuzzy output: (i) Case 1: there is one parameter: (3) (ii) Case 2: there are more than one parameter: Where M is number of membership functions   , x is fuzzy input, n is number of tests.

Choose cluster head of a cluster
Choose cluster head for a cluster based on two parameters: (i) Node remaining energy: E, has three member functions: L, M, H that are equal to three levels of energy: Low, Medium, High.(ii) Node mobility: M, has three member functions: C, A, F, that are equal to three levels of mobility: Close, Adequate, Far.

Make an inference rule in the table:
Table 1: Inference rules for selecting CH.
So get six levels for selecting CH: VS (very small), S (small), RM (rather medium), M (medium), L (large) and VL (very large).

Choose cluster members for a cluster
Select node members for a cluster based on two parameters: (i) Hop counts from node to CH: HC, there are three member functions: S, A, L, that are equal to three levels of hop count: Short, Average, Long.(ii) The bandwidth of the route from this node to CH: N, M, W, that are equal to three levels of bandwidth: Narrow, Medium, Wide.
Table 2. Inference rules for selecting nodes.
So get six levels for selecting cluster members: VS (very small), S (small), RM (rather medium), M (medium), L (large) and VL (very large).From the route sets chosen by fuzzy logic to get some optimal routes by the GA algorithm as mentioned in the next section.Otherwise, it can build the optimal multicast tree in the case of transmitting data from one source node to some destination nodes simultaneously [10].(13)   is a function that operates on two parameters   and a hop   between gene gk, gk+1 of chromosome Ri.

Establish Genetic Algorithm to find routes
The GA finds optimal QOS routes between a source (S) and a destination (D) that is simulated by some basic processes: 1. Collect all possible routes (chromosomes) between S and D. 2. Assign weights for all parameters of these chromosomes.is the set of some next sub-routes.Get the optimal route by the least hop count metric.
To simulate this algorithm by the diagram:

Build optimal multicast tree by GA algorithm
Build optimal multicast tree by route finding GA For each found multicast tree by executing one of the methods in [10], find the optimal route for it by the above algorithm in section 3.4.Assume L(T) is the list of found multicast trees.Following is an algorithm to find multiple trees and transmit data: a) For each multicast tree Ti in the list tree L(T).b) For each route in this multicast tree Ti. c) Find optimal Rik in Ti by the above genetic algorithm.d) Execute (c) simultaneously for multiple routes to increase speed to get optimal Ti in L(T).e) Divide a large block of data into several smaller blocks to transmit by multiple trees have found to multiple destinations.

Build optimal multicast tree by GA Encoding multicast tree
Before applying GA to find an optimal multicast tree, it has to encode multicast trees into chromosomes.Use two arrays for each tree: (i) the first array S stores nodes' ID in the order by executing pre-order algorithm P of tree traversal depth first search algorithm; (ii) the second array T stores the parent's ID of each node.This algorithm P is executed recursively as described below: Decoding chromosomes into multicast tree: The pair of chromosomes S and T after applying GA will be decoded into multicast tree T by the algorithm:

Establish the fitness function
Fitness function assesses each chromosome on the basic of delay, cost and residual energy of all links and nodes of the multicast tree: Where: P is the set of chromosome's parameters,   ,   are parameter and its weight for calculating the fitness level of each chromosome by function  .For example, F = ( where  1 ,  2 ,  3 are three constant values are chosen by user for easy estimating.In each round, estimate each chromosome in the population by this fitness function to choose the two best chromosomes for applying genetic operators consisting of crossover and mutation.

Genetic operators
Similar to genetic operators for algorithm to find routes.

a)
Crossover operator: {Tnew1, Tnew2} = T1 Θ T2, in which T1 = {T1first, A, T1second}, T2 = {T2first, A, T2second}, A is the common node of two chromosomes.So two result chromosomes can be: b) Tnew1 = {T1first, A, T2second}, Tnew2 = {T2first, A, T1second}, c) Check Tnew1 and Tnew2 for eliminating any route cycle and having the same destination list.d) If they don't satisfy these conditions, then find the next common A of two chromosomes and execute (b).e) Looping until finding two satisfied parent chromosomes (P) and get two child chromosomes or scan all common genes of P.

Mutation operator
Use mutation operator to eliminate low residual energy nodes of chromosomes.Assume that each pair of nodes of tree T also has at least one connection.

Evaluation algorithm complexity
The fitness function has complexity O(m*n), where m is the number of chromosomes and n is the average number of genes on each chromosome.Crossover operator has complexity O(n*log(n)) and mutation operator has complexity O(n).Hence this algorithm has complexity O(n*(m+log(n))).

Simulation and evaluation
3.1.Simulate the process to find the optimal route by GA algorithm Some criteria to execute the GA algorithm: a) Population size: this is about 20 to 30 chromosomes; b) Crossover and mutation probabilities: Crossover probability   is about from 0.2 to 0.9, mutation probability   is about from 0.05 to 0.2.c) Chromosome size: this is about 20; Following is a diagram that represents the simulation result of GA to find the optimal route with a number of routes varies from 4 to 20 routes, From this diagram, it is very easy to realize that time required to find the optimal route doesn't increase when number of routes increase.In particular, with 1000 times of simulations, but in the diagram there are the number of points that is less than 1000, so the algorithm execution is very stable in time.The points are marked by red color.
3.2.Simulate the process to find an optimal multicast tree by GA algorithm Some criteria to execute the GA algorithm: a) Population size: this is about 2 to 100 chromosomes; b) Crossover and mutation probabilities: Crossover probability   is about from 0.2 to 0.9, mutation probability   is about from 0.05 to 0.2.c) Chromosome size: this is about 20; Following is a diagram that represents the simulation result of GA to find the optimal multicast tree with a number of trees varies from 2 to 100 routes, the route size varies from 3 to 20.The number of simulations is 100 times: From this diagram, it is very easy to realize that time required to find the optimal multicast tree doesn't increase fast when the number of multicast trees increases.In particular, the time required for algorithm execution is sometimes decreased when the number of multicast trees is increased.In general, this time is very stable.The points are marked by red color.

Simulation of the fuzzy logic controller to choose cluster members
In this simulation, each node is assessed based on three metrics: bandwidth, hop count from this node to cluster node, energy remained.Simulation executes 2000 times with number of nodes from 20 to 50.These metrics of each node are randomly generated.The route from each member node to the cluster head consists of a number (from 1 to 10) of paths for increasing bandwidth and reducing latency.So the fuzzy logic controller assesses each node by using Eq. ( 12).The results of the simulation are represented in the Fig. 11.

Conclusions
In order to increase route bandwidth and availability, the paper has mentioned fuzzy logic for clustering and genetic algorithm for finding optimal routes.Apply GA algorithms to find optimal route or multicast tree from the set of routes or multicast trees respectively.It requires the time to execute that is executable and this process is carried out at the same time with the process to detect routes.So when the precess to detect route finishes, a little time later the GA process also finishes.
2015 | Volume 2 | Issue 4 | e2 Research on Innovating, Applying Multiple Paths Routing Technique Based on Fuzzy Logic and Genetic Algorithm for Routing Messages in Service -Oriented Routing 3

Figure 3 .
Figure 3. Member functions of each parameter.

Figure 7 .
Figure 7.An example of multicast tree.Applying function Scan for this tree: to get two arrays with contents: a) For k=2 to S.length Do b) L(T) = L(T) ∪ (S(k), S(T(k))); c) After the loop, get L(T) is the set of links of the tree T.

Figure 8 .
Figure 8.An example of applying the mutation operator.

Figure 9 .
Figure 9. Diagram for representing simulation results of GA to find optimal route.

Figure 10 .
Figure 10.Diagram for representing simulation results of GA to find an optimal multicast tree

Figure 11 .
Figure 11.The simulation results of the fuzzy logic controller to choose cluster members

Table 3 :
Inference rule set for selecting routes.
H MH MM ML LH LMVH MM ML LH LM LLSo We have 25 fuzzy rules to get 9 member functions to choose route on each node.Assess the fuzzy results by output member functions as in the following diagram: R3 = R1  R2, denote  is crossover operation.Have to check if R3 has a route loop in in its path.If there exists route loop, remove this route and choose the next common gene of these routes.3.If R3 is found, then apply mutation operator for it.Finally, add it to the next population for the next processing.