
8.3. Задачи выпуклого программирования
Пусть дана система неравенств вида
φi (x1, x2, …, xn) ≤ bi, (i=1, 2, …, m) (8.7)
и функция F = f (x1, x2, …, xn) (8.8)
причем все функции φi(Х) являются выпуклыми на некотором выпуклом множестве М, а функция F либо выпукла на множестве М, либо вогнута. Задача выпуклого программирования (ВП) состоит в отыскании такого решения системы ограничений (8.7), при котором либо выпуклая целевая функция F достигает минимального значения, либо вогнутая функция F достигает максимального значения.
В общем случае задачи ВП являются задачами нелинейного программирования. Выделение задач ВП в специальный класс объясняется экстремальными свойствами выпуклых функций: всякий локальный минимум выпуклой функции (локальный максимум вогнутой функции) является одновременно и глобальным; выпуклая (вогнутая) функция, заданная на замкнутом ограниченном множестве, достигает на этом множестве глобального максимума и глобального минимума. Отсюда вытекает, что если целевая функция F является строго выпуклой (строго вогнутой), то задача ВП всегда имеет единственное решение. В этом случае минимум выпуклой (максимум вогнутой) функции достигается внутри области решений, если там имеется стационарная точка, или на границе этой области, если внутри нее нет стационарной точки.
Пример 8.4. . . . . . . . . .
8.4. Приближенное решение задач выпуклого программирования
методом кусочно-линейной аппроксимации
Функция F(X) называется сепарабельной, если ее можно представить в виде суммы функций, каждая из которых зависит только от одной переменной, т.е. если
F(X)
= F1(x1)
+ F2
(x2)
+ … + Fn
(xn)
или
(8.9)
(
не
исключено, что Fj(xj)
= 0 при
некоторых j).
Пусть в задаче ВП
(8.7), (8.8) и функция цели Z,
и все ограничения φi
являются
сепарабельными. Тогда задача имеет вид:
найти минимум (максимум) функции
при ограничениях
(8.10)
Идея метода кусочно-линейной аппроксимации состоит в том, что все fi и все φij заменяются ломаными линиями, состоящими из прямолинейных отрезков. При этом исходная задача ВП заменяется новой, приближенной задачей, которая является задачей линейного программирования.
Эта задача решается обычным симплексным методом, и ее решение является приближенным решением исходной задачи ВП.
Рассмотрим
кусочно-линейную аппроксимацию функции
h(x)
одной переменной,
заданной на отрезке [0, a].
Разобьем этот отрезок на r
частей точками x0
< x1
< … <
xr
так, чтобы x0=0,
xr=a
(рис. 8.2). Вычислим значения функции hk(x)
(k=0,
…, r)
в этих точках. Соединим попарно точки
(xk,
hk)
и (xk+1,
hk+1)
отрезками прямых. Состоящая из этих
отрезков ломаная
аппроксимирует функцию h(x)
на отрезке
[0, a].
Уравнение участка
ломаной
между точками (xk,
hk)
и (xk+1,
hk+1)
имеет вид
(уравнение прямой по двум точкам). Если
каждое из отношений в этом равенстве
обозначить через λ, то получим:
x=
λxk+1
+ (1-
λ)xk,
= λhk+1 + (1-λ)hk причем 0 ≤ λ ≤ 1 (8.11)
Отметим, что для каждого x [xk, xk+1] существует единственное значение λ, удовлетворяющее условия (8.11). Обозначив 1- λ = λk, λ= λk+1, можно переписать (8.10) в виде:
x = λk xk + λ k+1 xk+1,
= λk hk + λ k+1 hk+1 (8.12)
где λk + λ k+1=1, λk ≥0, λ k+1≥0.
Таким образом, для
любого x
[0,
a]
уравнение ломаной можно записать в
виде:
и λk
≥ 0,
(k=0,
…,r)
(8.13)
причем всегда отличны от нуля только два значения λk (если х является внутренней точкой k-го отрезка разбиения) или одно (если х совпадает с концом отрезка).
Возвращаясь к задаче ВП с сепарабельными функциями, отметим, что, прежде всего (в зависимости от системы ограничений) нужно определить интервал изменения каждой переменной xj. Затем каждый этот интервал разбивается на части точками xjk и с использованием формул (8.13) строится кусочно-линейная аппроксимация для функций fi и φij. После этого можно для исходной задачи (8.10) записать приближенную задачу:
найти максимум
функции
при ограничениях
(8.14)
xj ≥ 0, j=1, 2, …, n
Поскольку приближенная задача (8.14) является задачей линейного программирования и мы обычно решаем ее симплексным методом (условия неотрицательности переменных записываем отдельно от остальных ограничений).
Пример 8.5. . . . . . .
В общем случае получаемое решение является лишь некоторым приближением оптимального решения исходной задачи. Улучшить точность приближения можно, разбивая на более мелкие части уже не исходные диапазоны изменения переменных, а другие, меньшие, взятые в окрестности полученного первого приближения. Недостатком метода является большое увеличение размерности задачи (т.е. числа переменных) при переходе к приближенной линейной модели.