logo search
лекции по МОТС / Введение

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

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

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

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

(3.1)

Пример, иллюстрирую­щий данную особенность показан на рис. 3.2. При формировании матрицы смежности информация о внутренних контурах подсистемы не учитывается, учитывается только информация матрицы J (3.1) существования связи между входами и выходами подсистемы. Возве­дение в соответствующие степени матрицы смежности S позволяет выделить для данной системы 3 контура.

Логическая сумма, - операции ИЛИ - позволяет определить все возмож­ные связи между вершинами.

(3.2)

где n - размерность системы и, кроме того, определяет длину макси­мально возможного пути. Данную сумму называют матрицей достижимости.

Транспонированная матрица достижимости

, (3.3)

называемой матрицей контрдостижимостей.

Ниже приведены значения матриц достижимости и контрдостижимос­ти для системы представленной на рис. 3.2.

.

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

Блок схема, реализующая предлагаемый алгоритм, показана на рис. 3.4. Блок 1 выполняет преобразование из внутренней формы представления нелинейного системного гибридного графа в матрицу смежности размером N * N. Блоки 3 и 4 задают начальные значения матриц контуров С и достижимости R. Блоки 4,5,15 организуют основной цикл. Блок 6 вычисляет i-ю степень матрицы смежности, перемножение выполняется логической операцией “И”. Блок 7 выполняет накопление информации о всех возможных путях в матрице достижимости, суммирование производится ло­гической операцией “ИЛИ”. Блоки 8,9,14 организуют цикл проверки вершин на принадлежность к контурам. В этом цикле перебираются элементы глав­ной диагонали матрицы . Если вершина j относится к контуру, длиной i (блок 10), то в блоке 11 переборными методами этот контур выделяется. Выделенный контур, в блоке 12, сравнивается с уже существующими, хра­нящимися в списке контуровС. Если контур новый, то он добавляется к списку (блок 13). После завершения основного цикла, вычисляется матри­ца контрдостижимости Q (блок 16) и матрица связей в системе (подсистеме) J (блок 17), после чего алгоритм завершает свою работу. Выходными параметрами, возвращаемыми в вызвавшую программу, являются матрицы R,Q, J, C.

S=

0 1 0 0 0 0

0 0 1 0 0 0

0 0 0 1 1 0

0 1 0 0 0 1

1 0 0 0 0 1

0 0 0 0 0 0

S 2 =

0 0 1 0 0 0

0 0 0 1 1 0

1 1 0 0 0 1

0 0 1 0 0 0

0 1 0 0 0 0

0 0 0 0 0 0

S 3 =

0 0 0 1 1 0

1 1 0 0 0 1

0 1 1 0 0 0

0 0 0 1 1 0

0 0 1 0 0 0

0 0 0 0 0 0

S 4 =

1 1 0 0 0 1

0 1 1 0 0 0

0 0 1 1 1 0

1 1 0 0 0 1

0 0 0 1 1 0

0 0 0 0 0 0

S 5 =

0 1 1 0 0 0

0 0 1 1 1 0

1 1 0 1 1 1

0 1 1 0 0 0

1 1 0 0 0 1

0 0 0 0 0 0

S 6 =

0 0 1 1 1 0

1 1 0 1 1 1

1 1 1 0 0 1

0 0 1 1 1 0

0 1 1 0 0 0

0 0 0 0 0 0

Рис. 3.4. Блок-схема и пример работы программы выделения контуров