## 4 Declarative Solution Approach
### The Method to Create a Possible Set of Sub-Missions
Condition \(f\) checks if there exists a scenario nR in RL which does not make an R which is in TL. If no, it stops the process and if yes, it moves to step 6. Step 6 adds the created R to TL. Then moves to condition \(g\). Condition \(g\) checks whether the routes in R satisfies the collision avoidance constraint (2). If yes, it moves to step 8 and if not, it moves to condition \(h\). Condition \(h\) checks whether the schedules of R can be rescheduled in order to satisfy the collision avoidance constraints by only changing the schedule of nR. If yes, it moves to step 7 and if not, it moves to step 9. Step 7 creates new schedules for R and moves to step 9. Step 8 assigns next UAV to R moves to condition \(i\). Step 9 removes the scenario nR from R and moves to step 10. Condition \(i\) checks whether all the UAVs in the fleet are used. If yes, it moves to step 10, and, if not, it moves to condition \(f\). Step 10 creates the sub-missions (\(S_{n,m,l}\)) and adds to the list of sub-missions LS. Customer satisfaction levels of a customer in a sub-mission are equal to the total of customer satisfaction levels of that customer in all the routes in that sub-mission. Then it moves to condition \(j\). Condition \(j\) checks whether the desired number of sub-missions are reached. If yes, it stops the process and, if not, it moves to step 3' (which goes as an input to condition \(a\) in Figure 6). The output of this algorithm provides a possible set of sub-missions. Step 3' sends the \"No\" signal from Condition \(j\) (Stopping criteria) to Condition \(a\) in Figure 6.  
Figure 6: The heuristic to create sub-missions with collision avoidance for a cluster in an FTW. _Stage one_ and _Stage two_ should be executed for each cluster in the flying-time window. This approach provides a set of sub-missions for each cluster in each flying-time window. Sum of all the sub-missions in all clusters in a flying-time window equals to the total number of sub-missions made for that flying-time window. As the output of the solution in it provides sets of sub-missions for each flying-time window. The Method to Find Sequences of Sub-Mission Deliveries, Which Give the Maximum Customer Satisfaction  
Given data are: a _set of flying-time windows_: \(FS_{l}\), \(FE_{l}\), _set of clusters_\(CL_{m,l}=\left(N_{m,l},E_{m,l}\right)\)_and the set_\(S_{m,l}=\left\{S_{1,m,l},\ldots,S_{q,m,l}\right\}\)_of admissible sub-missions for each cluster in each flying-time window. Question: _How to find the sequence of sub-mission deliveries that maximize the customer demand fulfilment?_  
All sets of possible sequences of sub-missions are searched using brute-force search for small instances where networks, having less than 15 customer nodes. For large instances, the depth-first iterative-deepening (DFID) algorithm is proposed to find admissible missions which gives the highest customer satisfaction because it does not have the drawbacks of most of the other searching algorithms [42; 43]. Since DFID expands all nodes to a given depth before expanding any nodes to a greater depth, it is guaranteed to find an asymptotically optimal solution [42].