Научная статья на тему 'К вопросу об оптимизирующих преобразованиях управляющих алгоритмов реального времени'

К вопросу об оптимизирующих преобразованиях управляющих алгоритмов реального времени Текст научной статьи по специальности «Математика»

CC BY
100
54
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МАТЕМАТИЧЕСКАЯ МОДЕЛЬ / УПРАВЛЯЮЩИЙ АЛГОРИТМ / ЭКВИВАЛЕНТНЫЕ ОПТИМИЗИРУЮЩИЕ ПРЕОБРАЗОВАНИЯ / ФУНКЦИОНАЛЬНАЯ ЗАДАЧА / СИСТЕМА ЛИНЕЙНЫХ УРАВНЕНИЙ / БИНАРНОЕ ДЕРЕВО / MATHEMATICAL MODEL / CONTROL ALGORITHM / EQUIVALENT OPTIMIZING TRANSFORMATIONS / FUNCTIONAL TASK / SYSTEM OF THE LINEAR EQUATIONS / BINARY TREE

Аннотация научной статьи по математике, автор научной работы — Тюгашёв Андрей Александрович, Богатов Артём Юрьевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Тюгашёв Андрей Александрович, Богатов Артём Юрьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

To the Question of Optimizing the Real-Time Controlling Algorithms

The problem of machine-independent optimization is studied for the programs, based on real-time controlling algorithm. This article describes a mathematical model of the controlling algorithm semantics and equivalent optimizing transformations based on it.

Текст научной работы на тему «К вопросу об оптимизирующих преобразованиях управляющих алгоритмов реального времени»

УДК 519.712

К ВОПРОСУ ОБ ОПТИМИЗИРУЮЩИХ ПРЕОБРАЗОВАНИЯХ УПРАВЛЯЮЩИХ АЛГОРИТМОВ РЕАЛЬНОГО ВРЕМЕНИ

А. А. Тюгашёв, А.Ю. Богатов

Самарский государственный аэрокосмический университет им. ак. С. П. Королёва,

443086, г.Самара, Московское ш., 34.

E-mails: tau797@mail.ru, artmbogatov@yandex.ru

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

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

Введение. В работе рассматриваются оптимизирующие преобразования на множестве программ, основанных на управляющих алгоритмах. В классическом представлении программа описывается с точки зрения модели пред-и постусловий: (А)п(В). Программа п работает корректно ((А)п(В) = 1), если для любого набора данных, на котором истинен предикат A, после выполнения п, получаем выходные данные, на которых истинен предикат В. Соответственно, две программы пі и П2 будут эквивалентны, если для любых предикатов R и Q выполняется (R)ni(Q) ^ (R)^(Q). Преобразования Ф(п) приводят программу п к оптимальному виду, если выполнены следующие два условия:

1) эквивалентность: V предикатов R, Q выполняется ^)п^)^^)Ф(п)^);

2) оптимальность: для выбранного критерия оптимальности, задаваемого предикатом (K), должно выполняться тождество: (K)(Ф(п)) = 1.

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

(A(D0) ¿0))п(В(^1(^1), D2 (t2) j • • • ) Dk (tk))),

где (A(Do,to)) означает корректное задание начальных условий на момент времени to, а (В(Di(ti), D2(t2), • • •, Dk(tk))) означает, что в результате выполнения программы п были корректно выполнены целевые задачи в моменты времени ti, t2, • • •, tk.

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

Тюгашёв Андрей Александрович — профессор кафедры компьютерных систем; д.т.н., профессор.

Богатов Артём Юрьевич — ассистент кафедры компьютерных систем; аспирант.

1. Исчисление управляющих алгоритмов реального времени. Пусть в управляющем алгоритме выполняются N функциональных задач, тогда управляющий алгоритм реального времени можно представить в виде четвёрки объектов: (/¿, ті, іі) (г = 1, 2,..., N), где ¡і —функциональная задача, ^ — момент начала выполнения действия, ті —длительность действия, іі - логический вектор, обуславливающий действие. Координаты вектора іі могут принимать значения из множества {1, 0, Н}, где Н означает независимость выполнения функциональной задачи от значения данной логической переменной. В таблице приведены операции конъюнкции, дизъюнкции и отрицания для алгебры трёхзначной логики.

Функции конъюнкция, дизъюнкция и отрицание в алгебре трёхзначной логики

X У ж V у (или) х А у (и) -¡х (не)

0 0 0 0 1

0 1 1 0 1

1 0 1 0 0

1 1 1 1 0

0 н 0 0 1

1 н 1 1 0

н 0 н 0 н

н 1 н 1 н

н н н н н

Далее на множестве управляющих алгоритмов вводятся нижеследующие операции.

1) СК — операция совпадения по концу. Пусть Т\ и Т2 —термы со временем начала исполнения ¿у 1и ¿у2 и длительностью ту 1и ту2, тогда

Т СК Т2 ^ ¿у 1 + Ту 1 = ¿Т2 + Ту2. (1)

2) СН — операция совпадения по началу. Пусть Т\ и Т2 —термы со временем начала исполнения ¿у 1 и ¿у2, тогда

Т1 СН Т2 ^ ¿у 1 = ¿у2. (2)

3) ^ —операция непосредственного следования. Пусть Т\ и Т2 —термы со временем начала исполнения ¿у 1 и ¿у2 и длительностью ту 1 и ту2, тогда

Т ^ Т2 ^ ¿у 1 + ту 1 = ¿у2. (3)

4) +--операция выбора динамического объекта. Для термов Т\ и Т2 вы-

ражение Т1 + Т2 означает, что существует два варианта выполнения программы: по ветке, реализующей терм Т\, и по ветке, реализующей терм Т2.

5) ^ —операция «навешивания» предиката на терм (создание динамического объекта). Для терма Т1 и п-местной логической функции , а2,

..., ап) выражение

■0(а1 ,а2,... ,а„) ^ Т1

означает, что терм Т\ выполняется, если функция ^(а1,..., ап) истинна.

6) Ш, ОиТ — операции «навешивания» входных и выходных переменных на терм. Данные операции определяют обязательные входные и выходные переменные.

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

1) Т1 СН Т2 = Т2 СН Т1,

2) Т1 СК Т2 = Т2 СК Т1,

3) Т1 + Т2 = Т2 + Т1,

4) (Т1 ^ Т2) ^ Т3 = Т1 ^ (Т2 ^ Т3),

5) (Т1 СН Т2) СН Т3 = Т1 СН (Т2 СН Т3),

6) (Т1 СК Т2) СК Т3 = Т1 СК (Т2 СК Т3),

7) (Т1 ^ Т2)СН(Т1 ^ Т3) = Т1 ^ (Т2 СН Т3),

8) (Т1 ^ Т2)СК(Т3 ^ Т2) = (Т1 СК Т3) ^ Т2,

9) (Т1 ^ Т2) + (Т1 ^ Т3) = Т1 ^ (Т2 + Т3),

10) (Т ^ Т2) + (Т3 ^ Т2) = (Т1 + Т3) ^ Т2,

11) (Т1 СН Т2) + (Т1 СН Т3) = Т1 СН (Т2 + Т3),

12) (Т1 СН Т2) + (Т3 СН Т2) = (Т1 + Т3) СН Т2,

14) (Т1 СК Т2) + (Т1 СК Т3) = Т1 СК (Т2 + Т3),

15) (Т1 СК Т2) + (Т3 СК Т2) = (Т1 + Т3) СК Т2,

16) (а1 = 1) ^ (Т1 ^ Т2) = ((а1 = 1) ^ Т1) ^ ((а1 = 1) ^ Т2),

17) (а1 = 1) ^ (Т1 СН Т2) = ((а1 = 1) ^ Т1)СН((а1 = 1) ^ Т2),

18) (а1 = 1) ^ (Т1 СК Т2) = ((а1 = 1) ^ Т1)СК((а1 = 1) ^ Т2),

19) Т1 СН Т1 = Т1,

20) Т1 СК Т1 = Т1,

21) (а ^ Т) + (—а ^ Т) = Т,

22) (а ^ (в ^ Т)) = (а Л в) ^ Т.

2. Постановка задачи. Аналогично тому, как это было сделано для классических программ, задачу поиска эквивалентных оптимизирующих преобразований для управляющих алгоритмов реального времени можно сформулировать в рамках модели пред- и постусловий: требуется найти преобразование Ф(п) программы п, для которого истинны следующие высказывания:

( (А(А^0)}п{В(В1 • • • , Вк {¿к))} ^

{А(Во, ¿о)}Ф(п){В(В (¿1),..., В(¿к)));

I (К(Ф(п))) = 1.

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

Второе условие означает оптимальность программы П1 = Ф(п) в смысле критерия оптимальности, задаваемого предикатом К.

Будем строить оптимизирующие преобразования для следующих критериев:

1) минимизация количества операций типа СН, СК, ^, +;

2) минимизация проверок условий.

3. Оптимизация по критерию минимума количества операций.

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

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

Пусть алгоритм содержат N функциональных задач. Пронумеруем их числами от 1 до N, время начала исполнения ¿-той задачи обозначим ¿¿, а длительность исполнения тг. Каждой операции, задающей временное соотношение между термами, поставим в соответствие линейное уравнение по правилам (1)—(3). Причём, если терм Т выполняется на таких реализациях логического вектора ¿¿, что логическая функция ^¿(а^ а2,..., ак) = 1, то соответствующую часть уравнения нужно умножить на ^¿(в1, в2,..., вк). Таким образом, получаем систему линейных алгебраических уравнений относительно ¿г и т (г = 1, 2,..., N), при этом, как известно, возможны три случая: система несовместна; система совместная, определённая; система совместная, неопределённая.

Первый и второй случаи тривиальны. Несовместность системы, полученной по вышеописанным правилам, означает наличие в управляющем алгоритме противоречивых условий. Если решение системы существует и единственно, то есть для каждой функциональной задачи можно явно указать время начала и длительность выполнения, то, очевидно, цель оптимизации по критерию минимума операций типа СН, СК, ^, + достигнута. В случае, когда система совместная, неопределённая, её решение будет задавать квазиопти-мальный алгоритм по рассматриваемому критерию. С одной стороны, решая систему, мы исключаем из алгоритма избыточные временные условия, уменьшая тем самым количество операций типа СН, СК, ^, +. С другой стороны, полученное решение нельзя считать оптимальным, так как пока неизвестно, зависит ли сложность решения от выбора главных и свободных переменных, и если зависит, то как.

3.2. Метод формальных преобразований. Задачу оптимизации управляющего алгоритма по критерию минимума операций типа СН, СК, ^, + можно решить, применяя к формулам, задающим алгоритм, аксиомы 1)—22).

Рассмотрим пример. Пусть в алгоритме присутствует формула

((/1 ^ /2) СН (/1 ^ /3)) СК (/4 ^ (/2 СН /3)).

Применяя аксиомы 7), 8), эту формулу можно преобразовать к виду

(/1 СК /4) ^ (/2 СН /3),

при этом произошло уменьшение количества операций в 2 раза.

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

Существует несколько способов идентификации одинаковых поддеревьев. Первый подход — метод прямого сравнения, т. е. для каждого узла сравниваем все поддеревья. Второй подход — метод простых чисел. Все узлы двоичного дерева нумеруются простыми числами, операции СН, СК, ^, + получают коды 2, 3, 5, 7. Узлы, соответствующие одной и той же операции или одной и той же функциональной задаче, нумеруются одинаковыми числами.

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

Рассмотрим алгоритм проведения эквивалентных преобразований на бинарных деревьях. Этот алгоритм начинает обработку с самых маленьких поддеревьев, а затем, поднимаясь выше, охватывает все большее количество узлов. Поддеревья соединяются с помощью узла — операции, причем в конструкции В1/В2 (поддерево, над которым в текущий момент работает алгоритм) поддеревья В1 и В2 уже отработаны, поэтому по ним надо спуститься максимум на один-два уровня. Таким образом, процесс эквивалентных преобразований носит индуктивный характер. Базисом индукции является исходное двоичное дерево представления алгоритма Во. Шаги индукции проводятся применением аксиом исчисления управляющих алгоритмов. На каждом шаге индукции получаем эквивалентное предыдущему двоичное дерево В^-. Последовательность Во, В1,..., Вк длины к + 1 назовем выводом Во ^ Вк.

4. Оптимизация графовых представлений управляющего алгоритма. При моделировании сложных распределённых систем довольно продуктивным является графовый подход, основанный на представлении логики функционирования моделируемой системы в виде специальной графовой структуры. Примерами реализации данного подхода могут служить визуальный язык ОгарИПиБ [2] и система автоматической разработки ГРАФКОНТ [6]. Ниже показана возможность оптимизации графового представления управляющих алгоритмов в нотации системы ГРАФКОНТ.

На рисунке представлены две логико-временные схемы управляющих алгоритмов. Очевидно, что обе схемы семантически эквивалентны. Но во второй схеме на одну проверку условия меньше и, соответственно, отсутствует ветвь, содержащая дублирующее исполнение функциональной задачи /2 в случае, когда й2 = 0. Таким образом, возможность оптимизирующего преобразования, переводящего первую схему во вторую, связана с проверкой значения переменной й1, при этом функциональная задача /2 не зависит от аь Подобные оптимизирующие преобразования связаны с понятием веса логических переменных. Назовём весом логической переменной количество логических векторов, обуславливающих выполнение данного управляющего алгоритма, в которых значение этой переменной равно 0 или 1. Приведём алгоритм оптимизирующих преобразований:

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

2) для каждой функциональной задачи сравниваем логические вектора и формируем результирующий вектор по следующему принципу: если во всех логических векторах значение ¿-той переменной не меняется, записываем в результирующий вектор это значение, иначе — записываем значение Н;

3) считаем вес для каждой логической переменной;

Логико-временные схемы, реализующие один и тот же управляющий алгоритм

4) сортируем массив логических переменных в порядке убывания весов;

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

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

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

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

1) а(£), то есть актуально значение логической переменной в текущий момент времени ¿, и с течением времени значение а может меняться;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2) а(^), когда значение переменной может меняться, но интересует ее значение в указанный момент времени ¿о;

3) астат, когда значение логической переменной не претерпевает изменений в процессе исполнения управляющего алгоритма.

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Глушков В. М., Цейтлин Г.Е., Ющенко Е.Л. Алгебра. Языки. Программирование. — Киев: Наукова думка, 1989. — 376 с.

2. Востокин С. В. Графическая объектная модель параллельных процессов и ее применение в задачах численного моделирования. — Самара: СНЦ РАН, 2007. — 286 с.

3. Калентьев А. А. Автоматизированный синтез алгоритмов асинхронного управления техническими системами с множеством дискретных состояний. — Самара: СГАУ, 1998. — 204 с.

4. Касьянов В. Н. Оптимизирующие преобразования программ. — М.: Наука, 1988. — 335 с.

5. Лавров С. С. Программирование. Математические основы, средства, теория. — СПб.: БХВ-Петербург, 2001. — 320 с.

6. Тюгашёв А. А. Интегрированная среда для проектирования управляющих алгоритмов реального времени// Извест. РАН. Теория и системы управления, 2006. — №2. — С. 128-141.

7. Тюгашёв А. А. Проблема неоднозначности при порождении логико-временной структуры управляющего алгоритма по многовходовой модели реального времени / В сб.: БИКАМП-01: Сб. тр. Третьей международн. молодежн. шк.-сем. — СПб.: ГУАП, 2001. — С. 51-58.

8. Успенский В. А., Семенов А. Л. Теория алгоритмов: основные открытия и приложения. — М.: Наука, 1987. — 288 с.

Поступила в редакцию 15/1/2009; в окончательном варианте — 16/11/2009.

MSC: 68W40

TO THE QUESTION OF OPTIMIZING THE REAL-TIME CONTROLLING ALGORITHMS

A. A. Tyugashev, A. Yu. Bogatov

S. P. Korolyov Samara State Aerospace University,

34, Moskovskoye sh., Samara, 443086.

E-mails: tau797@mail.ru, artmbogatov@yandex.ru

The problem of machine-independent optimization is studied for the programs, based on real-time controlling algorithm. This article describes a mathematical model of the controlling algorithm semantics and equivalent optimizing transformations based on it.

Key words: mathematical model, control algorithm, equivalent optimizing transformations, functional task, system of the linear equations, binary tree.

Original article submitted 15/I/2009; revision submitted 16/II/2009.

Tyugashev Andrey Alexandrovich, Dr. Sci. (Techn.), Prof., Dept. of Computer Systems. Bogatov Artyom Yurievich, Assist., Postgraduate Student, Dept. of Computer Systems.

i Надоели баннеры? Вы всегда можете отключить рекламу.