Skip to main content
. 2021 May 20;21(10):3557. doi: 10.3390/s21103557
Algorithm 2. The Structure of the Mission Planning Framework Based on the Adaptive Two-Level Variable Neighborhood Search Algorithm
1: Set the shaking neighborhoods structures of the first-level Nk1 with k=1,,kmax and the shaking neighborhoods structures of the second-level Nd2 with d=1,,dmax. Set the local search neighborhood structures of the first-level Nl1 with l=1,,lmax, the local search neighborhood structures of the second-level Nw2 with w=1,,wmax. Let i=0, l=1 and d=1.
2: {Initialization phase}
3: s=GenInitialSolution() //generate an initial solution
4: Repeat
5: {First-Level Adaptive Shaking: Sensor allocation} //first-level
6: k=AdaptiveShaking(Nk1)//Adaptive select the shaking neighborhood structure, the UAVs, and sensors for shaking
7 s1=FirstLevelShaking(s,Nk1)//generate the shaking solution according to shaking neighborhoods structureNk1.
8: {First-Level Local Search Phase: Sensor allocation}
9: while l<lmax
10:   s2=FistLevelLocalSearch(s1,Nl1)//perform local search ons1according to local search neighborhoods structureNl1.
11:    whiled<dmax//second-level
12:   {Second-Level Shaking Phase: Route Planning}
13:   s3=SecondLevelShaking(s2,Nd2)//generate the shaking solution of the second-level base on the shaking neighborhoods structureNd2.
14:   {Second-Level Local Search Phase: Route Planning}
15:   whilew<wmax
16: s4=SecondLevelLocalSearch(s3,Nw2)//perform local search ons3according to local search neighborhoods structureNw2.
17: if f(s4)>f(s2)
18:  s2=s4
19:  d=1
20: else
21:  d=d+1
22: end if
23:   end while
24:    end while
25: {Acceptance decision}
26:    iff(s2)>f(s)ors2is accepted
27: s=s2
28: l=1
29:    else
30: l=l+1
31:    end if
32: end while
33: Until the upper limit T of time or a given number Iter of iterations without improvement is reached