Андрей Федорович Шориков
Доктор физико-математических наук, профессор, зав . кафедрой информационных систем в экономике Уральского государственного экономического
университета------------------------------
Владимир Александрович Тюлюкин
Кандидат физико-математических наук,
доцент кафедры информационных систем в экономике Уральского государственного
экономического университета
ОПИСАНИЕ БИБЛИОТЕКИ КОМПЬЮТЕРНЫХ ПОДПРОГРАММ ДЛЯ МОДЕЛИРОВАНИЯ РЕШЕНИЯ ЗАДАЧИ АПОСТЕРИОРНОГО МИНИМАКСНОГО ОЦЕНИВАНИЯ
Экономико-математические методы находят все более широкое применение в решении задач количественного анализа и компьютерном моделировании процессов, реализующихся в различных экономических структурах. При этом если в начальный период исследований разрабатывались и использовались статические оптимизационные модели, то в настоящее время для решения задач оценивания параметров систем и прогнозирования изменения их во времени используются динамические модели. В данной работе описывается программное обеспечение для персонального компьютера, которое позволяет осуществлять как экономико-математическое моделирование, так и моделирование технических объектов с учетом наличия динамики реализуемых процессов и неполноты информации о параметрах рассматриваемых систем. (Работа поддержана грантом РФФИ, проект 97-01-00161.)
Авторами представлено описание библиотеки подпрограмм на языке Pascal, позволяющих моделировать на компьютере решение задачи апостериорной минимаксной обработки данных измерений [1-5] в динамической системе, состоящей из двух управляемых объектов. Предполагается, что динамика наблюдаемого объекта описывается векторным линейным дискретным уравнением, а объекта, с которого ведется наблюдение, - векторным нелинейным дискретным уравнением. Действие измерителя сигнала моделируется соотношением, которое линейно зависит от фазового состояния наблюдаемого объекта и, через матрицу преобразования, от фазового состояния другого объекта, управляемого наблюдателем. При этом в рассматриваемой системе не требуется наличия памяти о реализациях измеряемых по ходу процесса параметров. Предполагается также, что известны множества, ограничивающие изменение всех априори неопределенных параметров системы, имеющие вид выпуклых, замкнутых и ограниченных многогранников (с конечным числом вершин) в соответствующих евклидовых пространствах. При
предположениях, сделанных в соответствии с результатами работ [1, 2, 5], в статье [3] формулируется задача апостериорного минимаксного оценивания фазовых состояний наблюдаемого объекта в форме нелинейного фильтра. Для ее решения в работах [3, 4] предложен численный рекуррентный алгоритм, который исходную многошаговую задачу сводит к решению последовательности одношаговых оптимизационных задач линейного и выпуклого математического программирования. Этот алгоритм использует также результаты работ [6-11].
В данной статье описание алгоритма реализовано в виде комплекса стандартных подпрограмм для персонального компьютера IBM PC/AT на алгоритмическом языке Pascal. Отметим, что ограничениями на размерность рассматриваемой динамической системы и число шагов процесса оценивания для моделируемого алгоритма являются только ограничения на ресурсы памяти и быстродействие компьютера. Представленный программный комплекс может быть использован при разработке моделирующих систем автоматического управления подвижными объектами и при решении задач экономико-математического моделирования. Математические модели таких систем рассмотрены, например, в работах [1-7].
Статья состоит из трех разделов: в первом приводится краткая инструкция по
использованию библиотеки подпрограмм, во втором - функциональные описания подпрограмм и в третьем - краткое описание структуры и использования головной программы.
1. Инструкция по использованию библиотеки подпрограмм
Данная библиотека подпрограмм состоит из модуля BTULSHOR. В модуле BTULSHOR описываются типы массивов, используемых библиотекой подпрограмм. Эти описания доступны основной программе FILTR (краткое описание представлено в разд. 3), поскольку они расположены в интерфейсной секции модуля. Массивы, описанные в основной программе, должны соответствовать типу массивов, входящих в задействованные подпрограммы. В некоторых подпрограммах создаются массивы, использующие динамическую память, длина которой зависит от памяти ОЗУ вашего ПК. Не забывайте выделять место для динамической памяти!
Для использования данной библиотеки подпрограмм в основной программе FILTR после строки PROGRAM . . . ; должна присутствовать строка USES BTULSHOR;. Заметим, что модуль BTULSHOR должен быть расположен в каталоге, соответствующем настройке вашего TurboPascal .
В заключение отметим, что все массивы, используемые в подпрограммах, являются одномерными. Запись «А - матрица A(k)» следует понимать так: в одномерном массиве А сначала расположен первый столбец матрицы A(k), затем - второй и т.д.
2. Описание библиотеки подпрограмм
1. Подпрограмма REACH: «Построение множества всех вершин области достижимости для линейных дискретных систем».
Математическое описание. Для линейной дискретной системы вида x(t +1) = A(t)x(t) + B(t)u(t) (1)
при заданных ограничениях
x(t) e X(t), u(t) e P(t), (2)
где момент времени t e N; фазовый вектор x e Rn ; управляющее воздействие u e Rp (n, p e N);
N - множество всех натуральных чисел; для k e N, Rk - k -мерное евклидово пространство, элементы которого будем представлять в виде векторов-столбцов, даже если из экономии места они записаны в строку; A(t) и B(t) - известные действительные матрицы размера (n х n) и (n х p) соответственно; X(t) и P(t) - выпуклые, замкнутые и ограниченные многогранники (с конечным числом вершин) из Rn и Rp соответственно. Множество всех вершин области достижимости [1] G(t,X(t),t + 1), отвечающей паре (t,X(t)) е N х 2R , на момент времени t +1 строится согласно следующему обобщенному алгоритму.
Алгоритм 1
Шаг 1. Сформировать множество Гп (X(t)) всех вершин многогранника X(t).
Шаг 2. Сформировать множество Г (P(t)) всех вершин многогранника P(t).
Шаг 3. Сформировать следующие множества:
X(t + 1) = (it(t + 1): x(t +1) e Rn, x(t + 1) = A(t)x(t), x(t) e Tn (X(t))},
Y(t + 1) = (y(t + 1): y(t + 1) e Rn, y(t +1) = B(t)u(t), u(t) e rp(P(t))}
G(t + 1) = (x(t +1): x(t +1) e Rn, x(t +1) = x(t + 1) + y(t + 1), x(t +1) e X(t +1), y(t +1) e Y(t +1)}.
Шаг 4. Для сформированного дискретного множества точек G(t +1) = {х(i)(t + сG(t,X(t),t +1) (m eN)
определить все его крайние вершины, которые находятся с помощью подпрограммы (п/п) КРАВЕР. Эти крайние вершины и будут множеством всех вершин области достижимости
G(t,X (t),t +1) на момент времени t +1, являющейся выпуклым, замкнутым и ограниченным
многогранником (с конечным числом вершин) из Rn .
Конец алгоритма 1.
Использование:
REACH (n, nr, nx, np, А, В, ВЕХ, ВЕР, nxp, BERG) ;
Входные параметры:
n - размерность фазового пространства (тип: integer); nr - размерность пространства управлений (тип: integer); nx - число всех вершин многогранника X(t) (тип: integer); np - число всех вершин многогранника P(t) (тип: integer);
А - матрица A(t) (тип: array [1..n х n] of real; type: t1);
В - матрица B(t) (тип: array [1..n х nr] of real; type: t2);
ВЕХ - массив, содержащий координаты всех вершин многогранника X(t) (тип: array [1..n х nx] of real; type: t7);
ВЕР - массив, содержащий координаты всех вершин многогранника P(t) (тип: array [1..n х np] of real; type: t6).
Выходные параметры:
nxp - число всех вершин области достижимости (тип: integer);
BERG - массив, содержащий координаты всех вершин области достижимости (тип: array [1..n х nx х nr х np + 3 х nx х nr х np] of real; type: t7).
Замечания по использованию:
1) строит область достижимости на один шаг вперед;
2) в п/п создается рабочий массив: Х (тип: array [1. .n] of real; type: t8);
3) используется п/п КРАВЕР.
2. Подпрограмма КРАВЕР: «Поиск множества всех вершин выпуклого, замкнутого и ограниченного многогранника по его дискретному подмножеству».
Математическое описание. Пусть x(1),x(2),---x(m)(m e N) есть дискретное множество точек G, являющееся подмножеством некоторого выпуклого, замкнутого и ограниченного многогранника (с конечным числом вершин) G из Rn , содержащее все его вершины. Тогда поиск
множества всех вершин многогранника G по заданному дискретному множеству G сводится к решению следующей задачи математического программирования.
Задача 1. Для фиксированного i e 1, m и набора переменных Xj е R1 ,j e 1,m, j Ф i
требуется определить совместность следующей системы линейных соотношений:
x(j) = x(' \
Решение этой задачи находится с помощью модифицированного симплекс-метода (см., например, [10, 11]), который применяется для задачи линейного программирования с
ограничениями (3) и поиска минимума целевой функции g: Rm ^ R1 достаточно произвольного вида, например
g(-) = j.
где j е 1, m, j ^ '.
Отметим, что такой выбор целевой функции значительно упрощает процесс проверки условий совместности ограничений (3), происходящий на первом этапе реализации модифицированного симплекс-метода. При этом из свойств системы (3) следует, что если она
совместна, то точка x(') не является вершиной многогранника conG - выпуклой оболочки
множества G. В противном случае имеем x(') е Гп (conG).
Тогда, решив задачу 1 для всех значений параметра ' е 1, m, найдем все вершины
многогранника Гп (conG) и, следовательно, все вершины многогранника G, так как имеет место
равенство Гп (G) = Гп (conG).
Использование:
КРАВЕР (n,m,l,A); .
Входные параметры:
n - размерность фазового пространства (тип: integer); m - число всех точек множества G (тип: integer);
А - массив, содержащий координаты всех точек множества G (тип: array [1.. n х m + 3 х m ] of real; type: t7).
Выходные параметры:
l - число всех вершин многогранника G (тип: integer);
А - массив, содержащий координаты всех вершин многогранника G.
Замечания по использованию:
1) в п/п создаются рабочие массивы: Х (тип: array [1. . n+3] of real; type: t12), NB (тип: array
[1. . n+3] of integer; type: t13), К (тип: array [1. . n] of integer; type: t5);
2) используется п/п MODIF.
3. Подпрограмма MODIF: «Решение задачи линейного программирования
модифицированным симплекс-методом».
Математическое описание.
Задача 2. Требуется решить задачу линейного программирования
(с', x)----> min (max)
при условиях Ax= b, x > 0 ,
где A - матрица размерности m х n (m,n е N); x е Rn; c е Rn; b е Rm .
Для решения этой задачи используется модифицированный симплекс-метод. Исходная информация задается в виде расширенной матрицы
(
a11 a12 • a1n
am1 am 2 ' amn
C1 2 О • Cn
а11 ai 2 ain
Л
где 1 = m + 2, a'j (' е 1,m, j е 1,n) - элементы матрицы A, a1j = -(a1j +a2j +... + amj) для j е 1, n;
вектор b дополняется двумя компонентами bm+1 = 0 и b1 = -(b1 + b 2 + . + bm ).
Точность вычислений характеризуется величиной невязки вида
r = b1 - (ai1x1 + ai2x2 + . + ainxn ).
Использование:
MODIF (A, i, n, eps, p, X, NB) ; .
Входные параметры:
A - матрица A1 (тип: array [1 ....i х n] of real; t^pe: t7);
i - число строк матрицы A1 (тип: integer);
n - число столбцов матрицы A1 (тип: integer);
eps - заданная абсолютная погрешность вычислений (тип: real);
p - числовой параметр такой, что p = 1, если требуется найти максимум, и (р < 1) v (p > 1), если требуется найти минимум целевой функции (тип: integer);
Х - вектор b (тип: array [1.. i] of real; type: t12).
Выходные параметры:
p - числовой параметр такой, что p = 1, если найдено решение; p = 2, если система ограничений несовместна; p = 3 , если значение целевой функции неограниченно;
Х - в X('),' е 1,i - 2 находятся ненулевые координаты вектора-решения; в X(i -1)-минимальное (максимальное) значение целевой функции; в X(i) - значение величины невязки;
NB - массив, содержащий номера ненулевых координат вектора-решения (тип: array [1. .i] of integer; type: t13).
Замечания по использованию:
1) задача должна быть приведена к виду, в котором координаты вектора b неотрицательны;
2) в п/п создаются рабочие массивы, использующие динамическую память: U (тип: а^ау [1.. i х 2 ] of real; type: t11), XK (тип: ап^ау [1. .i] of real; type: t12); в конце выполнения п/п указанные динамические переменные уничтожаются.
4. Подпрограмма GIPBER: «Нахождение вершин выпуклого, замкнутого и ограниченного многогранника, заданного системой неравенств».
Математическое описание. Пусть задана система неравенств вида
ai1x1 +.+ ainxn - ai,n+1 ^ 0 j е 1 m (^ n е N) ,
где aji е Я1 (1 е 1,п +1) - ья координата нормального вектора j-й крайней опорной гиперплоскости; xi е Я1 - набор действительных переменных, которые определяют выпуклый, замкнутый и
ограниченный многогранник (с конечным числом вершин) G из Яп . Требуется найти множество Гп всех вершин многогранника G.
Для решения этой задачи используется следующая обобщенная схема.
Сформируем систему уравнений
а^х1 + . . . + ^хп - а^п+1Хп+1 = ^ ,
- Хп+1 = ит+1 ,
j е1, m,
где и1 е Я1 (1 е 1, т +1) - неотрицательные числовые параметры. Тогда, применив к этой системе алгоритм Г аусса для исключения неизвестных, получим
X = ^1и1 + ... + ^тЛ^ ]е1, п +1; (4)
Г11и1 + . + Г1,т+1ит+1 = 0, 1 е п + 2, т + 1, (5)
где Sjk е Я1 (к е 1,т + 1) и г1| е Я1 (1 е 1,т + 1) есть фиксированные числовые параметры. Применив к (5) вычислительную схему Н.В. Черниковой [9], получим
где p' е Ri (' е 1, k) - произвольные неотрицательные числа; qj' е R1- фиксированные числовые
параметры.
Подставив выражения из (6) в (4), получим
xj = bj1p1 +■■■+ bjkpk, j е1, n +1,
где bj' е R1 (' e1,k) есть фиксированные числовые параметры. Тогда для bn+n ^ 0 выражение
bj'/bn+1,' является значением j-й координаты i-й вершины многогранника G, т.е. таким образом
определяется все искомое множество Гп (G) .
Использование:
GIPBER (A, n, m, 'm, C1);.
Входные параметры:
А - массив координат нормальных векторов и свободных членов, определяющих систему неравенств, описывающую многогранник G (тип: array [ 1 ..m х (n + m) ] of real; type: t7); n - размерность фазового пространства + 1 (тип: integer); m - число исходных неравенств + 1 (тип: integer).
Выходные параметры:
'm - число всех вершин многогранника G (тип: integer);
С1 - массив, содержащий координаты всех вершин многогранника G (тип: array [1..n х'm ] of real; type: t7).
Замечания по использованию:
1) данная п/п работает при условии m > n; в противном случае необходимо продублировать одно из неравенств до выполнения этого условия;
2) в п/п создаются рабочие массивы, использующие динамическую память: B (type: t10), C (type: t10); размеры массивов В и С рекомендуется задавать максимально возможными; в конце выполнения п/п указанные переменные уничтожаются;
3) используются п/п TABLEX и MATRB;
4) в п/п MATRB создается массив IR (тип: а^ау [ 1 ..m ] of integer; type: t9).
5. Подпрограмма CRAPOV: «Нахождение крайних опорных гиперплоскостей выпуклого, замкнутого и ограниченного многогранника по его заданным вершинам».
Математическое описание. Пусть Z есть выпуклый, замкнутый и ограниченный многогранник (с конечным числом вершин) из Rn . Тогда, зная Гп (Z) = {Z(')}. — - множество
всех вершин многогранника Z, требуется найти множество всех его крайних опорных гиперплоскостей (m е N) .
Для решения этой задачи применяется следующий обобщенный алгоритм.
Алгоритм 2
Шаг 1. Сформировать систему линейных уравнений
Z1'Z1 + Z21Z2 +■+ Zn'Zn + Zn+1 = pi, ' е 1 m (^ n е N), (7)
где Zj' - j-я координата (j е 1, n) i-й вершины многогранника Z; m - число вершин этого многогранника; p' - неотрицательные числовые параметры; zk - действительные переменные (k е 1, n +1) .
Шаг 2. Преобразовать систему уравнений (7), применив алгоритм Гаусса для исключения неизвестных, к виду
Z =^1 +^2'p2 +■■■+*<r'pr +^r+1,'Zr+1 +■■■+*<n+1,iZn+1, ' е1, Г; (8)
^1 + а2jp2 +.+ аmjpm = 0, j е Г + 1, m, где r е N и является рангом системы (7).
Шаг 3. Преобразовать систему (9), применив вычислительную схему Н.В.Черниковой [9], к
виду
Р] = Рц У1 + Р 2 ] У 2 +---+Р Ч У к , ] е1,т, (10)
где у., 1 е 1, к - произвольные неотрицательные числа (к е N .
Шаг 4. Подставить (10) в (8), тогда получим
г. = ©11У1 + 0 21У 2 +• • •+ © к1 У к + Х г+1,12г+1 +• • •+ Х п+1,12п+1, 1 е 1 г
Отсюда крайние опорные гиперплоскости многогранника Z определяются соотношениями
Г< (0;,~ >= о,
]л~ = о,
где 1 е 1,к; (Э. = (0ц,© 12,_,© 1Г,0,0,...,0)'е Rn+1;
N IS ,... Zn,1)' € Rn+1 , X r+1,1 X r+1,2 (n+1-r) X r+1,r 1 0...0 N
— X r+1,1 X r+1,2 . • — X r+1,r — 1 (n+1—r) 0.0
Л = X r+2,1 X r+2,2 X r+2,r 0 1...0
— X r+ 2,1 — X лг+ 2,2 • — X r+2,r 0 —1.0
X n+1,1 X n+1,2 X n+1,r 0 0. 1
- X ^ n+1,1 — X n+1,2 . — X n+1,r 0 0.— 1 J
Конец алгоритма 2.
Использование:
CRAPOV (A, n, m, mj, mi, C1); .
Входные параметры:
A - массив, содержащий координаты всех вершин заданного многогранника Z (тип: аггау [
1..m х (n + m) ] of real; type: t7);
{Структура массива А: сначала расположены первые координаты m вершин многогранника Z, а затем - вторые и т. д.};
n - размерность фазового пространства + 1 (тип: integer);
m - число всех вершин заданного многогранника Z (тип: integer);
mj - число крайних опорных гиперплоскостей других множеств, находящихся в массиве С1 (тип: integer).
Выходные параметры:
mi - число всех крайних опорных гиперплоскостей многогранника Z (тип: integer);
C1 - массив, содержащий координаты нормальных векторов и свободных членов, определяющих все крайние опорные гиперплоскости многогранника Z (тип: array [1..n х mi] of real; type: t7).
Замечания по использованию:
1) данная п/п работает без условия телесности заданного многогранника Z;
2) в п/п создаются рабочие массивы, использующие динамическую память: B (type: t 10), C (type: t10); размеры массивов В и С рекомендуется задавать максимально возможными; в конце выполнения п/п указанные переменные уничтожаются;
3) в п/п создаются рабочие массивы: IK, IM (тип: агау [1..n] of integer; type: t4);
4) используются п/п TABLEX и MATRB;
5) в п/п MATRB создается массив IR (тип: а^ау [1..m] of integer; type: t9).
6. Подпрограмма CHEBR: «Нахождение чебышевского центра и значения величины чебышевского радиуса выпуклого, замкнутого и ограниченного многогранника».
Математическое описание. Пусть для заданного выпуклого, замкнутого и ограниченного многогранника (с конечным числом вершин) Z из Яп известно дискретное множество
Гп (Z) = {z(i)} ,е— всех его вершин. Требуется найти чебышевский центр и значение величины
чебышевского радиуса [2,5] многогранника Z.
Решение этой задачи осуществляется с помощью следующей обобщенной схемы.
1. На основе множества Гп (Z) = {z(i)}ie1-m всех вершин многогранника Z формируются функционалы
дi: Rn------>R1,
значения которых для z = (z1,z2,.,zn)'е Rn определяются по формулам д i (z) = z — z(i) (i е1, m) ,
n
где || • || - символ евклидовой нормы в Rn .
2. Вводится дополнительная действительная переменная zn+1, и формируется система выпуклых неравенств
Дi (z) < zn+1, т. е. система
Z,n+1 : (Z (zj — z(i))2)^^ — zn+1 < 0 (i е 1 m).
,(i^2'
(zj — 7
j=1
3. Формируется задача математического программирования
zn+1 ----> min ___
при условиях дi (z) — zn+1 < 0 (i е 1, m).
Для решения этой задачи используется итерационный градиентный алгоритм метода Зойтендейка (случай нелинейных ограничений-неравенств) (см., например, [10]). Тогда для части
координат сформированного значения вектора z(^ = (z(e),z(2e),..,zne),z^^/е Z| n+1, где z(ne+)1 -
решение задачи математического программирования), будет выполняться (с заданной точностью) следующее соотношение:
min max д. (z) = max д. (z(e)) = z П‘+)1 = r(n) (Z),
zeZ ie1,m ie1,m
т.е. z(e) = (z(e), z2e),., zne))) е Rn является чебышевским центром множества Z (его минимаксной оценкой), а z^^ = r(n)(Z) е R1 есть значение величины его чебышевского радиуса.
Использование:
CHEBR (n, m, C, X); .
Входные параметры:
n - размерность фазового пространства (тип: integer); m - число всех вершин многогранника Z (тип: integer);
С - массив, содержащий координаты всех вершин многогранника Z (тип: а1тау [1..n х m] of real; type: t7).
Выходные параметры:
Х - в X(i), i е 1, n находятся координаты чебышевского центра многогранника Z, в X(n+1) - значение величины чебышевского радиуса многогранника Z (тип: array [1. . n+1] of real; type: 13). Замечания по использованию:
1) в п/п создаются рабочие массивы: А (тип: ап^ау [1. . (m + 4) х (2 х (n + m + 9)) ] of real; type: t7), NI (тип: array [l . . m] of integer; type: tl4), SI (тип: array [ 1. . m] of real; type: t15), D (тип: array [1. .n+1] of real; type: t3), NB (тип: ап-ау [1. . m+4] of integer; type: t13), ХХ (тип: ап-ау [1. . m+4] of real; type: tl2);
2) используется п/п MODIF.
7. Подпрограмма HSG: «Построение в фазовом пространстве информационного
множества, совместимого с заданным сигналом, и при наличии ошибок измерений».
Математическое описание. Пусть G(t) есть выпуклый, замкнутый и ограниченный многогранник (с конечным числом вершин) возможных фазовых состояний г(1) е Rn (п е наблюдаемого объекта в момент времени t е N. За этим объектом ведется наблюдение, в результате которого измеряется сигнал ш(1) е Rm (т е N т < п) . Этот сигнал формируется в соответствии с векторным уравнением
ш(t) = С(у(0)г(0 + D(t)£(t) (11)
при заданных ограничениях
z(t) е G(t), еН(1), (12)
где фазовый вектор наблюдателя у(1) е Rk (к е N ; ошибка измерения сигнала ^(1) е Rl (1 е N; С(у(1)) и D(t) - действительные матрицы размера (т х п) и (т х 1) соответственно, и матрица С(у(1)) имеет ранг, равный т; 5(1) - выпуклый, замкнутый и ограниченный многогранник (с конечным числом вершин) из Я.1 допустимых ошибок измерений. Множества С(1) и 5(1) заданы соответственно множествами Гп(С(1)) и Г! (Е(1)) всех своих вершин каждое.
Требуется найти множество Гп^(1)) с Яп всех вершин множества Ж(1) ^ Яп , которое есть множество всех возможных фазовых состояний наблюдаемого объекта в момент времени 1, совместимых с сигналом ш(1) и имеющейся информацией об элементах системы (11), (12), т.е. Z(t) - информационное множество [1, 2] для данной системы. Отметим, что искомое информационное множество Z(t) представляет собой выпуклый, замкнутый и ограниченный многогранник (с конечным числом вершин) из Яп .
Решение сформулированной задачи может быть найдено с помощью следующего обобщенного алгоритма.
Алгоритм 3
Шаг 1. Сформировать следующее дискретное множество:
Н(1) = {х(0 : х(0 е Ят, х( 1) = СР(0[ш(0 - D(t)S(t)],
§(1) еГ1 (Е(1))},
где СР(1) есть матрица размера т х т, являющаяся обратной матрицей к матрице, соответствующей базисному минору матрицы С(у(1)).
Шаг 2. Для сформированного дискретного множества Н(1) найти множество Гт(0Ст(Н(1)) всех вершин множества сотН(1) , которое определяется с помощью п/п КРАВЕР.
Шаг 3. На основе сформированного множества Гт(сот(Н(1)) определить все крайние опорные гиперплоскости множества сотН(1), которые находятся с помощью п/п С1РВЕЯ. Пусть Ь^ - j-я координата нормального вектора i-й крайней опорной гиперплоскости
У е 1, т, 1 е 1, s ; s - число всех гиперплоскостей, s е N), а Ьт+и - свободный член >й
гиперплоскости. Если т = п, то перейти на шаг 6; иначе, на шаг 4.
Шаг 4. Построить следующие т векторов:
g1 = (1, 0,..., 0,Р1,т+1 ,...,Pln)', g 2 = (0, 1,..., 0,Р 2,т+1 ,...,Р 2п )^
..............................., (13)
gm = ф,0,. • • ,1, рт,т+1 , .",ртп ) .
Здесь для любого 1 е 1, т координаты вектора gi являются i-й строкой матрицы, которая есть произведение матриц СР(1) и С(у(1)). В (13) приведен случай, когда базисный минор матрицы С(у(1)) находится в левом верхнем углу. В общем случае расположение элементов этой матрицы произвольно.
Шаг 5. В пространстве Яп (случай т < п) определить крайние опорные гиперплоскости множества соп (Н(1)), которые находятся следующим образом:
т
hji = b1ig1 + ... + bmigm , hn+1,i = Ь m+1,i
(j е 1, n, i е 1, s; s е N),
где hji - j-я координата нормального вектора i-й крайней опорной гиперплоскости, a hn+1i - ее свободный член.
Шаг 6. На основе множества Гп (G(t)) сформировать с помощью п/п GIPBER множество всех крайних опорных гиперплоскостей множества G(t).
Шаг 7. С помощью п/п CRAPOV найти множество всех вершин пересечения множеств COn (H(t)) и G(t), которое и будет искомым множеством Tn(Z(t)) - множеством всех вершин информационного множества Z(t) = con (H(t)) П G(t) для системы (11), (12).
Конец алгоритма 3.
Использование:
HSG (n, m, l, ng, lk, G, S, KS, w, D, np, GG);
Входные параметры:
n - размерность фазового пространства (тип: integer); m - размерность сигнала ra(t) (тип: integer); l - размерность ошибки измерения сигнала ^(t) (тип: integer); ng - число всех вершин многогранника G(t) (тип: integer); lk - число всех вершин многогранника S(t) (тип: integer);
G - массив, содержащий координаты всех вершин многогранника G(t) (тип: array [
1.. n х ng ] of real; type: t7);
S - матрица C(y(t)) (тип: array [1.. m х n ] of real; type: t1);
KS - массив, содержащий координаты всех вершин многогранника S(t) (тип: а1тау [
1.. l х lk ] of real; type: t6);
w - массив, содержащий координаты сигнала ffl(t) (тип: а1тау [1. .m] of real; type: t3);
D - матрица D(t) (тип: атау [1.. m х 1] of real; type: t2).
Выходные параметры:
np - число всех вершин многогранника Z(t) (тип: integer);
GG - массив, содержащий координаты всех вершин многогранника Z(t) (тип: а1тау [1..(n+1) х np] of real; type: t7).
Замечания по использованию:
1) если ранг матрицы C(y(t)) меньше m, то выдается соответствующее сообщение, и выполнение основной программы прерывается;
2) в п/п создаются рабочие массивы, использующие динамическую память: B(type: t10), C(type: t10); размеры массивов В и С рекомендуется задавать максимально возможными; в конце выполнения п/п указанные переменные уничтожаются;
3) используются п/п MTRAB, CRAPOV, OBREACH и GIPBER.
3. О головной программе FILTR
Моделирование решения задачи апостериорного минимаксного оценивания для дискретной динамической системы из [3] осуществляется в соответствии с алгоритмом, предложенным в работе [4], и реализуется с помощью головной программы FILTR, написанной на языке программирования Turbo-Pascal для персонального компьютера IBM PC/AT. Эта программа оформлена в виде модуля BTULSHOR.TPU и использует библиотеку стандартных подпрограмм, описанную в разд. 2.
ЛИТЕРАТУРА
1. Красовский Н.Н. Теория управления движением. М.: Наука, 1968.
2. Куржанский А.Б. Управление и наблюдение в условиях неопределенности. М.: Наука,
1977.
3. Шориков А.Ф. Алгоритм решения задачи апостериорного минимаксного оценивания состояний дискретных динамических систем. I // Автоматика и телемеханика. 1996. № 7.
4. Шориков А.Ф. Алгоритм решения задачи апостериорного минимаксного оценивания состояний дискретных динамических систем. II // Автоматика и телемеханика. 1996. № 9.
5. Шориков А.Ф. Минимаксные фильтры для нелинейных дискретных систем // Кибернетика. 1990. № 4.
6. Лотов А.В. Численный метод построения множеств достижимости для линейных управляемых систем с фазовыми ограничениями // Журн. вычисл. математики и мат. физики. 1975. Т.15. № 1.
7. Лотов А.В. Введение в экономико-математическое моделирование. М.: Наука, 1984.
8. Черников С.Н. Линейные неравенства. М.: Наука, 1968.
9. Черникова Н.В. Алгоритм для нахождения общей формулы неотрицательных решений системы линейных уравнений // Журн. вычисл. математики и мат. физики. 1964. Т.4. № 4.
10. Базара М., Шетти К. Нелинейное программирование. Теория и алгоритмы. М.: Мир,
1982.
11. Юдин Д.Б., Гольштейн Е.Г. Линейное программирование. М.: Наука, 1969.