Input:
   For each , , sets of parameters , and , ,
   such that (the resulting neighborhood structures will be indexed with the
   index , with );
   A limit on the total computing time;
(1) Initialization:
   findInitialSolution();
(2) Repeat the following steps until cpuTime() :
      (a) ;
      (b) Repeat the following steps until :
       shaking L, t ;
        first Improvement ;
if then
;
;
else
;
Algorithm 2