Оптимизация локальной вычислительной сети при помощи генетического алгоритма

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Вестн. Ом. ун-та. 2013. № 4. С. 231-234.

УДК 004.7

И.Б. Плесовских

ОПТИМИЗАЦИЯ ЛОКАЛЬНОЙ ВЫЧИСЛИТЕЛЬНОЙ СЕТИ

ПРИ ПОМОЩИ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

Предлагается генетический алгоритм оптимизации топологии локальной вычислительной сети, учитывающий такие факторы функционирования сети, как скорость передачи информации по сети и стоимость. Данный алгоритм минимизирует задержку информации при передаче по сети и суммарную длину связей. Также приведены результаты применения алгоритма к небольшой вычислительной сети. Выявлено, что алгоритм достаточно быстро выходит на насыщение. Результатом работы алгоритма является топология сети с приемлемыми параметрами функционирования.

Ключевые слова: задача оптимизации, вычислительные сети, генетические алгоритмы, стоимость сети, пропускная способность.

Введение

Оптимизация топологии является важной частью построения вычислительных сетей. Топология сети тесно связана с функционированием сети, ее пропускной способностью, надежностью и стоимостью. Целями оптимизации обычно являются: минимизация стоимости развертывания сети, максимизация количества информации, передающейся по сети в единицу времени, а также минимизация потерь информации при передаче. Одним из подходов к оптимизации топологии вычислительных сетей является применение генетических алгоритмов [1-2].

В последнее время в ряде работ предлагалось использование генетического алгоритма для оптимизации топологии вычислительной сети (например, [3]). Целью данной работы является разработка генетического алгоритма, результатом работы которого должна являться вычислительная сеть с оптимизированной топологией с минимальной суммарной длиной связей, обеспечивающей максимальную пропускную способность при передаче информации от одного компьютера данной сети к другому.

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

Постановка задачи

Допустим, имеется некоторый набор узлов двух типов: коммутаторы и рабочие станции. Каждому узлу присвоены декартовы координаты в пространстве. Всем узлам каждого из типов присвоен номер, начиная с 1. Рабочим станциям присваивается максимальный размер трафика, который они могут генерировать в единицу времени; коммутаторам, в свою очередь, присваивается максимальный размер трафика, который они могут обработать без дополнительной задержки. Также каждый из коммутаторов имеет определенное количество портов, т. е. к нему может быть присоединено ограниченное количество рабочих станций. Задачей является создание сети, имеющей минимальный суммарный вес всех связей, а также минимальную среднюю суммарную задержку. В то же время в графе не может быть неподсоединенных узлов, а каждая рабочая станция должна соединяться только с одним коммутатором. Веса дуг графа, т. е. линий связи сети, определяются как евклидовы расстояния между соответствующими узлами.

© И.Б. Плесовских, 2013

Описание алгоритма

При решении поставленной задачи в качестве хромосомы, т. е. закодированной конфигурации сети, используется матрица смежности вида А = (аі]), где элемент аі] равен 1, если существует связь между і-м маршрутизатором и ]-й рабочей станцией, и 0 в противном случае. Так, конфигурация сети, состоящей из 3-х коммутаторов и 10-ти рабочих станций, может быть представлена следующим образом:

А =

может быть

Предлагаемый алгоритм описан следующим образом.

Шаг 1. Граф, имеющий в своем составе вершины без связей между собой, заполняется случайными связями так, что каждая рабочая станция имела бы связь с одним и только одним маршрутизатором. Таким образом создается некоторое количество конфигураций. Это количество конфигураций, называемое размером популяции, задается перед стартом алгоритма.

Шаг 2. Для каждой из получившихся конфигураций вычисляется функция приспособленности. Решаемая задача является многокритериальной, поэтому в предлагаемом алгоритме применен один из классических методов решения подобных задач - метод взвешенной функции [4]. В данном генетическом алгоритме функция приспособленности К представляет собой сумму трех функций Р1, К и К с различными весами:

^ = к1Е1 + к2+ Я ,

где к1, кг - весовые коэффициенты, такие, что к1 + кг = 1; функция К вычисляет сумму весов всех дуг графа; Кг вычисляет среднюю суммарную задержку при прохождении по сети; К является штрафной функцией, которая значительно увеличивает значение функции приспособленности в том случае,

если в данной конфигурации сети количество подсоединенных к какому-либо коммутатору узлов превышает число его портов.

Определим составляющие функции приспособленности:

р1 = 1 т(т),

ТЄТ

где т - множество дуг графа; т(т) соответствующей дуги;

I Д

*2 =

8,-єЄ

N

где © - множество путей между двумя любыми вершинами графа; 0(0) - задержка передачи информации на пути ©;; _ЛГ=| 01 -общее количество путей.

Шаг 3. Производится выборка хромосом из популяции для скрещивания. При решении данной задачи применяется турнирный отбор хромосом, проводимый среди двух пар особей. Каждая из этих двух пар выбирается из популяции с вероятностью, подчиняющейся равномерному распределению. Затем из каждой пары выбирается особь с наилучшим значением функции приспособленности.

Шаг 4. Победители каждого из двух турниров, проведенных на предыдущем шаге, скрещиваются между собой. Для решения данной задачи используется оператор однородного скрещивания. Идея однородного скрещивания заключается в следующем: элемент (в данном случае элементом, или так называемым геном, является столбец матрицы) каждого из пары потомков выбирается с вероятностью, подчиняющейся равномерному распределению, из первого или из второго родителя; если элемент для первого потомка был взят от второго родителя, то этот же по счету элемент второго потомка будет взят от первого родителя.

Пример использования данного оператора приведен на рис. 1.

Родители:

1 0 0 1 1 0 0 0 1 о'1 'о 0 1 0 0 1 0 0 0 г

А = 0 1 0 0 0 0 1 0 0 1 Б = 0 1 0 0 0 0 1 0 1 0

0 0 1 0 0 1 0 1 0 0, ,1 0 0 1 1 0 0 1 0

Потомки:

Рис. 1. Пример использования однородного скрещивания

1 0 1 1 0 0 0 0 1 г "о 0 0 0 1 1 0 0 0 о-1

А' = 0 1 0 0 0 0 1 1 0 0 в'= 0 1 0 0 0 0 1 0 1 1

0 0 0 0 1 1 0 0 0 0, 0 1 1 0 0 0 1 0 0,

- вес

Оптимизация локальной вычислительной сети при помощи генетического алгоритма

233

Шаг 5. К потомкам, получившимся в результате скрещивания на предыдущем шаге, применяется оператор мутации. Главной целью применения мутации в генетических алгоритмах является избегание преждевременной сходимости популяции к решению, не являющемуся достаточно хорошим. При решении данной задачи наилучшие результаты были получены при вероятности Р = 1/Б, где 3 - размер популяции. Мутация хромосомы в данном алгоритме происходит по следующему сценарию: с некоторой вероятностью выбирается рабочая станция и подсоединяется к другому коммутатору. Вероятность выбора того или иного коммутатора подчиняется равномерному распределению. Пример мутации подобного рода представлен на рис. 2.

Исходна я хромо сама:

'1 0 0 1 1 0 0 0 1 о-1

Л = 0 1 0 0 0 0 1 0 0 1

0 1 0 0 1 0 1 0

Затем шаги 2-5 алгоритма повторяются до тех пор, пока количество поколений не станет равным максимальному, заданному на старте выполнения алгоритма. Результаты эксперимента Эксперимент проводился со следующими параметрами: размер популяции - 100, количество поколений - 500, количество узлов сети - 23, в числе которых 20 рабочих станций и 3 коммутатора. Штрафная функция К = 10000*п, где п - количество узлов сверх количества портов коммутатора. Весовые коэффициенты к1 = к2 = 0,5. Осуществлялось 3 запуска программы, а затем брались средние значения результатов этих запусков. Результаты представлены в табл.

На рис. 3 представлены графики зависимостей средней и лучшей приспособленностей. На рис. 4 показана топология получившейся сети.

Результат мутации:

1 0 0 1 1 0 0 0 1 0

0 1 0 0 0 1 1 0 0 1

0 0 1 0 0 0 0 1 0 0

Рис. 2. Пример мутации хромосомы

Результаты эксперимента

Диапазон поколений, № Изменение средней приспособленности Изменение лучшей приспособленности Изменение средней приспособленности, % Изменение лучшей приспособленности, %

1-100 10008,47 881,10 46,00 7,80

101-200 869,51 159,13 7,40 1,53

201-300 732,61 1018,2 6,73 9,93

301-400 422,54 397,62 4,16 4,31

401-500 309,16 0,00 3,17 0,00

22000

17000 4

7000 -I--------------------------------------------------------

0 100 200 300 400 500

Поколение

'- лучшая приспособленность ---------- — средняя приспособленность

Рис. 3. График зависимостей лучшей и средней приспособленности от числа поколений

Рис. 4. Топология вычислительной сети, получившаяся в результате эксперимента

Выводы

Из таблицы и графиков можно сделать вывод о том, что значения как лучшей, так и средней приспособленностей на начальном этапе изменяются достаточно быстро, а затем выходят на насыщение. Сильное изменение средней приспособленности в начале работы алгоритма объясняется отсеиванием решений, сформированных случайным образом на этапе создания начальной популяции. Основное же изменение лучшей приспособленности наблюдается как в начале, так и в середине работы алгоритма. На конечном этапе изменений лучшей приспособленности не происходит. В целом алгоритм сходится к определенному решению довольно медленно, что является характерным для генетических алгоритмов, однако решение, близкое к искомому, может быть найдено достаточно быстро.

Таким образом выявлено, что предложенный алгоритм может применяться для построения локальных сетей с приемлемыми параметрами функционирования.

ЛИТЕРАТУРА

[1] Al-Rumaih A, Ejaz Ahmed R., Bakry S.H., Al-Dhalaan A. A methodology for network topology design with link and node failure tolerances // International Journal of Network Management. 1996. № 6 (1). Р. 42-63.

[2] Al-Bassam B., Alheraish A., Bakry S. H. A tutorial on using genetic algorithms for the design of network topology // International Journal of Network Management. 2006. № 16 (4). P. 253-262.

[3] Konak A., Smith A. E. Designing resilient networks using a hybrid genetic algorithm approach: GECCO '05. ACM Press, 2005. P. 1279-1285.

[4] Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М. : Горячая линия - Телеком, 2006.