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 dont-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)  }