Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на вопросы по СА и ИО1.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
6.8 Mб
Скачать

38. Сепарабельное и дробно-линейное программирование. Сепарабельное программирование (сп)

В СП рассматриваются задачи, в которых целевая функция и все функции ограничений сепарабельны. Функция многих переменных сепарабельна, если она имеет вид суммы функций отдельных переменных: f(x1, x2, ..., xn) =

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

Возможно 2 варианта записи переменных: - постановка

П редполагается, что переменные, которые входят в модель нелинейно, ограничены снизу и сверху: djxj Dj. Для кусочно-линейной аппроксимации в этом диапазоне выбираются узловые точки, чаще там, где сильнее нелинейность функции. При этом первый узел совпадает с нижней границей, а последний – с верхней: Xj1= dj, = Dj, где rj – число интервалов по переменной xj (rj+1 – число узлов). Переменная xj может быть выражена через новые переменные jk в виде (1), , (2)

Выражение (1) называют уравнением сетки. С учетом (2) оно представляет переменную xj в зад. диапазоне без потери точности. С использованием узловых точек и новых переменных кусочно-линейная функция, аппроксимирующая fj(xj), записывается в виде где fj(Xjk) – значение функции в узловых точках. – функция, линей­ная относительно jk. Пусть N – множество индексов нелинейных fj(xj). Ф-я, аппрокси­мирующая f(X), имеет вид (3)

Алгоритм: 1. для каждой переменной, входящей нелинейно, записать уравнение сетки; 2. во всей модели заменить переменные из п.1, входящие в линейные fj , соответствующими уравнениями сетки; 3. все функции, содержащие нелинейности, представить в виде (3); 4. добавить ограничения (2) для всех новых переменных.

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

-постановка

Построение аппроксимирующей задачи основано так же на кусочно-линейном приближении, но меняется уравнение сетки. По узлам сетки вычисляются расстояния между смежными узлами (длины интервалов) jk = Xjk+1Xjk и уравнение сетки записывается в виде xj = dj + ; 0  yjk  1, где yjk – новые переменные.

Из представления переменной следует: xj = dj, когда  yjk =0; xj находится в первом интервале, когда yj1  (0, 1), остальные yjk=0; xj находится во втором интервале, когда yj1=1, yj2  (0, 1), остальные yjk=0; xj находится в k-ом интервале, когда yj1 = yj2 = ... = yjk-1 = 1, 0  yjk  1, остальные yjk=0.

Таким образом, для правильной аппроксимации должно выполняться установленное соответствие между значениями переменной xj и yjk. Это требование аналогично правилу смежных весов. При ином представлении значения xj будет нарушена кусочно-линейная аппроксимация функции. Для аппроксимации нелинейной составляющей функции критерия вычисляются разности ее значений в смежных узлах jk = fj (Xjk+1) – fj (Xjk), с помощью которых записывается аппроксимирующая функция Функция, аппроксимирующая критерий:

А налогично аппроксимируются ограничения ij(xj): Как и в -постановке, если имеет место задача выпуклого программирования, то требования к переменным yjk выполняются автоматически и полученное решение будет приближенным глобальным решением исходной задачи. В противном случае, необходимо придерживаться правила ограниченного ввода относительно переменных yjk: если первые k переменных равны единице, вводить можно только yjk+1.