Such of networks are composed by two groups of neurons.
In the first group each neuron is connected with each neuron (himself too) of this group and the weight value depends on the distance between neurons. The weight r(i,j) between neuron i and j is given by:
2 ( - dist(i,j) ) / ( 2 theta) r[i,j] = eWhere dist(i,j) is the Eulerian distance between neuron i and j, and theta is a learning factor (>0).
To enter data in the network we need another layer of neurons (the second group of neurons) , this layer do not belongs to the same topological rules of the previus network. Each neuron of this group is connected with each neuron of the first group. I will note w the weights that connects the two groups.
Main steps are:
Input of this network will be the coordinates of the towns, so second group will count 2 neurons, Xi and Yi (n = 2).
Initialize all weights with random values.
2 2 (Xi - w ) + (Yi - w ) is minimal ! xj yjwhere w(xj) is the weight value between neuron Xi and neuron j (j belongs to first group). Same for w(yj).
__ \ 2 / (N - w ) is minimal ! N is the nth input neuron value -- n nj n n
w = w + phi * r * (Xi - w ) xi xi ij xi and: w = w + phi * r * (Yi - w ) yi yi ij yiFor all i neurons in first group.
w = w + phi * r * (N - w ) ni ni ij n niFor all i neurons in first group and for all n in second group.