Research Article
Developing Programming Tools to Handle Traveling Salesman Problem by the Three Object-Oriented Languages
Algorithm 7
Abstract pseudocodes for LK.
1 List<Node> ActiveNodes;// to implement “don’t-look bits” | 2 void LK(Tour tour) | 3 { | 4 for each node X | 5 Add X to ActiveNodes List; | 6 while(active node is existed) | 7 { | 8 Node N = remove and return first node in ActiveNodes; | 9 if(inner-LK(tour, X) <= 0) | 10 inactive X; | 11 } | 12 } | 1 int inner-LK(Tour tour, Node x) | 2 { | 3 Y neighbor of X; | 4 int partial-gain = |XY|; | 5 break XY from tour; | 6 Add Y to ActiveNodes List; | 7 for each Z candidate set of X | 8 { | 9 add YZ to tour; | 10 Add Z to ActiveNodes List; | 11 partial-gain = partial-gain + |YZ|; | 12 if tour is feasible (tour closing up by one edge is possible) | 13 { | 14 if (partial-gain − last added edge cost > 0 then) | 15 { | 16 close up tour; | 17 return partial-gain − last added edge cost; | 18 } | 19 else | 20 { | 21 int g = inner-LK(tour, x); | 22 if (g < 0) | 23 { | 24 break YZ; //test another. | 25 } | 26 else | 27 { | 28 return g; | 29 } | 30 } | 31 } | 32 } | 33 add XY to tour; //breaking XY was unsuccessful. | (34) remove Y from ActiveNodes List; | (35) return 0; | (36) } |
|