Initialization: |
Randomly generate an initial solution S. |
Improve S by a local search (e.g. LS3). The LS3 is as follows. |
Randomly select one job among the n jobs. |
Insert the selected job to n possible positions, keep the best (the lowest |
) solution. |
Repeat the steps until all n jobs have been selected and inserted back; |
update the best solution if better solution is found. |
Output the final solution, S0. |
Set S0 = S1 and ; |
Do whileiter (a predetermined number of iterations is set equal to 30) |
Destruction stage. |
Divide S1 into SD and SR, where SD is a set of d removed jobs and SR a set of |
the remaining jobs; |
Construction stage |
For the removed d jobs, execute the NEH mechanism to SR one after another |
until it yields the best sequence, coded as S2; |
Improve S2 by one of the four local search methods, LS1, LS2, LS3, LS4, coded |
as S3. |
(Acceptance criterion) |
If , then update S1 by S3; |
If, then Update by S3; |
Else if then Update S1 by S3; |
(Note that q ~ rand(0,1).) |
End while |
Output the final solution Sbest |