Оптимальное по показателям связности объединение сетей в условиях структурных и стоимостных ограничений

ОПТИМАЛЬНОЕ ПО ПОКАЗАТЕЛЯМ СВЯЗНОСТИ

ОБЪЕДИНЕНИЕ СЕТЕЙ В УСЛОВИЯХ СТРУКТУРНЫХ И СТОИМОСТНЫХ ОГРАНИЧЕНИЙ

К. А. Нечунаева

Институт вычислительной математики и математической геофизики СО РАН,

630090, Новосибирск, Россия

УДК 004.023

Исследуются сети связи, моделируемые случайным графом. Разработан и реализован алгоритм, основанный на алгоритме клонирования. Проведено сравнение работы алгоритма клонирования, генетического алгоритма и алгоритма перебора.

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

This paper deals with communication networks represented by random graphs. The main task of the work is integration of two networks with reliability optimization under structural and costs restrictions. A method based on Clonal Selection Algorithm (CSA) has been proposed for solving the problem. This method has been tested and compared with Genetic Algorithm (GA) and Enumeration Algorithm.

Key words: integration of networks, clonal selection algorithm, diameter constrained network reliability.

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

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

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

Главным инструментом решения данной задачи является алгоритм клонирования, основанный на принципах иммунной системы. Эффективные механизмы иммунной системы, такие как клонирование и мутация, делают искусственные иммунные системы полезным инструментом для решения комбинаторных проблем [1]. Кроме того, применяются некоторые алгоритмы теории графов для подсчета вероятности условной связности [2].

В данной работе приводятся некоторые основные понятия и сведения об известных методах. Приведен обзор работ, в которых рассматриваются различные подходы к изучаемой

проблеме. Представлена формальная постановка задачи, рассмотрен основной алгоритм для решения проблемы и проведено его сравнение с другими алгоритмами (генетическим и алгоритмом перебора).

1. Принципы искусственной иммунной системы. В последние годы резко возрос интерес к разработкам в области искусственных иммунных систем (AIS) и их приложениям. Среди многочисленных работ в этой новой области исследований следует отметить работы [1, 3-6]. Цель AIS - использование основных идей иммунологии для разработки систем, позволяющих найти оптимальные решения ряда практических задач. Основным алгоритмом, используемым в данной работе, является алгоритм клонирования, описанный в работе [1] и применявшийся в работе [6].

В случае, когда организм человека подвергается воздействию антигена (например, инфекции), его костный мозг начинает вырабатывать специальные клетки (B-лимфоциты), которые производят антитела (рис. 1). Каждая клетка секретирует только один тип антител, подходящий определенному антигену. Антиген стимулирует В-лимфоциты с антителами, наиболее подходящими для деления и образования новых В-лимфоцитов. В результате получается большое количество клонов одной клетки. Скорость клонирования пропорциональна пригодности антител. Часть новых клеток видоизменяется в плазмотические клетки, которые очень активно производят антитела, остальные подвергаются мутации с целью получения наиболее подходящих антител для данного антигена. В-лимфоциты с наиболее подходящими антителами преобразуются в клетки памяти для запоминания нового антигена. В-клетки, не участвовавшие в клонировании, отмирают, в крови продолжают циркулировать клетки памяти до следующего воздействия антигена.

В алгоритме клонирования используются следующие обозначения: M - популяция; h -размер популяции; Л1,...,Ah, Л = {x1,...,xnm} - антитела (x Е {0,1}).

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

2. Постановка задачи и некоторые вспомогательные алгоритмы. Для решения поставленной задачи потребуются следующие определения и понятия: G1 = (У1,Е1), G2 = (У2,Е2) - ненаправленные графы; G = (У,Е) - объединенный граф; У = {у^,...,уП}, У2 = {v\, ..„vi}, У = У и У2 - наборы вершин G1,G2 и G соответственно; Е1 = {e\,..., e^}, Е2 = {e"2,..., e2q}, E D Ei U E2 - наборы ребер Gi и G2; S = {si,..., st} - список ребер, которыми можно соединить вершины графов G1 и G2; c1,...,ct - стоимости ребер списка; n,m -число вершин G1 и G2 соответственно; xe - состояние ребра e (1, когда ребро e исправно, и 0 в противном случае); re = Pr(xe = 1) (или rj) - вероятность исправности ребра e (или ej); qe = Pr(xe = 0) = 1 — re - вероятность отказа ребра e; C(G) - стоимость ребер, использованных при построении G; D(G) - диаметр G, т. е. максимум кратчайших расстояний по

/Ч

' Плазмоциты1

Рис. 1. Иммунная система человека

всем парам вершин графа. Понятие вероятности условной связности Я(О,й) определим как вероятность того, что между любыми двумя вершинами графа О существует путь, длина которого не превышает заданную длину й. Для вычисления этого показателя используем результаты работ [2, 7].

2.1. Постановка задачи. Пусть заданы неориентированные графы Ох = (У1,Е1) и

О2 = (У2 ,Е2) с надежными вершинами Ух = {у^,...,уП }, У2 = {у\, ...,ьт} и ненадежными

ребрами Ех = {в\, ...,ер},Е2 = {е\,..., в^}. Каждое ребро е присутствует с вероятностью ге и отсутствует с вероятностью = 1 — ге. Диаметры этих графов не превышают заранее заданного числа й. Дан список ребер Б = {в 1,...^}, которые можно использовать для объединения Ох и О2. Стоимости их различны и равны соответственно с 1,...,с Требуется построить граф О = (У, Е) путем объединения двух данных графов с использованием ребер из списка, так чтобы диаметр полученного графа также не превышал й, а стоимость проложенных ребер не превышала С*:

К(О, й) — тах, созЬ(О) < С *.

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

Расстановку ребер между исходными графами зададим булевыми массивами размером п х т, которые будем называть антителами. Единица в ячейке с номером кп + I, где 0 < к < т, 0 < I < п, означает, что было проложено ребро между (к + 1)-й вершиной первого графа и 1-й вершиной второго графа. Полученное в результате антитело показывает финальное размещение ребер между графами.

2.2. Алгоритм подсчета вероятности условной связности. Используем результаты работы [2]. Пусть имеется сеть О = (У, Е); нужно вычислить ее надежность И,(О, й) при заданном ограничении на диаметр й. Для любой пары узлов в, Ь определим Р3ь(й) как набор путей между в и Ь, длина которых не превышает й. Обозначим через Е(р) случай, когда все ребра в р являются надежными. Вероятность случая Е(р) - вероятность обнаружения всех связей, составляющих путь р, в исправном состоянии; в соответствии с гипотезой о независимости отказов ребер

Рг

еЕр

Тогда вынужденная диаметром мера надежности может быть выражена через функцию этих событий:

ЩО,й) = Рг

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

Введем некоторые определения. Пусть имеется граф G = (V,E). Стиранием ребра e будем называть его удаление из набора ребер E сети G. Полученный граф обозначим G — e. Обнадеживанием ребра e будем называть признание его абсолютно надежным, т. е. re = 1. Полученный граф обозначим G|e.

Рассмотрим два возможных состояния произвольного ребра e, которое имеет некоторую вероятность отказа. Если ребро e нерабочее, то оно может быть удалено из сети; если оно работает, то может быть определено как надежное. Поскольку состояние ребра e не зависит от состояния других компонентов сети, имеем следующее выражение (более известное как factoring theorem):

R

Далее повторяем эту операцию для оставшихся ребер (таких, состояние которых еще не установлено) в сети G. Этот процесс соответствует алгоритму перечисления. Однако очень часто рекурсию можно остановить ранее; удаляя ребро e, можно получить, что независимо от состояния других ребер граф G — e не имеет возможных путей между парой s,t, длина которых меньше либо равна d, и поэтому имеет надежность 0; также при абсолютно надежном ребре e может оказаться, что вершины будут связаны путями, составленными только из абсолютно надежных ребер, и сеть всегда будет работать независимо от отказа оставшихся ребер, тогда полученная надежность будет равна 1. В этих случаях продолжать рекурсию не имеет смысла.

Формула (4), дополненная предыдущими замечаниями, может использоваться как основа рекурсивного алгоритма. Для того чтобы проверить, следует ли продолжать рекурсию, используем следующие вспомогательные структуры. Предположим, что множество всех путей, длина которых не превышает d, между любыми парами вершин s и t найдено: (Pst(d)). Пусть P(d) - объединение всех множеств Pst (d) для всех пар вершин s и t. Введем следующие обозначения: npst - количество всех путей длиной не более d между парой вершин s и t; linksp - количество ненадежных ребер e (таких, что re < 1) в пути p Е P(d); feasiblep имеет значение False, когда в пути p имеются неработающие ребра, и True в противном случае; connectedst имеет значение True, когда между s и t существует абсолютно надежный путь диной не более d, и False в противном случае; connectedpairs - количество пар вершин, соединенных абсолютно надежными путями длиной не более d; P(e) - множество путей из P(d), содержащих ребро e.

Следующий псевдокод считает R(G, d):

Procedure FACTO(G, d) Вхо д:

Граф G = (V, E); ограничение на диаметр d; Pst(d), P(e), npst, linksp, feasiblep, connectedst, connectedpairs Выход: вероятность условной связности R(G,d) Задание начальных условий:

RContract = 0 (временный результат для графа G|e) RDelete = 0 (временный результат для графа G — e) Произвольно выбираем ребро e: 0 < re < 1. "Обнадеживание":

(Рассматриваются все надежные пути, содержащие ребро e) for p = (s, ...,t) Е P(e) такого, что feasible p = True do

Сокращаем число ненадежных ребер в p: linksp = linksp — 1 if connected.t = False и linksp = 0 then (p - абсолютно надежный путь) connected.t = True connectedpairs = connectedpairs + 1 if connectedpairs = n(n — 1)/2 then

(все вершины связаны абсолютно надежными путями) RContract= 1 goto "Удаление" endif endif endfor

RContract = FACTO(G|e, d) (рекурсивный вызов процедуры) "Удаление":

(Вновь рассматриваются все надежные пути, содержащие ребро e) for p = (s, ...,t) E P(e) такого, что feasiblep = True do feasiblep = False (так как в p удаляется ребро e, то путь становится непригодным) npst = npst — 1

if npst = 0 then (граф несвязен) RDelete = 0

goto "Итоговые вычисления" endif endfor

RDelete = FACTO(G — e, d) "Итоговые вычисления":

R

2.3. Функция родового сходства. Функция родового сходства показывает, насколько данное антитело близко к оптимуму (будем считать его значение равным единице и стремиться к нему). Необходимо, чтобы полученное решение A имело наибольшее значение R(G^,d) вероятности условной связности, а стоимость проложенных ребер не превышала заданную C*. Тогда функция родового сходства имеет вид

f 0, Е cost(e) > C*,

Affinity(A) = < e^SA

[ R(GA,d), иначе,

где Ga - сеть, объединенная из двух посредством антитела A; Sa - список ребер, проложенных при построении Ga; cost - функция стоимости.

2.4. Функция вероятности выбора. Используется также функция вероятности выбора, т. е. определяется пригодность антител для клонирования. Антителу с наибольшим родовым сходством будет соответствовать наибольшее количество клонов. Сначала вычисляем родовое сходство каждого антитела и в соответствии с полученными значениями нумеруем эти антитела. Рекурсивно вычислим функцию вероятности выбора

mm

Рис. 2. Метод колеса рулетки

AffinityA) / Е Affinity Д,

/ AieM

г = 1;

Sel.Prob.

/

Sel.Prob.(Ai_i) + Affinity(Ai) / E Affinity Ai, 2 < г < h,

AieM

где M - популяция антител.

Для подсчета количества клонов у каждого антитела используем метод колеса рулетки, изложенный в работах [8, 9]. Расположим вероятности выбора антител в порядке возрастания на оси от 0 до 1, как показано на рис. 2 (Amax,Amjn - антитела с максимальным и минимальным родовым сходством).

Генерируем h чисел от 0 до 1 (стрелки на рис. 1), тогда количество клонов данного антитела Ai будет соответствовать количеству случайных чисел, попавших в интервал [Ai_1, Ai]. Эта операция выполняется для того, чтобы наиболее пригодные антитела имели наибольшее количество клонов.

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

Создаем популяцию M антител размером h; for каждое поколение do

определяем родовое сходство (Affinity) антител; вычисляем вероятность выбора (норма клонирования); клонируем (создаем копии антител); for каждый созданный клон do

мутация инверсией (создаем новую последовательность (нп)); вычисляем родовое сходство нп; if Affinity (нп) > Affinity (клон) then клон = нп

else, do мутация перестановкой (создание нп); вычисляем родовое сходство нп; if Affinity^^ > Affinity(клона) then

клон = нп else, клон = клон; антитело = клон; исключаем худшее число антител w % в популяции (w - параметр отношения отсеивания антител);

создаем новые антитела в таком же количестве (w% в популяции); добавляем новые вместо отсеянных; while критерий остановки = False.

Мутация инверсией. Пусть имеется антитело А, а г, ] - два положения в последовательности А. Новое антитело получается из А инверсией последовательности отделов между г-м и ]-м положениями в антителе.

Если родовое сходство видоизмененной последовательности (после мутации инверсией) больше, чем у оригинальной, то видоизмененная последовательность сохраняется вместо оригинальной. В противном случае последовательность вновь будет видоизменена в результате мутации перестановкой.

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

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

Редактирование рецептора. После клонирования и процессов мутации устранена доля худших антител % целого поколения. Произвольно созданные антитела добавляются в популяцию вместо устраненных. Этот механизм позволяет находить новые положения, которые соответствуют новым областям поиска в полном пространстве поиска. Исследование новых областей поиска может позволить алгоритму уходить дальше от локального оптимума.

Множество клонов принимается в качестве популяционного набора антител для следующего поколения после процессов клонирования, мутации и редактирования рецептора. Таким образом, клоны, которые были мутированы, определяются как антитела для следующего поколения. В следующем поколении клоны будут произведены от этих антител. Отсюда следует утверждение: антитело = клон в алгоритме.

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

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

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

Начальные данные: Н - размер популяции, в % - доля выживших хромосом, рт - вероятность мутации.

Схема алгоритма:

Создаем популяцию M хромосом размером h; for каждое поколение do:

определяем родовое сходство (Affinity) хромосом; оставляем s % хромосом с наибольшим родовым сходством; repeat:

турнирной селекцией выбираем родителей; скрещиванием получаем новую последовательность (нп); мутация нп с вероятностью pm; нп добавляем в популяцию; until размер популяции меньше h; while критерий остановки = false.

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

Скрещивание. По хромосомам Ai, Л2 строится потомок Л присваиванием каждой координате этого вектора с вероятностью 0,5 соответствующего значения одного из родителей. Если векторы Ai, Л2 совпали, например, по первой координате, то хромосома Л "унаследует" это значение.

Мутация. Оператор мутации, применяемый к потомку Л, полученному в процессе скрещивания, с заданной вероятностью pm меняет значение каждой координаты на противоположное.

Сравнивая алгоритм клонирования (CSA) со стандартным генетическим алгоритмом (GA), следует отметить, что CSA может достигнуть разнообразного набора локальных опти-мумов, в то время как GA имеет тенденцию полностью фокусироваться на одном локальном оптимальном решении.

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

5. Реализация. Рассмотренные алгоритмы были реализованы в среде C++ Builder и протестированы на различных графах небольшой размерности. В таблице представлены результаты тестирования алгоритма клонирования, генетического алгоритма и алгоритма

Сравнение работы алгоритмов

Алгоритм Циклы 3, 4 Решетки 3 х 3 и 2 х 3

Время, с Вероятность Время, с Вероятность

Вероятность мутации 0,1

Клонирования 1,394 0,25 3,90102 0,013130188

Генетический 6,259 0,0625 1,03103 0,002750397

Перебора 1,204 0,25 - -

Вероятность мутации 0,001

Клонирования 1,394 0,25 3,90102 0,013130188

Генетический 6,299-10-2 0,03125 1,20102 0,001342773

Перебора 1,204 0,25 - -

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

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

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

Реализация алгоритма клонирования проведена в среде C+—+ Builder, также для сравнения были реализованы генетический алгоритм и алгоритм перечисления, проведены эксперименты.

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

Список литературы

1. Ishida Y. The immune system as a self-identification process: a survey and a proposal // Proc. of the ICMAS Intern. workshop on immunity-based systems, Kyoto (Japan), 1996. Kyoto: MIT Press, 1996. P. 2-12.

2. Cancela H., Petingi L. Diameter constrained network reliability: exact evaluation by factorization and bounds // Proc. of the Intern conf. on industrial logistics (ICIL'2001), Okinawa (Japan), 9-12 July 2001. S. l.: Intern. centre innovation industrial logistics, 2001. P. 359-366.

3. Hunt J. E., Cooke D. E. Learning using an artificial immune system //J. Network Comput. Appl. 1996. V. 19, iss. 2. Special issue on intelligent systems: design and applications. Pt 2. P. 189-212.

4. Dasgupta D. Artificial immune systems and their applications. N.Y.: Springer-Verlag. 1999.

5. Hofmeyr S. A., Forrest S. Immunity by design: An artificial immune system // Proc. of the Intern. conf. on genetic and evolutionary computation (GECCO'99), Orlando (USA), 1999. S. l.: Morgan Kaufmann, 1999. P. 1289-1296.

6. Ulutas B. H., Islier A. A. Parameter setting for clonal selection algorithm in facility layout problems // Proc. of the ICCSA-2007, LNCS 4705, Pt 1. P. 886-899.

7. Нечунаева К. А. Расчет и оптимизация показателей связности сети в условиях стоимостных и структурных ограничений: Диплом. работа бакалавра. Новосибирск, 2007.

8. De Castro L. N., Von Zuben F. J. The clonal selection algorithm with engineering applications in workshop // Proc. of the Intern. conf. on genetic and evolutionary computation (GECCO) and workshop on artificial immune systems and their applications, Las Vegas (USA), 2000. S. l.: Morgan Kaufmann, 2000. P. 36-37.

9. Gen M. Genetic algorithms and engineering design / M. Gen, R. Cheng. N. Y.: John Wiley and Sons Inc., 1997.

Нечунаева Ксения Александровна - асп. Института вычислительной .математики и математической геофизики СО РАН; e-mail: ksu.nech@rav.sscc.ru

Дата поступления - 01.04.10