Описание библиотеки компьютерных подпрограмм для моделирования решения задачи апостериорного минимаксного оценивания

Андрей Федорович Шориков

Доктор физико-математических наук, профессор, зав . кафедрой информационных систем в экономике Уральского государственного экономического

университета------------------------------

Владимир Александрович Тюлюкин

Кандидат физико-математических наук,

доцент кафедры информационных систем в экономике Уральского государственного

экономического университета

ОПИСАНИЕ БИБЛИОТЕКИ КОМПЬЮТЕРНЫХ ПОДПРОГРАММ ДЛЯ МОДЕЛИРОВАНИЯ РЕШЕНИЯ ЗАДАЧИ АПОСТЕРИОРНОГО МИНИМАКСНОГО ОЦЕНИВАНИЯ

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

Авторами представлено описание библиотеки подпрограмм на языке 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

при заданных ограничениях

x

где момент времени 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

определить все его крайние вершины, которые находятся с помощью подпрограммы (п/п) КРАВЕР. Эти крайние вершины и будут множеством всех вершин области достижимости

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. Требуется решить задачу линейного программирования

при условиях 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;

Г11и1 + . + Г1,т+1ит+1 = 0, 1 е п + 2, т + 1,

где 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

где 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, Г;

^1 + а2jp2 +.+ аmjpm = 0, j е Г + 1, m, где r е N и является рангом системы (7).

Шаг 3. Преобразовать систему (9), применив вычислительную схему Н.В.Черниковой [9], к

виду

Р] = Рц У1 + Р 2 ] У 2 +---+Р Ч У к , ] е1,т,

где у., 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 т < п) . Этот сигнал формируется в соответствии с векторным уравнением

ш

при заданных ограничениях

z

где фазовый вектор наблюдателя у(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п )^

...............................,

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.