Методом кусочно-линейной аппроксимации
Функция 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. . . . . . .
В общем случае получаемое решение является лишь некоторым приближением оптимального решения исходной задачи. Улучшить точность приближения можно, разбивая на более мелкие части уже не исходные диапазоны изменения переменных, а другие, меньшие, взятые в окрестности полученного первого приближения. Недостатком метода является большое увеличение размерности задачи (т.е. числа переменных) при переходе к приближенной линейной модели.