Задачей линейного программирования (ЛП) называется задача минимизации или максимизации линейной функции при линейных ограничениях. Так, задача (1.21) является задачей ЛП, если f, gi, ..., gm – линейные функции, а Р – полиэдр, т.е. множество, само задаваемое линейными условиями (см. (1.17)).
Задачей квадратичного программирования называется задача минимизации при линейных ограничениях квадратичной функции вида
f(x)= áCx, xñ + ád, xñ,
где С – симметрическая неотрицательно определенная матрица размера п´п, d – вектор из Rn. Стало быть, задача квадратичного программирования – это частный случай задачи выпуклого программирования, а задача ЛП – частный случай их обеих (С = 0). Эти два подкласса задач выпуклого программирования в настоящее время наиболее хорошо изучены.
В литературе принят ряд специальных форм записи задачи ЛП, каждая из которых удобнее других в том или ином круге вопросов. Задача ЛП в форме
,
, i =1, …, k,
, i = k+1, …, m,
xj ³ 0, j = 1, …, s.
называется общей, в форме
, , i = 1, …, m, (1.23)
– основной, в форме
, , i = 1, …, m, xj ³ 0, j = 1, …, n. (1.24)
– стандартной, в форме
, , i = 1, …, m, xj ³ 0, j = 1, …, n. (1.25)
– канонической. Здесь сj, аij, bi – заданные числа.
Часто прибегают к векторно-матричной записи тех же задач. Например, задачу (1.23) можно записать в виде
ác, xñ® min, áai, xñ³ bi, i = 1, …, m, (1.26)
или в виде
ác, xñ® min, Ax ³ b,
где c = (ci, ..., сn) Î Rn,b = (bi, ..., bm) Î Rm, A–матрица размера т´п со строками a1, ..., am и элементами аij.
В дальнейшем будем называть конечные множества и счетные множества без предельных точек дискретными. Задача (1.1) (или (1.4)) называется задачей дискретной оптимизации, если либо само допустимое множество Х Ì Rn дискретно, либо лишь некоторые из координат вектора х = (x1, ..., xп) пробегают дискретные множества на числовой оси, когда х пробегает X.
Часто допустимое множество задачи дискретной оптимизации имеет вид
,
где D = D1 ´ ... ´ Dn, причем Dj Ì {0, ±1, ±2, ...} для j Î J и Dj = R для j Ï J. Здесь J – некоторое подмножество множества {1, ..., п}. В качестве Dj (j Î J) могут выступать, например, Dj={0, ±1, ±2,...}, Dj = {0, 1, 2,...}, Dj = {0, 1}. Это соответственно означает, что координата xj вектора х может принимать лишь целые, натуральные, булевые значения.
Задачу (1.1) (или 1.4)) с указанным множеством Х называют задачей дискретного программирования, а при J = {1,..., п} – также задачей целочисленного программирования.
Как мы видим, по своей постановке задача дискретного программирования отличается от общей задачи математического программирования специальным заданием прямого ограничения. Здесь также используется запись типа (1.21), т. е.
f(x) ® min,
gi(x) £ 0, i = 1, …, k, (1.30)
gi(x)= 0, i = k+1, …, т, x Î D.
Если функции f, g1, ..., gm линейны, то задачу (1.30) при J = {1, ..., п} называют целочисленной задачей линейного программирования (ЛП), а при J ¹ {1, ..., п} – частично целочисленной задачей ЛП. Если Dj = {0, 1}, то иногда говорят о {частично} булевой задаче ЛП.
Постановка задачи оптимального управления значительно сложнее, чем постановка ранее рассмотренных задач. Поэтому начнем с содержательного примера.
Рассмотрим задачу запуска ракеты в космос. Пусть плоскость орбиты фиксирована, тогда положение ракеты как материальной точки задается двумя координатами x1, x2, ее скорость – координатами x3, x4, масса – координатой x5. Обозначим через u1 величину тяги двигателя, а через u2 – угол между направлением тяги и осью x1. Тогда, в соответствии с законами механики, движение ракеты описывается следующей системой дифференциальных уравнений
, ,
(1.31)
, , ,
где p1, p2 – суммарные проекции внешних сил, действующих на ракету, таких как сила тяжести, сопротивление воздуха и т. д., q(u1) – секундный расход массы, т. е. скорость расхода рабочего вещества. Ракета управляется с помощью выбора параметров управления u = (u1, u2), которые подчинены ограничениям вида
, . (1.32)
Вектор управлений задается как функция времени u = u(t), удовлетворяющая ограничениям (1.32). Если теперь подставить и(t)в правую часть системы (1.31), то при выполнении некоторых условий эта система будет иметь единственное решение х(t), определяющее состояние системы (т.е. движение ракеты) в момент t, как только заданы начальные условия х(t0) = х0. Наряду с начальными могут быть заданы и конечные условия при t = Т. Например, если ракету необходимо вывести на круговую орбиту радиуса R с круговой скоростью V, то конечные условия примут вид:
(x1(T))2 + (x2(T))2 = R2,
x1(T) x3(T) + x2(T) x4(T) = R2 , (1.33)
(x3(T))2 + (x4(T))2 = V2.
Кроме того, существуют ограничения и на фазовые координаты х(t) – фазовые ограничения. Скажем, траектория ракеты не должна пересекать поверхность Земли, не должна заходить в зону радиационных поясов и т. д.
Цель выбора управления u(t), удовлетворяющего условию (1.32), в задаче оптимального управления ракетой (1.31) может состоять, например, в минимизации расхода топлива
. (1.34)
При этом траектория должна удовлетворять начальным и конечным условиям, а также фазовым ограничениям Можно ставить и задачу оптимального быстродействия, т. е. минимизации Т – t0. Если же требуется вывести ракету на круговую орбиту максимального радиуса, то следует максимизировать функционал
(x1(T))2 + (x2(T))2 . (1.35)
Перейдем теперь к общей постановке задачи оптимального управления Аналогом системы (1.31) служит здесь система дифференциальных уравнений
, (1.36)
описывающая движение некоторого управляемого объекта, подчиненное начальным условиям
x(t0)Î S0(t0), (1.37)
конечным условиям
x(T)Î S(T), (1.38)
и фазовым ограничениям
x(t)Î X(t), t Î [t0, T]. (1.39)
Ограничения на управление можно записать в общем виде как
u(t)Î U(t), t Î [t0, T]. (1.40)
Здесь [t0, T] – отрезок времени, на котором происходит управление системой (1.36), S0(t0), S(T), X(t), U(t), при каждом t – заданные множества из пространств соответствующих размерностей.
В качестве целевого функционала (аналога функции цели в задаче оптимизации (1.1)) примем
. (1.41)
Очевидно, в (1.41) объединены целевые функционалы типа (1.34) и (1.35).
В соответствии с тем, что мы говорили выше, задачу оптимального управления поставим как задачу минимизации функционала (1.41) при ограничениях (1.36), (1.37), (1.38), (1.39), (1.40).