# Highly Reliable Fuzzy-Logic-Assisted AODV Routing Algorithm for Mobile Ad Hoc Networks
## 3 Proposed Fuzzy-Logic-Assisted AODV Routing Protocol
### FL-AODV Protocol  
The proposed FL-AODV routing algorithm selects the appropriate node by integrating multiple parameters, taking into account the reliability of the relay node, which solves the limitation of considering a single factor in the routing selection process. The proposed protocol is an extension of the AODV protocol and does not use additional control packets to collect network status information. Through the HELLO data packet, the information of all nodes can be collected, including the position, speed, and remaining energy of the node. Each node calculates the normalized delay, stability, and residual energy value by receiving the neighbor node information provided by the HELLO message of the neighbor node, and processes it through the fuzzy logic system, and calculates the reliability value of each node in real time. The FL-AODV protocol uses the reliability value provided by each node to find a route from the source node to the destination node. In the route discovery process, the intermediate node selects the node with the highest REL value as the relay node, which can make the average reliability value of the selected path better than the path that only sets the RREQ received for the first time as the relay node and achieve better overall performance. In the route selection process, the destination node  
Figure 6: Membership function of REL. Figure 7: Flow chart of fuzzy system. selects the node with the largest reliability value as the relay node, so the finally selected path has the largest average reliability value. In addition, the intermediate node will not forward the RREQ to the previous hop node that has forwarded the RREQ, different from the traditional flooding, which can reduce the flooding overhead accordingly. The specific routing process of the protocol is described in Figure 8.  
First, source node 1 initializes REL value of the RREQ packet to 0 and updates its REL value to RREQ, and broadcasts RREQ to neighboring nodes, as shown by the orange nodes. Then, the neighboring nodes accumulate the REL value to update RREQ, and establish reverse routes. Then, the relay nodes 2, 3, and 4 broadcast RREQ to neighbor nodes other than the source node, and the intermediate node selects the previous hop node that forwards the RREQ with the largest REL value among the received RREQs as the next hop of the reverse route. For example, node 6 will select a 4-to-1 path with a larger REL value, accumulate its REL value to RREQ, and establish a reverse route, as shown by the green path. Similarly, the intermediate node continues to forward the RREQ to the neighbor nodes. Different from the AODV protocol, it will not send RREQ to the previous hop node that has forwarded the packet and the node with the same hop count, which reduces the huge overhead caused by complete flooding. In addition, the intermediate node will select the largest REL value of the fuzzy logic output as the relay node in the last hop node that forwards the RREQ to the node, update RREQ, and establish a reverse route, as shown by blue and purple path. Last, the destination node 25 selects the route with the largest REL value as the optimal route, and according to the reverse route to unicast RREP packets to the source node, as shown by the red arrow. In short, improved AODV algorithm based on the fuzzy logic is described in Algorithm 1. Figure 8: The route discovery process of FL-AODV. ```
0: Distance, speed and energy of nodes;
0: Route with high average reliability;
1: Calculate the normalized delay (ND), stability (NS), and remaining energy (NRE) based on the distance, speed, and energy of the node;
2: Input ND, NS, and NRE to the fuzzy system;
3: Output value REL value according to the fuzzy rules established by the fuzzy system;
4: Select the RREQ forwarding node with the largest REL value as the relay node;
5: Superimpose REL value and forward;
6: Repeat 4 and 5 until the receiving node is the destination node;
7: return optimal route;
```  
**Algorithm 1** Framework of relay nodes and routing selection based on fuzzy logic