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

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

Вестн. Ом. ун-та. 2012. № 2. С. 185-188.

УДК: 004.7 И.Б. Плесовских

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

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

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

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

Введение

С увеличением размеров вычислительных сетей растет необходимость в их оптимизации для более быстрой и эффективной передачи информации от одного пользователя к другому. Целями оптимизации обычно являются минимизация стоимости развертывания сети, максимизация количества информации, передающейся по сети в единицу времени, а также минимизация потерь информации при передаче. Одним из основных свойств вычислительной сети, влияющих на вышеперечисленные параметры, является топология сети; также на эти параметры оказывает значительное влияние маршрутизация пакетов внутри сети. Поиск оптимальных маршрутов для каждой пары узлов принадлежит к классу МР-трудных задач. Для задач, относящихся к данному классу, не существует какого-либо одного наиболее оптимального алгоритма решения, поэтому здесь целесообразно применить эвристический алгоритм. Одной из разновидностей таких алгоритмов являются генетические алгоритмы.

Использование генетического алгоритма для оптимизации связей вычислительной сети было темой довольно большого количества научных работ. Обычно сеть оптимизируется по трем параметрам: стоимость, надежность и качество обслуживания. Если принимать во внимание только стоимость, то топологию сети удобно рассматривать как дерево. В этом случае основной задачей является нахождение минимального остовного дерева. Этот подход используется, например, в работах [1-3].

Если рассматривать надежность в качестве решающего фактора, то удобнее рассматривать топологию сети как граф. В таком случае многое зависит от того, что понимает под надежностью автор. Например, в работах [4] и [5] используется определение надежности, основанное на вероятности потери информации в результате передачи; в статьях [6] и [7] же используется определение надежности, основанное на избыточности. Варианты представления конфигурации сети в виде хромосомы также могут различаться. Так, в [4; 7] хромосома представляет собой бинарную строку фиксированной длины, а в [5] хромосома - строка переменной длины, состоящая из целых чисел.

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

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

Изначально у нас имеется некоторый набор узлов. Каждому узлу присвоены координаты на плоскости. Всем узлам присвоен номер, начиная с 1. Кроме того им присваиваются коэффициент надежности, который от© И.Б. Плесовских, 2012

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

В нашем алгоритме, как видно из условий задачи, будут приниматься во внимание три фактора: стоимость, надежность и качество обслуживания.

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

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

При решении поставленной задачи в качестве хромосомы используется матрица смежности вида А = (а,)), где элемент ау равен весу дуги (г, у), если таковая имеется в графе. Если связи между г-м и у-м узлами в данной конфигурации сети нет, то элементу ау присваивается значение, которое больше максимального из возможных (зависит от введенной системы координат).

Первоначально граф заполняется относительно небольшим количеством случай-

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

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

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

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

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

Родители:

А =

V

ж

ж

140

ж

220 ж 140 ж

ж ж ж 250

110 ж ж ж

ж 100 ж ж

ж ж 150 ж

(

А =

ж 220 ж 140 ж Л

220 ж 110 ж ж

ж 110 ж ж ж

ж 180 100 ж 150

ж ж ж 150 ж

Потомки:

В' =

V

( ж ж ж

140

ч 260

ж 220 160 ж

220 ж 110 ж

ж ж ж 100

ж 180 100 ж

260 ж 170 ж

ж

ж

170

150

ж

у

220 160

ж ж ж ж ж 100 ж 170

ж ж ^ ж 250 100 170

ж ж

ж

ж

у

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

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

187

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

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

А =

ж М 160 ж ж ^ ^ ж ж 160 ж ж

ж ж ж ж 250 ж ж 110 ж 250

ж ж ж 0 о м А = ж ж ж 100 ж

140 ж 100 ж ж 140 180 100 ж ж

X ж 170 ж ж , V ж ж 170 ж ж

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

Главной целью применения мутации в генетических алгоритмах является избегание преждевременной сходимости популяции к решению, не являющемуся достаточно хорошим. Обычно вероятность мутации хромосомы довольно мала и составляет несколько процентов. При решении данной задачи наилучшие результаты были получены при вероятности Р = —, где ^ - размер

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

Исходя из условий задачи, можно определить фитнесс-функцию следующей формулой:

• 1 • Я

г = Ш1П--------.

N

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

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

Р = к1 /12 + к2 Р22 + к3 /32 + к4Р42,

где к1, / = 1,4 - весовые коэффициенты.

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

ции.

г1 = £т

где Т - множество дуг графа, принадлежащих минимальному остовному дереву этого графа, Т - вес соответствующей дуги;

£ Яв,

г =

0;є0

N

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

пути 0., N = 0 - количество минимальных путей;

П те,

Г =

0(Є0

N

V У

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

информации на пути 0г., N = |0| - количество минимальных путей;

Е, если Зі V/ аі}. = ж и З/ V/ аі}. = ж

К, если Зі а ^ ж ,

0, иначе

где а.. - элемент матрицы смежности, К и К - некоторые достаточно большие числа.

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

Эксперимент проводился со следующими параметрами: размер популяции - 15, количество поколений - 25, количество узлов сети - 25. Осуществлялось 3 запуска программы, а затем брались средние значения результатов этих запусков.

На рис. 2 представлены графики зависимостей средней и лучшей приспособленностей. Из таблицы и из графиков можно сделать вывод о том, что значение лучшей приспособленности изменяется неравномерно на всем протяжении алгоритма. Так, значение наилучшей приспособленности в популяции в первых 14 поколениях изменяется примерно на 34 %, в то время как в последующих 12 поколениях - только на 5%. Средняя приспособленность изменяется более равномерно, хотя и у нее присутствует резкий спад на первых 5 поколениях. В целом алгоритм сходится к определенному решению довольно медленно, что неплохо для генетического алгоритма. Для получения более хорошего решения в данном случае необходимо увеличить количество поколений примерно в 2 раза от текущего значения.

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

На рис. 3 показан график зависимости средней задержки прохождения информации между узлами сети в конфигурации, имеющей наилучшую приспособленность в текущем поколении. Как видно из графика, средняя задержка имеет, в целом, однородную с приспособленностью направленность изменений, хотя присутствует несколько участков разнородной направленности. В общем за тот же период средняя задержка изменяется примерно на 32 %, что несколько меньше, чем изменение приспособленности в целом.

1200

А

-7V

-Delay

1 3 5 7 9 11 13 15 17 19 21 23 25

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

Заключение

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

ЛИТЕРАТУРА

[1] Chou H., Premkumar G, Chu C.-H. Genetic Algorithms for Communications Network Design - An Empirical Study of the Factors that Influence Performance. 2001.

[2] Elbaum R., Sidi M. Topological design of local-area networks using genetic algorithms. 1996.

[3] Palmer C., Kershenbaum A. An Approach to a Problem in Network Design Using Genetic Algorithms. 1995.

[4] Kumar A., Pathak R., Gupta M., Gupta Y. Genetic algorithm based approach for designing computer network topology. 1993.

[5] Dengiz B., Altiparmak F., Smith A. Local Search Genetic Algorithm for Optimal Design of Reliable Networks. 1997.

[6] Huang R., Ma J., Hsu D. A genetic algorithm for optimal 3-connected telecommunication network designs. 1997.

[7] Pierre S., Legault G. A genetic algorithm for designing distributed computer network topologies. 1998.