Юрий Григорьевич Егоров родился в 1956 г., окончил в 1978 г. Серпуховское высшее военное командное училище. Д-р техн. наук, профессор кафедры "Системы и приборы ориентации, стабилизации и навигации" МГТУ им. Н.Э. Баумана. Действительный член Академии навигации и управления движением. Автор 56 научных работ в области автономной выставки и калибровки инерциальных навигационных систем.
Yu.G. Yegorov (b. 1956) graduated from the Serpukhov Higher Military Command School in 1978. D. Sc. (Eng.), professor of "Systems and Devices of Orientation, Stabilization and Navigation" department of the Bauman Moscow State Technical University. Full member of the Academy of Navigation and Motion Control. Author of 56 publications in the field of autonomous adjustment and calibration of inertial navigation systems.
Гассан Махмуд Аль-Хуссейн родился в 1963 г., окончил в 1988 г. университет в Сирии. Аспирант кафедры "Системы и приборы ориентации, стабилизации и навигации" МГТУ им. Н.Э. Баумана. Автор 2 научных работ в области калибровки инерциальных навигационных систем.
Ghassan Mahmoud Al-hussein (b. 1963) graduated from the Syrian University of Alepo in 1988. Post-graduate of "Systems and Devices of Orientation, Stabilization and Navigation" department of the Bauman Moscow State Technical University. Author of 2 publications in the field of calibration of inertial navigation systems.
ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ I
ТЕХНИКА |
УДК 658.512
И. В. Рудаков, М. Давудпур
АЛГОРИТМ ДЕКОМПОЗИЦИИ ФОРМАЛЬНОЙ МОДЕЛИ ФУНКЦИОНАЛЬНОГО БЛОКА ДИСКРЕТНОГО УСТРОЙСТВА
Моделирование больших систем представляет собой задачу большой размерности, поэтому одним из методов исследования таких систем является метод декомпозиции, позволяющий разбивать исследуемую схему на части, проверяя работу каждой части, и последовательно добавлять к проверенной части новые фрагменты.
Метод анализа вычислительных дискретных устройств в рамках иерархических уровней проектирования (вычислительные системы или функциональные блоки) недостаточно эффективен, так как не позволяет учитывать, например, такие характеристики дискретного устройства, как временные параметры элементов, входящих в модель и, следовательно, выполнять надежную верификацию проекта. В работах по многоуровневому анализу предлагается рассматривать схемы устройства с разной степенью детализации. Предлагаемый
в настоящей работе метод декомпозиции модели функционального блока позволяет выполнять анализ правильности функционирования сложного дискретного устройства путем автоматического перехода на более низкий иерархический уровень.
Постановка задачи декомпозиции функционального блока дискретного устройства. Известно [1],что формализация процесса функционирования сложного дискретного устройства в виде сети Петри может быть определена в виде структурного автомата.
Автомат А называется реализацией автомата Аь (А=R(A1)), если у автомата А существует подавтомат, изоморфный А1. Таким образом, если автомат А реализует автомат А1, то поведение автомата А с точностью до обозначения состояний, входных и выходных последовательностей совпадает с поведением А1 в области определения А1, так как у автомата А должен быть некий подавтомат А2Б, изоморфный А1.
Задача декомпозиции автомата формулируется следующим образом: построить такую сеть автоматов N, результирующий автомат А^ которой реализует заданный автомат А, т.е. А^=Д(А) [2], где Д(А) — реализация заданного автомата А.
В качестве формальной модели дискретного устройства в алгебраической теории автоматов [2, 3] используется понятие сети, определяемое следующим образом:
N = (2, {Р5г},д);
где Z — входной алфавит сети; {КЛ» = (С», г = 1,...,п
— множество компонентных автоматов сети. Входной алфавит компонентного автомата КА» определяется выражением
Z =
* если <> 0, ^2г, если = 0;
здесь ^ — внутренний и внешний входные алфавиты КА»; С — множество состояний КА»; С * — функция переходов
КА^, где * — декартово произведение; W — выходной алфавит сети; : Л^ ^ г >= 1, ] <= п — множество функций соединения компонентных автоматов сети (А^ =А1*А2*... *АП; А^ — автомат сети [2]); : 2 ^ 22, г = 1,...,п — множество входных функций; д : Л» * 2 ^ W — выходная функция сети (А» = Л1 * Л2 * ... * Лп [2]).
Определяемую таким образом сеть рассматривают как общую модель совместной работы совокупности автоматов, так как в ней нет ограничений ни на выбор элемента базиса {КЛ»}, ни на выбор структуры Ш-
Введем понятие функционирования сети автоматов в определенные тактовые моменты времени ¿п = {£15£2
Значение каждой переменной множества Z (входного алфавита сети) состоит из элементов множества Е = {0,1}. Пронумеровав множество индексов переменных из Z и используя понятие информационной группы [2], можно получить множество Ег = Ег1, Ег2, Ег3,..., Егд, т.е. множество конечных последовательностей входных букв сети N длиной Л.
Аналогичным образом запишем множество конечных последовательностей выходных букв сети N длиной Л : Е,ш = Е,ш1 ,Е,ш2,Е,ш3,
• •• Е'шК-
Для сети автоматов введем детерминированную функцию Н, которая устанавливает соответствие между последовательностями входных и выходных букв, т.е. Н : Ег ^ Еш, и для функции Н введем множество К — множество чисел, которыми пронумерованы состояния функции: К = {к1, к2, к3,...}.
Детерминированная последовательностная функция задается следующими соотношениями [2]:
к(1) = кг,
к(у + 1) = РН(к(у),в2); (1)
е' = РБ(к(у),вг),
где РН : Е2 * К ^ К; РБ : Е2 * К ^ Еш; к(1) — начальное значение множества К; к(ь) — состояние функции Н на шаге с номером V; ег и еш — входные буквы конечных последовательностей Ег и Ещ, подаваемые на сеть N на шаге с номером V.
Представим входы сети N переменными из множества Z, а саму сеть автоматов — последовательностной детерминированной функцией Н. Тогда, если на вход N подавать буквы последовательности Ег, то на выходе N будет последовательность выходных букв Ещ, причем Ещ = Н(Ег), т.е. на каждом шаге на вход сети N поступают входные буквы ег, сеть находится в одном из внутренних состояний, кодируемых с помощью элементов из множества К, а с выхода N снимаются выходные буквы е' .
Входная буква и состояние на данном шаге однозначно определяют выходную букву на этом же шаге и состояние сети N на следующем, соответственно рекуррентным соотношением (1). Таким образом, функционирование сети автоматов N определяем как процедуру, устанавливающую соответствие между входными последовательностями, состояниями и выходными последовательностями.
Пусть сеть автоматов N задает некоторую операцию От, определяемую функцией Н. Множество всех операций, реализуемых сетью
автоматов N, обозначим как О = {01,02, 03,.. .,От,...}, где От — некоторая т-я операция, задаваемая N. Множество О определяет последовательность операций над входным алфавитом переменных 2 с целью вычислить выходной алфавит переменных из множества W посредством функций перехода, соединения и выходной функции сети (или через последовательностную детерминированную функцию Н). Функционирование сети N определяется выполнением операции W = 0т(2), задаваемым ее кодом т = 1, 2, 3,...,М. Иначе, сеть N осуществляет преобразование информации из слов входного алфавита в слова выходного алфавита в соответсвии с алгоритмом преобразования.
Алгоритм декомпозиции сложного дискретного устройства, формализованного в виде сети Петри (сети компонентных автоматов), основывается на общей теореме декомпозиции автоматов [4], утверждающей, что множеству разбиений состояний автомата можно поставить в соответствие абстрактную сеть автоматов, если и только если множество разбиений является ортогональным. При этом устанавливается взаимно-однозначное соответствие между разбиениями и компонентными автоматами.
В доказательстве достаточности этой теоремы приводится конструктивный способ построения сети автоматов, результирующий автомат которой реализует заданный автомат. На этом способе базируется алгоритм декомпозиции формальной модели дискретного устройства, формализованного в виде сети Петри. Исходными данными для декомпозиции устройства является собственно модель устройства и множество разбиений состояний устройства, которые должны быть ортогональными. Согласно утверждению [3], формальная модель дискретного устройства может быть представлена в виде сети автоматов N, поэтому в дальнейшем будем рассматривать декомпозицию сети.
Алгоритм декомпозиции формальной модели дискретного устройства состоит из следующих действий.
1. Каждому разбиению множества состояний Р» ставим в соответствие некоторую функцию Сп * ^ Р, такую, что
, Тт)
иначе: значение функции Р», определяемое из (С, 2/, Тт), равно блоку Р», который содержит состояние С = (С, 2/, Тт).
2. Образуем разбиения ТЦ и РЦ
на множестве Сп и следующим образом:
— состояния С и С3 находятся в одном блоке разбиения ТЦ, если и только если для любого 2/ справедливо:
Р(С,2/,Тт) = Р(С5,£/,Тт), т.е. С < - > СДТК):
— буквы входного алфавита Z/ и Zí находятся в одном блоке разбиения ЛЦ, если и только если для любого С справедливо:
Я(С*^,Тт) = Я(С*,Zí,Tm), т.е. Z/ < - >^(ДЦг). (2)
3. Строим сеть автоматов N, которая определяется как
N = (^ {КЛ},Ж,Ш, {РБг},£).
Для этого необходимо определить все компоненты, входящие в описание сети N.
Предположим, что входной алфавит сети N равен входному алфавиту схемы Б, т.е. Z = Zn; выходной алфавит сети N равен выходному алфавиту схемы Б, т.е. W =
Строим компонентные автоматы {К Л»}: К Л» = (С^^БС»), г = 1, те (те — количество компонентных автоматов).
Под декомпозицией схемы Б, представленной сетью автоматов, понимается элемент сложного дискретного устройства, входящий в модель функционального блока.
Определим каждую составляющую, которая входит в описание К А»:
a) предположим, что количество состояний элемента структуры (КА») равно количеству блоков в разбиении Р», т.е. С» = Р»;
b) чтобы определить входной алфавит элемента структуры (КА»), необходимо использовать введенные ранее разбиения ТЦ и ДЦ.
Входной алфавит определяется выражением (2). Полученные разбиения ТЦ и Р» являются парой разбиений, т.е. каждый блок ТЦ отображается любым входным сигналом в блок Р», при этом ТЦ является максимальным разбиением, образующим пару (ТЦ,Р»). В работе [2] показано, что если на вход функции {/} поступают Р»1, Р»2, Р»3,.(Л — количество входов функции {/г}) — выходы компонентных автоматов КА^КА^КА^,... ,КА»д, то Р»1, Р»2,... Р^д — пары разбиений.
Следовательно, для определения элементов структуры, выходы которых присоединяются ко входу {/}, необходимо найти такое произведение Р», которое не превосходит ТЦ (такое произведение всегда найдется, так как множество Р» является ортогональным), и тогда выходы КА^ьКАй,... ,КА^ должны быть соединены со входом {/}.
c) находим функцию переходов компонентного автомата КА»: БС»: Р» * Zг ^ Р», т.е. значение функции переходов компонентного автомата равно блоку разбиения, содержащему БСп(Рг, ДЦ).
кроме рассмотренных параметров, входящих в описание компонентного автомата, определяем времена переходов КА» из одного состояния в другое при поступлении букв входного алфавита. В
описание функционирования сети автомата входит множество времен переходов из одного состояния в другое — Тп.
Пусть Р = {Р1,Р2,Р3,...,Р1,...} — некоторое множество разбиений состояний модели функционального блока, где В; — первый блок в разбиении Р».
При декомпозиции формальной модели, представленной сетью компонентных автоматов, число состояний компонентного автомата равно числу блоков в разбиении Р». Следовательно, множество состояний можно выразить следующим образом: С» = {В1,В2,В3,...В;,...}. Поэтому множество времен перехода состояний компонентного автомата КА» определяется следующим выражением:
ТКЛ» = {Т12, Т13 5 ... Т1п, Т23, Т24ч ... Т2пч —};
где п — количество компонентных автоматов.
4. Строим функции соединения компонентных автоматов /¿: Л^ ^ 2», где А^ =А1*А2 * ... *АП.
Если использовать разбиения на множестве состояний модели, то это можно переписать в виде
Л : Ра * Р»2 * ... * Р»д ^ РЦ».
Обозначим множество Р-компонентных векторов (компоненты которых являются блоками, взятыми по одному из каждого разбиения Р^, где = г1, г2, г3,... гд) множеством Ц», т.е.
Ц = Р»1 * Р»2 * р3 * ... * Рд.
Образуем подмножество множества Ц таким образом, что в попадают только те векторы из множества Ц», у которых пересечение всех компонентов не пусто.
Учитывая это, получим Л : ^ РЦ».
Значение функции соединения компонентного автомата Л равно тому блоку разбиения РЦ», в который входит пересечение компонентов
5. Определяем множество входных функций следующим образом: Р5» : 2 ^ где г = 1,п.
Значение входной функции при подаче на вход компонентного автомата К А» буквы входного алфавита г/ равно блоку разбиения ТЦ содержащему букву г/. Следовательно, автомат КА» не отличает те буквы входного алфавита 2, которые входят в один блок разбиения ТЦ».
6. Строим выходную функцию сети компонентных автоматов:
д : Л» * Z ^ ^ где Л» = Л1 * Л2*,*ЛП, г = 1, п.
Используя разбиения на множестве состояний модели функционального блока, получим
д : (Рг 1 * Р»2 * Р»3 * ••• Рш) * Z ^ W.
Пусть Р» 1 * Р» 2 * ••• * Рт = М.
Образуем множество Мь в которое попадают только те векторы из множества М, у которых пересечение всех компонентов не пусто. Учитывая это, получим д : М1 * Z ^ W.
Значение выходной функции сети N совпадает со значением функции выхода декомпозируемой модели на паре (Сд, г/), где Сд — состояние, попавшее в пересечение вектора Мд < —М1.
Анализируя алгоритм декомпозиции модели функционального блока, основанный на конструктивном способе построения сети N, можно заключить, что свойства компонентных автоматов и их связи между собой зависят от выбранного множества разбиений {Р»}, г = 1,п. Число разбиений в множестве {Р»} равно числу компонентных автоматов в сети N. Число блоков разбиений В в множестве {Р»} равно числу внутренних состояний компонентного автомата КА». Элементы структуры имеют меньше состояний, чем функциональный блок, так как число блоков в разбиении Р», кроме нулевого разбиения Р» (0), меньше числа элементов в множестве Сп состояний исходной модели.
Разбиение Р» при помощи функции р однозначно определяют разбиения ТЦ и ДЦ. Разбиение ТЦ показывает, какие элементы воздействуют на г-й элемент структуры, а разбиение ДЦ определяет, какие буквы входного алфавита Z не различаются г-м элементом. Множества ТЦ и ДЦ являются наибольшими разбиениями, причем, чем больше ТЦ, тем меньше выходов других элементов связано с КА», и чем больше ДЦ, тем проще зависимость БС» от внешнего алфавита Z.
Из конструктивного способа построения сети N следует, что структура сети определяется неоднозначно, так как условие
(Рг 1 * Р»2 * ••• Ргл) <= ТЦ, (3)
определяющее компонентные автоматы КА»ьКА^,... ,КА»д, может выполняться при различных сочетаниях разбиений из множества {Р»}, где г = 1,п.
В работе [3] введено понятие структурной матрицы сети N, под которой понимается квадратная матрица Мп размерности п, столбцам
матрицы Mn соответствуют разбиения TUajTU^j-.-jTUw, а строкам — разбиения Pii; Pi2, •••, PiN • Понятие матрицы Mn имеет важное значение при определении структуры сети N с минимальным числом связей. Формирование матрицы Mn происходит следующим образом: в i-й столбец записываются единицы в строки с индексами i 1 ,i2, • • •, iR, если и только если справедливо условие (3). Если обозначить элемент матрицы m[i, j], то компонентный автомат KAj влияет на поведение KAj (например, если i < > j, то выход KAj соединен со входом KAj через функцию / )•
Кроме того, структурная матрица Mn позволяет получить различные виды декомпозиции модели, т.е. параллельную или последовательную декомпозицию устройства.
Программа, реализующая решение поставленной задачи, написана с использованием структурного и объектно-ориентированного подходов. Язык программирования Object Pascal позволяет в полной мере использовать всю мощь этих подходов.
Конструктивный метод декомпозиции проиллюстрируем примером декомпозиции автомата N = (Z, {KA^W, {/¿j, {PS^}, g), где {PSi} : Z * {КАг} ^ Z; g : Z * {КАг} ^ W.
Пусть выбор начальных разбиений осуществлен следующим образом: ПьП•Пз = П(0).
Поставим в соответствие каждому разбиению Пг функцию Fi, Z*{КАг}^Пг, такую, что P(Zm, {КАг};)=Пг({PSi}(Zm, {КАг};)).
Значение функции Fi на паре (Zm, {KА»}/) равно блоку Пг, в котором содержится состояние Zs = {PSi}(Zm, {KAj}/), Zm,Zs G Z, {KАг}/ G {KАг}.
Для блоков П1, П2 и П3 введем следующие обозначения: П1 = = {bi, b2} = B, П2 = {ci, C2} = C, Пз = {di, d2} = D; Fi : Z*{KAt} ^ ^ B, F2 : Z * {KАг} ^ C, F3 : Z * {KA,} ^ D.
Пусть ПЬЩ•Пз = H, H = B^D, H = {(bi,ci,di), (bi,ci,d2).
(bi, C2, di), (bi,C2,d2), (b2,ci,di), (b2,Ci,d2), (b2,C2,di), (b2,C2,d2)}.
В соответствии с реализованным конструктивным методом декомпозиции выбранного устройства получим следующие компонентные автоматы: KA1, KA2, KA3.
Результаты исследований показали, что в целом алгоритм декомпозиции сложных дискретных устройств, основанный на определении сильносвязанных подсетей, имеет достаточную эффективность. Анализ результатов подтвердил, что при достаточной сложности и определенной топологии системы алгоритм уменьшает время анализа процесса функционирования такого класса устройств, причем также уменьшается общая вероятность ошибки в системе в силу подробного просмотра и анализа каждой подструктуры.
СПИСОК ЛИТЕРАТУРЫ
1. Питерсон Дж. Теория сетей Петри и моделирование систем: Пер. с англ. -М.: Мир, 1984. -264 с.
2. Б а р а н о в С. И. Синтез микропрограммных автоматов (граф-схемы и автоматы). - Л.: Энергия, 1979. - 232 с.
3. Магрупов Т.М. Графы, сети, алгоритмы и их приложения. - Ташкент: Фан, 1990, - 120 с.
4. К о т о в В. Е. Сети Петри. - М.: Наука, 1984, - 160 с.
Игорь Владимирович Рудаков родился в 1958 г., окончил в 1981г. МВТУ им. Н.Э. Баумана. Канд. техн. наук, доцент кафедры "Программное обеспечение ЭВМ и информационные технологии" МГТУ им. Н.Э. Баумана. Автор 50 научных работ в области исследования и разработки вычислительных устройств и программного обеспечения.
I.V. Rudakov (b. 1958) graduated from the Bauman Moscow Higher Technical School in 1981. Ph. D. (Eng.), assoc. professor of "Computer Software and Information Technology" department of the Bauman Moscow State Technical University. Author of 50 publications in the field of study and development of computing devices and software.
Статья поступила в редакцию 26.09.2005
Марьям Давудпур родилась в 1974 г., окончила в 1999 г. Тегран-ский технический университет. Аспирантка кафедры "Программное обеспечение ЭВМ и информационные технологии" МГТУ им. Н.Э. Баумана. Автор 7 научных работ в области исследования и разработки вычислительной техники и программного обеспечения.
Maryam Davoudpour (b. 1974) graduated from the Tehran Central Technical University in 1999. Ph. D Candidate of "Computer Software and Information Technology" department of the Bauman Moscow State Technical University. Author of 7 publications in the field of study and development of computing devices and software.