Приближенное решение задач выпуклого программирования

Приближенное решение задач выпуклого программирования методом кусочно-линейной аппроксимации

причем все функции j i (Х) является выпуклыми на некотором выпуклом множестве М, а функция Z либо выпукла на множестве М, либо вогнута. Задача выпуклого программирования (ВП) состоит в отыскании такого решения системы ограничений (11.6), при котором целевая функция Z достигает минимального значения, или вогнутая функция Z достигает максимального значения. (Условия неотрицательности переменных можно считать включенными в систему (11.6)).

Ввиду свойства 3 (разд. 11.1) всякая задача линейного программирования является частным случаем задачи ВП. В общем случае задачи ВП являются задачами нелинейного программирования. Выделение задач ВП в специальный класс объясняется экстремальными свойствами выпуклых функций: всякий локальный минимум выпуклой функции (локальный максимум вогнутой функции) является одновременно и глобальным; кроме того, ввиду свойства 2 выпуклая (вогнутая) функция, заданная на замкнутом ограниченном множестве, достигает на этом множестве глобального максимума и глобального минимума. Отсюда вытекает, что если целевая функция Z является строго выпуклой (строго вогнутой) и если область решений системы ограничений не пуста и ограничена, то задача ВП всегда имеет единственное решение. В этом случае минимум выпуклой (максимум вогнутой) функции достигается внутри области решений, если там имеется стационарная точка, или на границе этой области, если внутри нее нет стационарной точки. (В общем случае можно утверждать лишь, что множество оптимальных решений любой задачи ВП является выпуклым множеством).

Ñ 11. 4. Геометрически решить следующую задачу ВП: найти минимум функции Z = 2 + (x 1 — 1) 2 + (x 2 -1) 2 при ограничениях:

Решение. Строим область допустимых решений данной задачи:

а) — окружность с центром в начале координат и радиусом R =2. (рис. 11.3). Область решений неравенства состоит из точек, лежащих внутри этой окружности и на ней самой;

Читайте также:  Система программирования примеры системы программирования

б) x 1 = 2 x 2 — прямая, которую можно построить, например, по точкам (0; 0) и (2; 1). Область решений неравенства x 1 £ 2 x 2 — полуплоскость, лежащая над этой прямой, включая и саму прямую;

в) x 2 = 2 x 1 — прямая, которая строится, например, по точкам (0; 0) и (1; 2). Область решений неравенства x 2 £ 2 x 1 полуплоскость, лежащая под этой прямой, включая и саму прямую. Таким образом, с учетом условий неотрицательности переменных, областью допустимых решений данной задачи является замкнутый сектор ОАВ (рис. 11.3).

Теперь построим линию уровня функции Z и определим направление убывания Z. Все линии уровня имеют уравнение Z = С, т.е. (x 1 ‑ 1) 2 + (x 2 ‑ 1) 2 = С — 2. При C = 3 получаем линию уровня (x 1 ‑ 1) 2 + (x 2 ‑ 1) 2 = 1 — это окружность с центром в точке 0 1(1; 1) и радиусом R = 1. Ясно, что в любой точке этой линии уровня при перемещении от центра окружности 0 1 функция Z возрастает, а при перемещении к центру — убывает. Таким образом, минимум Z достигается в точке (1; 1), Z min = 2 (нетрудно убедиться, что точка (1; 1) является стационарной точкой функции Z). Ñ

Функция F (X) = F (x 1, x 2, …, xn) называется сепарабельной, если ее можно представить в виде суммы функций, каждая из которых зависит только от одной переменной, т.е. если

F (X) =F 1(x 1) + F (x 2) ++ Fn (xn), или (11. 8)

(не исключено, что Fi (хi) = 0 при некоторых i).

Пусть в задаче ВП (11.6), (11.7) и функция цели Z, и все ограничения j i являются сепарабельными. Тогда задача имеет вид: найти минимум выпуклой (максимум — вогнутой) функции при ограничениях

. (11. 9)

Идея метода кусочно-линейной аппроксимации состоит в том, что все fi и все j ij заменяются ломаными линиями, состоящими из прямолинейных отрезков. При этом исходная задача ВП заменяется новой, приближенной задачей, которая является задачей линейного программирования. Эта задача решается обычно симплексным методом, и ее решение является приближенным решением исходной задачи ВП.

Для построения приближенной задачи рассмотрим кусочно-линейную аппроксимацию функции одной переменной h (x), за данной на отрезке [0, a ]. Разобьем этот отрезок на r частей точками x 0 < x1 < … < xr так, чтобы x 0 = 0, xr = a (рис. 11.4). Вычислим значения функции hk (x)(k = 0, …, r) в этих точках. Соединим попарно точки (xk; hk) и (xk +1; hk +1) отрезками прямых. Состоящая из этих отрезков ломаная аппроксимирует функцию h (x) на отрезке [0, a ]. (Не рассматривая здесь оценку точности приближения, отметим только, что точность можно увеличить за счет более мелкого разбиения отрезка).

Уравнение участка ломаной между точками (xk; hk) и (xk +1; hk +1) имеет вид (уравнение прямой по двум точкам). Если каждое из отношений в этом равенстве обозначить через l, то получим:

. (11. 10)

Отметим, что для каждого x Î [ xk; xk +1] существует единственное значение l, удовлетворяющее условиям (11.10) (см. уравнение отрезка (11.2)). Обозначив 1 — l = l k, l = l k, можно переписать (11.10) в виде:

. (11. 11)

(Уравнения (11.11) называются параметрическими уравнениями отрезка. Если h (x)= 0, то второе из этих уравнений обращается в тождество 0 = 0, а первое принимает вид (11.2) — уравнение отрезка, лежащего на оси абсцисс.)

Таким образом, для любого x Î [0, a ] уравнение ломаной можно записать в виде:

. (11. 12)

причем всегда отличны от нуля только два значения l k (если x является внутренней точкой k -го отрезка разбиения) или одно (если x совпадает с концом отрезка).

Возвращаясь к задаче ВП с сепарабельными функциями, отметим, что прежде всего (в зависимости от системы ограничений) нужно определить интервал изменения каждой переменной xj. Затем каждый этот интервал разбивается на части точками xjk и с использованием формул (11.12) строится кусочно-линейная аппроксимация для функций fj и j ij. После этого можно для исходной задачи(11. 9) записать приближенную задачу:

найти максимум функции

при ограничениях (11.13)

Поскольку приближенная задача (11.13) является задачей линейного программирования и мы обычно решаем ее симплексным методом, условия неотрицательности переменных записываются отдельно от остальных ограничений. Отличие полученной задачи (11.13) от обычной задачи линейного программирования состоит в том, что для каждого xj имеется не более двух соседних ненулевых l jk и, значит, нельзя брать в качестве основных переменных два l jk с одинаковым j и несоседними k. Заметим также, что для условий неотрицательности переменных слагаемых fj (xj) и jij(xj) (если таковые окажутся) кусочно-линейную аппроксимацию проводить, конечно, не нужно.

Ñ 11. 5. Найти минимум функции Z = 2(x 1 — 1) 2 + (x 2 — 2) 2 при ограничениях:

Решить данную задачу методом кусочно-линейной аппроксимации.

Решение. Прежде всего рекомендуем самостоятельно убедиться в том, что данная задача является задачей ВП (используйте критерий Сильвестра, см. задачу (11.2) Далее, при условии неотрицательности переменных неравенство показывает, что x 1 может изменяться лишь от 0 до 2, а x 2 — от 0 до 4 (см. рис. 11.5).

Отрезок [0; 2] разобьем точками x 10 = 0, x 11 = 1, x 12 = 2, а отрезок [0; 4] — точками x 20 = 0, x 21 = 1, x 22 = 2, x 23 = 3, x 24 = 4. Сравнивая условие данной задачи с (11.9), видим, что

Удобно сначала вычислить необходимые значения этих функций (так как имеем лишь одно ограничение, т.е. m = 1, будем писать j1 и j2 вместо j11 и j12).

,

,

,

,

,

.

Таким образом, приближенная задача (11.13) для данной задачи ВП имеет вид: найти минимум функции

Это задача линейного программирования с 8 переменными l ij. Для решения ее симплексным методом первое ограничение-неравенство нужно преобразовать в уравнение путем введения дополнительной неотрицательной переменной, которую обо значим u:

Тогда система ограничений станет системой трех уравнений с 9 переменными, т.е. 3 переменные нужно взять за основные (берем и, l10 и l20, так как они входят только в одно уравнение каждая), а остальные 6 являются свободными. Как обычно, на каждом шаге решения основные переменные и функция цели выражаются через свободные.

Так как в выражении Z имеются свободные переменные с отрицательными коэффициентами, то I базисное решение неоптимальное (хотя и допустимое), и согласно алгоритму симплексного метода l22 следует перевести в основные переменные. Находим min = 1, выделяем третье уравнение и переменную l20 переводим в свободные переменные.

II шаг. Основные переменные l22, l10, u.

III шаг. Основные переменные l11, l22, u.

Критерий оптимальности симплексного метода выполнен, значит на III шаге получено оптимальное базисное решение:

Переходя к исходным переменным x 1, x 2, получаем:

Таким образом, оптимальное решение приближенной задачи (1; 2) и Z min = 0.Ñ

Можно было бы геометрически решить исходную задачу ВП и убедиться в том, что оптимальное решение приближенной задачи в точности совпадает с оптимальным решением исходной задачи. Это совпадение случайное. В общем случае полученное решение является лишь некоторым приближением оптимального решения исходной задачи. Улучшить точность приближения можно, разбивая на более мелкие части уже не исходные отрезки изменения переменных, а другие, меньшие, взятые в окрестности полученного первого приближения. Недостатком метода является большое увеличение размерности задачи (т.е. числа переменных) при пере ходе к приближенной линейной модели.

Источник

Оцените статью