Лекция: L - постановка

Предполагается, что переменные, которые входят в модель нелинейно, ограничены снизу и сверху:

dj £ xj £ Dj. (8.19)

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

Xj1=dj, =Dj,

где rj – число интервалов по переменной xj (rj+1 – число узлов). Тогда рассматриваемая переменная xj может быть выражена через новые переменные ljk в виде

, (8.20)

, (8.21)

. (8.22)

Выражение (8.20) называют уравнением сетки. С учетом (8.21) и (8.22) оно представляет переменную xj в диапазоне (8.19) без потери точности. С использованием узловых точек и новых переменных кусочно-линейная функция, аппроксимирующая fj(xj), записывается в виде

(8.23)

где fj(Xjk) – значение функции в узловых точках (рис. 8.5). Очевидно, что – функция, линей­ная относительно ljk. Пусть N – множество индексов нелинейных fj(xj). Тогда функция, аппрокси­мирующая f(X), имеет вид

(8.24)

Итак, чтобы построить линейную аппроксимирующую модель, необходимо:

1. для каждой переменной, входящей нелинейно, записать уравнение сетки;

2. во всей модели заменить переменные из п.1, входящие в линейные fj, соответствующими уравнениями сетки;

3. все функции, содержащие нелинейности, представить в виде (8.24);

4. добавить ограничения (8.21), (8.22) для всех новых переменных.

Если переменная xj входит нелинейно в несколько функций, узлы сетки выбираются с учетом нелинейности всех таких функций, так как для одной переменной может быть только одно уравнение сетки.

Поясним запись ограничений. Пусть имеется исходное ограничение

Sjij (xj) £ bi

со всеми нелинейными jij. Тогда после аппроксимации оно принимает вид

В общем случае левая часть ограничения записывается аналогично (8.24).

Хотя аппроксимирующая задача линейная, получаемое на ней решение не всегда является приближением к решению исходной задачи. Дело в том, что одно и то же значение xj можно получить по уравнению сетки при разных ljk, то есть представить через разные пары узлов. Например, некоторое значение xj можно выразить через смежные узлы, в интервале которых находится значение, а можно через любую другую пару узлов, лежащих слева и справа, в том числе через первый и последний узел. Во всех случаях, кроме первого аппроксимация функции будет грубой и тем грубее, чем дальше отстоят узлы от данного значения xj.

Отсюда следует правило смежных весов: из одного уравнения сетки отличными от нуля могут быть не более 2-х переменных ljk со смежными значениями k.

Если аппроксимирующая задача является задачей выпуклого программирования, то это правило выполняется автоматически и решение находится методом ЛП без каких-либо дополнений. Оптимальное решение аппроксимирующей задачи будет приближением глобального решения исходной задачи.

В противном случае алгоритм ЛП должен включать правило ограниченного ввода:

если в базисном решении находится ljk, то допустимыми для ввода могут быть только ljk+1 или ljk-1.

При этом нельзя утверждать, что получаемое решение является приближением к глобальному оптимуму исходной задачи. Скорее оно будет приближением локального оптимума.

Свойства задачи зависят от всех функций модели:

1. Если все ограничения линейные, то для выпуклости задачи достаточно, чтобы были вогнутыми все fj критерия (выпуклы при минимизации

2. При нелинейности критерия и ограничений для выпуклости задачи должны быть вогнуты всеfj и выпуклы все jij.

3. Если хотя бы одна fj не вогнута при максимизации и/или одна jij не выпукла, задача не является выпуклой.

Заметим, что, если все функции кусочно-линейные, переход к новым переменным не связан с потерей точности и при выполнении условий задач выпуклого программирования получаемое решение является точным и глобальным.

Пример 8.3. Задача

f = 6x1 – x12+ 7x2 à max,

2x12 – 5x1 + 3x22 £ 8,

1 £ x1 < 4, x2 ³ 0

является задачей сепарабельного программирования. Здесь

f1(x1) = 6x1 – x12; f2(x2) = 7x2;

j11(x1) = 2x12 – 5x1; j12(x2)=3x22.

Так как f1(x1) и f2(x2) – вогнутые, а j11(x1) и j12(x2) – выпуклые, имеем задачу выпуклого программирования. Обе переменные входят нелинейно, поэтому нужно строить две сетки. Оценим верхний предел x2: находим minj11=-3.125, затем из ограничения получаем максимально возможное значение x2=1.93. Берем D2=2. Пусть узловыми будут значения по x1: 1, 2, 3, 4; по x2: 0, 1, 2. Записываем уравнения сеток: x1= l11 +2l12+3l13+4l14, x2=l22+2l23. В итоге получаем модель аппроксимирующей задачи в виде

5l11+8l12+9l13+8l14+7l22+14l23 à max,

-3l11-2l12+3l13+12l14 +3l22+12l23£ 8,

l11 +2l12+3l13+4l14³ 1,

l11 +2l12+3l13+4l14£ 4,

l11 +l12+l13+l14=1,

l21 +l22+l23=1,

"ljk³ 0.

Эта задача решается любым универсальным методом ЛП без добавления правила ограниченного ввода.

еще рефераты
Еще работы по информатике