Распознавание изоморфизма алгоритмических сетей при моделировании транспортных процессов

УДК 519.85 Д. С. Васильченко,

аспирант, СПГУВК

РАСПОЗНАВАНИЕ ИЗОМОРФИЗМА АЛГОРИТМИЧЕСКИХ СЕТЕЙ ПРИ МОДЕЛИРОВАНИИ ТРАНСПОРТНЫХ ПРОЦЕССОВ

IDENTIFICATION OF ISOMORPHISM ALGORITMIC NETWORKS FOR MODELLING OF TRANSPORT PROCESSES

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

This article is devoted to the definition of isomorphism algorithmic networks and description of conversions for implementation, using principle to division vertices into classes. Also in this article presented and described algorithm to identification of isomorphism algorithmic networks in detail .

Ключевые слова: алгоритмическая модель (АМ) — формализованное описание сценария предметного специалиста для моделируемого процесса.

Key words: algorithmic model (АМ) is a formalized description of the script of the subject expert for modelled process.

Ш

АССМОТРИМ возможный сценарий исследования поведения алгоритмических моделей (АМ) [1-2]. При изучении процедур преобразования моделей часто требуется наличие соответствия между терминами нескольких предметных областей, что может быть получено на основании установления соответствия вычислительных схем АМ, принадлежащих к разным предметным областям. Вычислительная схема модели задается алгоритмической сетью (АС). Соответствие АМ может быть доказано на основании изоморфизма АС. Сформулируем алгоритмы распознавания изоморфизма и изоморфного вложения, которые не требуют наличия соответствия множеств Х моделей, а, наоборот, сами дают его как побочный результат. Представляется, что подобного рода алгоритмы наиболее важны именно при выполнении функции анализа поведения АМ, так как позволяют сделать некоторые предварительные выводы о поведении разрабатываемой модели на основании уже разработанной и исследованной модели. Установление изоморфизма или изоморфного вложения алгоритмической сети производится при уровне абстрагирования не выше уровня окончания формирования структуры АМ.

Первоначально окружающий мир воспринимается дискретно и локально. Человек фиксирует состояние интересующей его части мира, затем производит на него воздействие или фиксирует какое-либо производимое в это время воздействие и затем фиксирует новое состояние; воздействие фиксируется как причина изменения состояния, новое состояние — как следствие воздействия. Имеется стремление свести создаваемую модель к некоторой циклически повторяемой регулярной процедуре. Используемое стихийно человеком описание анализируемого процесса, когда он описывается как последовательность выделенных этапов, существенно отличается своим «естественным» параллелизмом. Человек описывает процесс по этапам в естественной дискретности, не определяемой требованиями какого-либо метода вычислений. Если он наблюдает и воспринимает процесс с дискретом сутки, то и модель, сложившаяся в его мозгу, будет иметь дискрет сутки и предсказывать состояние мира на следующие сутки, если процесс определяется не по времени, а, например, по расстоянию и дискрет отметки этапа, километр, то и модель имеет дискрет километр. При этом есть подсознательное стремление свести все варианты отметки эта-

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

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

Алгоритм, целью которого является установление соответствия между вершинами двух АС, носит переборный характер. Каждая вершина характеризуется своим индексом, множеством переменных связанной с ней Х;, символом оператора, сопоставленного вершине который у соответствующих друг другу вершин сравниваемых АС всегда один и тот же. То есть при установлении соответствия вершин требуется определить соответствие переменных вершин, имеющих одинаковые Р и одинаковое число входных и выходных переменных.

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

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

Проведем предварительное преобразование анализируемых АС. Выполним для

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

АС изоморфны (АС1~АС2), если и только если между их множествами Б можно определить взаимнооднозначное отображение (Р1~Б2), при условии что поставленные в со- ™

ответствие элементы множеств Б1, Б2 имеют "1

. ж

совпадающие символы операций Р и одинако- *

вые мощности множеств |т(Г)|, |ои1;(£)|. То есть изоморфные АС отличаются друг от друга только обозначениями переменных. Вершина может содержать ссылку на другую АС, в этом случае АС считаются равными или изоморфными, если равны или изоморфны и АС,

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

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

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

Алгоритм распознавания изоморфизма АС (АС1~АС2) см. рис. 1:

1. Разбиение вершин сравниваемых АС на классы. Проверка совпадения числа классов и равномощности классов, имеющих совпадающие характеристики, если не совпадают — сети не изоморфны, конец.

2. Выбор вершины АС1, для которой не найдено соответствующей в АС2, если таких нет, сети изоморфны, конец.

3. Выбор не полностью переобозначенной вершины АС2 из класса, к которому относится выбранная вершина АС1.

4. Поиск допустимого варианта переобозначения (не противоречащего ранее сделанным для вершины и не приводящего к запрещенным вариантам для АС в целом) для переменных, связанных с найденной вершиной АС2, и переобозначение переменных. Если такие варианты есть, то переходим к п. 2.

5. Если это начало просмотра, то конец — сети не изоморфны.

6. Запоминание варианта переобозначения для всех ранее переобозначенных вершин АС как запрещенного для АС в целом. Возврат в начало просмотра АС1, к первой просмотренной вершине, к п. 2.

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

Рассмотрим пример (рис. 2).

Даны две алгоритмические сети. Необходимо выяснить, изоморфны ли они.

Раскладываем классы по уровню вычислимости, а внутри каждого класса — на подклассы по реализуемым операторам и на подклассы входов и выходов (рис. 3).

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

Начало

Ра;оиение вершин сравниваемых АС на классь:

Запоминание варианта переобозначения для всех ранее переобозначенных вершин АС как запрещенного для АС в целом

Рис. 1. Алгоритм распознавания изоморфизма АС

Х4

Х1

Р1

Х2

Х8

ХЗ

Р2

Х6

Х5

\

^ Р4

Р5

м V-

Х7

У4

У1

Р11

У2

1 Р21

У8

УЗ

У6

РЗ1

У5

<>Р41

Р51

Х7

Рис. 2. Две заданные алгоритмические сети

Рис. 3. Разложение АС на классы по уровню вычислимости

дальше. Берем наименьшую вершину класса вычислимости Р1 из первой АС и соответствующую ей вершину Р11 из второй АС, они реализуют один и тот же оператор. Один выход от задержки и один внешний выход, а также один оператор Д! Выходы из вершин являют-

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

У1 := Х1; У2 := Х2; У8 := Х8.

На следующем этапе разложения берем вершину Р2 и Р3 из первой АС и вершины Р21 и Р31 из второй АС. После анализа всех входов и выходов этих вершин было определено соответствие, и в связи с этим допускаем следующие переобозначения:

У3 := Х3;

У4 := Х4;

У5 := Х5;

У6 := Х6.

университета ШИПИ водных дДДДтдр коммуникации

На третьем этапе вычислимости мы берем вершину Р4 из первой АС и соответствующую ей вершину Р41 из второй АС и заметим, что они также реализуют одни и те же операторы на входе и такой же оператор на выходе. Сделаем соответствующее переобозначение:

У7 := Х7.

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

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

1. Иванищев В. В., Марлей В. Е. Введение в теорию алгоритмических сетей. — СПб: СПбГТУ, 2000. — 180 с.

2. Пономарев В. М. Алгоритмические модели в задачах исследования систем. — М.: Наука, 1980. — С. 4-8.

вв

г

I