Extracted From
GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURE FOR
TRAVELING SALESMAN PROBLEM* Thesis by SEUNG HO LEE
C. Satellite list
As another efficient data structure … Osterman
and Rego [16] designed the satellite list. Figure 2
describes the basic concept of the satellite list structure and its Swap
operation. The satellite list maintains two linked lists which indicate the clockwise
and counterclockwise orientations of the tour. For example, suppose that 1-2-3-4-5-6-7
is a path of the TSP tour. Therefore the two linked lists indicating both
orientations of the tour are the paths 1-2-3-4-5-6-7 (clockwise) and
7-6-5-4-3-2-1 (counterclockwise) as described in the first illustration of
Figure 2. In the illustration, the two nodes connected with a dashed line
indicate the same city and they are called complement satellites to each other.
Suppose further Swap(1, 2, 7, 6) is performed; the
edges {2, 7}, {1, 6} substitute the edges (1, 2), (6, 7). This operation is a
180 degree flip of the linked lists as described in the second and third
illustrations of Figure 2. The last illustration represents the reconstruction
of the new tour path. In the C implementation, we can perform this Swap
operation by changing the pointers of four linked list nodes (clockwise 1, clockwise
6, counterclockwise 2, counterclockwise 7) in a
constant time.
Osterman and Rego
[16] designed a special array structure combining those two linked lists. This
satellite list array is the one dimensional array with length of 2n, where n is
the total number of cities. In the array, each of the evenly indexed element has the previous city’s index. In this way, the
satellite list array can be initially constructed representing both
orientations of the TSP tour. The ith element in the
array indicates the index of the next or the previous city from the city i/2. If i
mod 2 is 0, then the element represents the next city. Otherwise it denotes the
index of previous city from the city i/2. For example, the 4th element in the
satellite list array will be the next city’s index of the city 2, and the 5th
element will be the previous city’s index of the city 2. Those 4th and 5th
elements are the complement satellites which have the neighbor information of
city 2. Under this convention, the tour 0-1-2-3-4 can be constructed to the
satellite list array 2-9-4-1-6-3-8-5-0-7. In order to change the tour to the
new tour 0-3-2-1-4, the edges (0,1), (3,4) should be
removed and the edges {0,3}, {1,4} should be added. The concept of the Swap
operation in the satellite list array is as follows. The satellite list array
contains two tour representations of both orientations, which are (a) 0-1-2-3-4
and (b) 4-3-2-1-0. If we use the separated two linked list representation, the
Swap operation will be the exchange of pointers. That is exchanging the pointer
of 0 in tour (a) and the pointer of 4 in tour (b), and the pointer of 3 in (a)
and the pointer of 1 in (b).

Then the new two linked list will be (a) 0-3-2-1-4 and (b)
4-1-2-3-0. Similarly, in the satellite list array structure, the exchanges
between array elements make the same tour reconstruction. Those are the swap
between the even element of city 0 and the odd element of city 4, and the swap
between the odd element of city 1 and the even element of city 3.
Figure 3 demonstrates the above satellite list array Swap
operation. After the swap operation, we can see that not all the even elements
represent the next city’s index. We should follow each element index to track
the tour without knowing the orientation. By this reason, the satellite list is
limited to the symmetric TSP. Because of its symmetric design, the satellite
list performs this operation easily in constant time, O(1)
.
[16] C. Osterman and C. Rego, The satellite list and new data structures for symmetric
traveling salesman problems, Tech. Report HCES-06-03, Hearin Center for Enterprise Science, School of Business Administration, University of Mississippi, University, MS, 2003.