Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Предполагается, что переменные, которые входят в модель нелинейно, ограничены снизу и сверху:
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 входит нелинейно в несколько функций, узлы сетки выбираются с учетом нелинейности всех таких функций, так как для одной переменной может быть только одно уравнение сетки.
Поясним запись ограничений. Пусть имеется исходное ограничение
S jij (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 = 6 x 1 – x 12+ 7 x 2 à max,
2 x 12 – 5 x 1 + 3 x 22 £ 8,
1 £ x 1 < 4, x 2 ³ 0
является задачей сепарабельного программирования. Здесь
f 1(x 1) = 6 x 1 – x 12; f 2(x 2) = 7 x 2;
j 11(x 1) = 2 x 12 – 5 x 1; j 12(x 2)=3 x 22.
Так как f 1(x 1) и f 2(x 2) – вогнутые, а j 11(x 1) и j 12(x 2) – выпуклые, имеем задачу выпуклого программирования. Обе переменные входят нелинейно, поэтому нужно строить две сетки. Оценим верхний предел x 2: находим min j 11=-3.125, затем из ограничения получаем максимально возможное значение x 2=1.93. Берем D 2=2. Пусть узловыми будут значения по x 1: 1, 2, 3, 4; по x 2: 0, 1, 2. Записываем уравнения сеток: x 1= l 11 +2 l 12+3 l 13+4 l 14, x 2= l 22+2 l 23. В итоге получаем модель аппроксимирующей задачи в виде
5 l 11+8 l 12+9 l 13+8 l 14+7 l 22+14 l 23 à max,
-3 l 11-2 l 12+3 l 13+12 l 14 +3 l 22+12 l 23£ 8,
l 11 +2 l 12+3 l 13+4 l 14³ 1,
l 11 +2 l 12+3 l 13+4 l 14£ 4,
l 11 + l 12+ l 13+ l 14=1,
l 21 + l 22+ l 23=1,
" ljk ³ 0.
Эта задача решается любым универсальным методом ЛП без добавления правила ограниченного ввода.
Дата публикования: 2015-01-23; Прочитано: 438 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!