# A Comprehensive Evaluation Algorithm of Multi-Point Relay Based on Link-State Awareness for UANETs
## 4 Simulation and Results
### Simulation  
Due to limitations such as the environment and interference, this paper conducts simulation experiments using a discrete event network simulator software called NS-3 running on a Linux environment. The simulated task scenario is range search or exploration missions performed by drones in UANETs. It involves setting up 50 mobile nodes in a \(1.5\) km \(\times\)\(1.5\) km \(\times\)\(0.1\) km area, with a three-dimensional Gaussian-Markov mobility model. The scenario tasks involve two sending nodes transmitting data packets of size 256 bytes to two other nodes at a const bit rate (CBR). The simulation experiment runs for 300 s.  
The main simulation parameters are detailed in Table 1. To mitigate errors stemming from random factors in simulation experiments, each scenario undergoes five repetitions using distinct random number seeds, with subsequent averaging of results. Figure 5: The flowchart of the TOPSIS-MPR algorithm. In the NS-3 simulator version 3.33, the ns3.33/scr/olsr/model module mainly consists of 7 files, including \"olsr-header.h\", \"olsr-repositories.h\", \"olsr-routing-protocol.h\", \"olsr-state.h\", \"olsr-header.cpp\", \"olsr-routing-protocol.cpp\", and \"olsr-state.cpp\" files. In the network implementing the CEL-OLSR routing protocol, the interaction of node link state information among mobile nodes is achieved through hello control packets and TC control packets. In \"olsr-header.h\" and \"olsr-header.cpp\" files, we mainly modify the structure of the hello control message packet by adding the relevant evaluation parameters mentioned in Section 3 into the hello packet. In this simulation experiment, certain modifications are made to the structure of the hello message packets, as illustrated in Figure 6 below. * ANSCR is the average neighbor set change rate of the sending node of the hello control packet. LN and LSN are the load of lode and the load of neighbor set of the node of the hello control packet, respectively. * Longitude, Latitude, and Altitude are the position coordinates of the node in the x, y, and z directions of the sending node of the hello control packet, respectively. * Velocity_X, Velocity_Y, and Velocity_Z are the velocities of the node in the x, y, and z directions of the sending node of the hello control packet, respectively. In \"olsr-repositories.h\" file, it contains a series of tuples (including IfaceAssocTuple, NeighborTuple, TwoHopNeighborTuple, MprSelectorTuple, DuplicateTuple, TopologyTuple, AssociationTuple, and LinkTuple). We create a new tuple called LinkQosTuple, which is used to record link quality (including neighbor node main address, average neighbor set \begin{table}
\begin{tabular}{c c} \hline
**Simulation Parameter** & **Parameter Value** \\ \hline Simulation Time & 300 s \\ Node Movement Range & \(1.5\) km \(\times\) \(1.5\) km \(\times\) \(0.1\) km \\ Node Number & 50 nodes \\ Mobility Model & 3D Gaussian-Markov model \\ MAC Protocol & IEEE 802.11 b \\ Propagation Loss Model & Free space propagation loss model \\ Channel Rate & 11 Mbps \\ Data Packet Size & 256 bytes \\ Data Packet Rate & 32,768 bps \\ Average Node Speed & 10, 15,..., 50 m/s \\ \hline \end{tabular}
\end{table} 
Table 1: The primary simulation parameters settings. Figure 6: The Structure of hello message packet. (**a**) The structure of the original hello message package; (**b**) the structure of the improved and optimized hello message package. change degree ANSCR, link duration LD, stability degree of link SDL, load of node LN, and load of link LL). In \"olsr-state.h\" and \"olsr-state.cpp\" files, they define the \"OlsrState\" class and various types of information tables (including LinkSet, NeighborSet, TwoHopNeighborSet, TopologySet, MprSet, MprSelectorSet, DuplicateSet, IfaceAssocSet, and AssociationSet). We create a new information table called LinkQoset to store the link status of different nodes at different times.