(1) Read ProblemInformation and ParameterInformation; |
(2) Estimate SlopeDegree based on Landscape of distribution area; |
(3) Input ; |
(4) Determine and ; |
(5) Solution = InitialSolution(); |
(6) BestSolution = Solution; |
// At first stage, the objective is minimizing the length of solution according to CVRP model // |
(7) StartTime = clock(); |
(8) While EndTime-StartTime < do |
(9) ImproveStrategy = RandChoose(2-opt, or-opt, exchange, swap); |
(10) NextSolution = ImproveStrategy(BestSolution); |
(11) If FunctionOf CVRP(NextSolution) < FunctionOf CVRP(BestSolution) |
(12) BestSolution = NextSolution; |
(13) else |
(14) EndTime = clock(); |
(15) Continue do while; |
(16) EndIf |
(17) EndWhile |
// At second stage, the objective is minimizing the energy consumption of solution according to FCVRP model // |
(18) StartTime = clock(); |
(19) While EndTime-StartTime < do |
(20) ImproveStrategy = RandChoose(2-opt, or-opt, exchange, swap); |
(21) NextSolution = ImproveStrategy(BestSolution); |
(22) If FunctionOf FCVRP(NextSolution) < FunctionOf FCVRP(BestSolution) |
(23) BestSolution = NextSolution; |
(24) else |
(25) EndTime = clock(); |
(26) Continue do while; |
(27) EndIf |
(28) EndWhile |
(29) Return BestSolution; |