ФОРМУЛЫ ДЛЯ БЫСТРОГО РАСЧЕТА ВЕРОЯТНОСТИ СВЯЗНОСТИ ПОДМНОЖЕСТВА ВЕРШИН В ГРАФАХ НЕБОЛЬШОЙ РАЗМЕРНОСТИ
Д. А. Мигов
Институт вычислительной математики и математической геофизики СО РАН,
630090, Новосибирск, Россия
УДК 519.17+519.24
Предлагается способ получения формул для расчета вероятности связности подмножества вершин в графе с абсолютно надежными вершинами и ненадежными ребрами, основанный на переборе вариантов полного отсечения каждой из вершин. Формулы, полученные для быстрого расчета вероятности связности подмножества вершин в 4- и 5-вершинных графах, могут быть использованы при расчете такой вероятности для графов большой размерности методом ветвления.
Ключевые слова: случайный граф, надежность сети, метод ветвления.
The method for obtaining formulas of small graphs k-terminal reliability calculation is proposed. The graphs with reliable vertices and unreliable edges are considered. The proposing method is based on enumeration of cutting cases for every terminal vertex. As a result, rapid calculation formulas for k-terminal reliability of 4-, 5-vertex graphs are obtained. These formulas are useful for calculation of k-terminal reliability for graphs of large dimension by the factoring method.
Key words: random graph, network reliability, factoring method.
Введение. При функционировании сети возможен выход из строя ее элементов. Одним из важнейших показателей структурной надежности сети, компоненты которой подвержены случайным отказам, является вероятность связности заданного множества узлов (полюсов). Обычно сеть с ненадежными элементами описывается случайным графом, вершины которого соответствуют узлам сети, а ребра — каналам связи. В данной работе рассматривается задача точного вычисления надежности многополюсной сети с абсолютно надежными узлами и ненадежными каналами связи. В терминах теории графов эта задача формулируется как задача точного вычисления вероятности связности подмножества вершин в случайном графе.
Данная задача является NP-трудной [1], поэтому ранее на практике использовались различные приближенные методы, несмотря на то что точные методы исследовались во многих работах [1-8]. Однако с развитием вычислительной техники появилась возможность точно обсчитывать сети малой и средней размерности (десятки и сотни узлов). Кроме того, точные методы необходимы для оценки точности и сходимости приближенных методов.
1. Основные определения и обозначения. Рассмотрим произвольный неориентированный граф G = (V, Е), где V - множество вершин; Е — множество ребер графа G. Пусть для каждого ребра задана вероятность его присутствия в графе, при этом предполагается, что вершины абсолютно надежны. Также задано выделенное подмножество вершин K, для которых необходимо обеспечить связность. Такие вершины будем называть целевыми. Положим k = \K\, N = \V\, M = \Е|. Далее под связностью будем понимать связность целевых вершин.
Элементарным событием будем называть частную реализацию графа, определяемую исправностью или отказом каждого ребра.
Вероятность элементарного события равна произведению вероятностей присутствия исправных ребер, умноженному на произведение вероятностей отсутствия отказавших ребер.
Произвольное событие (событие есть объединение некоторых элементарных событий) будем называть успешным, если в каждом элементарном событии, входящем в это событие, целевые вершины могут быть связаны исправными ребрами.
Вероятность Як (О) связности вершин К в графе О есть вероятность того, что эти верттти-ны связаны исправными ребрами, т. е. вероятность события, состоящего из всех успешных событий и только из них.
Будем также использовать следующие обозначения: Аг (г Е К) - событие, в котором
отсутствуют все ребра, инцидентные вершине г (А0 = П Аг, А = и А,); Вг - несвязное
гек гек
событие, в котором ровно г ребер инцидентны целевым вершинам, при этом отсутствуют
целевые вершины нулевой степени: В = У Вг, где I - подходящее множество индексов,
ге1
для которых Вг имеет смысл (далее устанавливаются границы этого множества, в пределах которых Вг не пусто).
2. Метод ветвления для расчета вероятности связности подмножества вершин
графа. Наиболее широко известным методом расчета вероятности связности графа является метод ветвления (метод факторизации, метод Мура - Шеннона [1-3], суть которого заключается в рекурсивном применении формулы полной вероятности при рассмотрении в качестве альтернативных гипотез наличия либо отсутствия очередного разрешающего ребра. Соответствующая формула имеет вид
Як(О) = РеЯк(О(е)) + (1 _ Ре)Як(1)
где е - произвольное ребро графа О; ре - вероятность присутствия ребра е в графе О; О(е) - граф О, стянутый по ребру е; К - множество целевых вершин в О(е); О\{е} - граф, получаемый из О удалением ребра е.
В методе ветвления рекурсии продолжаются до тех пор, пока не будет получен граф с несвязными целевыми вершинами либо граф малой размерности. Для этих графов вероятность связности желательно рассчитывать напрямую, для возможно большей размерности, так как это избавляет от необходимости дальнейшей декомпозиции и, следовательно, приводит к уменьшению числа рекурсивных вызовов. При этом в силу многократного выполнения формулы расчета необходимо построить ее оптимальным образом. Однако, если формула содержит большое количество операций и переменных, получить ее оптимальный вид (с наименьшим количеством операций) достаточно сложно.
В работе [7] приводятся формулы вероятности связности 3- и 4-вершинных графов, полученные с помощью перебора связных событий. Метод ветвления по ребрам дает те же формулы. При этом рассматривался только случай связности всех вершин.
В данной работе предлагается метод получения формул для графов произвольной размерности, основанный на переборе несвязных событий, причем за основу берутся варианты полного отсечения каждой из вершин. Получены формулы быстрого расчета вероятности связности подмножества вершин в 4- и 5-вершинных графах. Формула для 4-вершинного графа содержит значительно меньшее количество операций, чем тождественная ей формула из [3], полученная перебором связных событий. Формулы для 5-вершинного графа получить
перебором связных событий представляется очень затруднительным - для этого потребуется перебрать очень большое количество событий, соответственно получатся очень сложные формулы.
3. Формула вероятности связности подмножества вершин в графе произвольной размерности. Предлагаемый в данной работе способ получения формул основан на двух положениях:
- несвязные события в полном графе перебирать проще, чем связные, так как их количество меньше;
- перебор несвязных событий значительно упрощается, если эти события сгруппировать по вариантам полного отсечения каждой из целевых вершин.
Утверждение 1. Имеет место равенство
Як (О) = 1 — Р (А) - Р (В). (2)
ДОКАЗАТЕЛЬСТВО. Рассмотрим произвольную несвязную реализацию Q графа О. Возможны следующие варианты:
1) Q содержит полностью отсеченную целевую вершину;
2) Q не содержит ни одной полностью отсеченной целевой вершины.
В первом случае Q Е А, во втором Q Е Вг при подходящем значении г. Так как А и В -
непересекающиеся события, то 1 — Як(О) = Р(А) + Р(В). Перенеся Як(О) в одну часть уравнения, получаем искомый результат. Утверждение доказано.
Вычисление Р(В) и Р(А) удобно осуществлять по формулам
Р(В) = £ Р(Вг); (3)
ге1
к
Р(А)=^2—Е РА П - П А,,)■ (4)
г=1
,1 ,...,,,ек
Формула (4) является формулой для вычисления вероятности объединения произвольного количества событий (формула включений-исключений), формула (3) следует из того, что Вг (г Е I) - непересекающиеся события. Множество индексов I, для которых Вг не пусто, находится следующим образом.
Утверждение 2. Если к = 2, то Вг = 0 только для г Е I = {2,..., N — 2}.
Если к > 2, то Вг = 0 только для
= Г {к/2,..., — 2)2 — N — 2)] /2 + 1} при четном к,
\ {(к + 1)/2,..., [(N — 2)2 — (N — 2)] /2 + 1} при нечетном к.
ДОКАЗАТЕЛЬСТВО. Если к = 2, то при г < 2 получаем отсеченную целевую вершину, при г > N — 2 между целевыми вершинами будет присутствовать ребро, следовательно, это будет связное событие и Вг = 0.
Если к > 2 (к - четное), то при г < к/2 получаем отсеченную целевую вершину. Максимальное количество ребер, инцидентных целевым вершинам, имеет место в случае отделения двух целевых вершин, связанных только друг с другом, от остальных вершин, образующих клику. В этом случае между парой целевых вершин, связных только друг с другом, имеется
одно ребро, количество ребер в клике с N — 2 вершинами равно ((N — 2)2 — N — 2))/2 + 1. Случай нечетного к доказывается аналогично. Утверждение доказано.
Если к = N, то формулу (4) можно записать следующим образом:
Р(А) = £(—1)г+1 £ Р(А,1 П ... П А,,) + (N — 1)Р(Ао). (5)
г=1
31,...,3г^У
8=^Ъ=]Ь
Истинность этой формулы следует из того, что при к = N в формуле (4) слагаемые с индексами г = N — 1, г = N имеют вид N(—1)мР(А0) и (—1)м+1Р(А0) соответственно. Следовательно, сумма этих двух слагаемых есть (—1)мN — 1)Р(А0).
Непосредственно использовать формулы (2)-(5) в методе ветвления для обработки конечных графов малой размерности весьма сложно, к тому же, по-видимому, это не ускорит процесс расчета. Однако если для графа с определенным количеством вершин перебрать вероятности всех событий Вг (г Е I), А, (^ Е К), привести подобные в формулах (3)-(5) и подставить найденные значения в формулу (2), то полученное выражение будет компактным (по сравнению с тождественными выражениями, полученными другими методами) и может быть использовано в методе ветвления.
4. Вероятность связности подмножества вершин в 4-вершинном графе. С помощью выражений (2)-(5) получим формулы вероятности связности подмножества вершин в 4-вершинном графе. Использовать предложенный метод для расчета вероятности связности графов меньшей размерности нецелесообразно - соответствующие формулы проще получить перебором связных реализаций.
Пусть граф О содержит четыре вершины. Дополним О до полного графа, добавив ребра с нулевой вероятностью присутствия (рис. 1). Очевидно, что для полученного и исходного графов значения вероятности связности целевых вершин будут совпадать. Вероятности присутствия ребер обозначим
а = Pl2, Ь = P23, с = Р34, d = Р14, е = P24, / = Р13.
При использовании выражений (2)-(5) удобно сразу переходить к значениям вероятностей отсутствия ребер, поэтому при подсчете количества операций в полученных формулах дополнительно учитываются шесть операций сложения. Для вещественного числа р через р будем обозначать разность 1 — р.
Пусть все четыре вершины - целевые. Используя предложенный метод, получаем
1 — Я1,2)з,4(О) = ба'Ыс'^е'/' + а'Ь'е'+а1^/' + ЬЧ/' + с^^е'— ( )
—2(Ь^е/'(а' + С — 0,5)+а'с'е'/' (Ь' + ^ — 0,5) + а'Ь'с' d'(e + / — 0,5)).
Формула (6) содержит 27 операций умножения и 20 операций сложения-вычитания. Тождественная формула, полученная в [7] перебором связных событий, содержит 110 операций умножения и 38 операций сложения-вычитания.
Пусть граф содержит три целевые вершины 1, 2, 3. Перебором связных реализаций получаем формулу
Я1)2)3(О) = аЬ/ + а'Ь/+аЬ'/ + аЬ/' + cde(a'/' + аЬ'/' + а'Ь'/)+ ( )
+ аЬ с/'^'е + de') + а' Ьd/' (Се + се') + а'Ь'е/(с^ + сd').
1 а 2
Рис. 1. 4 вершинный граф Рис. 2. 5-вершинный граф
С использованием предложенного метода получаем тождественную формулу
1 - Д1,2,з(С) = а'Ъ'/'(е'в' + с'(е' + в' - е'в')) - а'в'(/' + Ъ'с'е/)- ( )
— Ъ'е'(а' + асв' /') — с' /' (Ъ' + а'Ъс'ве').
Формула (7) содержит 34 операции умножения и 33 операции сложения-вычитания, формула (8) - 22 и 16 операций соответственно.
Пусть граф содержит две целевые вершины 1, 2. Перебором связных реализаций получаем формулу
Л1)2(С0 = а + а' (Ъ/ + ве — Ъ/ве + Ъсве' /' + Ъ'св'е/). (9)
С использованием предложенного метода получаем
1 - ^(С) = а'(Ъ'(е' - в'е'/' + с'в'е/) + /'(в' + Ъс'ве')). (10)
Формула (9) содержит 14 операций умножения и 10 операций сложения-вычитания, формула
(10) - по 11 операций.
Таким образом, для получения формул предложенным методом во всех случаях требуется меньшее количество операций, чем для получения формул перебором связных событий.
5. Вероятность связности подмножества вершин в 5-вершинном графе. Рассмотрим 5-вершинный граф (рис. 2). Как и выше, граф может не быть полным, что равносильно равенству нулю вероятностей присутствия соответствующих ребер. Вероятности отсутствия ребер обозначим
а = ?12, Ъ = Р13, с = Р14, в = ?15, е = ?23,
/ = р24, д = р25, К = Р34, п = Р35, v = р45.
В случае двух целевых вершин с помощью выражений (2)-(5) получаем формулу
1 - Л1;2(С) =аЪ((1 - е)д(1 - в)сп[и + /К(1 - V)] + (1 - с)/К[п + вv(1 - и)] + св(1 - е/д)) +
+ а/((1 - д)в(1 - c)Ъv[h + еи(1 - К)] + (1 - Ъ)еп[и + сК(1 - V)] + ед)+
+ (1 - /)асе(1 - Ъ)вК[и + gv(1 - и)] + (1 - в)gv[h + Ъи(1 - К)].
В случае трех целевых вершин имеем
1 — Иі,2,з(С) = abcd {1 + дУе(пК — 1) + agfe(1 — ЪпК) + еЪпК+
+ uf [(1 — е)аЪ(дН(1 — cd) + ^((1 — с)(1 — g)dh + (1 — d)(1 — К)сд)) +
+ (1 — д)(1 — К)еь(Ъс(1 — ad) + ad(1 — Ъс))] +
+ dh[(1 — b)ae(cu(1 — fg) + ^((1 — с)(1 — g)fu + (1 — f )(1 — п)сд)) +
+ (1 — с)(1 — п)Ы(ед(1 — af) + af (1 — ед))] +
+ сд[(1 — a)be(df (1 — пК) + ^((1 — d)(1 — h)fu + (1 — f )(1 — п^К)) +
+ (1 — d)(1 — f)av(eh(1 — Ъп) + Ъп(1 — еК))]} .
Если целевых вершин четыре, удобно ввести в рассмотрение 10 дополнительных значений:
к1 = 1 + gfe[h(u + V — ^) — 1] + euh(vf — 1) — vfh,
к2 = 1 + ЪпК^с — 1) — vch,
кз = 1 — vcf,
к4 = (1 — d)(1 — g)auv + (1 — a) {^ + dg[1 — v + (1 — u)v]} , к5 = (1 — d)(1 — u)vgb + (1 — Ъ) ^д + ud[1 — v + (1 — д^]} , к6 = (1 — d)(1 — v)guc + (1 — с) {дп + dv[1 — д + (1 — п)д]} , к7 = (1 — a)g[1 — е + (1 — Ъ)е] + (1 — b)a[(1 — е)д + (1 — д)е], к% = (1 — f )v[1 — a + (1 — c)a] + (1 — a)f [(1 — c)v + (1 — v)c], кд = (1 — К)п[1 — с + (1 — Ъ)с] + (1 — с)К[(1 — Ъ)п + (1 — п)Ъ], к10 = (1 — е)(1 — f) + (1 — к)[(1 — e)f + (1 — f )е].
Тогда искомая формула принимает следующий вид:
1 — ^1,2,3,4 (С) = ab[cdk1 + (1 — е)уКк6 + (1 — d)cguvk10] + cfh[v + (1 — v)duk7] + +fe[agk2 + (1 — К)Ъск4 + (1 — g)advkд] + еК[Ъпк3 + (1 — f )ack5 + (1 — u)bdgk8].
В случае пяти целевых вершин потребуется 15 дополнительных значений:
к1 = 1 — e(fg + Кп),
к2 = 1 — К(Ъп + от),
кз = 1 — v(cf + dg),
к4 = 1 — d(ab + дп),
к5 = 1 — a(bc + ef),
к6 = (1 — a)(1 — К)(1 — п) + (1 — a)(1 — v)[(1 — К)п + К(1 — п)] + ahu(1 — 4v), к7 = (1 — с)(1 — d)(1 — е) + (1 — е)(1 — v)[(1 — c)d + с(1 — d)] + dev, к8 = (1 — a)(1 — d)(1 — к) + (1 — д)(1 — К)[(1 — a)d + a(1 — d)] + ahg, кд = (1 — a)(1 — Ъ)(1 — v) + (1 — е)(1 — v)[(1 — a)b + a(1 — Ъ)] + aev,
к10 = (1 — е)(1 — d)(1 — f) + (1 — d)(1 — К)[(1 — e)f + е(1 — У)] +
к11 = (1 — Ъ)(1 — у )(1 — д) + (1 — Ъ)(1 — v)[(1 — у )д + у (1 — д)] + ^, к12 = (1 — с)(1 — е)(1 — д) + (1 — с)(1 — п)[(1 — е)д +е(1 — д)] + сеп,
к13 = (1 — Ъ)(1 — d)(1 — у ) + (1 — у )(1 — п)[(1 — Ъ)<^ +Ъ(1 — d)] +Ъ^,
ки = (1 — Ъ)(1 — с)(1 — д) + (1 — д)(1 — К)[(1 — Ъ)с + Ъ(1 — с)] + Ъсд, к15 = (1 — a)(1 — с)(1 — п) + (1 — у )(1 — п)[(1 — a)c + a(1 — с)] + сУп.
Результаты расчетов
Граф Время работы алгоритма
Factoring 2 Factoring 4 Factoring 5
Kis N =13, M = 78, к = 6 5 мин 24 с 2 мин 36 с 58 с
Grid 6 х 6 N = 36, M = 60, к = 2 4 мин 22 с 3 мин 22 с 2 мин 46 с
G(60, 80) N = 60, M = 80, к = 40 1 мин 32 с 1 мин 4 с 40 с
G(60, 80) N = 60, M = 80, к = 2 9,3 с 6,4 с 4 с
Предложенным методом получаем формулу вероятности связности 5-вершинного графа:
1 — ^,2,3,4,5(G) = bc[adki + fe(dgk6 + uvk8)) + cv[fhk4 + ag(bukl0 + ehkl3)) +
+ bh[euk3 + dv(afkl2 + egkl5)) + fg[aek2 + hu(abk7 + cdk9)) +
+ du[gvk5 + ae(chkll + fvkl4)].
6. Результаты численных экспериментов. Проанализируем результаты, полученные при использовании формул, приведенных в пп. 4, 5. При проведении численных экспериментов использовались три модификации метода ветвления. Алгоритм Factoring 2 - простой метод ветвления, рекурсии продолжаются до получения 2-вершинных графов. Алгоритмы Factoring 4 и Factoring 5 также являются методами ветвления, рекурсии продолжаются до получения 4- и 5-вершинных графов соответственно. Во всех трех алгоритмах на предварительном этапе граф разбивался на двусвязные компоненты, на каждом шаге алгоритма ветвления осуществлялось последовательно-параллельное преобразование, что позволяло дополнительно уменьшить время расчета. Отметим, что если ввести в рассмотрение алгоритм Factoring 3, в котором рекурсии продолжаются до получения 3-вершинных графов, то он не будет отличаться от алгоритма Factoring 2, так как при последовательно-параллельном преобразовании из любых 3-вершинных графов получаются 2-вершинные.
Расчеты проводились на полном 13-вершинном графе с шестью целевыми вершинами на решетке размером 6 х 6 вершин с двумя целевыми вершинами, а также на случайно сгенерированных графах. Для экспериментов со случайными графами сгенерировано по 100 графов с 60 вершинами, 80 ребрами, 40 целевыми вершинами и 100 графов с 60 вершинами, 80 ребрами, двумя целевыми вершинами. Для генерации графов использовался алгоритм, изложенный в [9], в котором каждый связный граф с заданным количеством элементов является достижимым и все подходящие графы могут быть выбраны с равными вероятностями. Время работы алгоритмов указано в таблице, для случайно сгенерированных графов приведено среднее время. Расчеты проводились на ПЭВМ с процессором Intel Pentium 4, 2,5 GHz, RAM: 512 Mb. Из данных, приведенных в таблице, следует, что при использовании формул, полученных в п. 5 для 5-вершинного графа, процесс расчета можно ускорить в 1,2-2,5 раза по сравнению с расчетом при использовании формул (6)-(10) для 4-вершинного графа и в 1,5-5,5 раза по сравнению с расчетом при использовании простого метода ветвления.
Заключение. Для вычисления вероятности связности подмножества вершин графа методом ветвления необходимо иметь формулы точного расчета для графов возможно большей
размерности, что позволяет уменьшать число рекурсий. Также важна эффективность реализации данных формул, поскольку вычисления с их использованием проводятся многократно. Предложенная в данной работе методика позволила получить формулы, соответствующие этим требованиям. Как показали численные эксперименты, применение полученных формул позволяет существенно уменьшить время расчета для графов произвольной размерности.
Список литературы
1. Colbourn Ch. J. The combinatorics of network reliability. N. Y.: Oxford Univ. Press, 1987. 160 p.
2. Page L. B., Perry J. E. A practical implementation of the factoring theorem for network reliability // IEEE Trans. Reliability. 1988. V. 37, N 3. P. 259-267.
3. Resende L. I. Implementation of a factoring algorithm for reliability evaluation of undirected networks // IEEE Trans. Reliability. 1988. V. 37, N 5. P. 462-468.
4. Wood R. K. Triconnected decomposition for computing K-terminal network reliability // Networks. 1989. V. 19. P. 203-220.
5. Shooman A. M., Kershenbaum A. Methods for communication-network reliability analysis: probabilistic graph reduction // IEEE Proc. of the reliability and maintainability symp., Las Vegas (USA), 1992. P. 441-448.
6. Carlier J., Lucet C. A decomposition algorithm for network reliability evaluation // Discrete Appl. Math. 1996. V. 65, N 1-3. P. 141-156.
7. Родионов А. С., РодионовА О. К. Некоторые методы ускорения расчета надежности информационных сетей // Тр. 30-й Междунар. конф. “Информационные технологии в науке, образовании, телекоммуникации и бизнесе” (IT+SF’2000), Гурзуф, Украина, 2003. Запорожье: Изд-во Запорож. гос. ун-та, 2003. С. 215-217.
8. Rodionova O. K., Rodionov A. S., Choo H. Network probabilistic connectivity: Exact calculation with use of chains // Springer Lecture Notes Comput. Sci. 2004. V. 3046. P. 315-324.
9. Rodionov A. S., Choo H. On generating random network structures: connected graphs // Springer Lecture Notes Comput. Sci. 2004. V. 3090. P. 483-491.
Мигов Денис Александрович - канд. физ.-мат. наук, науч. сотр. Института вычислительной математики и математической геофизики СО РАН; тел. (383)330-65-79; e-mail: [email protected]
Дата поступления - 16.12.09