Использование нейронных сетей для решения задач маршрутизации
Маршрутизация является одной из важных задач для телекоммуникационных сетей различного назначения. Задачи, связанные с выбором маршрута, планированием работы средств связи и т. п., относятся к классу сложных комбинаторно-оптимизационных задач, как правило, не имеющих простых аналитических решений. Кроме того, сложность необходимых вычислений экспоненциально возрастает при увеличении количества узлов в сети. Поэтому в настоящее время широко применяют различные эвристические алгоритмы и процедуры, полученные путем творческого поиска, интуиции и опыта исследователя. Альтернативой существующим методам решения задач маршрутизации является использование нейросетевых моделей, которые позволяют при значительном снижении временных затрат получить хорошие субоптимальные решения. Так, для решения комбинаторно-оптимизационных задач широко используются модели построенные на основе НС Хопфилда, впервые примененные для решения задачи о коммивояжере. Эти модели явились началом развития нейронных методов решения сложных оптимизационных задач.
Коротко остановимся на формулировке и основных принципах организации вычислений при решении задачи коммивояжера.
Для некоторой группы городов с известными расстояниями между ними требуется найти кратчайший маршрут посещения каждого города один раз с возвращением в исходную точку.
Обозначим города, которые необходимо посетить, буквами А, В, С..., а расстояния – dAB, dAC, и т.д. Решением является упорядоченное множество из n городов. Последовательность, в которой обходятся города удобно представлять матрицей n´n, строки которой соответствуют городам, а столбцы номерам городов в последовательности. Например, имеется пять городов А, В, С, D, Е, а последовательность обхода этих городов задана матрицей
А | |||||
В | |||||
С | |||||
D | |||||
Е |
Таким образом город С посещается первым, город А - вторым и т. д. Длина маршрута равна dCA + dAE + ... + dDC. В каждом столбце и в каждой строке этой матрицы может быть только одна единица, так как в каждый момент посещается только один город и каждый город посещается только один раз. Матрицу вида (1) можно воспринимать как состояние нейронной сети из N = n2 нейронов. Задача состоит в том, чтобы из n!/2n маршрутов выбрать один с наименьшей длиной. Состояние каждого нейрона описывается двумя индексами, которые соответствуют городу и порядковому номеру его посещения в маршруте. Например, Yxj=1 показывает, что город х был j-м по порядку городом маршрута.
Запишем функцию вычислительной энергии для сети, предназначенной для решения задачи коммивояжера, в которой состояние с наименьшей энергией соответствует самому короткому маршруту. В общем виде такая функция для рассматриваемой сети может иметь следующий вид:
(10)
где Е - искусственная энергия сети, wj - вес от выхода нейрона i к входу нейрона j,
Yj – выход нейрона j, Ij - внешний вход нейрона j , Tj -порог нейрона j.
Изменение энергии, вызванное изменением состояния j-нейрона, можно вычислить следующим образом:
(11)
где dYj - изменение выхода j-го нейрона.
Каждому состоянию системы соответствует конкретная величина вычислительной энергии. Устойчивое состояние имеет меньшую энергию, чем неустойчивое. Эволюция системы во времени – это движение в пространстве состояний в поисках минимума энергии и остановка в этой точке.
Для рассматриваемой системы функция энергии должна удовлетворять следующим требованиям. Во-первых, она должна поддерживать устойчивые состояния в форме матрицы (1). Во-вторых, из всех возможных решений функция энергии должна поддерживать те, которые соответствуют коротким маршрутам. Этим требованиям удовлетворяет функция энергии вида
(12)
Первые три члена выражения (12) поддерживают первое требование, четвертый член - второе; А, В, С, D - положительные множители. Первый член равен нулю, если каждая строка х содержит не больше одной единицы. Второй член равен нулю, если каждый столбец содержит не более одной единицы. Третий член равен нулю, если в матрице вида (10) n единиц. Таким образом, без учета четвертого члена функция энергии имеет минимумы (Е = 0) во всех состояниях, представленных матрицей с одной единицей в каждом столбце и каждой строке. Все другие состояния имеют более высокую энергию. Короткие маршруты поддерживает четвертый член. В нем индексы i берутся по modn, для того чтобы показать, что i -и город соседствует в маршруте с (n-1) -м и первым, т. е. Yk,n+j=Yk,j. Четвертый член численно равен длине маршрута.
Раскрывая скобки в (12) и приравнивая коэффициенты при квадратичных и линейных членах в полученном выражении и общей формуле энергии, определяем матрицу связей и внешние взаимодействия:
Wxi,kj = –Adxk(l-dij)–Bdxk(1-dxk)–C–Ddxk(dj,i+1+dj,i-1), (13)
где dij = 1, если i=j, в противном случае dxi=0 . Кроме того, каждый нейрон имеет смещающий вес Ixi=Сп .
Первый член в (4) задает связи нейронов в каждой строке, второй -внутри каждого столбца, третий и четвертый - глобальные связи. И в (12) и в (13) три первых члена отвечают за общие ограничения для любой задачи коммивояжера и приводят сеть к финальному состоянию в виде (10). Четвертый член управляет тем, какое из n!/2n возможных различных финальных состояний соответствует самому короткому маршруту.