Помощь в написании студенческих работ
Антистрессовый сервис

Исследование структурной надежности методом статистического моделирования

ДипломнаяПомощь в написанииУзнать стоимостьмоей работы

Для простоты положим, что узлы этой сети идеально надежны, а ветви имеют конечную надежность рi, i =. Нумерация ветвей приведена на рисунке. Проделаем с элементом под номером 5 («перемычка «мостика) два опыта — «короткого замыкания «, соответствующий исправному состоянию элемента, и «холостого хода «, соответствующий его неисправному состоянию. Если перемычка находится в исправном состоянии, что… Читать ещё >

Исследование структурной надежности методом статистического моделирования (реферат, курсовая, диплом, контрольная)

  • 1 МЕТОДЫ ИССЛЕДОВАНИЯ СТРУКТУРНОЙ НАДЕЖНОСТИ
    • 1.1 Точный метод анализа структурной надежности
    • 1.2 Приближенные методы анализа структурной надежности
      • 1.2.1 Метод разложения

1.2.2 Метод сечений или совокупности путей.

1.2.3 Метод двухсторонней оценки.

1.2.4 Метод статистической оценки структурной надежности.

  • 2 ИССЛЕДОВАНИЕ СТРУКТУРНОЙ НАДЕЖНОСТИ МЕТОДОМ СТАТИСТИЧЕСКОГО МОДЕЛИРОВАНИЯ
    • 2.1 Критерии оценки структурной надежности методом статистического моделирования
    • 2.2 Разработка алгоритма расчета структурной надежности
      • 2.2.1 Алгоритм расчета структурной надежности сети связи методом статистического моделирования
      • 2.2.2 Алгоритм интерфейсной части программы расчета надежности сети методом статистического моделирования
    • 2.3 Разработка программы расчета структурной надежности методом статического моделирования
      • 2.3.1 Разработка расчетной части программы расчета структурной надежности сети

2.3.2 Разработка интерфейсной части программы расчета структурной надежности сети.

  • 3 БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ
  • ЗАКЛЮЧЕНИЕ

Приложение, А Методические указания по работе с программой.

БИБЛИОГРАФИЯ.

Разработка современных информационных систем включает в качестве одного из обязательных этапов проектирования анализ их надежности. Проблема усложняется тем, что коммутационные сети, к анализу которых в конечном итоге сводится данная задача, являются сильно связными структурами (междугородние сети связи, системы управления). Это затрудняет, а порой делает невозможным расчет их надежности строго аналитическими методами, как это имеет место, например, для параллельно-последовательных сетей. Единственным численным методом расчета надежности сильно связанных сетей остается метод полного перебора, который, однако, даже с привлечением быстродействующих ЭВМ, не позволяет анализировать сети, содержащие более 15−20 случайных компонент.

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

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

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

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

1 МЕТОДЫ ИССЛЕДОВАНИЯ СТРУКТУРНОЙ НАДЕЖНОСТИ..

1.1 Точный метод анализа структурной надежности.

Введем несколько определений из теории графов.

Определение: ориентированная сеть считается заданной, если заданы множества вершин и ребер .

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

Определение: ориентированная релейно-стохастическая сеть ;

считается заданной если одновременно с множествами и заданы множества весовых коэффициентов.

и.

причем и — это вероятности независимых событий и, находятся в пределах:, .

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

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

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

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

Обозначим, тогда и пусть задает одно из возможных состояний компонент, а именно:

.

где .

Тогда вероятность каждого из возможных состояний сети будет определяться следующим образом:

.

где ,.

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

Определим переключательную функцию через величину проводимости сети между вершинами и для набора r. Для проводящих наборов соответствующие функции примем равными единице, а для непроводящих — нулю. Каждой паре вершин графа, таким образом, сопоставляется общая функция проводимости (соответствующая совершенной дизъюнктивной нормальной форме при задании сети в виде булевой функции):

.

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

(1.1).

где .

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

Как составление, так и решение формулы (1.1) — исключительно трудоемкий процесс, поскольку в ее основе лежит перебор всех состояний системы. Решение же данной формулы с использованием ЭВМ при времени выполнения операции умножения двух чисел, порядка, и состоящей из ненадежных компонент составит около 50 часов, а для сети с почти тысячу лет!

1.2 Приближенные методы анализа структурной надежности.

1.2.1 Метод разложения.

Несколько менее трудоемким является метод, основанный на разложении структуры сети относительно какого-нибудь ее элемента (метод разложения Шеннона _ Мура). Идея этого метода заключается в том, чтобы свести анализируемую структуру к последовательно-параллельным соединениям и тем самым избежать полного перебора состояний. Для примера рассмотрим сеть простейшей структуры в виде мостика (рисунок 1.1). Рисунок 1.1. Метод разложения.

Для простоты положим, что узлы этой сети идеально надежны, а ветви имеют конечную надежность рi, i =. Нумерация ветвей приведена на рисунке. Проделаем с элементом под номером 5 («перемычка «мостика) два опыта — «короткого замыкания «, соответствующий исправному состоянию элемента, и «холостого хода «, соответствующий его неисправному состоянию. Если перемычка находится в исправном состоянии, что случается с вероятностью p5, то соединяемые ею узлы можно «стянуть «в смысле надежности (рисунок 1.1) и сеть будет иметь вид двух последовательно соединенных и параллельно включенных пар ветвей. Если перемычка находится в неработоспособном состоянии, что случается с вероятностью 1 — p5, то оставшаяся сеть будет иметь вид параллельного соединения цепочек.

Таким образом, мы «разложили «сеть относительно элемента 5, в результате чего получили две подсети с числом элементов на единицу меньше, чем в исходной сети. Поскольку обе подсети представляют собой последовательно-парал-лельные структуры, то можно сразу записать искомое выражение для вероятности связности сети относительно узлов r, l, используя для компактности обозначение :

.

В более сложных структурах может потребоваться неоднократное применение теоремы разложения. Так, на рисунке 1.2 показано разложение относительно элемента 7 (верхняя строка), а затем по элементу 8 (нижняя строка). Получившиеся четыре подсети имеют последовательно-параллельные структуры и больше не требуют разложений. Легко видеть, что на каждом шаге число элементов в получающихся подсетях уменьшается на единицу, а число подсетей, требующих дальнейшего рассмотрения удваивается. Поэтому описанный процесс в любом случае конечен, а число результирующих последовательно-параллельных структур составит 2m, где т — число элементов, по которым пришлось провести разложение. Трудоемкость этого метода можно оценить величиной 2m, что меньше трудоемкости полного перебора, но все еще неприемлемо для расчета надежности реальных сетей коммутации.

Рисунок. 1.2. Последовательное разложение сети.

1.2.2 Метод сечений или совокупности путей.

Рассмотрим еще один метод расчета структурной надежности сетей. Предположим, что необходимо определить вероятность связности сети между заданной парой узлов A и B.

Критерием исправной работы сети в данном случае является наличие хотя бы одного пути передачи информации между рассматриваемыми узлами. Предположим, что имеется список возможных путей в виде перечня элементов (узлов и направлений связи), входящих в каждый путь. В общем случае пути будут зависимы, поскольку любой элемент может входить в несколько путей. Надежность Rs любого пути s можно вычислить по формуле последовательного соединения, где pi s — надежность элемента i пути s.

Искомая надежность зависит от надежности каждого пути и вариантов их пересечений по общим элементам. Обозначим надежность, которая обеспечивается первыми r путями, через. Добавление очередного (r + 1) пути, с надежностью, очевидно, приведет к увеличению структурной надежности, которая теперь будет определяться объединением двух событий: исправен хотя бы один из первых r путей или исправен (r + 1)-й путь. Вероятность наступления этого объединенного события с учетом возможной зависимости отказов (r + 1)-го и остальных путей.

(1.2).

где — вероятность исправности хотя бы одного из первых r путей при условии, что исправен (r + 1)-й путь.

Из определения условной вероятности следует, что при ее расчете вероятность исправной работы всех элементов, входящих в (r + 1)-й путь, необходимо положить равной единице. Для удобства дальнейших расчетов представим последний член выражения (1.2) в следующем виде:

(1.3).

где символ (¤) означает, что при перемножении показатели надежности всех элементов, входящих в первые r путей и общих с (r + l)-м путем, заменяются единицей. С учетом (1.3) можно переписать (1.2):

?,(1.4).

где? — приращение структурной надежности при введении.

(r + 1) _ пути; _ вероятность того, что произойдет одновременный отказ первых r путей.

Учитывая, что приращение надежности? Hr+1 численно равно уменьшению ненадежности? Qr+1 получаем следующее уравнение в конечных разностях:

?. (1.5).

Легко проверить, что решением уравнения (1.5) является функция:

(1.6).

В случае независимых путей операция символического умножения совпадает с обычным умножением и выражение (1.6) дает коэффициент простоя системы, состоящей из параллельно включенных элементов. В общем случае необходимость учета общих элементов путей заставляет производить умножение согласно (1.6) в алгебраическом виде. При этом число членов в результирующей формуле с умножением на каждый очередной двучлен удваивается и окончательный результат будет иметь 2r членов, что эквивалентно полному перебору совокупности всех r путей. Например, при r = 10 число членов в окончательной формуле превысит 1000, что уже выходит за рамки ручного счета. С дальнейшим увеличением числа путей довольно быстро исчерпываются и возможности современных ЭВМ.

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

pi ¤ pi = pi (1.7).

Напомним, что второй сомножитель (1.7) имеет смысл вероятности исправной работы i-го элемента при условии его исправности, которая, очевидно, равна единице.

Для сокращения дальнейших выкладок введем следующее обозначение ненадежности i-го элемента:

(1.8).

С учетом (1.7) и (1.8) можно записать следующие простые правила преобразования выражений:

;

;

;(1.9).

;

;

;

Для примера использования этих правил при расчете надежности рассмотрим простейшую сеть связи, изображенную на рисунке 1.3. Буквы, стоящие у ребер графа, обозначают показатели надежности соответствующих линий связи. Узлы для простоты будем считать идеально надежными. Предположим, что для связи между узлами, А и В можно использовать все пути, состоящие из трех и менее последовательно включенных линий, то есть следует учесть подмножество путей {м} = { ab, cdf, cgb, ahf }. Определим приращение надежности, обеспечиваемое каждым последующим путем, по формуле (1.4) с учетом (1.6):

? ,(1.10).

где аналогично (1.8).

Рисунок.1.3 — Пример сети расчета на ограниченном подмножестве путей.

Рисунок 1.4 — Пример сети для расчета надежности по полной совокупности путей.

Применяя последовательно формулу (1.10) и правила символического умножения (1.9) к рассматриваемой сети, получаем:

?;

?;

?;

?.

При расчете последнего приращения мы использовали правило 4, которое можно назвать правилом поглощения длинных цепей короткими; в данном случае его применение дает b ¤ cgb = b. Если разрешено использование других путей, например пути cdhb, то не представляет труда рассчитать обеспечиваемое им приращение надежности ?. Результирующую надежность сети можно теперь вычислить как сумму приращений, обеспечиваемых каждым из рассмотренных путей:

HR =?Hi (1.11).

Так, для рассмотренного примера в предположении, что надежность всех элементов сети одинакова, то есть a = b = c = d = f = h = g = p, получаем:

.

При машинной реализации в основу расчета можно также положить формулу (1.5), с учетом того, что.

?.(1.12).

Таким образом, окончательное выражение, согласно формуле (1.5), можно записать в виде следующего рекуррентного соотношения:

. (1.13).

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

В качестве примера рассчитаем надежность сети, изображенной на рисунке 1.4, относительно узлов, А и В, между которыми имеется 11 возможных путей передачи информации. Все расчеты сведены в таблицу 1.1: перечень элементов, входящих в каждый путь, результат умножения надежности данного пути на значение Qr, полученное при рассмотрении всех предыдущих путей, и результат упрощения содержимого третьего столбца по правилам (1.9). Окончательная формула для содержится в последней колонке, если ее читать сверху вниз.

Таблица 1.1 Результаты расчета надежности сети, изображенной на рисунке 1.4.

Номер Пути.

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

Поясним несколько шагов расчета. Поскольку Q0 = 1 (при отсутствии путей сеть разорвана), то для Q1 из (1.13). Делаем следующий шаг и, согласно (1.13), получаем: и так далее.

Рассмотрим подробнее шаг, на котором учитывается вклад пути 9. Произведение показателей надежности составляющих его элементов, записанное во втором столбце таблицы 1.1, переносится в третий. Далее в квадратных скобках записана вероятность разрыва всех предыдущих восьми путей, накопленная в четвертом столбце (начиная с первой строки), с учетом правила (1.7), согласно которому показатели надежности всех элементов, вошедших в путь 9, заменяются единицами. Вклад четвертой, шестой и седьмой строк оказывается равным нулю по правилу 1. Далее выражение, стоящее в квадратных скобках, упрощается по правилам (1.9) следующим образом:

.

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

Использование рассматриваемого метода позволяет получить общую формулу структурной надежности, содержащую в рассмотренном случае всего 15 членов вместо максимального числа 211=2048, получающегося при непосредственном перемножении вероятностей отказов этих путей. При машинной реализации метода удобно представить все элементы сети в позиционном коде строкой бит и использовать встроенные булевы функции для реализации логических элементов преобразований (1.9).

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

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

.

где pis — показатель надежности элемента i, входящего в дерево s; ns — число элементов в этом дереве.

Рассмотрим для примера простейшую сеть в виде треугольника, стороны которого взвешены показателями надежности а, b, с соответствующих ветвей. Для связности такой сети достаточно существования, по крайней мере, одного из деревьев аb, bс, са. Используя рекуррентное соотношение (1.4), определяем вероятность связности этой сети.

H cb = ab + bca + cab.

Если, а = b = с = р, получаем следующее значение вероятности связности, которое легко проверить перебором:

H cb = 3р2 — 2р3.

Для расчета вероятности связности достаточно разветвленных сетей вместо перечня связывающих деревьев, как правило, удобнее пользоваться перечнем сечений {у} которые приводят к потере связности сети по рассматриваемому критерию. Легко показать, что для сечения справедливы все введенные выше правила символического умножения, только вместо показателей надежности элементов сети в качестве исходных данных следует использовать показатели ненадежности q = 1 — p. Действительно, если все пути или деревья можно считать включенными «параллельно «с учетом их взаимозависимости, то все сечения включены в этом смысле «последовательно «. Обозначим вероятность того, что в некотором сечении s нет ни одного исправного элемента, через. Тогда можно записать.

(1.14).

где qis — показатель ненадежности элемента, входящего в пятое сечение.

Вероятность Нcb связности сети можно тогда представить аналогично (1.6) в символическом виде:

(1.15).

где r — число рассматриваемых сечений. Другими словами, для того чтобы сеть была связна, необходимо, чтобы одновременно были исправны хотя бы по одному элементу в каждом сечении с учетом взаимной зависимости сечений по общим элементам. Формула (1.15) является в некотором смысле двойственной по отношению к формуле (1.6) и получается из последней заменой путей на сечения и вероятностей исправной работы на вероятности пребывания в состоянии отказа. Аналогично двойственным по отношению к формуле (1.13) является рекуррентное соотношение:

Hr+1 = Hr — рr+1 ¤ Hr.(1.16).

Рассчитаем для примера вероятность связности рассмотренной выше треугольной сети с набором сечений ab, bc, ca. Согласно (1.15) при начальном условии имеем:

Hcd = ab — bca — cab,.

а при одинаковых показателях ненадежности элементов сети (a = b = c = q) получим:. Этот результат совпадает с ранее полученным по методу перечисления деревьев.

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

1.2.3 Метод двухсторонней оценки.

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

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

Обозначим через результат, полученный при перемножении вероятностей отказов первых r из общего числа n путей. Тогда с учетом следующего (r + 1) пути согласно (1.13) получим уточненную оценку :

(1.17).

Функция является монотонно неубывающей с возрастанием r и при дает точное значение. Промежуточные значения при можно рассматривать, как оценки снизу. Аналогично, исходя из формулы (1.15), можно получить монотонно не возрастающую последовательность, которую можно рассматривать, как последовательность оценок сверху. Характер зависимости и от r представлен на рисунке 1.5. Опыт показывает, что рассматриваемые зависимости при малых r меняются весьма круто, а с дальнейшим увеличением r очень медленно приближаются к общему пределу. Это свойство можно использовать для сокращения трудоемкости оценок надежности с заданной точностью. Действительно, для решения задачи достаточно последовательно просматривать пути м, пока не выполнится условие, а затем просматривать сечения у, пока не выполнится условие. Если для некоторого m окажется, что, то можно прекратить расчеты и принять решение, что в сети заложена излишняя избыточность. Если же для некоторого r окажется, что, то это значит, что требования к надежности сети не выполняются. Число требующих просмотра путей m и сечений r обычно гораздо меньше общего числа путей n и общего числа сечений k (m << n, k << r), чем и достигается сокращение трудоемкости оценки. Одновременно гарантируется, что истинное значение надежности сети лежит в заданных пределах, а именно: .

Рисунок 1.5. Характер изменения оценок структурной надежности по совокупности путей и сечений.

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

.

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

Пример. Пусть необходимо оценить надежность сети, представленной графом на рисунке 1.6, с точностью H ± 0,01. Узлы сети идеально надежны. Линии, обозначенные буквами, имеют одинаковую надежность .

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

М' = { аbс, def, abhf, dgbc…};

S' = { ad, be, cf, age…}.

Полные множества путей М и сечений S для рассматриваемого метода можно не выписывать. При необходимости, если на начальном подмножестве М', S' не удается достичь необходимой точности, эти подмножества можно будет расширить по ходу расчетов.

Поскольку первые два пути из М' независимы, можно сразу записать начальную нижнюю оценку вероятности несвязности сети:

.

Переходя к оценке надежности,, получаем. Начальную верхнюю оценку надежности можно получить по первым трем независимым сечениям множества S':

. (1.18).

При рассмотрении сечений запись вида интерпретируется как наличие, по крайней мере, одного исправного элемента в сечении, поэтому при подстановке исходных данных в (1.18) получим:

.

Разница между полученными верхней и нижней оценками составляет 0.044, что больше 0.02, поэтому необходимо продолжить расчет.

Добавление следующего пути дает большее абсолютное приращение надежности, чем добавление следующего сечения. Поэтому вводим в рассмотрение очередной путь abhf из множества М' согласно формуле (1.17):

.

Отсюда получаем очередную оценку надежности снизу.

.

Убеждаемся, что заданная точность еще не достигнута и добавление очередного пути снова даст большее абсолютное приращение надежности, поэтому вводим следующий путь dgbc из множества М' для уточнения нижней границы надежности:

.

что соответствует .

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

Рисунок 1.6. - Пример сети для двусторонней оценки надежности.

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

1.2.4 Метод статистической оценки структурной надежности.

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

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

Назовем разрезом подмножество элементов системы, удаление которых приводит к потере работоспособности. Рассмотрим некоторый разрез u, в который входит ровно z элементов. Частота выпадения такого разреза при статистических испытаниях стремится по ходу испытаний к ее вероятности :

.

Если обозначить через N общее число элементов сети, то вероятность Ри можно записать в виде:

.

Изменим исходные показатели надежности системы таким образом, чтобы каждый сомножитель второго произведения увеличился в г раз. Другими словами, вместо элемента с надежностью pj введем элемент с надежностью p’j такой, чтобы удовлетворялось условие:

(1.19);

Тогда надежность нового элемента будет определяться формулой:

.(1.20).

Если произвести преобразование (1.19) для всех элементов сети, то вероятность выпадения разреза u в процессе испытаний изменится и составит:

;

Введем коэффициент увеличения частоты выпадания разреза.

(1.21).

тогда, подставляя в (1.21) старое и новое значения частоты выпадания разреза u, получим:

.

Если в разрез u входит ровно z элементов, то:

.

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

Пересчет вероятности появления разреза u из преобразованной системы в исходную производится в соответствии с (1.21):

(1.22).

Для выполнения обратного преобразования (1.22) кроме факта отказа системы необходимо фиксировать и вес z соответствующего разреза.

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

.

где — число элементов, вышедших из строя при i-м отказе системы.

При возникновении очередного отказа m в преобразованной системе оценки надежности Рm исходной системы уточняются в соответствии с выражением:

.

где — общее число просмотренных реализации состояний преобразованной системы.

Возникает вопрос, каким следует выбирать параметр преобразования г для максимального убыстрения процесса статистических испытаний конкретной системы? Из (1.20) следует, что при г = 1 изменение исходной надежности не происходит и убыстрение отсутствует. Если выбрать г слишком большим, то в преобразованной системе будут в основном возникать разрезы большого веса, не характерные для исходной системы, причем их вклад в результирующую надежность при больших z в соответствии с (1.22) будет невелик. Поэтому параметр г следует выбирать таким образом, чтобы максимизировать вероятность возникновения наиболее «вероятных «разрезов.

Рассмотрим этот вопрос более подробно. Для простоты положим, что показатели надежности всех элементов системы одинаковы и равны р. Обозначим через P (z) вероятность возникновения отказовых состояний веса z. Очевидно, что вероятность потери работоспособности системы тогда будет:

.(1.23).

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

.

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

.(1.24).

Из условия получаем оптимальное значение.

.(1.25).

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

Убыстрение темпа набора статистики отказов в соответствии с (1.24), когда, составит:

.

Так, для системы с параметрами p = 0,99, N = 20, z0 = 3 время испытаний можно сократить приблизительно в 150 раз для достоверности получаемых результатов не хуже, чем в случае прямого набора статистики отказов системы.

2 ИССЛЕДОВАНИЕ СТРУКТУРНОЙ НАДЕЖНОСТИ МЕТОДОМ СТАТИСТИЧЕСКОГО МОДЕЛИРОВАНИЯ.

2.1 Критерии оценки структурной надежности методом статистического моделирования.

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

Через сеть обменивается информацией большое число пар абонентов, причем часто требуется, чтобы вероятность наличия связи между корреспондентами выделенной пары (r, l) была не менее заданной Рrl. Под наличием связи понимается существование, по крайней мере, одного исправного пути между соответствующими узлами. Конечно, в сложной сети наличие исправного пути еще не гарантирует немедленного установления соединения, так как элементы этого пути могут быть заняты для обмена информацией других корреспондентов. Однако, если предположить, что термин «наличие связи» относится только к информации высшей категории (доля которой в реальных сетях обычно весьма мала) и элементы любого исправного пути способны обеспечить обмен этой информацией в интересах всех корреспондентов, которые им могут воспользоваться, то возникает возможность рассматривать все пары корреспондентов независимо с точки зрения наличия связи между ними. В элементах сети, производительность которых недостаточна для обслуживания суммарной нагрузки высшей категории, можно предусмотреть большее число s рабочих компонентов.

Таким образом, сеть обладает заданной надежностью, если вероятность наличия связи или, как говорят, вероятность связности Hrl для каждой пары узлов не менее заданной Рrl. В этих условиях расчет структурной надежности сети сводится к расчету вероятности связности между узлами.

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

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

2.2 Разработка алгоритма расчета структурной надежности.

2.2.1 Алгоритм расчета структурной надежности сети.

связи методом статистического моделирования.

Опишем сначала принцип расчета структурной надежности сети методом статистического моделирования.

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

(2.1).

где — время наработки на отказ, — среднее время восстановления.

Производится независимых испытаний, каждое из которых можно условно разделить на два этапа.

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

если — элемент сети отказал, результат равен нулю;

если — элемент сети находится в исправном состоянии, результат равен единице.

Результаты сравнения записываются в матрицу, .

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

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

Проверка сети на связность может осуществляться, например, на основе процедуры «соединения». Ее суть заключается в следующем.

На анализируемой сети выбирается произвольный узел. Далее находят смежные ему узлы и соединяют с ним. Это происходит до тех пор, пока сеть не представится в виде одного узла — «точки» (в случае если, сеть связана) или множества узлов (если сеть не связана).

Разработанный на основе всего выше изложенного алгоритм программы, в общем виде, отобразим на рисунке 2.1. Опишем с начала переменные, используемые в этом алгоритме:

i, e и j — переменные используемые в циклах типа for — next основной процедуры расчета надежности сети;

PlasResult — хранит число благоприятных исходов;

x () — динамический массив, равномерно распределенных в интервале (0, 1) чисел;

Nnoi — хранит текущий номер испытания;

maxNnoi — хранит общее число испытаний;

PP — хранит значение вероятности события — сеть связна;

Imeny — хранит номер случайно выбранного узла;

S () — динамический массив, для хранения номеров смежных узлов;

Nnew — хранит информацию о наличии новых смежных вершин;

sngStartWork (1, 2) — массив дат начала и конца расчета надежности сети;

sngStartWorkSEC — хранит число секунд расчета надежности сети;

bar — промежуточная переменная для хранения текущего номера испытаний.

Рисунок 2.1 — Алгоритм расчета структурной надежности сети.

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

Таблица 2.1 — Процедуры определения связности сети.

Имя процедуры.

Задача процедуры.

VektStrok Nnew, Imeny, S, A.

Соединение смежных узлов.

SvjazNet Imeny, A, p.

Проверка на единичность полученной.

вектор-строки.

FinishAnswer A, PlasResult, Imeny, p, S, Nnew.

Вынесение решения о связности сети, проверка наличия новых смеж-ных узлов для формирования нового массива смежных узлов.

Рисунок 2.2 — Алгоритм процедуры «VektStrok «.

Рисунок 2.3 — Алгоритм процедуры «SvjazNet «.

Рисунок 2.4 — Алгоритм процедуры «FinishAnswer «.

2.2.2 Алгоритм интерфейсной части программы расчета надежности сети методом статистического моделирования.

Приведем рисунок алгоритма программы интерфейса.

2.3 Разработка программы расчета структурной надежности методом.

статического моделирования.

2.3.1 Разработка расчетной части программы расчета структурной надежности сети.

Option Explicit.

Dim A (200, 200) As Single, p As Integer.

Public maxNnoi As Single, flgstopuser As Boolean.

Private Sub firstStepp (A () As Single, x () As Single).

Dim n As Integer.

Dim i As Integer.

Dim j As Integer.

n = 1.

For i = 1 To ((FrmSSN.kolvouzlov) — 1) '4.

For j = i + 1 To (FrmSSN.kolvouzlov) '5.

If A (i, j) > 0 Then.

If x (n) < A (i, j) Then.

A (i, j) = 1.

Else.

A (i, j) = 0.

End If.

n = n + 1.

End If.

A (j, i) = A (i, j).

Next j.

Next i.

End Sub.

Private Sub VektStrok (Nnew, Imeny As Integer, S () As Integer, A () As Single).

Dim k As Integer.

Dim j As Integer.

For k = 1 To (FrmSSN.kolvouzlov).

If S (k) > 0 Then.

For j = 1 To (FrmSSN.kolvouzlov).

A (Imeny, j) = A (Imeny, j) + A (k, j).

If A (Imeny, j) > 1 Then.

A (Imeny, j) = 1.

End If.

Next j.

End If.

Next k.

Nnew = 0.

End Sub.

Private Sub SvjazNet (Imeny As Integer, A () As Single, p As Integer).

Dim j As Integer.

p = 1.

For j = 1 To (FrmSSN.kolvouzlov).

If A (Imeny, j) = 0 Then.

p = 0.

Exit Sub.

End If.

Next j.

End Sub.

Private Sub FinishAnswer (A () As Single, PlasResult As Integer, Imeny As Integer, p _ As Integer, S () As Integer, Nnew As Integer).

Dim j As Integer.

Dim Pm (1 To 6) As Integer.

Dim Nbg As Integer, nUlvekt As Integer.

If p <> 0 Then.

PlasResult = PlasResult + 1.

Exit Sub.

End If.

Nbg = 0.

Nnew = 0.

nUlvekt = 0.

For j = 1 To (FrmSSN.kolvouzlov).

If A (Imeny, j) = 1 Then.

Pm (j) = j.

Else: nUlvekt = nUlvekt + 1.

End If.

Next j.

If nUlvekt = (FrmSSN.kolvouzlov) Then.

Exit Sub.

End If.

For j = 1 To (FrmSSN.kolvouzlov).

If Pm (j) <> S (j) Then.

S (j) = Pm (j).

Nnew = Nnew + 1.

End If.

Next j.

End Sub.

Private Sub FormirNLmassWork ().

Dim initm As Integer.

For initm = 1 To FrmSSN.kolvolin.

FrmSSN.numUZmu initm, FrmSSN. kolvouzlov, 2, na1, na2.

A (na1, na2) = FrmSSN. UvmLN (initm).

A (na2, na1) = A (na1, na2).

Next initm.

End Sub.

Public Sub cmdrasch_workmod ().

Dim i As Integer, j As Integer.

Dim PlasResult As Integer, e As Integer.

Dim x () As Single, C As Integer.

Dim Nnoi As Integer.

Dim PP As Currency, Imeny As Integer.

Dim S () As Integer.

Dim Nnew As Integer.

Dim sngStartWork (1, 1 To 2) As Date.

Dim sngStartWorkSEC As Single, bar As Integer.

frmBrWk.PrgBarWSind.Min = 0: frmBrWk.PrgBarWSind.Max = 100.

frmBrWk.PrgBarWSind.Visible = False.

frmBrWk.LblSwrE (1).Caption = 0.

PlasResult = 0.

ReDim Preserve x (FrmSSN.kolvolin).

ReDim Preserve S (FrmSSN.kolvouzlov).

Randomize.

For Nnoi = 1 To maxNnoi.

DoEvents.

If MdlWorkSpase. flgstopuser = True Then Exit For.

If Nnoi = 1 Then.

sngStartWork (1, 1) = Now.

sngStartWorkSEC = Timer.

frmBrWk.LblSwrE (1).Caption = sngStartWork (1, 1).

End If.

For e = 1 To FrmSSN.kolvolin.

x (e) = Rnd.

Next e.

firstStepp A, x'1.

Imeny = (((FrmSSN.kolvouzlov) — 1) * Rnd) + 1.

S (Imeny) = Imeny.

For j = 1 To FrmSSN.kolvouzlov.

If A (Imeny, j) = 1 Then.

S (j) = j.

End If.

Next j.

VektStr:

VektStrok Nnew, Imeny, S, A'2.

SvjazNet Imeny, A, p'3.

FinishAnswer A, PlasResult, Imeny, p, S, Nnew'4.

If Nnew <> 0 Then.

GoTo VektStr.

End If.

For i = 1 To FrmSSN.kolvouzlov.

S (i) = 0.

For j = 1 To FrmSSN.kolvouzlov.

A (i, j) = 0.

Next j.

Next i.

bar = Nnoi.

frmBrWk.PrgBarWSind.Value = ((bar / maxNnoi) * 100).

frmBrWk.PrgBarWSind.Visible = True.

Next Nnoi.

If MdlWorkSpase. flgstopuser = True Then Exit Sub.

PP = (PlasResult / maxNnoi).

sngStartWorkSEC = (Timer — sngStartWorkSEC).

sngStartWork (1, 2) = Now: frmBrWk. LblSwrE (0).Caption = sngStartWork (1, 2).

UserFormVorkClosed sngStartWorkSEC, maxNnoi, PP, sngStartWork.

End Sub.

Private Sub UserFormVorkClosed (sngStartWorkSEC, maxNnoi, PP, sngStartWork).

Dim work As Integer, TimeWork As String.

Dim bufchench1 As Date, bufchench2 As Currency.

If sngStartWork (1, 1) <> sngStartWork (1, 2) Then.

If (sngStartWork (1, 2) — sngStartWork (1, 1)) > sngStartWorkSEC _.

And (sngStartWork (1, 2) — sngStartWork (1, 1)) < 1 Then GoTo 12.

bufchench1 = (sngStartWork (1, 2) — sngStartWork (1, 1)).

TimeWork = Str (bufchench1).

Else.

12:

bufchench2 = sngStartWorkSEC.

TimeWork = Str (0) & Str (bufchench2) & «секунды» .

End If.

work = MsgBox («Расчет структурной надежности закончен !» & vbCrLf & Chr$(13) & «Число испытаний: «& maxNnoi & vbCrLf & «Вероятность связности: «& PP & vbCrLf & «Расчет длился около: «& TimeWork, vbInformation + vbOKOnly, ««).

sngStartWork (1, 1) = 0: sngStartWork (1, 2) = 0.

sngStartWorkSEC = 0: frmBrWk.PrgBarWSind.Value = 0.

Unload frmBrWk.

End Sub.

2.3.2 Разработка интерфейсной части программы расчета структурной надежности сети.

Интерфейсная часть программы состоит из четырех частей, а именно:

первая, основная часть, располагается в файле формы основного окна.

" FrmSSN «;

следующая часть располагается в файле формы окна расчета структурной надежности «frmBrWk «;

третья часть программы находится в файле формы окна конфигурирования координатной сетки «FrmPrWeb «;

четвертая, последняя, часть программы — в файле формы окна ввода числовой характеристики выбранной линии «FrmNwORsZ «.

Приведем листинги данных частей, интерфейсной части программы расчета структурной надежности сети, в этом же порядке.

Первая часть.

Option Explicit.

Public kolvouzlov As Integer, needFRsave As Boolean.

Public kolvolin As Integer.

Dim znak As Boolean, zamok As Boolean.

Dim x1 As Integer, y1 As Integer.

Dim x2 As Integer, y2 As Integer.

Dim MasKoLuZv (1 To 200, 1 To 5) As Single.

Dim keeCH As Boolean.

Dim deletealluz As Boolean, deletealllinsv As Boolean.

Dim keeAB As Boolean, testimonial As Boolean.

Dim testNyn As Boolean, change As Boolean.

Dim mlinesSV (1 To 400, 1 To 10) As Single, SFALNAME As String.

Const myORno As String = «sns» .

Dim zapros As Boolean.

Public poweb As Boolean.

Public shwebx As Single, shweby As Single.

Public bJampWeb As Boolean.

Private Sub svayzy (x1, x2, y1, y2, iduzla, Index, mlinesSV, kolvolin).

Dim i As Integer, j As Integer.

On Error GoTo metSVx.

If deletealllinsv = True And kolvolin > 0 Then.

FrmSSN.Enabled = False.

FrmSSN.MousePointer = 3.

For i = 1 To kolvolin.

For j = 1 To 10.

mlinesSV (i, j) = 0.

Next j: Next i.

kolvolin = 0.

Else.

For i = 1 To kolvolin.

If mlinesSV (i, 1) = 0 Then.

mlinesSV (i, 1) = iduzla: mlinesSV (i, 2) = Index.

mlinesSV (i, 3) = x1: mlinesSV (i, 4) = y1.

mlinesSV (i, 5) = x2: mlinesSV (i, 6) = y2.

mlinesSV (i, 7) = 0.

mlinesSV (i, 8) = 0: mlinesSV (i, 9) = 0 '-номера вершин (новые).

mlinesSV (i, 10) = 0 '-вес линии.

Exit Sub.

End If.

Next i.

End If.

FrmSSN.Enabled = True.

FrmSSN.MousePointer = 0.

brcoutSVX:

Exit Sub.

metSVx:

MsgBox «Error № «& Err. Number & «» & «(» & Err. Description & «) occured.», vbCritical, «Error» .

GoTo brcoutSVX.

End Sub.

Private Sub LinColorsv (NuMl As Integer, LcolorS, mlinesSV).

On Error GoTo HTYH.

Select Case mlinesSV (NuMl, 7).

Case Is = 0.

LcolorS = vbBlue.

Case Is = 1.

LcolorS = vbRed.

Case Is = 2.

LcolorS = RGB (210, 0, 210).

End Select.

HTYH:

End Sub.

Private Sub CmdBk_Click ().

Dim nnoN As Integer.

CmdWORKsch.Enabled = False.

Cmd1.Visible = True.

Cmd2.Visible = True.

keeAB = False.

For nnoN = 1 To kolvouzlov.

nnOuzN ((MasKoLuZv (nnoN, 1))).Enabled = False.

Next nnoN.

CmdFwd.Enabled = False.

CmdBk.Enabled = False.

Frame1.Enabled = True.

Frame1.Caption = («План сети»).

End Sub.

Private Sub CmdFwd_Click ().

CmdFwd.Enabled = False.

CmdBk.Enabled = True.

If keeAB = False Then Frame1. Caption = («Параметры»).

Cmd1.Visible = False.

Cmd2.Visible = False.

keeAB = True.

If change = True Or change = False Then TestNet testNyn.

End Sub.

Private Sub TestNet (testNyn) '-проверка связанных узлов.

Dim tuZnSvYnOk As Integer, nuzysy As Integer.

On Error GoTo metTNx.

If change = False And kolvouzlov = 0 Then GoTo 101.

For tuZnSvYnOk = 1 To kolvouzlov.

If MasKoLuZv (tuZnSvYnOk, 1) > 0 And MasKoLuZv (tuZnSvYnOk, 4) >= 1 Then.

nuzysy = nuzysy + 1.

End If.

Next tuZnSvYnOk.

If nuzysy = kolvouzlov And nuzysy > 1 Then.

testNyn = True.

For tuZnSvYnOk = 1 To kolvouzlov.

If MasKoLuZv (tuZnSvYnOk, 1) > 0 Then.

nnOuzN (MasKoLuZv (tuZnSvYnOk, 1)).Move (MasKoLuZv (tuZnSvYnOk, 2) — _ (nnOuzN (MasKoLuZv (tuZnSvYnOk, 1)).Width / 2)), (MasKoLuZv (tuZnSvYnOk, 3) ;

— (nnOuzN (MasKoLuZv (tuZnSvYnOk, 1)).Height / 2)).

nnOuzN (MasKoLuZv (tuZnSvYnOk, 1)).Visible = True: nnOuzN (MasKoLuZv (tuZnSvYnOk, 1)).Enabled = True.

End If.

Next tuZnSvYnOk.

change = False.

Else.

101: nuzysy = 0.

nuzysy = MsgBox («ВЫ допустили ошибку. Данная сеть НЕ связна !!! «_.

& vbCrLf & vbCr & «Это не позволит вам ввести характеристики сети» _.

& vbCrLf & «Для исправления ошибки нажмите: << Назад >>» _.

vbCritical + vbOKOnly, «Проверка связности сети «).

Frame1.Enabled = False.

CmdFwd.Enabled = False.

End If.

brcoutTN:

Exit Sub.

metTNx:

MsgBox «Error № «& Err. Number & «» & «(» & Err. Description & «) occured.», vbCritical, «Error» .

GoTo brcoutTN.

End Sub.

Private Sub CmdWEB_Click ().

Dim Wsetki As Single, Hsetki As Single.

Dim i As Integer, j As Integer.

Dim shag As Boolean, LcolorS As Double.

Const webxy As Single = 201.

On Error GoTo metWEBx.

If poweb = False Then.

shwebx = webxy.

shweby = shwebx.

End If.

If bJampWeb = True And keeCH = True Then.

shag = True: GoTo 7.

ElseIf bJampWeb = True And keeCH = False Then.

shag = False: GoTo 7.

End If.

If keeCH = False Then.

8: Picture1. DrawStyle = 2.

For Wsetki = (shwebx) To (Picture1.Width) Step (shwebx).

Picture1.Line ((Wsetki), 1)-((Wsetki), (Picture1.Height — 1)).

Next Wsetki.

For Hsetki = (shweby) To (Picture1.Height) Step (shweby).

Picture1.Line (1, Hsetki)-((Picture1.Width — 1), Hsetki).

Next Hsetki.

keeCH = True.

Else '*перерисовка линий S-T*.

7: Picture1. DrawStyle = 6.

Picture1.Cls.

For i = 1 To kolvolin.

If mlinesSV (i, 1) <> 0 Then.

LinColorsv i, LcolorS, mlinesSV '- определение цвета линии.

Picture1.Line ((mlinesSV (i, 3)), (mlinesSV (i, 4)))-((mlinesSV (i, 5)), _.

(mlinesSV (i, 6))), LcolorS.

End If '*перерисовка линий E-D*.

Next i.

If shag = True Then GoTo 8.

keeCH = False.

End If.

Picture1.DrawStyle = 6.

brcoutWEB:

Exit Sub.

metWEBx:

MsgBox «Error № «& Err. Number & «» & «(» & Err. Description & «) occured.», vbCritical, «Error» .

GoTo brcoutWEB.

End Sub.

Private Sub Cmd1_Click () '-уменьшение узла.

Dim ti As Integer, tip As Integer.

On Error GoTo metGGG.

If Optuzel. Value = False Then Exit Sub:

Picture1.AutoRedraw = False: Picture1. Enabled = False.

For ti = Pct1. lBound To kolvouzlov.

If (Pct1(0).Width) > 402 Then '-мин размер для индекса=400.

If ti > 0 Then tip = MasKoLuZv (ti, 1) Else tip = ti.

Pct1(tip).Visible = False.

Pct1(tip).Width = (Pct1(0).Width — 20).

Pct1(tip).Height = (Pct1(0).Height — 20).

If ti <> 0 Then.

Pct1(tip).Left = (Pct1(tip).Left + 10).

Pct1(tip).Top = (Pct1(tip).Top + 10).

Pct1(tip).Visible = True.

End If.

End If.

Next ti.

Picture1.AutoRedraw = True: Picture1. Enabled = True.

brcoutGGG:

Exit Sub.

metGGG:

MsgBox «Error № «& Err. Number & «» & «(» & Err. Description & «) occured.», vbCritical, «Error» .

GoTo brcoutGGG.

End Sub.

Private Sub Cmd2_Click () '-увеличение узла.

Dim i As Integer, pip As Integer.

On Error GoTo metTYP.

If Optuzel. Value = False Then Exit Sub:

Picture1.AutoRedraw = False: Picture1. Enabled = False.

For i = 0 To kolvouzlov.

If (Pct1(0).Width) < 700 Then.

If i > 0 Then pip = MasKoLuZv (i, 1) Else pip = i.

Pct1(pip).Visible = False.

Показать весь текст
Заполнить форму текущей работой