Московский физико-технический институт
Опубликован: 07.08.2007 | Доступ: свободный | Студентов: 5447 / 1060 | Оценка: 4.28 / 3.93 | Длительность: 45:30:00
ISBN: 978-5-94774-706-5
Лекция 17:

Моделирование сетей, сетевая надежность и сетевые драйверы

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >

Основные определения

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

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

Для модели с двумя состояниями вероятность работоспособности компонента или, проще, надежность, можно понимать по-разному. Наиболее распространенными являются формулировки:

  1. доступность компонента;
  2. надежность компонента.

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

\frac{среднее\ время\ до\ отказа}{среднее\ время\ до\ отказа + среднее\ время\ восстановления}

Определение надежности компонента не учитывает время восстановления. Специфицируется промежуток времени t, а надежность компонента определяется как вероятность того, что за это время t компонент останется в рабочем состоянии. Допускаются также иные трактовки для вероятности того, что компонент работает. Конечно, интерпретация уровня надежности компонента определяет в свою очередь интерпретацию мер сетевой надежности. В оставшейся части статьи мы будем использовать вероятность работоспособности или надежности и не будем пытаться это как-либо интерпретировать.

За отправную точку примем сеть G=(V,E), в которой V - набор узлов или вершин, а Е - набор неориентированных ребер или набор ориентированных дуг. При изучении моделей связанности для каждого е \in Е мы определяем надежность е(р_е) как Pr[e работает]. При изучении простых моделей потоков (кратчайших путей), мы ассоциируем пропускную способность с_е (расстояние d_е ) с каждым е \in Е. Мы интерпретируем р_е, как вероятность того, что е работает и имеет пропускную способность с_е (расстояние d_е ), а 1-р_е - как вероятность того, что е не работает и имеет пропускную способность 0 (расстояние равно бесконечности). При изучении моделей потоков (кратчайших путей) с множеством состояний мы ассоциируем распределение пропускной способности {c_{е,i}, p_{е,i}} (распределение расстояний {d_{е,i}, p_{е,i}}) для е \in Е. Здесь p_{е,i} - вероятность того, что е будет иметь пропускную способность c_{е,i} (расстояние d_{е,i} ).

Иногда, при изучении сетевой надежности, бывает удобно переходить к обобщенным случаям и рассматривать когерентные двоичные системы. Стохастическая бинарная система SBS (stochastic binary system) - представляет собой систему, которая отказывает случайным образом в результате случайного выхода из строя ее компонента. Каждый компонент из набора сетевых компонентов T может принимать одно из двух значений: работает, не работает. Структура системы описывается функцией \psi (S), определенной для S \subseteq T.

\psi(S)=\left\{\begin{aligned}1, если, когда\ S\ работает, а\ T-S\ не\ работает, система\ функционирует.\\0, если, когда\ S\ работает, а\ T-S\ не\ работает, система\ не\ функционирует\\\end{aligned}

Функция SBS является когерентной, если \psi (Т)=1, \psi (0)=0 и выполняется условие \psi (S'') \ge \psi (S) для S'' \sup S. Последнее свойство означает, что выход из строя любого из компонентов может только повредить работе системы. Представляет интерес задача вычисления выражения:

Rel(SBS,p)=Pr[\psi (S)=1], где S - набор работающих компонентов,

если известен вид распределения \psi (). Иногда мы рассматриваем задачи надежности, где р_{е}=p для всех е, в этих случаях мы заменяем p на p в представленной выше нотации. Для произвольной стохастической когерентной двоичной системы ( SCBS - stochastic coherent binary system) определим набор путей как набор компонентов, работоспособность которых означает работу системы в целом. Назовем минипроходом минимальный набор путей, обеспечивающих работоспособность системы. Аналогично определим набор разрезов как набор компонентов, чей отказ вызовет отказ системы, а миниразрезом назовем минимальный набор таких разрезов.

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

Замена ненадежного узла

Рис. 17.3. Замена ненадежного узла

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

Введение к сложности анализа надежности

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

Чтобы наиболее простым образом свести задачи анализа надежности к более знакомым комбинаторным проблемам, рассмотрим частный случай задачи анализа надежности, которая возникает, когда все индивидуальные компоненты надежности равны, т.е. p_{i} для всех i. В этом случае Rel(SBS,p) можно записать в виде полинома по степеням p:

Rel(SBS,p)=\sum_{i=0}^m F_ip^{m-i}(1-p)^i

Этот полином является полиномом надежности. Задача по его вычислению называется задачей анализа функциональной надежности, где в качестве входных данных используется представление SBS, а на выходе получается вектор {F_{i}}.

Общий член в полиноме надежности F_{i}p^{m-i}(1-p)^i представляет собой вероятность того, что работает ровно m-i компонентов сети и функционирует система в целом.

Результатом задачи по распознавания гамильтоновых контуров может быть либо "Да", если в графе содержатся контуры, либо "Нет", а результатом задачи подсчета гамильтоновых контуров в графе является число таких контуров. NP и NP-полный являются классами задач распознавания. Классы, соответствующие задачам подсчета, обозначаются #P и #P-полный. Очевидно, что любая задача подсчета, по крайней мере, не проще, чем соответствующая ей задача распознавания. Например, если известно число гамильтоновых контуров в графе, то не составит труда ответить на вопрос: "Больше ли нуля число гамильтоновых контуров?". Получается, что любая разновидность задачи подсчета из NP-полного класса часто является #P-полной. С другой стороны, существуют примеры задач распознавания, у которых время решения является полиномиальным, а их счетные аналоги относятся к NP-полному классу. Например, задача поиска точного соответствия в двудольном графе имеет полиномиальное время решения, а задача поиска точного числа полных соответствий в двудольном графе является #P-полной. Чтобы не усложнять этот обзор, мы не будем подробней вдаваться в проблему сложности, а будем лишь указывать, относится ли она к полиномиальному классу или классу NP сложности.

Многие практические приложения требуют использования моделей с разной надежностью компонентов. В таких моделях все вероятности являются рациональными числами. Мы формулируем проблему анализа рациональной надежности следующим образом. В качестве входной информации используется представление SBS и для каждого компонента i пара целых чисел a_{i}, b_{i}. На выходе получается пара целых чисел a и b таких, что a/b = Rel(SBS,{a_{i}/b_{i}}).

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

Для любой задачи анализа рациональной надежности r-Rel и соответствующей ей задачи анализа функциональной надежности, f-Rel за полиномиальное время может быть сведена к r-Rel.

В f-Rel входит представление функции SBS. На выходе необходимо получить набор коэффициентов {F_{i}} полинома надежности. Чтобы преобразовать f-Rel в r-Rel, выберем m+1 рациональное значение вероятности 0 < p_{0} < p_{1} < ... < p_{m} < 1. Для j= 0,1,…,m обозначим решения соответствующей задачи анализа рациональной надежности как r_{j} = Rel(SBS,p_{j}), где все компоненты надежности установлены равными p_{j}. Теперь мы можем записать систему уравнений:

\sum_{i=0}^m F_ip_j^{m-i}(1-p)^i=r_j для j = 0,1,...,m.

Решив m+1 задачу анализа рациональной надежности, найдем p_{j} и r_{j}. Получим систему из m+1 линейного уравнения с m+1 неизвестными F_{i}. Коэффициенты матрицы имеют свойство матрицы Вандермонде и, следовательно, матрица является невырожденной, таким образом, можно вычислить значения F_{i}.

Исследуем более детально вид полинома надежности для функций SCBS. Если задана SCBS, мы определяем значения:

  • m = число компонентов в системе
  • с = мощность набора минимального разреза
  • n_{c} = число наборов разрезов с минимальной мощностью
  • l = мощность минимального набора путей
  • n_{l} = число наборов путей с минимальной мощностью

Заметим сразу, что коэффициенты полинома надежности обладают следующими свойствами:

0\le F_i\le{n\choose i}, для i =0,1,...,m

F_i={n\choose i},
для i<c,

F_i={n\choose i}-n_c,
для i=c,

F_{i}=n_{l} для i=m-l,

F_{i}=0 для i>m-l

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

Сложность анализа сетевой надежности

Приведем результаты, полученные для сложности анализа сетевой надежности в трех частных задачах: k-терминальной 2-терминальной и всетерминальной.

k терминалов

Набор путей с минимальной мощностью для k-терминальной меры является деревом Штейнера с минимальной мощностью. Известно, что задача распознавания является NP сложной для ориентированных и неориентированных сетей. Анализ функциональной и рациональной надежности для задачи анализа имеют NP сложность. Валиант [L.G.Valiant, "The complexity the enumeration and reliability problems", SIAM, J. Computing, 8 (1979), 410-421] приводит альтернативное доказательство, заключающееся в демонстрации того, что вычисление

SN(K)=\Sigma F_i = |{S : S ~соответствует ~субграфу, ~который ~содержит ~путь ~до ~каждого ~узла ~в ~К}|, имеет сложность NP. Здесь K является набором терминалов.

2 терминала

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

Всетерминальная мера

Для ориентированной всетерминальной меры проблемы с наборами путей и разрезов с минимальной мощностью являются задачами поиска минимального покрывающего дерева и минимального s-ориентированного разреза, соответственно.

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

В свете этих негативных результатов, большинство исследований имело целью анализ структурированных сети. Самый широкий класс сетей, для которых можно выполнить вычисления за полиномиальное время, базируется на последовательно-параллельных графах и определенных обобщениях. Прован ( J.S.Provan, "The complexity of reliability computations in planar and acyclic graphs", SIAM, J. Computings 8 (1986), 694-702 ) показал, что неориентированная 2-терминальная проблема надежности обладает сложностью NP в планарных нециклических сетях, имеющих степени узлов не выше трех.

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

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

Ребро или дуга, которые не входят ни в один из минимальных наборов путей, называется нерелевантным: работоспособность таких нерелевантных ребер не влияет на работу или отказ сети. Самым простым способом упрощающим преобразования графа является удаление нерелевантных ребер. По определению, такое преобразование не меняет меру надежности. Чтобы преобразование имело практическое применение для сети, время его эффективной реализации должно быть полиномиальным. Для все-, k- и 2-терминальных мер надежности петли всегда являются нерелевантными. А для k- и 2- терминальных мер надежности нерелевантными являются также все оконечные ребра, не имеющие терминального окончания. Такие ребра легко находить и удалять. В случае ориентированных задач надежности поиск нерелевантных дуг отнюдь не простая задача. Было показано, что задача нахождения нерелевантных дуг в случае (s,t) -связанности имеет сложность NP, в то время как общая неориентированная задача допускает эффективное решение.

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

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >
Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?

Нияз Сабиров
Нияз Сабиров

Здравствуйте. А уточните, пожалуйста, по какой причине стоимость изменилась? Была стоимость в 1 рубль, стала в 9900 рублей.