Нейрокомпьютерные системы



              

Решение задачи коммивояжера сетью Хопфилда


Рассмотрим задачу коммивояжера для

n
городов. Известны расстояния
d_{XY}

между каждой парой городов

X,Y
; коммивояжер, выходя из одного города, должен посетить
n-1
других городов, заходя по одному разу в каждый, и вернуться в исходный. Требуется определить порядок обхода городов, при котором общее пройденное расстояние минимально.

Пусть сеть Хопфилда состоит из

N=n^2
нейронов, а состояние нейронов описывается двойными индексами
v_{Xi}
, где индекс
X

связан с именем города,

i
- с позицией города в маршруте коммивояжера. Запишем функцию вычислительной энергии для сети, предназначенной решать задачу коммивояжера. В ней состояние с наименьшей энергией должно соответствовать самому короткому маршруту. Функция энергии должна удовлетворять следующим требованиям:

1) должна поддерживать устойчивое состояние в форме матрицы

 \begin{equation} V=\{v_{Xi}\}, \end{equation}

(1)

в которой строки соответствуют городам, столбцы - их номерам в маршруте; в каждой строке и каждом столбце только одна единица, остальные нули;

2) из всех решений вида (1) функция энергии должна поддерживать те, которые соответствуют коротким маршрутам.

Таким требованиям удовлетворяет функция энергии в виде:

 \begin{equation} E=(A/2) \sum_X \sum_{i}\sum_{j\ne i} v_{Xi}v_{Xj} +(B/2)\sum_i \sum_{X}\sum_{Y\ne X} v_{Xi}v_{Xj}+\\ +(C/2)(\sum_X \sum_{i} v_{Xi}{-}n)^2 {+} (D/2) \sum_X \sum_{X \neq Y} \sum_{i} d_{XY} v_{Xi}(v_{Y,i+1}+v_{Y,i-1}), \end{equation}

(2)

где первые три члена поддерживают первое требование, четвертый член — второе. Первый член равен нулю, если каждая строка

X
содержит не более одной единицы. Второй равен нулю, если каждый столбец
i
содержит не более одной единицы. Третий равен нулю, если в матрице всего
n
единиц. Короткие маршруты поддерживает четвертый член. В нем индексы
i

берутся по модулю

n
для того, чтобы показать, что
n
-й город соседствует в маршруте с
(n-1)-\mbox м
, т.е.
v_{Y,n+j}=v_{Y,j}
. Четвертый член численно равен длине маршрута. Каноническое выражение для функции вычислительной энергии имеет вид

 \begin{equation} E = - (1/2)\sum_{X} \sum_i \sum_{Y} \sum_j W_{Xi,Yj} v_{Xi}v_{Xj} - \sum_{x i}I_{Xi} v_{Xi} \end{equation}

(3)

Из (2) и (3) получаем веса сети Хопфилда:

 \begin{align*} W_{Xi,Yj} = - A \delta_{XY}(1 - \delta_{ij}) - B \delta_{ij}(1 - \delta_{XY}) - C - Dd_{XY}(\delta_{j,i+1}+\delta_{j,i-1}),\\ I_{Xi}=Cn. \end{align*}

Здесь

\delta
- символ Кронекера.

Моделирование работы сети Хопфилда показало, что лучшее по качеству решение дает сеть, нейроны которой имеют сигмовидную характеристику, а сеть, в которой нейроны имеют ступенчатые переходы, приходила к финальным состояниям, соответствующим маршрутам немного лучшим, чем случайные. Многочисленные исследования показывают, что качество решения задачи минимизации функции энергии (2) существенно зависит от выбора производной сигмовидной униполярной функции активации нейрона в окрестности нуля. При малой величине производной минимумы энергии оказываются в центре гиперкуба решений (некорректное решение), при большой величине производной сеть Хопфилда попадает в вершину гиперкуба, соответствующую локальному минимуму функции энергии. Кроме того, на качество решения существенное влияние оказывает выбор коэффициентов

A, B, C, D
. Поиск методов оптимального выбора этих коэффициентов является в настоящее время предметом интенсивных исследований.




Содержание  Назад  Вперед