Смекни!
smekni.com

Математические методы исследования операций в экономике (стр. 18 из 37)

Следовательно, для любой точки х, не равной х*, справедли­во неравенствоf(x)-f(x)≤ 0 <=> f(x)≤ f(x*), т.е. х* — точка гло­бального максимума. -

Поскольку выпуклые функции обладают столь «полезными» оптимизационными качествами, они занимают исключительно важное место в теории исследования операций. Соответствую­щий раздел получил название выпуклого программирования, а общая задача выпуклого программирования формулируется как проблема поиска максимума вогнутой (минимума выпук­лой) функции на выпуклом множестве.

2.1.5. Метод допустимых направлений. Данный метод также называется методом возможных направлений или же по имени автора—методом Зойтендейка, см. [16]. Его основную идею будет удобно продемонстрировать на примере ЗНП с огра­ничениями в форме неравенств:

В указанном методе так же, как и в градиентных методах, на­ходится последовательность точек х(0)х(1),..., х(q)..., таких, что f(х(q+1)) ≥ f(x(q)) *. При этом переход от точки x(q)) к точке х(q+1))происходит по некоторому выбранному направлению s(q) с ша­говым множителем λq:

* Так как в данных методах при переходе к очередной рассматривае­мой точке происходит улучшение значения целевой функции (в частно­сти, для задачи минимизации — уменьшение), их также называют ре­лаксационными методами.

По отношению к векторам, задающим направления переме­щения, вводятся два фундаментальных понятия.

-Направление s называетсядопустимым(возможным) в точке x(q) ÎD,если существует такое

λ > 0,что x(q+1) = x(q) + λs Î D.

-Направление s называетсяпрогрессивнымв точкеx(q)Î D,если существует такоеλ >0, что

f(x(q) + λs)> > f(x(q)) для задачи максимизации и f(x(q) + λs) <f(x(q)) для задачи минимизации.

На основе данных определений достаточно просто сформу­лировать критерий проверки оптимальности точки (так назы­ваемый критерий оптимальности в терминах допустимых и про­грессивных направлений):

-точка х* является оптимальным планом задачи (2.16), если в ней ни одно допустимое

направление не является прогрессивным.

В алгоритме метода допустимых направлений правила выбо­ра точких(q+1), к которой происходит очередной переход, раз­личаются в зависимости от того, где находится текущая точка х(q). Принципиально возможны две ситуации.

. Точках(q)лежит внутри областиD, т. е. для всехi Î 1: mgi(х(q)) < 0 (см. рис. 2.4). Очевидно, что для внутренней точки любое направление будет допустимым (при выборе достаточно малого шага), поэтому естественным представляется движение в сторону «гарантированного» возрастания значения функции, а именно в направлении градиента. Значит, для внутренней точ­ки х(q) целесообразно выбратьs(q) =

f(х(q)).

Шаговый множитель λq выбирается так, чтобы, с одной сто­роны, новая точках(q+1) принадлежала D, а с другой — значе­ние целевой функции в ней f(х(q+1)) было как можно большим.

С этой целью сначала найдем промежуток [0,

] из условия
для чего необходимо решить систе­му неравенств:

Зная промежуток [0,

], определяем значение шагового множителя λq из условия максимизации значения функции в направленииs(q):

Вновь найденная точка x(q+1) может находиться или внутри областиD, или на ее границе. В первом случае (на рис. 2.4 ему соответствует точка
(q+1) переходим к началу данного пункта и повторяем вышеописанные действия, а во втором (точка
(q+1) на рис. 2.4) — действуем по рассматриваемой далее схеме.

2°. Точкаx(q)находится на границе области (см. рис. 2.5). Это означает, что одно или несколько неравенств из системы ог­раничений задачи (2.16) выполняются как строгие равенства:gi(x(q)) = 0. Например, на рис. 2.5и g1(x(q)) = 0 иg3(x(q)) = 0.

Ограничение, которое в текущей точке выполняется как ра­венство, называют активным. Множество номеров активных ограничений в точке x(q) будем обозначать как I(x(q)). В приме­ре, изображенном на рис. 2.5, I(x(q)) = {1, 3}. Также из рисунка видно, что все допустимые направления, исходящие из точки x(q), должны образовывать тупые углы с векторами градиентов фун­кций, задающих активные ограничения в данной точке. По­следнее условие может быть выражено через задание ограниче­ний на значения скалярных произведений вектора направленияsна градиенты функции ограничений:

где Iл — множество номеров индексов линейных ограничений, Iн — множество номеров индексов нелинейных ограничений. Со­ответственно, I(x(q))◠Iл —номера линейных активных ограни­чений, а I(x(q))◠Iн— номера нелинейных активных ограниче­ний. Отличие условий (2.20) от условий (2.21) заключается в том, что в случае линейного ограничения направление, образу­ющее прямой угол с градиентом ограничивающей функции (т. е. их скалярное произведение равно нулю), будет заведомо допустимым, а в случае нелинейного ограничения — возможно, нет.

Все возможные направления в точке x(q) образуют так назы­ваемый конус допустимых направлений, и из них для следующего перехода, очевидно, нужно выбрать прогрессивное. Если такового не существует, то согласно сформулированному выше критерию точка x(q) является оптимальной! Для ускорения мак­симизации функции желательно, чтобы угол между искомым допустимым прогрессивным направлениемs(q) и градиентом це­левой функции ∇f(x(q)) был как можно меньше или, что то же самое, как можно большей была бы проекция s на∇f(x(q)) (при условиях нормировки вектораs(q)). Иными словами, желатель­но, чтобы неравенствоs(q)f(x(q))+σ≥0 выполнялось при ми­нимально возможном σ∈R. Тогда задачу отыскания наилучше­го допустимого прогрессивного направленияs(q) можно свести к задаче минимизации параметра σ:

при условиях

гдеs12 +s22 +...+sn2, ≤ l —условие нормировки, обеспечивающее ограниченность решения;

τ — некоторое достаточно малое число, характеризую­щее «строгость» выполнения неравенств.

В отличие от всех остальных, последнее условие в системе (2.23) является нелинейным, что существенно усложняет про­цесс решения задачи (2.22)-(2.23). Поэтому на практике дляопределения направленияs(q)(возможно, не лучшего) перехо­дят от данной задачи к задаче линейного программирования пу­тем замены указанных выше условий нормировки на ограниче­ния вида –l ≤ sj, ≤1:

После того как прогрессивное направлениеs(q) найдено, ша­говый множитель определяется по методу, описанному в п. 1°.

В заключение отметим, что при практических расчетах алго­ритм завершается при достижении такой точки х*, в которой |∇f(x*)|<ε, где ε —достаточно малое число.

Представляется полезным обратить внимание читателя и на то, что применяемый для решения задач линейного програм­мирования симплекс-метод может быть рассмотрен как част­ный случай метода допустимых направлений. В частности, этап выбора столбца, вводимого в очередной базис, соответ­ствует определению допустимого прогрессивного направле­ния. Более подробно о такой концепции симплекс-метода можно прочесть в [1].

2.1.6. Пример решения ЗНП методом допустимых на­правлений. Рассмотрим процесс применения метода допусти­мых направлений на конкретном примере. Пусть дана ЗНП:

Итерация 1. В качестве начального приближения возьмем точку х(1) = (0,0). Нетрудно заметить, что она удовлетворяетсистеме неравенств (2.27), т. е. х(1)D. Для х(1) все неравенства выполняются как строгие, т. е. множество индексов активных ограничений I(х(1))=∅. Следовательно, в х(1) любое направле­ние является допустимым, и нам остается определить, с каким шагом λ1 можно двигаться вдоль градиента целевой функции s(1) =∇f(x(1))=(1, 1). Система неравенств типа (2.18), из решения которых определяется интервал допустимых значений для λ, для данной задачи примет вид: