## 3 Public Transport-Assisted Data-Dissemination System
### Multi-Attribute Decision Making
#### 3.1.2 Pre-MADM  
This step includes preparations before combining all the criteria, including the weighting and the attributes' adjustment procedures. The left part of this step is more about defining all the attributes to decide on the optimal network. The network attribute list consists of energy efficiency, delay-tolerant value, network bandwidth, and delivery probability. The right part of this step assigns utility values for each attribute, weighs different attributes against each other, and gives the best permutation to analyze optimal network selection. In our proposed method, users decide on all the requirements and importances. The controller collects these requirements and proceeds further with the weighing procedure. The measurement metrics for energy efficiency, delivery probability, network bandwidth, and delay are determined by these parameters appropriately. * Utility function--theory-based network: Utility functions measure the level of satisfaction for each user as per different attributes of each network alternative. We design utility functions to map decision factors to the respective utility metrics in order to evaluate the decision factors of network selection. We consider user requirements as per their profile, delay-tolerant indicator (DTI), both network properties, and QoS requirements. There are generally three types of utility functions that network selection uses: (1) sigmoid; (2) monotonically increasing; (3) linearly decreasing. These functions are further categorized as beneficial or non-beneficial criteria. The sigmoid utility function is used with given minimum and maximum requirements. Bandwidth and energy efficiency are beneficial criteria and can be represented as a sigmoid function. The utility theory states that utility functions must satisfy twice differentiability, monotonicity, and concavity-convexity [37]. Therefore, we design different utility functions for different objectives. The value of the utility function lies between 0 and 1. For the most satisfied user, it is 1, and for the least satisfied user, it counts as 0. Figure 4: Flow chart of the proposed network-selection algorithm. * Utility function for Energy Efficiency EE: In this utility function, EE, as discussed, is a beneficial criterion, and the energy-efficient utility function will be modeled as a sigmoid curve. The sigmoidal utility function is defined below: \[u(e)=\frac{1}{1+xe^{c(e_{arg}-e)}};e>0,\] (2) where \(e_{arg}\) and \(e\) represent the average network energy efficiency and network energy efficiency; \(x\) is used as a constant value that is always greater than zero (\(x>0\)). The notation \(c\) is used to denote the sensitivity of network attributes affecting energy efficiency. The utility function for EE is plotted in Figure 5; we can make sure that the utility function is monotonic and concave-convex. In physical terms, Equation (2) is the result of a higher network energy efficiency, with \(e\) translating into a larger utility function, \(u(e)\), resulting in a more preferred network. * Utility function for Network Bandwidth: Network Bandwidth is an important attribute for network selection. For three of these networks, the network bandwidth has a different value. When the network bandwidth is lower than the required bandwidth, as per different service requirements, then there is a compromise in QoS, and there will be a loss of packets. We are using the following utility function to define bandwidth requirements for different applications: \[u(b)= \begin{cases}0,&;b<b_{min}\\ \frac{(\frac{b}{b_{min}})^{x4}}{1+(\frac{b}{b_{max}})^{x4}}&;b\leq b_{min}\leq b _{med}\\ 1-\frac{(\frac{b_{max}-b_{med}}{b_{max}-b_{med}})^{x4}}{1+(\frac{b_{max}-b_{ max}}{b_{max}-b_{med}})^{x4}}&;b_{med}\leq b\leq b_{max}\\ 1&;b>b_{max},\end{cases} \] (3) where \(b_{min}\) and \(b_{max}\) define the minimum and maximum bandwidths of each network. In addition, \(b\) is the actual bandwidth required by the user, as per the services required. This is the same as an energy utility function.