УДК 629.7.05 + 004.41
К ВОПРОСУ О ПОСТРОЕНИИ СПЕЦИФИКАЦИИ ДЛЯ БОРТОВЫХ УПРАВЛЯЮЩИХ АЛГОРИТМОВ РЕАЛЬНОГО ВРЕМЕНИ
© 2011 А. А. Тюгашёв, А. Ю. Богатов
Самарский государственный аэрокосмический университет имени академика С. П. Королёва (национальный исследовательский университет)
Предлагается подход к решению проблемы спецификации управляющих алгоритмов реального времени, основанный на специально построенной формальной теории. Рассматривается возможность автоматизации синтаксической редукции спецификации управляющих алгоритмов.
Математическая модель, спецификация, управляющий алгоритм реального времени, эквивалентные преобразования, функциональная задача, система уравнений, бинарное дерево, предикат.
Введение
Основными требованиями, предъявляемыми к спецификации программ, являются точность, однозначность и полнота, а также возможность формальной верификации построенной спецификации.
С точки зрения модели пред- и постусловий Хоара [1] классическая последовательная или параллельная программа р работает корректно: (А)р(B) ° 1, если для любого набора данных, на котором истинен предикат A , после выполнения р получаем выходные данные, на которых истинен предикат B. В случае программ, основанных на алгоритмах реального времени, данное условие неприменимо и должно быть заменено следующим: (A( Do, ^ ))р(В( Д (^ ), D2 ^ ),..., Dk (£ ))),
где
A(D0,t0) означает корректное задание начальных условий на момент времени t0,
ДДОД D2(t2),..., А (Ч )) означает, что в результате выполнения программы р были корректно выполнены целевые задачи в моменты времени t1,...,tk. Данная особенность приводит к существенному усложнению спецификации программ, реализующих управляющие алгоритмы реального времени (УА РВ). В работе рас-
сматриваются методы синтаксической редукции спецификации УА РВ.
Алгебраическая система УА РВ
Управляющие алгоритмы реального времени можно представить в виде четвёрок объектов [2]:
УАРВ = {<£,^,тг,I >},г = , где £ - функциональная задача (действие);
ti - момент начала выполнения действия (целое неотрицательное число);
т г - длительность действия (целое неотрицательное число);
1 - логический вектор, обуславливающий выполнение функциональной задачи.
Далее, пользуясь терминологией А. И. Мальцева [3], введём в рассмотрение двухосновную алгебраическую систему
< и, Ц Е; Я >,
где
и - множество УА РВ в смысле наборов четвёрок объектов,
Ц - множество логических условий, Е - множество операций, определённых на декартовом произведении и х Ц ,
Я - множество отношений между элементами множеств и и Ц .
Для описания алгебраической системы УА РА в работах [2, 4] было пред-
ложено исчисление управляющих алгоритмов реального времени. Данная формальная система представляет собой исчисление предикатов первого порядка. Ниже приводится определение терма, а также набор функциональных и предикатных символов расширенного исчисления УА РВ.
Определение терма вводится рекурсивно в соответствии со следующими правилами:
1) Символ функциональной задачи есть терм.
2) Если Т1 и Т 2 - термы, а х - целое неотрицательное число, то
Т1 СН Т 2, Т1 СК Т 2, Т1 ® Т 2, Н ( Т1, Т 2, х ), ЗА ( Т1, Т 2, х ), @( Т1, х )
являются термами.
Функциональные символы расширенного исчисления УА РВ
Функциональный символ СН описывает операцию алгебраической системы «совпадение по началу». Пусть даны термы
Т1 < Т1, ^т 1, ^ Т 1, 1у 1 >
и
Т ^2 Т ^2, ^т 2 , Т Т 2 , 1Т 2 ^^ *
тогда
Т3 = Т1 СН Т2 =< Т3, Ц3, тТ3, Тъ >. Терм Т3 содержит описания всех функциональных задач, входящих в Т1 и Т 2:
^т3 ^Т1 , 1Т3 , Хт2 ) ;
логические векторы, обусловливающие выполнение функциональных задач, не изменяются.
Функциональный символ СК описывает операцию алгебраической системы «совпадение по концу». Пусть даны термы
Т1 =< Т1, ^ 1, тТ 1,1Т1 >
и
Т ^2 Т ^2, ^т 2 , Т т 2 , 1т 2 ^^ ,
Т3 = Т1 СК Т2 =< Т3, ^3, тТ 3,1Т3 > .
Терм Т3 содержит описания всех функциональных задач, входящих в Т1 и Т2. При этом для всех компонентов - функциональных задач, вошедших в состав Т3 из участвующего в операции УА РВ с меньшей суммарной длительностью, необходимо провести операцию нормировки (сдвига) момента старта на величину
I тт 1 ^^т 2, если Тт 1 > Тт 2 , I тт 2 тт 1, если тт 2 > тт 1,
Хт 3 — шах(Тт1, Тт 2).
Логические векторы, обусловливающие выполнение функциональных задач, не меняются.
Функциональный символ ® описывает операцию непосредственного следования. Пусть даны термы
Т1 =< Т1, ГТ1, тТ 1,1Т1 >
и
Т ^2 Т ^2, ^т 2 , Т т 2 , 1т 2 ^^ ,
тогда
Т3 = Т1 ® Т2 =<Т3,^3,тТ3,1Т3 >,
где
^Т3 ^т 1, Тт3 Тт 1 I Тт 2 .
Логические вектора не меняются.
Функциональный символ Н описывает тернарную операцию «наложение со сдвигом». Пусть даны термы
Т1 < Т1, Т, Тт 1, 1т 1 > ,
Т ^2 Т ^2, ^т 2 , Т т 2 , 1т 2 ^^
и
тогда
величина сдвига ^ (tS е Zа0),
тогда
Т3 = Н(Т1,Т2, ^) =< Т3, tт3, тт3,1Т3 > .
Терм Т3 содержит описания всех функциональных задач, входящих в Т1 и Т 2, при этом
Логические векторы, обусловливающие выполнение функциональных задач, не изменяются.
Функциональный символ ЗА описывает тернарную операцию «следование со сдвигом». Пусть даны термы
Т1 < Т1, tт 1, Т т 1, 1т 1 > ,
Т ^2 Т ^2, tт 2 , Т т 2 , 1т 2 ^^
и величина сдвига tS (tS е 2>0),
тогда
Т3 = ЗА(Т1, Т2, tS ) =< Т3, ^3, тт3,1т3 > . Терм Т3 содержит описания всех функциональных задач, входящих в Т1 и Т2, при этом
tт 3 t т 1, Т т 3 Т Т1 + Т Т 2 + t ¡$ .
Логические векторы не изменяются.
Функциональный символ @ описывает операцию привязки начала выполнения УА к абсолютному значению времени. Пусть дан терм
Т =< Т, ^, тт , тт > и значение момента времени
t0 ( 10 е 2>0 ),
тогда
Т1 < Т1, tт 1, Т т 1, 1т 1 > . Терм Т1 содержит описания всех функциональных задач, входящих в Т , при этом tт 1 = t0, тТ 1 = тТ и логические векторы не изменяются.
Предикатные символы расширенного исчисления УА РВ
Предикатные символы, одноимённые с функциональными, будем обозначать курсивом. Пусть и - множество управляющих алгоритмов реального времени.
Предикатный символ СН описывает бинарное отношение «совпадение по началу» на декартовом произведении и х и. Для термов
Т ^2 Т ^2, tт 2 , Т т 2 , 1т 2 ^^
и
Т1 =< Т1, ^ 1, Тт 1,1Т1 >
Т 2 Т 2, tт 2 , Тт 2 , 1т 2 ^^
Т1 < Т1, tт 1, Т т 1, 1т1 >
и
предикат Т1СК Т 2 истинен, если
t + Т = t + Т
Т1 Т1 Т2 Т2
Предикатный символ ^ описывает бинарное отношение временного следования на декартовом произведении и хи . Для термов
и
Т1 < Т1, tт 1, Т т 1, 1т 1 >
Т 2 Т 2, tт 2 , Тт 2 , 1т 2 ^^
предикат Т1 ^ Т2 истинен, если tт 1 + Тт1 = tт 2, и ложен в противном случае.
Предикатный символ < описывает бинарное отношение предшествования на декартовом произведении и хи . Для термов
и
Т1 < Т1, tт 1, Т т 1, 1т 1 >
Т 2 Т 2, tт 2 , Тт 2 , 1т 2 ^^
предикат Т1< Т2 истинен, если tт 1 < tт 2, и ложен в противном случае.
Предикатный символ << описывает бинарное отношение сильного предшествования на декартовом произведении и х и. Для термов
и
Т1 =< Т1, Тт 1,1Т1 >
Т 2 Т 2, tт 2 , Тт 2 , 1т 2 ^^
предикат Т1 << Т 2 истинен, если tт 1 + Тт 1 < tт 2, и ложен в противном случае.
Предикатный символ <> описывает отношение несовместности по времени. Это бинарное отношение на декартовом произведении и хи , где и - множество управляющих алгоритмов реального времени. Для термов
предикат Т1 СН Т 2 истинен, если tт 1 = tт 2, и ложен в противном случае.
Предикатный символ СК" описывает бинарное отношение «совпадение по концу» на декартовом произведении и хи . Для термов
и
Т1 < Т1, tт 1, Т т 1, 1т 1 >
Т 2 Т 2, tт 2 , Тт 2 , 1т 2 ^^
предикат Т1 <> Т 2 истинен, если (^ 1 +Тт 1 < tт 2) V (^ 2 +Тт 2 < tт 1), и ложен в противном случае.
Предикатный символ </> описывает бинарное отношение несовместности по
логике на декартовом произведении и х и. Для термов
Т1 =< Т1, ^ 1, тт 1, >
и
Т ^2 Т tт 2 , Т т 2 , 1т 2 ^^ предикат </> истинен, если несовместны логические векторы, обусловливающие выполнение Т1 и Т2, и ложен в противном случае.
Построение спецификации с помощью формул исчисления УА РВ
Будем называть функциональную задачу вполне определённой, если для неё известны время начала t, длительность т и обусловливающий её выполнение логический вектор а. В противном случае будем называть функциональную задачу частично определённой.
Пусть требуется описать спецификацию взаимодействия управляющих алгоритмов, состоящих из N функциональных задач: £1,..., fN, при этом К < N задач вполне или частично определены. Тогда спецификацию можно записать в виде
р (£ ,..., fN ), Р2 (£ , ..., fN ),
РМ (£1,..., £N ),
<
= *tl =t^«1 = «^ £2 : * 2 = * 2, '2 = t 2, «2 = « 2,
^ £К : *К = * К, 'К = ' К , «К = «К .
Здесь р (£1,..., fN) представляет собой формулу, выражающую композицию операций или отношений алгебраической системы УА РВ для функциональных задач ^^ £N .
Моделирование операций и отношений алгебраической системы системой уравнений
Из приведённых выше определений отношений и операций алгебраической
системы УА РВ следует, что любое отношение на множестве функциональных задач однозначно определяется отношениями <, >, = на декартовом произведении N х N х{0,1}^ , где 3 — размерность логического вектора, обусловливающего выполнение функциональных задач данного множества. Аналогично, любая операция на множестве функциональных задач однозначно определяется стандартными операциями умножения и сложения на множестве целых чисел. Это позволяет проводить описание УА РВ с помощью системы алгебраических уравнений относительно времени начала и длительности частично определённых функциональных задач.
Содержательно алгоритм построения алгебраической модели по спецификации УА РВ состоит из следующих шагов:
1) спецификация переводится в ПОЛЮ;
2) для каждого оператора в записи выполняются следующие правила:
- если оператор выражает отношение на множестве функциональных задач, то определяются время начала, длительность, координаты условного вектора операндов и формулируется уравнение или неравенство, соответствующее данному отношению. Каждая часть полученного соотношения умножается на характеристическую функцию соответствующего логического вектора;
- если оператор определяет операцию на множестве функциональных задач, то определяются время начала, длительность, координаты условного вектора операндов и над ними выполняются преобразования, задаваемые данной операцией.
Оптимизация
Оптимизирующие преобразования алгебраической модели заключаются в нахождении решения полученной системы уравнений относительно переменных, соответствующих времени начала и дли-
тельности частично определённых функциональных задач. При этом возможны три варианта:
1) Система является определённой. В этом случае оптимизация может считаться завершённой. Все функциональные задачи являются вполне определёнными. В этом случае спецификация не будет содержать ни одной формулы.
2) Система несовместна. Спецификация некорректна, то есть содержит условия, противоречивые с точки зрения логики или по времени.
3) Система является неопределённой. Решение представляет собой выражение значений логических и временных характеристик одних функциональных задач (свободные переменные системы) через логические и временные характеристики других функциональных задач (базисные переменные). При этом возможна оптимизация, заключающаяся в минимизации выражений свободных переменных через базисные.
Формальные преобразования спецификации УА РВ
Из приведённых выше определений отношений алгебраической системы УА РВ следуют тождества:
1) Т СН Т2 = Т2 СН т1,
2) Т СК Т2 = Т2 СК т1,
3) Т1 + т2 = Т2 + Т1,
4) (Т ® Т2)® Тз = т ® (Т2 ® Тз),
5) (Т СН Т2) СН Т3 = Т СН (Т2 СН Т3),
6) (Т СК Т2) СК Т3 = Т СК (Т2 СК Т3),
7) (Т ® Т2)СН(Т1 ® Тз) = Т1 ® (Т2 СН Тз),
8) (Т1 ® Т2)СК(Тз ® Т2) = (Т СК Тз) ® Т2,
9) (Т1 ® Т2)+(Т ® Тз) = т ® (Т2 + Тз),
10) (Т1 ® Т2)+(Тз ® Т2) = (Т1 + Тз) ® Т2,
11) (Т1 СН Т2) + (Т1 СН Тз) = Т СН (Т2 + Тз),
12) (Т1 СН Т2) + (Тз СН Т2) = (Т + Тз) СН т2,
14) (Т СК Т2) + (Т СК Тз) = Т1 СК (Т2 + Тз),
15) (Т СК Т2) + (Тз СК Т2) = (Т + Тз) СК т2,
16) («1 = 1) ^ (Т ® Т2) = ((«1 = 1) ^
^ Т) ® ((«1 = 1) ^ Т2),
17) («1 = 1) ^ (т СН Т2) = ((«1 = 1) ^
^ Т)СН ((«1 = 1) ^ Т2),
18) («1 = 1) ^ (Т СК Т2) = ((«1 = 1) ^
^ Т)СК ((«1 = 1) ^ Т2),
19) Т СН Т = т1,
20) Т1 СК Т = т1,
21) (а^ Т) + (па^ Т) = Т,
22) (а ^ (Ь ^ Т)) = (алр) ^ Т.
С помощью этих тождеств можно осуществить синтаксическую редукцию (эквивалентные преобразования, сокращающие длину формулы) спецификации УА РВ.
Рассмотрим пример. Пусть в спецификации присутствует формула
((£ ® /2)СН(£ ® £з)) СК(/4 ® (£ СН£ъ)).
Применяя тождества 7, 8, эту формулу можно преобразовать к виду С/1 СК £4) ® с/2 СН £з). При этом происходит уменьшение количества операций в два раза.
В качестве внутреннего представления оптимизируемых формул управляющего алгоритма будем рассматривать их двоичные деревья синтаксического разбора. Оптимизация двоичных деревьев проводится в два этапа:
1) идентификация двоичных поддеревьев;
2) применение к поддеревьям аксиомы сжатия, если это возможно.
Существует несколько способов идентификации одинаковых поддеревьев. Первый подход - метод прямого сравнения, то есть для каждого узла сравниваем все поддеревья. Второй подход - метод простых чисел. Все узлы двоичного дерева нумеруются простыми числами, операции СН, СК, + получают коды 2, з, 5, 7. Узлы, соответствующие одной и той же операции или одной и той же функциональной задаче, нумеруются одинаковыми числами. Для идентификации поддерева производится перемножение кодов всех узлов, входящих в него. Некоммутативные операции ® и + для различения левого и правого поддеревьев в случае равен-
ства произведений используют приписывание знака минус («—»). Недостатком метода простых чисел является быстрое переполнение. Поэтому вместо него возможно применение метода «целых» чисел, в котором узлы-поддеревья кодируются целыми числами. Однако при этом необходимо иметь в памяти таблицу, описывающую каждый подузел с информацией о его левом, правом поддереве и месте в дереве.
Рассмотрим алгоритм проведения эквивалентных преобразований на бинарных деревьях. Этот алгоритм начинает обработку с самых нижних поддеревьев, а затем, поднимаясь выше, охватывает все большее количество узлов. Поддеревья соединяются с помощью узла-операции, причём в конструкции Д / Д (поддерево, над которым в текущий момент работает алгоритм) поддеревья Д и Д уже отработаны, поэтому по ним надо спуститься максимум на один - два уровня. Таким образом, процесс эквивалентных преобразований носит индуктивный характер. Базисом индукции является исходное двоичное дерево представления алгоритма Д. Шаги индукции проводятся применением аксиом исчисления управляющих алгоритмов. На каждом шаге индукции получаем эквивалентное предыдущему двоичное дерево Б.. Последовательность Д, Д,..., Д длины к +1 назовём выводом Д ® Д .
Заключение
Необходимо заметить, что приведённые методы синтаксической редукции спецификации УА РВ уменьшают количество информационных связей в результи-
рующей управляющей программе, понижая тем самым её структурную сложность (сложность управляющего графа, связанного с потоком управления). Кроме того, алгебраический метод синтаксической редукции формул позволяет проверить корректность задания временных и логических условий управляющего алгоритма. Данный подход приводит к квазиоптимальному решению (как таковая, строго говоря, задача оптимизации в классической постановке не ставится).
Таким образом, метод формальных преобразований обеспечивает квазиоптимальность построенного решения.
Библиографический список
1. Мальцев, А. И. Алгебраические системы [Текст] / А. И. Мальцев. - Москва: Наука, 1970. - 400 с.
2. Касьянов, В. Н. Графы в программировании: обработка, визуализация и применение [Текст] / В. Н Касьянов, В. А. Евстигнеев. - СПб.: БХВ - Петербург, 2003. - 1104 с.
3. Калентьев, А. А. Автоматизированный синтез алгоритмов асинхронного управления техническими системами с множеством дискретных состояний [Текст] / А. А Калентьев. - Самара: СГАУ, 1998. - 204 с.
4. Тюгашев, А. А. Синтез и верификация управляющих алгоритмов реального времени для бортовых вычислительных систем космических аппаратов [Текст]: дис. ... д-ра техн. наук / А. А. Тюгашев. - Самара: Изд-во СГАУ, 2007. - 312 с.
_Управление, вычислительная техника и информатика
CONSTRUCTING THE SPECIFICATION FOR THE ON-BOARD REALTIME
CONTROL ALGORITHM
© 2011 A. A. Tyugashev, A. Yu. Bogatov
Samara State Aerospace University named after academician S. P. Korolyov
(National Research University)
An approach to solving the problem of the on-board algorithm specification is proposed. This approach is founded on the calculus of a realtime control algorithm. The possibility of the automation of syntax reduction for the specification is also considered.
Mathematical model, specification, control algorithm, equivalent optimizing transformations, functional task, system of linear equations, binary tree, predicate.
Информация об авторах
Тюгашёв Андрей Александрович, доктор технических наук, профессор кафедры компьютерных систем. Самарский государственный аэрокосмический университет имени академика С. П. Королёва (национальный исследовательский университет). Область научных интересов: разработка ИПИ-технологий на проблемно- ориентированном уровне. E-mail: [email protected].
Богатов Артём Юрьевич, аспирант, ассистент кафедры компьютерных систем. Самарский государственный аэрокосмический университет имени академика С. П. Королёва (национальный исследовательский университет). Область научных интересов: теория алгоритмов, CALS-технологии. E-mail: [email protected].
Tyugashev Andrey Alexandrovitch, doctor of technical sciences, professor of the department of computer systems, Samara State Aerospace University named after academician S. P. Korolyov (National Research University), [email protected]. Area of research: informatics and CALS-technology.
Bogatov Artyom Yurievitch, assistant of the department of computer systems, Samara State Aerospace University named after academician S. P. Korolyov (National Research University), [email protected]. Area of research: theory of algorithms and CALS-technology.