Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
при ограничениях
JC, + х2< 1, 2хх + Зх2 < 4, xt, хг> 0.
Покажите, что г — строго вогнутая функция, и решите задачу, используя алгоритм квадратичного программирования.
2. Дана следующая задача.
Минимизировать z = 2х,2 + 2х\ + Ъх] + 2ххх2 + 2х2х} +х,- Ъх2 - 5х3
при ограничениях
X, + X, + X > 1,
1 2 d
Зхх + 2х2 + ха<6, X) ~ 0»
Покажите, что функция г — строго выпуклая, и найдите решение задачи методом квадратичного программирования.
Глава 21. Алгоритмы нелинейного программирования
21.2.3. Геометрическое программирование
В геометрическом программировании рассматриваются задачи нелинейного программирования специального вида. Подход геометрического программирования позволяет находить решение исходной задачи с помощью соответствующей двойственной задачи.
Методами геометрического программирования решаются нелинейные задачи, в которых как целевая функция, так и функции ограничений имеют следующий вид:
г = /(х) =
где
uj=cjfl*?> У' = Ь2,...,М
(=1
Предполагается, что здесь все с\ > 0, а число N является конечным. Показатели степени а,, по знаку не ограничены. Функция /(X) имеет вид полинома, если не учитывать того, что показатели степени atj могут принимать отрицательные значения. По этой причине, а также в связи с тем, что все коэффициенты с; > 0, функция /(X) называется позиномом.
В этом разделе будут рассмотрены задачи геометрического программирования без ограничений. Исследование задач геометрического программирования с ограничениями выходит за рамки настоящей главы. Детальное рассмотрение излагаемых здесь вопросов содержится в книге [2], глава 6.
Рассмотрим задачу минимизации позиномиальной функции /(X). Будем называть эту задачу прямой. Предполагается, что переменные х, принимают строго положительные значения, т.е. область х, < 0 недопустима. Далее будет показано, что требование х, * 0 является существенным при получении основных результатов.
Первые частные производные функции z в точке минимума должны обращаться в нуль. Следовательно,
ол, ;г1 олк, = 1
Поскольку по предположению все хк > 0, имеем
Г- = 0 = -Хв^, А =1.2,..., я.
Эх x,
■к у-1
Пусть z — минимальное значение функции z. Очевидно, что z > 0, так как z — по-зином, и все хк > 0. Обозначим
Из определения следует, что у1 > 0 и X^-i-vj =' ■ Величина yt характеризует относительный вклад у'-го слагаемого V' в оптимальное значение целевой функции z'. Необходимые условия экстремума теперь можно записать в следующем виде.
I>V,=n. к = \,2.....п.
21.2. Алгоритмы решения задач с ограничениями
Z-Уу = У) > 0 для всех J-
Эти уравнения, именуемые условиями ортогональности и нормировки, определяют единственное решение для у при условии, что все уравнения независимы и п + 1 = N. Задача усложняется при N > п + 1, так как в этом случае решение для I/. не является единственным. Ниже показано, что и в этом случае существует возможность однозначно определить у. для минимизации функции z.
Пусть y'j — элементы единственного решения представленной выше системы
уравнений. Тогда величины г* и х], i = 1, 2,п, определяются следующим образом. Рассмотрим величину
Поскольку z* = -г, то
П Пс')"
В последнем выражении учтено условие X"-iav-vj = ^ • Следовательно, значение г" можно вычислить, как только будут определены все уг При известных у] и z можно определить U] = y'jZ ■ Значения х] находятся как решение системы уравнений
Рассмотренная процедура показывает, что исходная задача минимизации позино-ма z может быть сведена к решению системы линейных уравнений относительно у. При этом значения всех у' определяются из необходимых условий существования
минимума. Можно показать, что эти условия являются также и достаточными. Доказательство этого приводится в книге [2].
Фактически переменные yt определяют двойственные переменные, соответствующие прямой задаче минимизации z. Чтобы установить эту зависимость, запишем целевую функцию прямой задачи в виде
Определим теперь функцию
Глава 21. Алгоритмы нелинейного программирования
Поскольку yj = 1 и yj > О, в силу неравенства Коши[1] имеем w<z.
Функция w с переменными ух, у2, yN определяет задачу, двойственную к исходной. Поскольку w является нижней границей значений z и рассматривается задача минимизации г, то, максимизируя функцию w, мы получим
w = max w = min z = z ■
У) *:
Это значит, что максимальное значение w (= w) на множестве допустимых значений г/, совпадает с минимальным значением z (= z") на множестве допустимых значений xt.
Пример 21.2.4
В этом примере рассматривается задача, где N = п + 1, так что решение, получаемое из условий ортогональности и нормировки, является единственным. (Следующий пример иллюстрирует случай, когда N > п + 1.)
Рассмотрим задачу
минимизировать z = 7х,х;' + Зх,х3~[2] + 5х~3х,х3 + х,х,х3.
Эту функцию можно записать в виде
z = 7х!х,~'х° + Зх?х\х,[3] + 5х73х\х\ + х\х\х\,
так что здесь
(с,, с2, с3, ct) = (7, 3, 5, 1), 'а,, а,, а,3 а14 ^ (1 0-3 Г
а,. а„ а,, а,.
-1111 0-211
ya3l я3, ап ам /
Условия ортогональности и нормировки приводят к системе уравнений
(1 | -3 Г | V | 'о4 | ||
-1 | 1 1 | -v: | |||
-2 | 1 1 | л | |||
ч [4] | 1 К |
Эта система имеет единственное решение
.1.1
Следовательно,
> | ||
v |
= 15,23.
21.2. Алгоритмы решения задач с ограничениями 823 Из уравнения U) = y)z' следует, что
7л,х,' =(/, = ^(15,23) = 7,615,
3.v,jt,2 = {/, =-(15,23) = 2,538,
5л,3хЛ=(/3=^(15.23) = 3,173,
x,x2x, = =—(15.23) = 1,904. 8
Эта система имеет решение =1,316. х\ =1,21,.vj =1,2, которое является оптимальным решением прямой задачи.
Пример 21.2.5
Рассмотрим задачу
минимизировать с = 5.v,.v,' + 2.v, '.v, + 5.v, +.vj1. Условия ортогональности и нормировки приводят к системе уравнений
1-11 (У 1 10-1 \\ 11 1
V,
У}
\У*
о
Поскольку N > п + 1, эти уравнения не позволяют непосредственно определить искомые значения» Выражая уи у2 и у, через у4, имеем
' 1 | -1 п | f-v'l | ' 0 1 | |
-1 | 1 0 | 1 V, 1 ' - | = | у4 |
, 1 | 1 b | У-у,, |
или
v, =-
I - 3 \-
Двойственную задачу можно записать в следующем виде.
Максимизировать iv =
-.0.5(1
0-5(1-vj
Глава 21. Алгоритмы нелинейного программирования
Максимизация w эквивалентна максимизации функции lnw, переход к которой упрощает вычисления. Получим
lnw = 0,5(1 - 3y4){lnl0 - 1п(1 - Зу4)} + 0,5(1 - у4){1п4 - 1п(1 - у4)} + у4{1п5 - lny4 + lnl - 1пу4}.
Значение у4, максимизирующее функцию lnw, должно быть единственным, поскольку прямая задача имеет единственный минимум. Следовательно,
+ln 5-{1+1пу4}+1п 1-{1+1пу4} = 0. После упрощений получаем
^ Г (1-3,у4)?(1-у4)?
у]
(3 ^ | ||
In | 2х102 | + 1п |
\) |
или
>/(1-Зу4)3(1-,у4)
у:
= 12,6,
откуда у* =0,16. Следовательно, yj=0,16, yj=0,42 и у,* = 0,26. Значение г* вычисляется по формуле
Следовательно,
, \0.26/ \0.42 /, ч0.16
= W=,-5-l ^ =9,661.
,0,26, 10,42 J l0,16J
с/3 = 0,16х9,661 = l,546 = 5xi, U4 =0,16x9,661 = 1,546 = х2.
Отсюда имеем х* =0,309 и xj =0,647,
УПРАЖНЕНИЯ 21.2.3
1. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2xj 'xj + х\х~2 + 4x,2 п ри x,, x2 > 0.
2. Решите следующую задачу методом геометрического программирования. Минимизировать z = 5х{х2х] + х, 2х3~' + 10х2 + 2xx'x2xf при xv х2, х3 > 0.
3. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2х}х2 + 8х,"3х2 + Зх,х2 при xlt х2 > 0.
4. Решите следующую задачу методом геометрического программирования. Минимизировать z = 2х]х~2 + 4х,"2х2 + х,х, при х,, х2 > 0.
21.2. Алгоритмы решения задач с ограничениями
21.2.4. Стохастическое программирование
В стохастическом программировании рассматриваются задачи, в которых отдельные или все параметры являются случайными величинами. Такие ситуации типичны в реальных задачах, когда трудно определить точные значения параметров.
Основной подход к решению задач стохастического программирования состоит в преобразовании исходной вероятностной задачи в эквивалентную детерминированную. В данном разделе рассматривается оптимизационная задача с вероятностными ограничениями, которая имеет следующий вид.
Максимизировать z = 'YJcjxj
при ограничениях
^|ХаЛ - ^| - ' ~ai' 1 = 1.2, Xj>0 для всех j.
Название "вероятностные ограничения" обусловлено тем, что каждое ограничение задачи должно выполняться с вероятностью не меньшей, чем 1 - а,, О < at < 1. Предполагается, что все коэффициенты a:j и Ь1 являются случайными величинами. Далее рассматриваются три варианта. Первые два соответствуют предположениям о том, что только или а(у, или 6 являются случайными величинами, а третий объединяет эти два случая. Во всех трех ситуациях предполагается, что параметры являются нормально распределенными случайными величинами с известными математическими ожиданиями и дисперсиями.
Ситуация 1. Предполагается, что все ац являются нормально распределенными случайными величинами с математическими ожиданиями М{а(.} и дисперсиями D{a:j}. Также известны ковариации covfa^a..} случайных величин а; и а...
Рассмотрим i-e ограничение задачи
и введем обозначение
рЩа,Л<Ь,\>1-а!
hi=Yja,jxj.
Случайная величина Л. имеет нормальное распределение с математическим ожиданием M{hl} = ^j".=iM{aij}xj и дисперсией D{h} = XrD,X, где Х = (xv х2,...,хп)т,
I), = /-я матрица ковариации
Теперь имеем 'D{an} ■■■ cov{an,ahlY cov{a,„,aa} ••• D{all)
\h-M(k) h-M(h)\
Глава 21. Алгоритмы нелинейного программирования
h-M(h)
где ' - — стандартная нормально распределенная случайная величина с ну-
левым математическим ожиданием и единичной дисперсией. Это означает, что
P\h <!>,} = Ф
b,-M(h,)
где через Ф обозначена функция распределения стандартного нормального распределения.
Пусть Ка — значение стандартной нормально распределенной случайной величины, определяемое из уравнения
Ф(К„.) =!-«,
В этом случае неравенство P{h. < b) > 1 - at выполняется тогда и только тогда, когда
b,-M{h,)
1т
Это приводит к детерминированному нелинейному ограничению, которое эквивалентно исходному вероятностному
В частности, если ац — независимые нормально распределенные случайные величины, тогда cov{av,a = 0, и последнее неравенство принимает вид
i-i \ г'
Данное ограничение можно записать в виде ограничений задачи сепарабельного программирования (раздел 21.2.1), для чего используется замена переменных
>' = /; К Y, лля всех '•
Таким образом, исходное ограничение эквивалентно неравенству
£м{а,,}.г/ + к„у,<г>,
и уравнению
el
Ситуация 2. Здесь предполагается, что только bt является нормально распределенной случайной величиной с математическим ожиданием М{Ь) и дисперсией D{b). Анализ этой ситуации проводится аналогично предыдущей. Рассмотрим стохастическое ограничение
p\bl>Ydailx\>a,.
21.2. Алгоритмы решения задач с ограничениями
Как и в первом случае, имеем
Yjaiixj-M{bi)
>а..
Это ограничение выполнимо лишь при выполнении неравенства
4т
■<к„.
Итак, исходное вероятностное ограничение эквивалентно детерминированному линейному
у=1
Ситуация 3. Теперь предположим, что все параметры atj и bt являются нормально распределенными случайными величинами. Перепишем ограничение
в виде
Так как все atj и bt распределены по нормальному закону, в соответствии с известными результатами математической статистики величина ^"^fyXj-bf также
имеет нормальное распределение. Отсюда следует, что данный вариант подобен варианту 1 и может быть рассмотрен аналогичным образом.
Пример 21.2.6
Рассмотрим задачу с вероятностными ограничениями
максимизировать г = 5х, + 6х2 + Зх,
при ограничениях
Р{аих, + а12х2 + ацх} < 8} > 0,95,
Р{5х, +х2 + 6хъ<Ь2\ > 0,10,
причем все х;>0. Пусть — независимые нормально распределенные случайные величины со следующими значениями математических ожиданий и дисперсий
M{an} = l,M{al2} = 3,M{aJ = 9,
D{au) = 25, D{aJ = 16, D{aJ = 4.
Пусть параметр Ьг является нормально распределенной случайной величиной с математическим ожиданием 7 и дисперсией 9.
Глава 21. Алгоритмы нелинейного программирования
По таблице функции распределения стандартного нормального закона (приложение В) находим
Кщ=Кот~ 1,645, tfQj =*„.,„ = 1,285. Первое ограничение задачи эквивалентно детерминированному неравенству
х, + Зх, + 9х3 +1,645N/25x12 + 16x;+4x; < 8,
а второе ограничение — неравенству
5х, +хг + 6х3< 7 + 1,285 х 3 = 10,855.
Если положить
у2 = 25 х2 + 16х, + 4х3, исходная задача принимает следующий вид:
максимизировать г = 5х, + 6х2 + Зх3
при ограничениях
х, + Зх2 + 9х3 + 1,645у < 8, 25х,2 + 16х;+4х32-у2 =0, 5х, + х2 + 6х3< 10,855,
*1> х2' х3'У~0'
и может быть решена методами сепарабельного программирования.
На рис. 21.6 показано решение рассматриваемой задачи стохастического программирования в Excel (файл ch21SolverStochasticProgramming.xls). В данном случае нелинейной является только левая часть второго ограничения, которая вводится в ячейку F7 в виде формулы
=25 *В 12Л2+16С12A2+4*D 12Л2-Е 12л2
УПРАЖНЕНИЯ 21.2.4
1. Преобразуйте следующую задачу стохастического программирования в эквивалентную детерминированную модель.
Максимизировать z = хх + 2x2 + 5д:3
при ограничениях
P{a,x, + Зх2 + а3х3 < 10} > 0,9,
Р{7хг + 5х2 + х3<Ь2}>0,1, х1г х2, х3 > 0.
Пусть а, и а3 являются независимыми нормально распределенными случайными величинами с математическими ожиданиями М{а1) = 2 и М[а3} = 5 и дисперсиями D{al) = 9 и D{a3) = 16. Предполагается также, что Ь2 — нормально распределенная случайная величина с математическим ожиданием 15 и дисперсией 25.
21.2. Алгоритмы решения задач с ограничениями
F7 | =25*B 12Л2+16*C 12A2+4*D12Л2-Е12Л2 | |||||||
А | В | С | D | E | ___F J G | H | ||
Stochastic Programming Model | ||||||||
Input data: | ||||||||
x1 | x2 | x3 | У | |||||
Totals | Limits | |||||||
Objective | 4.66129 i | |||||||
Constraint 1 | 1.646 | 2.529435 | <= | |||||
Constraint 2 | NL | NL | NL | NL | 7.4E-11 | = | ||
Constraint 3 | о | 10.856 | ||||||
>=0 | >=0 | |||||||
Output results: | ||||||||
x1 | x2 | x3 | У | z | ||||
Solution | ' 7И9ч | 1 37096» | 4 66129 |
Поиск решения
Установить целевую ячейку: |$F$5 ]4J Равной: максимальному значению <~ значению' |о~
минимальному значению
Изменяя ячейки:
|$В$12:$Е$12 Ограничения:
Предположить |
$В$12:$Е$12 >= О $F$6 <= $Н$6 $F$7 = JH$7 $Н8 <= $Н$в
~2
J
Добавить
Изменить
Удалить
| Вь ипнить ] Закрыть
Параметрь-
Восстановить
Справка
Рис. 21.6. Решение задачи стохастического программирования в Excel 2. Дана следующая задача стохастического программирования.
при ограничениях
Максимизировать z = х, + х\ + х3
PJxf + а2х\ + аЗЛ/х7 < 10} > 0,9,
хг, х2, х3 > 0.
Пусть параметры а2 и а3 — независимые нормально распределенные случайные величины с математическими ожиданиями 5 и 2 и дисперсиями 16 и 25 соответственно. Преобразуйте данную задачу в детерминированную задачу сепарабельного программирования.
21.2.5. Метод линейных комбинаций
Этот метод ориентирован на решение задач, в которых все ограничения являются линейными:
максимизировать z = f (X)
при ограничениях
АХ<Ь,Х>0.
Глава 21. Алгоритмы нелинейного программирования
Основой метода линейных комбинаций является градиентный метод наискорейшего подъема (раздел 21.1.2). Известно, что в этом методе движение по направлению градиента может вывести за пределы области допустимых решений. Кроме того, в точке условного оптимума градиент не обязательно обращается в нуль. Поэтому метод наискорейшего подъема необходимо модифицировать в целях его применения к рассматриваемой задаче с ограничениями.
Пусть X* — допустимая точка, полученная на fe-й итерации. Разложим целевую функцию /(X) в окрестности точки X* в ряд Тейлора. В результате получим
/(X)«/XX*) + V/(X*)(X - X*) = /(X*) - V/XX*)X* + V/XX*)X. Нам необходимо определить допустимую точку X = X", в которой достигается максимум функции /XX) при выполнении (линейных) ограничений задачи. Так как /XX) - V/XX)Х — постоянное слагаемое, задача определения X сводится к решению следующей задачи линейного программирования:
максимизировать wk(X) = Vf(Xk)X
при ограничениях
АХ<Ь,Х>0.
Так как целевая функция wk определяется градиентом функции /XX) в точке X*, улучшение имеющегося решения может быть обеспечено лишь тогда, когда шДХ") > шДХ*). Из разложения Тейлора следует, что выполнение этого условия не гарантирует, что /XX*) > /(X*), так как X* не обязательно находится в малой окрестности точки X*. Однако при выполнении условия wt(X") > wk(X.k) на отрезке (X*, X") должна существовать такая точка X**1, что /XX**1) > /XX*). Следовательно, задача сводится к определению такой точки X**1. Найдем эту точку следующим образом:
Xk" = (1 - r)Xk + гХ* = Хк + г(Х* - Хк), 0 < г < 1.
Отсюда следует, что точка X**1 является линейной комбинацией точек X* и X*. Так как X* и X* — точки выпуклой области допустимых решений, точка X**1 также является допустимой. Если сравнить эту процедуру с методом наискорейшего подъема (подраздел 21.1.2), параметр г можно рассматривать как длину шага.
Точка X**1 определяется из условия максимума функции /XX). Так как X*41 зависит лишь от переменной г, то Х*и определяется путем максимизации функции
h(r) = f[Xk + r(X* - Xk)].
Процедура повторяется до тех пор, пока на fe-й итерации не будет выполнено условие м>А(Х*) < шДХ*). В этой точке дальнейшее улучшение существующего решения невозможно, процесс вычислений завершается, точка X* считается наилучшим решением.
Задачи линейного программирования, которые решаются на каждой итерации описанной процедуры, отличаются друг от друга лишь коэффициентами целевой функции. Поэтому для повышения эффективности вычислений можно использовать методы анализа чувствительности, рассмотренные в разделе 4.5.
21.2. Алгоритмы решения задач с ограничениями
Пример 21.2.7
Рассмотрим задачу квадратичного программирования из примера 21.2.3.
Максимизировать z = 4дг, + бх, - 2хг - 2ххх2 - 2х\
при ограничениях
х, + 2дг, < 2,
лг,,дг2>0.
Пусть Х° = (1/2, 1/2) — начальная точка, которая является допустимой для рассматриваемой задачи. Имеем
удх) = (4 - 4х, - 2х2, 6 - 2дг, - 4х2).
Итерация 1.
удх°) = (i,3).
Соответствующая задача линейного программирования сводится к максимизации функции и>, =х, + Здг2 с учетом ограничений исходной задачи. Ее оптимальным решением есть точка X* = (0, 1). Значения функции и>, в точках Х° и X* равны 2 и 3 соответственно. Следовательно, новая точка ищется в виде
х'=|!.-| + г
Л 2
(«НИ
Максимизация функции
\-г 1+г
2 ' 2
•w-422
дает г = 1. Таким образом, X1 = (0, 1) и ДХ1) = 4. Итерация 2.
удх1) = (2, 2).
Целевой функцией новой задачи линейного программирования является w2 = 2хх + 2хг. Оптимальное решение этой задачи — X = (2, 0). Поскольку значения и>2 в точках X1 и X* равны 2 и 4, следует найти новую точку. Рассматриваем точку
X2 = (0, 1) + г[(2, 0) - (0, 1)] = (2г, 1 - г).
Максимизация функции
А(г) =Д2г, 1 - г)
дает г = 1/6. Таким образом, X2 = (1/3, 5/6), при этом ДХ2) = 4,16. Итерация 3.
удх2) = (1,2).
Здесь целевая функция имеет вид w3 = дг, + 2х2. Оптимальным решением задачи линейного программирования будут альтернативные точки X* = (0,1) и X* = (2, 0). Значение и>3 в обоих случаях совпадает со значением w3 в точке X2. Следовательно, улучшить имеющееся решение невозможно. Получено приближенное оптимальное решение задачи: X2 = (1/3, 5/6) сДХ2) = 4,16. В данном случае оно совпадает с точным оптимумом.
Глава 21. Алгоритмы нелинейного программирования
УПРАЖНЕНИЕ 21.2.5
1. Решите следующую задачу методом линейных комбинаций.
Минимизировать /(X) = х\ + х\ -Зхх,
при ограничениях
Зле, + х2 < 3, 5х, - Зх2 < 5, xlt х2 > 0.
21.2.6. Алгоритм последовательной безусловной максимизации
В этом разделе приводится описание градиентного метода более общего вида. Предполагается, что целевая функция /(X) является вогнутой, а каждая функция ограничений g/X) — выпуклой. Кроме того, допустимая область задачи должна содержать внутренние точки. Это исключает как явное, так и неявное использование ограничений в виде равенств.
Алгоритм последовательной безусловной максимизации основан на преобразовании исходной задачи с ограничениями в эквивалентную задачу без ограничений. Процедура в некоторой степени подобна применению метода множителей Лагранжа. Преобразованная задача затем может быть решена методом наискорейшего подъема (раздел 21.1.2).
Введем новую целевую функцию
p(x,,)=/(x)+/(x-7iFT-I-L.
Ui*,(X) >i*J
где t — неотрицательный параметр. Наличие второй суммы обусловлено учетом требований неотрицательности переменных исходной задачи, которые следует записать в виде -xt<0 для их согласования с остальными ограничениями вида g,(X)<0. Поскольку функция g/X) является выпуклой, будет вогнутой. Отсюда следует, что р(К, t) является вогнутой функцией от переменных X. Следовательно, функция р(Х, t) имеет единственный максимум. Поэтому решение исходной оптимизационной задачи с ограничениями эквивалентно максимизации функции р(Х, t).
Дата публикования: 2014-11-18; Прочитано: 340 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!