You are on page 1of 11

UNIVERSIDAD CENTRAL DE VENEZUELA

FACULTAD DE INGENIERÍA
MAESTRÍA EN COMPUTACIÓN EMERGENTE
COMPUTACIÓN EMERGENTE I
Profesor: Andrés Scarioni

TAREA No 2

REDES NEURONALES:

RED DE HOPFIELD
PARTE (2)

Lic. José Leonardo Alvarado


C.I. 7.924.530

e-mail: lalvarado@funvisis.gob.ve

Caracas 23 de enero de 2008.


MEMORIA AUTOASOCIATIVA DE HOPFIELD
APLICADA AL PROBLEMA DEL TSP

INTRODUCCIÓN

Hopfield y Tank (Hopfield, J., Tank, D., 1985) propusieron usar redes
neuronales para resolver el problema del agente viajero (Travel Salesman Problem
TSP). El problema del TSP consiste en un viajero que debe visitar un cierto número de
ciudades, por las cuales debe pasar sólo una vez, moviéndose de tal manera la distancia
total recorrida, regresando al punto de partida (función de costo), sea mínima.

En esta aproximación la función de costo estaría representada por una función de


energía que incluye la distancia de la trayectoria y otros términos relacionados con
restricciones para evitar trayectorias no válidas o que las ciudades no fueran visitadas
más de una vez. Para encontrar la solución del problema del TSP, la red neuronal de
Hopfield comienza con un estado inicial que va evolucionando hasta alcanzar el estado
de equilibrio. Durante la evolución de la configuración de la red, el estado de cada
neurona se actualiza de acuerdo a la información recibida por las otras neuronas de la
red hasta alcanzar el estado de equilibrio.

En este trabajo se presentan los resultados de la implementación de una red de


Hopfield, aplicado al problema del TSP para 10 ciudades. En un primer experimento las
ciudades se encuentra uniformemente distribuidas sobre un circunferencia de radio 1, en
un segundo experimento las ciudades se distribuyen aleatoriamente.
1. BREVE MARCO TEÒRICO

En 1985 Hopfield y Tank (Hopfield, J., Tank, D., 1985) propusieron aplicar una
la técnica de las redes neuronales para encontrar una posible solución óptima del
problema del TSP, en el que un agente viajero debe visitar un número N de
ciudades de manera que cada ciudad sea visitada sólo una vez y la distancia de la
trayectoria seguida sea mínima. El problema planteado constituye un problema de
optimización donde la función de costo (distancia de la trayectoria) está sometida a
ciertas restricciones (cada ciudad debe visitarse sólo una vez).

La solución del problema del TSP, puede ser obtenida encontrando el mínimo de
la función de energía de una red neuronal de Hopfield. Para un conjunto de N
ciudades, la red neuronal consiste en un conjunto de NxN neuronas interconectadas,
en la que los pesos contienen información acerca de las restricciones y la función de
costo de una distribución particular de ciudades. Cada neurona actualiza su estado
basado en la información que recibe del resto de las neuronas.

1.1 Representación de las trayectorias

Sean N ciudades C1, C2, ..., CN . A cada una de las N ciudades se asigna un vector
que representa el número de orden (en binario) en que esta ciudad es visitada en un
recorrido particular así por ejemplo, si la ciudad k es visitada de primera el vector
asignado debe ser Ck = (1,0,0,…0), la ciudad visitada de segundo debe tener
asignado el vector (0,1,0,0 … 0) y la ciudad visitada de última debe tener el vector
(0,0,…1), es decir sólo uno de los elementos del vector debe tener “1” y el resto “0”.
Con todos los vectores asociados a las ciudades para una trayectoria particular se
construye una matriz cuadrada con los vectores ordenados como filas. En la figura
1. se muestra el ejemplo para N=6., esta matriz define una trayectoria factible, el
elemento ij de la matriz indicaría que la ciudad i (fila) sería visitada en el orden
j(columna).
1 2 3 4 5 6
C1 1 0 0 0 0 0
C2 0 0 0 1 0 0
C3 0 1 0 0 0 0
C4 0 0 0 0 1 0
C5 0 0 0 0 0 1
C6 0 0 1 0 0 0

Fig. 1. Representación matricial del recorrido C1 - C3 - C6 - C2 - C4 - C6

La idea es construir una matriz de Hopfield bidimensional, tal que su salida sea una
matriz como de la figura 1, (en lugar de un vector) que dará la solución del
problema de optimización. Para que la matriz pueda considerarse una solución
factible debe cumplir con las siguientes propiedades (Histrev, R.1998):

• Cada ciudad no debe ser visitada más de una vez, por lo tanto cada fila de la
matriz debe tener sólo un “1” y los otros elementos deben ser “0”.
• Dos ciudades no deben ser visitadas al mismo tiempo, por lo tanto cada
columna debe tener un solo “1” y el resto debe ser “0”.

• Todas las ciudades deben ser visitadas, por lo tanto cada fila y cada columna
debe tener al menos un “1”.

• La distancia total de la ruta o trayectoria debe ser mínima.

1.2 Energía de la Red de Hopfield

La red de Hopfield es un sistema dinámico que puede ser descrito en su forma


continua como:

du i
= ∑wij s j + I i ,
dt j ≠i Ec.1
si = f (ui ),

donde ui representa la activación de la neurona i, si representa la salida de la


neurona i wi e Ii denota una entrada externa. La función de activación f usualmente
es la función sigmoide. La salida de cada neurona es usada como entrada para todas
las otras neuronas excepto para sí misma. La red de Hopfield puede ser
completamente descrita por la función de Lyapunov

1
E =− ∑∑si s j wij − ∑
2 i j ≠i i
si I i . Ec. 2
dui E
y se puede verificar que: =− . Ec. 3
dt dsi

Suponiendo que la matriz de peso es simétrica (wij=wji) y que la actualización de


las neuronas es asíncrona, se tendrá que la energía de la red va a converger a un
mínimo local, en otras palabras, el estado de la red va a converger a un estado que
corresponde al mínimo de la función de energía.

Para el problema del agente viajero Hopfield y Tank (Hopfield, J. Tank, D. 1985)
propusieron la siguiente función de energía:
2
A B C  D
E = ∑∑∑s xi s xj + ∑∑∑s xi s yi + ∑∑s xi − N  + ∑∑∑d xy s xi ( s y ,i +1 + s y ,i −1 ),
2 x i j ≠i 2 i x y ≠x 2 x i  2 x y ≠x i

Ec. 4.
(A,B,C,D constantes y positivas y N = num. de ciudades)
Los primeros tres términos corresponden a las restricciones mencionadas en la
sección anterior, así el primer término será cero si cada fila tiene sólo un “1”, lo cual
quiere decir que una ciudad sólo puede ser visitada una vez. El segundo término será
cero si cada columna tiene solamente un “1”, lo cual implica que sólo una ciudad
ocupe una posición en el “tour”. El tercer término agrega la restricción de que todas
las ciudades sean visitadas en un recorrido. El cuarto término penaliza los recorridos
con distancias grandes.

Definiendo los pesos como:

wxi , yj = −Aδxy (1 −δij ) − Bδij (1 −δxy ) − C − Dd xy (δ j ,i +1 +δ j ,i −1 ), Ec 5.

La función de energía puede ser re-escrita:

1 C
E =− ∑∑∑∑
2 x y i j
wxi , yj s xi , yj − C ∑∑Ns xi + N 2 . Ec. 6.
x i 2

La bibliografía revisada documenta que la energía calculada usando la Ec. 5 para los
pesos genera muchas trayectorias no válidas (Wilson, P., Pawley, G., 1988) de manera
que se empleó la Ec. 7 propuesta por Ansari y Hou (Ansari, N., Hou, E.1997) para los
pesos, esta expresión fue obtenida a partir de análisis de autovalores.

2( AN − A + A1 )
wxi , yj = − Aδ xy (1 − δ ij ) − Aδ ij (1 − δ xy ) − 2 A1δ xy δ ij − C + − Dd xy (δ j ,i +1 + δ j ,i −1 )
N2
Ec. 7

(Con A, A1, C, D constantes positivas y N= número de ciudades).


2. IMPLEMENTACIÓN DEL PROGRAMA

El programa se implementó en MATLAB 7.0, que permite una más fácil


representación gráfica de las rutas obtenidas. En lo que sigue se detalla el algoritmo
seguido para la implementación del programa

2.1 Descripción del algoritmo


El algoritmo presentados está basado en el trabajo de Kart von Pfeil 2001.

1. Carga de datos de las ciudades


Las ciudades están contenidas en matrices de 10 filas y 2 columnas, las filas representan
las ciudades y las columnas las coordenadas x e y de cada ciudad.

2. Cálculo de la matriz de distancia


Para mayor facilidad al momento de calcular entre dos ciudades cualesquiera se
determinó una matriz de distancia donde cada elemento (i,j) representa la distancia entre
la ciudad i y la ciudad j. Dada su construcción esta es una matriz simétrica y con los
elementos de la diagonal todos iguales a cero.

3. Cálculo de la matriz de pesos


A partir de la ecuación 7 se calculó la matriz de pesos W x,i,y,j que es un arreglo 4–
dimensional simétrico y con los elementos de la diagonal (x=i=y=j) ceros. Los valores
de las constantes usados fueron obtenidos de la bibliografía (Gee, H. et al., 1993) y son
los siguientes: A=8; A1=7.75; C=0.8; D=2

4. Inicialización aleatoria de la activación inicial de las neuronas u0(x,i)


Se generaron valores aleatorios de la activación manera estuvieran en una ventana entre
0+0.01 y 0-0.01 (valor medio de la activación en 0), y valores medios de la salida s(x,i)
igual a 0.5.

5. Selección aleatoria del orden en que las neuronas se van a actualizar


Se generó un permutación aleatoria con de números entre 1 y N y esta se usó para
actualizar cada neurona de manera asincrónica.

6. Actualización de cada neurona en el orden indicado por 4.


Se actualizó cada neurona usando las expresiones
 
∑∑w xi , yj s yj + CN
u xi = u xi + ∆t  ,

 y j 
Ecs. 8 y 9
1  u xi 
s xi = f (u xi ) = 1 + tanh 
 β 
.
2
  
con ∆ t =0.02 y β =0.3

7. Se repiten los pasos 5 y 6 hasta que se satisfaga el criterio de parada


El criterio de parada consisten en varias condiciones: una que el número de iteraciones
supere un límite máximo o que las salidas de cada neurona s(x,i) esté en una banda entre
0-b1 ó b2-1 . El valor de b1 se escogió como 0.1 y b2=0.9.
3. EXPERMIENTOS Y RESULTADOS

3.1 Experimento 1.

Se utilizaron 10 ciudades distribuidas regularmente sobre una circunferencia de radio 1.


En este caso se alcanzó la trayectoria óptima. En la figura 1 se muestra la matriz con la
salida de cada neurona sx,i , la trayectoria correspondiente es H-I-J-A-B-C-D-E-F-G. La
figura 2 muestra la trayectoria que obviamente es la óptima y la función de costo
(Energía de Hopfield) calculada cada 10 iteraciones de un total de 1000.

1 2 3 4 5 6 7 8 9 10
A 0 0 0 0. 0 0 0 0 0 0
8
B 0 0 0 0 0. 0 0 0 0 0
8
C 0 0 0 0 0 0. 0 0 0 0
8
D 0 0 0 0 0 0 0. 0 0 0
8
E 0 0 0 0 0 0 0 0. 0 0
8
F 0 0 0 0 0 0 0 0 0. 0
8
G 0 0 0 0 0 0 0 0 0 0.8
Fig. 1 Matriz con
H 0. 0 0 0 0 0 0 0 0 0 las salidas de las
8 neuronas,
I 0 0. 0 0 0 0 0 0 0 0 obtenida luego de
8 alcanzar la
J 0 0 0. 0 0 0 0 0 0 0 condición de
8 convergencia, esta
matriz
corresponde a la ruta (H-I-J-A-B-C-D-E-F-G), que es una ruta válida.

Fig. 2. Izquierda trayectoria más corta encontrada por la red de Hopfield para 10 ciudades uniformemente
distribuidas en una circunferencia. A la derecha función de costo calculada cada 10 iteraciones y un total
de 1000 iteraciones.
3.2 Experimento 2.

En este experimento se utilizaron 10 ciudades distribuidas aleatoriamente, en este caso


no se pudo alcanzar ninguna trayectoria válida. La figura 3 muestra la matriz con las
salidas de las neuronas después de 2000 iteraciones. La figura 4 muestra la trayectoria
correspondiente para las 10 ciudades, la cual no genera una ruta válida, a la derecha se
muestra la función de energía calculada cada 10 iteraciones.

1 2 3 4 5 6 7 8 9 10
A 0 0 0 0 0 0 0 0 0. 0.3
3
B 0 0 0 0 0 0 0 0 0. 0.3
3
C 0 0 0 0 0 0 0. 0 0 0
4
D 0 0 0 0 0. 0 0. 0 0 0
2 2
E 0 0 0 0 0. 0 0 0 0 0
4
F 0 0. 0. 0 0 0 0 0 0 0
4 3
Fig. 3 Matriz con G 0 0 0 0 0 0 0. 0 0 0
las salidas de las 4
neuronas, H 0 0. 0. 0 0 0 0 0 0 0
obtenida luego de 4 3
alcanzar 2000
iteraciones, no se
I 0 0 0 0 0. 0 0 0 0 0
logró alcanzar una 4
ruta válida J 0 0 0 0 0 0 0 0 0. 0.2
2

Fig. 4. A la izquierda: ciudades generadas aleatoriamente y ruta encontrada por la red de Hopfield, que no
corresponde a una ruta válida. A la derecha función de energía en función del número de iteraciones.
Para ciudades aleatoriamente distribuidas en general no se logró alcanzar trayectorias
válidas, aunque hubo casos en si se logró obtener trayectoria válidas y que dada la
distribución podrían estar cercanas a las rutas óptimas
CONCLUSIONES

• Se implementó una red neuronal de Hopfield para resolver el problema del agente
viajero TSP, para 10 ciudades.

• Para ciudades distribuidas regularmente se logró una solución válida y óptima en


el 100 % de los experimentos, mientras que para ciudades distribuidas
aleatoriamente no se logró encontrar soluciones válidas y muchos menos óptimas
en la mayoría de los casos.

• La red de Hopfield aplicada al problema del TSP no resultó adecuada ya que


generó muchas trayectorias que aunque disminuyen la Energía o función de
costo, no produjo trayectorias válidas.

REFERENCIAS

Ansari, N., Hou, E. 1997. Computational Intelligence For Optimization, Norwell,


MA: Kluwer Academic Publishing Group.

Histrev, R.M., 1998. The ANN Book Obtenido en forma electrónica bajo licencia
GNU en ftp://ftp.funet.fi/pub/sci/neural/books/

Hopfield, J., Tank, D.W., 1985. “Neural” Computation of Decisions in


Optimization Problem, Biological Cybernetics, vol.52, pp.141-152.

Müller, B.,Reinhardt, J., 1990 Neural Networks: An Introduction, Springer-Verlag


Berlin.

Von Pfeil Karl, 2001 Development of a program to solve the Traveling Salesman
Problem with a Hopfield net revisado febrero 2008 en:
http://homepages.cae.wisc.edu/~ece539/project/f01/

Wilson, G. V., Pawley, G. S. 1988. On the Stability of the Traveling Salesman


Problem Algorithm of Hopfield and Tank, Biological Cybernetics, vol.58, pp.63-
70.

You might also like