|
|
If the input dataset is comprised of m points in 2 dimensions, the coordinates can be viewed as m sets of 2-element vectors. The SOM procedure can be run with n<m initial units which could be initially set to random coordinates, all set to the same coordinate (e.g. the median of the x- and y- ranges in the source data), or a simple linear spread across one or both axes. As training proceeds, the initial positions of the model vectors (i.e. the locations of the units in 2-space) will migrate towards the source data points in a manner which will minimise a separation measure of the form:
![]()
This process is essentially one of minimising the sum of squares, so as noted earlier is a form of sequential regression. But the SOM not only adjusts the BMU but also its neighbours. This observation has led some authors to consider a variation on the SOM method that can be used as an heuristic to solve the travelling salesman problem (TSP). The algorithm we describe is due to Angeniol et al. (1988), but it has since been improved by other authors and applied to well-known test problems (such as TSPLIB test ATT532). The idea with this approach is to create a tour of M cities in the plane by commencing with a set of units or nodes connected together to form a 1‑dimensional ring, rather like an elastic band. The objective is to progressively move the nodes that form this ring towards the M cities through an iterative process, with an actual tour being obtained when each city has “captured” one node of the ring. The algorithm is as follows:
· Cities are numbered i=1 to M and assigned coordinates:
![]()
· Nodes of the ring are assigned coordinates:
![]()
· Initially a single node (N=1) is generated as (0,0). Nodes are added and deleted as the process proceeds. Each node on the ring has two neighbours, these being nodes j-1 (mod N) and j+1 (mod N)
· Select each city, i, in turn (sequentially, from 1 to M) in a pre-defined random order that is kept constant throughout the processing. Find the node c on the ring that is closest to i (minimum squared Euclidean distance). Move node c and its ring neighbours closer to i according to the rules described below and continue
· If the node c is the closest node to more than one city, create a new node with the same coordinates. This will clearly occur frequently in the early stages of iteration, and the number of nodes will grow to at most 2M (from experimental evidence)
· If a node has not been selected as the closest to a city for 3 iterations it is deleted
· The movement rule applied is:
![]()
· which can be compared with the basic SOM rule:
![]()
· In this case the function f(G,n) is of Gaussian form with n being the distance around the ring of each node from that chosen (where this is computed as the least distance) and G is a parameter that the authors describe as the gain. The function is of the form:
![]()
· The parameter G is reduced during each completed processing of the M cities by a factor (1-α) where 0<α<1 (e.g. α=0.2). When G is large all nodes move towards city i with the same strength, whereas as G tends to 0 only the closest node moves towards city i. Simulation tests on sets of up to 1000 cities showed good results (i.e. within a small percentage of the known optimum value) within modest computational time ― decreasing the parameter α produces better results but increases the processing time considerably. A more recent test using a slightly modified version of this algorithm applied to the ATT532 test dataset (532 US cities) produced a best result of 28,658 as compared with the known optimum solution of 27,686 (this can be verified using the Concorde software package and selecting the ATT metric ― this metric is simply a Euclidean metric with an adjustment factor of the square root of 0.1)
|
|