УДК 519.8 Вестник СПбГУ. Сер. 10, 2013, вып. 4
Ю. П. Лаптин
ВОПРОСЫ ПОСТРОЕНИЯ ТОЧНЫХ ШТРАФНЫХ ФУНКЦИЙ
Исследованию и проблемам использования точных штрафных функций посвящено большое количество публикаций. Укажем лишь некоторые из них [1—4]. В настоящее время метод точных штрафных функций широко применяется при решении оптимизационных задач с ограничениями. Однако это связано с рядом проблем, в частности отсутствуют простые методики вычисления приемлемых значений штрафных коэффициентов.
Подходы, позволяющие определять значения штрафных коэффициентов для выпуклых задач по ходу работы оптимизационного алгоритма, рассматривались в [5] и описываются в п. 1.
Существенные проблемы при формировании эквивалентных безусловных задач оптимизации возникают, если функции, описывающие исходную задачу, определены не на всем пространстве переменных. Для этого случая в [6-8] предлагалось использовать специальные продолжения функций с допустимого множества исходной задачи на все пространство переменных. Такой подход позволяет также преодолеть проблему плохого масштабирования исходной задачи. Краткое описание этих результатов приведено в п. 2.
1. Определение значений штрафных коэффициентов. Рассматривается задача: найти
f * = min {f (x): x e C} , (1)
здесь C = {x e Rn : h(x) ^ 0}, f, h : Rn ^ R - выпуклые функции, принимающие конечные значения при любых x, C - компактное множество. Будем рассматривать штрафные функции вида
F\(x) = f (x)+Xh+ (x), X e R, X > 0, (2)
где h+ = max{0, h}, и выпуклую задачу: найти
F* = min {Fx(x) : x e Rn} . (3)
Для выпуклых задач штрафная функция F\ (x) называется точной при заданном значении штрафного коэффициента X, если F* = f * и решения задач (1) и (3) совпадают.
Достаточные условия существования точных штрафных функций в общем случае, когда функции f и h определены на произвольном метрическом пространстве, приведены в [3]. Для выпуклых функций обозначим F^(x,p), f '(x,p), h'(x,p) - односторонние производные функций F\, f, h в точке x e Rn по направлению p. Следуя [3], обозначим h^(x) - скорость наискорейшего спуска функции h в точке x
Лаптин Юрий Петрович — кандидат физико-математических наук, старший научный сотрудник, Институт кибернетики имени В. М. Глушкова НАН Украины, 03650, Киев, Украина; e-mail: [email protected].
© Ю. П. Лаптин, 2013
h (x) = min {h'(x,p) : ||p|| = 1} .
Пусть для выпуклой задачи (1) выполняется условие Слейтера, тогда существуют числа А* ^ 0, a > 0 такие, что h}(x) ^ —a, Ух ф C, x ф Rn, и Fx(x) - точная штрафная функция при А > А*.
Нетрудно видеть, что при А > А* для yx ф C выполняется
min {F^(x,p) : ЦрЦ = 1} < 0. (4)
Обозначим p(x, y) вектор, определяющий направление из точки x в точку y, p(x, y) = (y — x)/ Цу — xll, y = x. Предположим заданной допустимую точку y0 такую, что h(y0) < 0. Легко видеть, что если для yx ф C выполняется условие
F' (x,p(x,y0)) = f' (x,p(x,y0)) + АН' (x,p(x,y0)) < 0, (5)
то F\(x) - точная штрафная функция. Заметим, что задача (4) может быть трудно разрешимой в точках, в которых функция Fx (x) недифференцируема.
Если при решении задачи (3) некоторым сходящимся алгоритмом порождаемые точки не попадают в множество C, то условие (4) (или условие (5)) можно было бы использовать для подбора значения А, т. е. если условие не выполняется для текущей точки x ф C, коэффициент А следует увеличить.
Однако можно построить примеры, когда эти условия выполняются для любой точки последовательности, формируемой оптимизационным алгоритмом, но не выполняются для предельной точки (Fx в таком случае может не быть точной штрафной функцией).
Для преодоления данной проблемы несколько изменим условие (5). Для точек x ф C, y G C положим пс (x, y) - точка пересечения отрезка [x, y] с границей множества C.
Теорема 1. Пусть .заданы точка y0 G C, числа е > 0, А > 0, последовательность xk ф Rn, k = 0,1, ..., сходится к решению x задачи (3), и для каждой точки xk, xk ф C, k = 0,1, ..., выполняется условие
F' (xk ,p(xk, xk )) = f' (xk ,p(xk ,xk))+ А ■ h' (xk ,p(xk ,xk)) > е, (6)
где xk = пс(xk,y°). Тогда x является решением задачи (1), т. е. F\(x) - точная штрафная функция.
Доказательство. Понятно, что если x ф C, то x - решение задачи (1).
Предположим, что x ф C. Без ограничения общности можно считать, что xk ф C для всех k = 0,1,... . В силу сходимости последовательности xk, k = 0,1, ..., последовательность xk, k = 0,1, ..., сходится к точке z = пс(x, y0). В силу выпуклости функции F\ (x) имеем
F\(z) - Fx(X) ,
-и - _ - > Fx(x,p(x, z)), (7)
Fx(xk) — Fx (xk)
> Fx(xk,p(xk, xk)). (8)
Обозначим p = (Fx(x) — Fx(z))/(HX — z||), pk = (Fx (xk) — Fx(xk))/ \\xk — xk ||. Из непрерывности Fx(x) имеем p = lim pk, т. е. для У S > 0 существует Kg такое, что
k—
\Р — рк \ < 5, если к > К$ . Откуда р > рк — 5 для к > К$. Выбирая 5 = е/2 и принимая во внимание (6) и (8), получаем р ^ е/2.
Учитывая (7), имеем Гх(Л,р(х, г)) ^ —р ^ —е/2. То есть в точке Л существует направление убывания р(Л, г), что противоречит предположению об оптимальности точки Л. Теорема доказана.
Таким образом, для контроля значения штрафного коэффициента Л на каждом шаге оптимизационного алгоритма необходимо проверять условие (6). Это требует решения одномерной задачи поиска точки хк = пс(хк,у0) пересечения отрезка [хк,у°~\ с границей множества С. Процедура такого поиска может быть реализована достаточно эффективно.
В случае, когда неравенство (6) на некоторой итерации алгоритма нарушается, будем увеличивать штрафной коэффициент Л так, чтобы оно выполнилось. Это возможно, если Н (Лк,р(Лк, хк)) > 0. Причем увеличение штрафного коэффициента будем производить на величину не менее В, где В > 0 - заданный параметр. Легко видеть, что если существует конечное Л такое, что при Л > Л неравенство (6) выполняется на всех итерациях алгоритма, то количество таких увеличений штрафного коэффициента по ходу работы оптимизационного алгоритма будет конечно. Условия существования конечного Л будут сформулированы в теореме 2.
Положим г(х,у) = тах {0, —]'(л,р(х, у))/Н'(х,р(х,у))},
К(у0) = вир {т(Л,х): х = пс(х,у0), х £ С} , у0 £ С. (9)
Лемма 1. Пусть для точки у0 £ С выполняется Н(у0) < 0, тогда Я(у°) < +ж.
Доказательство. В силу ограниченности множества С функция ] липшицева, и существует М > 0 такое, что \/'(Л,р(Л,х))\ ^ М для любых л £ С, Л = пс(х,у0).
Положим т = тах {||х — у°|| : Л = пс (х,у0), х / С} .В силу выпуклости функции Н имеем Н'(Л,р(Л,л)) ^ [Н(Л) — Н(у0)]/ ||х — у0||, откуда
Н'(Л,р(Л,х)) ^ | Н(у0) | т-1 (10)
и Я(у°) ^ тМ | Н(у0) | 1. Лемма доказана.
Теорема 2. Пусть Н(у0) < 0. Тогда существует Л < ж такое, что при любом Л, Л > Л, найдется е(Л) > 0, при котором для последовательности хк £ Нп, к = 0,1, ..., сходящейся к решению Л задачи (3), выполняется
Г^ (Лк ,р(Лк, хк)) > е(Л), если хк £ С, к = 0,1,..., (11)
где хк = пс (хк,у°). То есть Л является решением задачи (1) и Г\(х) - точная штрафная функция.
Доказательство. Положим Л = Н(у°), Л > Л. С учетом (9) нетрудно видеть,
что
Г^(Лк,р(Лк,хк)) = /'(Лк,р(Лк,хк)) + (Л + Л — Л) ■ Н' (Лк,р(Лк,хк)) = = /' (Лк ,р(Лк ,хк)) + Л ■ Н' (Лк ,р(хк,Лк)) + (Л — Л) ■ Н' (Лк ,р(Лк ,хк)) = = Н' (Лк ,р(Лк ,хк)) [Л — (—/'(Лк ,р(Лк ,хк )))/(Н'(Лк ,р(Лк,хк)))] +
+ (Л — Л) ■ Н' (Лк ,р(Лк,хк)) > (Л - Л) ■ Н' (Лк ,р(Лк ,хк)).
Учитывая (10) и полагая е(Л) = (Л — Л) |Н(у0)| т-1, получаем (11). Отсюда из теоремы 1 следует, что Г\(л) - точная штрафная функция. Теорема доказана.
Приведенные результаты позволяют строить достаточно эффективные процедуры определения значений штрафных коэффициентов по ходу работы алгоритмов
безусловной оптимизации. Однако при неудачном выборе точки y0 штрафные коэффициенты могут устанавливаться достаточно большими.
Рассмотрим вопросы варьирования точки у0.
Теорема 3. Пусть множество C компактно, заданы числа е > 0, Л > 0, последовательность xk € Rn, k = 0,1, ..., сходится к решению x задачи (3), каждой точке xk поставлена в соответствие точка yk € C, и для каждого xk, xk € C, k = 0,1, ..., выполняется условие
(Xk ,p(Xk,xk )) = f' (Xk ,p(Xk ,xk)) + Л ■ h' (Xk ,p(Xk ,xk)) > е, (12)
где xk = nC(xk,yk). Тогда x является решением задачи (1), т. е. F\(x) - точная штрафная функция.
Доказательство. Без ограничения общности можно считать, что yk, k = 0,1,..., - сходящаяся последовательность (в силу ограниченности C всегда можно выделить сходящуюся подпоследовательность).
Предположим, что x € C. Обозначим у = lim yk. В силу сходимости последова-
k—
тельностей xk, yk, k = 0,1, ..., последовательность xk, k = 0,1, ..., сходится к точке z = nC (x,y). Далее, повторяя для точек 5, x рассуждения, приведенные при доказательстве теоремы 1, получаем требуемые утверждения. Теорема доказана.
Правило, по которому каждой точке xk, k = 0, 1,..., порождаемой алгоритмом безусловной оптимизации, ставится в соответствие точка yk C, можно задавать различным образом. Например, выбирать yk среди допустимых точек, полученных на предыдущих итерациях, или решать некоторую вспомогательную задачу.
Будем выбирать точки yk на каждой итерации оптимизационного алгоритма так, чтобы неравенство (12) выполнялось при наименьшем значении штрафного коэффициента.
Обозначив, как и ранее, r(x,y) = max {0, —f '(x,p(x,y))/h'(x,p(x,y))}, положим r(xk) = min {r(xk,xk) : xk = nC(xk,y), y € C} ,
yk = argmin {r(xk,xk) : xk = nC(xk,y), y € C} , (13)
r* = sup {r(x) : x € C} .
Используя для выбора yk правило (13) и выбирая Л > r*, получим выполнение неравенств (12) на каждой итерации оптимизационного алгоритма. Таким образом, справедлива
Лемма 2. Пусть Л > r*, тогда F\(x) - точная штрафная функция.
Заметим, что любое правило выбора точек yk € C, k = 0,1,..., можно рассматривать, как использование некоторого приближенного решения задачи (13).
Пусть f, hi : Rn — R, i = 1, ...,m, - выпуклые собственные функции,
f * = min {f (x) : hi(x) < 0, i = 1,...,m, x€ Rn} , (14)
h(x) = max {hi(x) : i = 1,..., m}.
Известно (см., например, [1, 2]), что F\(x) - точная штрафная функция для задачи (14), если Л > Л* = u*, где (u*,..., u*m) - оптимальные значения множителей
Лагранжа (двойственных переменных) задачи (14).
Естественным образом возникает вопрос - как соотносятся параметры r* и Л*, т. е. не превышает ли многократно значение r* величину Л*. Ответ на этот вопрос получен в частном случае, когда задача (14) является задачей линейного программирования: найти
f * = min (c, x), (15)
(ai, x) + bi < 0, i = 1, ..., m. (16)
Для этой задачи f (x) = (c,x), h(x) = max{hi(x), i = 1, ...,m}, где hi(x) = (ai,x) + bi, i = 1,..., m.
Теорема 4. Пусть задача (15), (16) имеет единственное оптимальное решение x*, ограничения задачи, активные в точке x*, линейно независимы, (u*,..., u*m) -оптимальные значения двойственных переменных. Тогда r* = ^и*.
Доказательство. Поскольку r(x) = min {r(x, x) : x = nc (x, y), y £ C} ^ r(x*,x) при x £ C, имеем r* = sup {r(x) : x £ C} ^ sup {r(x*,x) : x £ C}. Положим X + = {x : x£C,f (x) > f*}.
Понятно, что {x : x£C} = X +U {x : f (x) <f *}. Пусть x £ X+, тогда f'(x*,p(x*,x)) = (f (x) — f (x*))/ \\x — y*\\ ^ 0 и r(x*, x) = 0. Отсюда получаем sup{r(x*,x) : x £ C} = sup{r(x*,x) : f (x) < f*}.
Обозначим
I* - множество ограничений задачи (15), (16), активных в точке x*,
h*(x) = max {hi(x) : i £ I*},
r*(x,y) = max {0, —f '(x,p(x,y))/h*'(x,p(x,y))} .
Надграфик функции max(0,h*(x)) есть многранный конус с вершиной в точке (x*, 0). Отсюда следует, что функция h*(x) линейна на любом луче, выходящем из точки x*, и h*'(x*,p(x*,x)) = —h*'(x,p(x,x*)) для x таких, что f(x) < f*. Для линейной функции f (x) также справедливо соотношение f '(x*,p(x*, x)) = —f'(x,p(x,x*)). Откуда вытекает, что r*(x*,x) = r*(x,x*) для любого x, f (x) < f*.
Нетрудно видеть, что r(x*, x) = r* (x*, x) и для любого S > 0
sup{r(x*,x) : f (x) < f*} = sup{r*(x*,x) : f (x) < f*, h*(x) = S} = = sup {r* (x, x*): f (x) <f *, h* (x) = S} .
Обозначим
r = sup{r*(x,x*): f (x) <f*, h*(x)= S} . (17)
Таким образом, для величины r* получаем неравенство
r* = sup {r(x) : x £ C} ^ r .
Поскольку ограничения, активные в оптимальной точке x*, линейно независимы, то множество {x : h*(x) ^ S} имеет единственную крайнюю точку x, и hi(x) = S, i £ I*. Очевидно, что
(c,x) = min{(c,x) : h*(x) < S} . (18)
Покажем, что x - оптимальное решение задачи (17). Пусть x - допустимая точка задачи (17). Обозначим I (x) = {i : i£l *,hi(x)= S}. Субдифференциал Gh* (x)
функции h* в точке x равен Gh* (x) = conv{ai,i e I(x)}. Производная функции h*(x) в точке x по направлению p(x,x*) = (x* — x)/ \\x* — x\\ равна h*'(x,p(x,x*)) = max {{g,p(x,x*)) : g e Gh* (x)} . Положим g(x) = argmax {{g,p(x,x*)) : g e Gh* (x)}, тогда h*'(x,p(x,x*)) = {g(x),p(x,x*)).
Поскольку вектор g(x) можно записать в виде g(x) = ^iai, \ ^ 0, i e I(x),
то {g(x), x') + b' = 0 для точек x' таких, что {ai, x') + bi =0, i e I(x), где b' = ^iei(x) ^b. Отсюда следует
{g(x),x) = {g(x),x). (19)
Рассмотрим функцию h* в точке x. Очевидно, g(x) e Gh* (x) С Gh* (x), откуда
0 ^ h* (x,p(x,x*))= max {g,p(x,x*)) ^ {g(x),p(x,x*)) . (20)
geoh* (x)
Учитывая (18)—(20), нетрудно проверить, что
г* (ж ж*) —г*(ж X*) _ _(с, х — х)___(с, х — ж)_ ^
' ' —h*'(x,p(x,x*)) \\x* — x\\ —h*'(x,p(x,x*)) \\x* — x"
( * ^ ( * ^ 1 ^ [С х -X)--[С х -X) = -г ((с, ж) - (с, ж)) < 0.
— {д(х), х* — х) — {д(х), х* — х) — {дух), х* — х)
Следовательно, максимум в (17) достигается в точке X и Г = г*(х, х*).
Обозначим А матрицу, строками которой являются вектора щ, г € I*. Тогда А(х* — X) = —5е, где е = (1,..., 1) - п-мерный вектор, х* — X = —5А-1е. Для вектора и* оптимальных значений двойственных переменных задачи (15), (16) имеем А и* = —с, и* = —(А )-1с. Поскольку функция Н*(х) линейна на любом луче, выходящем из точки х*, и Н*(х*) = 0, то нетрудно видеть, что —Н*'(х,р(х,х*)) \\х* — х\\ = 5. Откуда
- (с,ж*-ж) <с,-М-1е>
г = г (ж, Ж * — — —
—h*'(x,p(x,x*)) \\x* — х\\ S
= { — (A')-1c,e) = (u*,e) .
Поскольку r(x) ^ r* = sup {r(x) : x/C} ^ r*(x,x*), то для завершения доказательства достаточно показать, что
r* (x, x*) = r(x) = min {r(z, x) : z = nc(x, y), y / C} .
Пусть y / C, z = nc(x,y), J(z) = {i : hi(z) = 0,i = 1, ...,m} - множество активных ограничений в точке z, Gh(z) = conv{aj, i / J(z)} - субдифференциал функции h в точке z. Можно показать, что при достаточно малом значении S будет выполняться J(z) С I*.
Обозначим x(z) = argmax{(g,p(z,x)) : g / Gh(z)}, тогда
h'(z,p(z, x)) = max {(g,p(z,x)) : g / Gh(x)} = (g(z),p(z,x)) ,
h'(x*,p(x*,x))= max (g,p(x*,x)) ^ (g(z),p(x,x*)) .
geoh(x*)
Как и ранее, можно показать, что (g(z),x*) = (g(z), z), откуда
rix* x) v(Z x) __^ x z) ^
' ' h'(x*,p(x*, x)) \\x* — x\\ h'(z,p(z, x)) \\y' — x\\ ^
— (c,x — x*) — (c,x — z)
{g(z),p(x,x*)) Уж* - x\\ (g(z),p(z,x)) \\z — x — (c,x — x*) — {c,X — z) 1
(g(z),x — x*) {g(z),x — z) (g(z),x — z)
({c, x* — x) — (c, z — x)) ^ 0.
То есть x* = argmin {r(z,x) : z = nc(x,y), y G C} и r* = r(x*,x) = (u*,e). Теорема доказана.
2. Ограниченные области определения функций. Рассматривается задача: найти
f * = min {f (x): x G C} , (21)
где C = {x G Rn : h(x) ^ 0}, f, h : Rn ^ Ru{+to} - выпуклые функции, C - компактное множество, C С dom ff] dom h.
Поскольку f, h могут быть не определены вне C, естественным являются продолжение этих функций с множества C на все пространство Rn и формирование после этого эквивалентной задачи безусловной оптимизации. Такое построение может быть реализовано многими способами. Основная трудность в построении хорошего продолжения f на все пространство заключается в обеспечении выпуклости данного продолжения. Некоторые известные подходы к построению выпуклых продолжений упомянуты в [8]. В работе [9] приведен способ построения выпуклого продолжения, основанный на операции инфимальной свёртки (сложения надграфиков):
f(x)=mf {f (u) + L\\x — u||}, (22)
uEC
здесь C - непустое выпуклое множество, а f : Rn ^ R - выпуклая функция, f(x) = f (x), Уx G C. При этом оказывается возможным построить продолжение даже с сохранением липшицевости исходной функции (если она обладала таким свойством). Операция, указанная в правой части (22), - это инфимальная свёртка функций fi(-)= f(■) и f2(-)= L\\ ■ \\.
В работе [8] также рассматривалась инфимальная свёртка с функцией Минковского, что позволило учесть свойства допустимого множества исходной задачи.
Следует отметить, что такого рода подходы к построению выпуклых продолжений достаточно трудоемки. Предлагаемые ниже конические продолжения функций, коническая аппроксимация функций являются более эффективными.
2.1. Конические продолжения функций. Приведем краткое описание подхода, подробно изложенного в [6, 7]. Как и ранее, рассматривается задача (21). Считаются заданными точка x0 G int C и число E, E < f(x0). Поскольку далее точка x0 считается зафиксированной, используется обозначение nc (x) = nc (x0,x) - точка пересечения отрезка [x0 ,x] с границей множества C. Положим
ХЕ (х) =E+(f(nc(x))-E)-.
nc(x) — x0
фв (x) =
XE (x),
f (x),
если x <// C, если x € C.
Нетрудно проверить, что Фе (х) - непрерывная функция. Будем называть ее коническим продолжением функции /(х) с множества С на нп. Пример функций /(х) и хе (х) для одномерного пространства приведен на рисунке.
Функции f (x) (сплошная линиия) и xE (x) (штрихпунктирная линия) Множество C — отрезок [а, Ь].
Рассмотрим задачу
ФЕ = inf {фЕ (x) : x е Rn} .
(23)
Лемма 3. Пусть E < f *, тогда ф*Е = f *.
Теорема 5. Пусть f - выпуклая функция, C - замкнутое выпуклое множество, C С int dom f. Тогда существует конечное E* такое, что для всех E ^ E* функция Фе (x) выпуклая.
Обозначим gf (x), gh(x) - субградиенты функций fи h в точке x.
Теорема 6. Пусть E ^ E*, x = пс(x), x = x0. Тогда (gh(x), x0 — x) = 0 и вектор
g = gf(x) +
E ~ f(x) ~ (9f(x), x° - x) (gh(x),x° -x)
gh(x)
(24)
есть субградиент функции xE (x) в точке x.
Замечание. Субградиент функции хЕ(x) инвариантен в (24) относительно умно-
жения функции h(x) на произвольную дифференцируемую функцию r : Rn кую, что r(x) > 0, x е Rn.
R та-
—>
Если значения /* и Е* известны и величина Е удовлетворяет условиям леммы 3 и теоремы 5, то для решения задачи (23) может применяться любой алгоритм минимизации выпуклых функций. Рассмотрим случай, когда значения /* и Е* неизвестны.
Пусть для решения задачи (23) используется некоторый сходящийся алгоритм А безусловной минимизации выпуклых функций, на каждой итерации которого вычисляются минимизируемая функция и ее субградиент. Обозначим р(х) = (х — х0)/ ||х — х0||.
Теорема 7. Пусть .заданы некоторое число 6 > 0 и величина Е, для точек хк ф С, получаемых алгоритмом А на итерации к, к = 0, 1, ..., выполняются условия
Е < /(хк) — 6, (25)
Е < /(хк) — /'(хк,р(хк)) ■ рк — х0 ^ , (26)
где хк = (хк). Тогда последовательность точек хк, к = 0, 1, ..., сходится к решению задачи (21).
Если условия (25), (26) на некоторой итерации не выполняются, значение Е будем уменьшать для выполнения этих условий, но на величину не менее В, где В > 0 -заданный параметр. В силу конечности /* и Е* число таких уточнений значения Е будет конечно, после чего алгоритм сходится к решению задачи (21).
В рассмотренном алгоритме базовая точка х0, относительно которой строится продолжение функции /, считалась зафиксированной. Первоначальное значение этой точки может оказаться неудачным, что приведет к необходимости выбора больших (по абсолютной величине) значений Е. Задача уточнения базовой точки по ходу работы оптимизационного алгоритма рассматривалась в [7].
В программной реализации предлагаемого подхода базовая точка х0 считалась заданной и не изменялась в ходе вычислений, в качестве алгоритма безусловной минимизации использовался г-алгоритм [2]. Разработанные программные средства обеспечивают интерфейс со стандартной программной средой AMPL. Это позволило в ходе вычислительного эксперимента провести сравнение с существующими как коммерческими, так и не коммерческими солверами.
Результаты сравнительного вычислительного анализа показывают существенную устойчивость разработанного подхода к плохой обусловленности задач. Использованные тестовые задачи и предварительная версия программных средств размещены для свободного доступа на сайте http://www.icyb.kiev.ua/file/NonDiffOpt_Nurm/indexk.htm.
2.2. Коническая аппроксимация функций. Кратко опишем подход, подробно изложенный в [8]. Как и ранее, рассматривается задача (21). Считаются заданными точка х0 ф ^ С и число Е, Е < / (х0). Обозначим Е надграфик функции / на множестве С
Е = {(Л, х) фЕ х С : Л > /(х)} .
Положим г = (Л,х), г ф Е х Еп. Рассмотрим коническую оболочку К(Е) надгра-фика Е с вершиной в точке г°Е = (Е, х0)
К (Е) = {у : V фЕ х Еп, V = г0Е + а(г — г0Е), а > 0,гфЕ} .
Множество К(Е) выпукло (поскольку выпуклым является множество Е) и может рассматриваться как надграфик некоторой выпуклой функции. Эту функцию обозначим 7е (х) и будем называть конической аппроксимацией функции / на множестве С.
Функция 7е (х) определена на всем пространстве Нп и принимает конечные значения при любых х.
Нетрудно видеть, что для произвольной точки х € Ип, х = х0, на луче, выходящем из точки х0 и проходящем через х, найдется точка х, х € С (возможно, не одна), такая, что /(х) = 7е(х). Обозначим /е(х) такую точку, ближайшую к х0. Положим
/(х), если \\х — х°|| < \\/е(х) — х0\\, 7е(х), если \\х — х0\\ > \\/е(х) — х0\\. Функция 7е (х) может быть представлена в виде
7Е(х) = Е + {¡(цЕ(х)) - Е)-
\\pE(x) — x0\\ '
Рассмотрим задачу: найти
Ф*е = inf &E(x): X e Rn} . (27)
Теорема 8. Пусть C - выпуклый компакт, f - выпуклая функция, C С dom f, x0 e int C, E < f *. Тогда фE : Rn ^ R - выпуклая функция, ф*E = f *, решения задач (21) и (27) совпадают.
Для использования рассматриваемого подхода в алгоритмах решения оптимизационных задач должны быть определены эффективные процедуры вычисления функции фЕ(x) и ее субградиентов.
Пусть f (x,p) - производная функции f в точке x e C по направлению p, p(x) = (x — x0)/ ||x — x0|, t*(x) = W^E(x) — x°||.
Лемма 4. Имеет место утверждение
t*(x) = supji : f(x°+tP(x))-E > _f>(xo + -p{x)),
t > 0, x0 + tp(x) e c|. (28)
Процедура решения задачи одномерного поиска (28) (определения точки ¡¡Е(x)) может быть реализована достаточно эффективно.
Теорема 9. Пусть точка x такая, что x = ¡¡Е (x) - внутренняя точка множества C. Тогда в точке x существует субградиент g функции f, для которого выполняется
f (x) — E =(g,x — x0), (29)
и вектор g есть субградиент функции ye в точке x.
Субградиент g функции f в точке x = ¡лe (x) e int dom C, удовлетворяющий соотношению (29), может быть определен в ходе решения задачи одномерного поиска (28).
Теорема 10. Пусть точка x такая, что x = ¡¡Е(x) принадлежит границе множества C. Тогда (gh (x), x — x ) = 0 и вектор
Е - f(x) - (gf(x),x° - х)
9 = 9ЛХ) +-Ы(х),хО-Х)-^
есть субградиент функции YE (x) в точке x.
Приведенные утверждения позволяют эффективно вычислять функцию фЕ (x) (требуется решить задачу одномерного поиска (28)) и ее субградиенты (см. теоремы 9, 10).
При известном значении f * для решения задачи (27) может использоваться любой метод безусловной минимизации выпуклых функций. Если f * заранее не известно, то величина E должна уточняться по ходу оптимизации.
Автор благодарит старшего научного сотрудника Института кибернетики НАН Украины кандидата физико-математических наук Т. А. Бардадым за полезные обсуждения, ценные советы и замечания.
Литература
1. Пшеничным Б. Н. Метод линеаризации. М.: Наука, 1983. 136 с.
2. Shor N. Z. Nondifferentiable Optimization and Polynomial Problems. Amsterdam; Dordrecht; London: Kluwer Academic Publishers, 1998. 381 p.
3. Демьянов В. Ф. Условия экстремума и вариационное исчисление. М.: Высшая школа, 2005. 335 с.
4. Евтушенко Ю. Г., Жадан В. Г. Точные вспомогательные функции в задачах оптимизации // Журн. высшей математики и матем. физики. 1990. Т. 30, № 1. С. 43—57.
5. Лаптин Ю. П. Некоторые вопросы опредeления коэффициентов негладких штрафных функций // Теория оптимальных решений. Киев: Ин-т кибернетики им. В. М. Глушкова НАН Украины, 2012. № 11. С. 73-79.
6. Лаптин Ю. П. Один подход к решению нелинейных задач оптимизации с ограничениями // Кибернетика и системный анализ. 2009. № 3. С. 182-187.
7. Лаптин Ю. П., Лиховид А. П. Использование выпуклых продолжений функций для решения нелинейных задач оптимизации // Управляющие системы и машины. 2010. № 6. С. 25-31.
8. Лаптин Ю. П., Ба,рда,ды,м Т. А. Некоторые подходы к регуляризации нелинейных задач оптимизации // Проблемы управления и информатики. 2011. № 3. C. 57-68.
9. Hiriart-Urruty J.-B., Lemarechal C. Convex Analysis and Minimization Algorithms: in 2 vol. Berlin: Springer Verlag, 1991. Vol. I. 417 p.; Vol. II. 347 p.
Статья рекомендована к печати проф. В. Ф. Демьяновым. Статья поступила в редакцию 30 мая 2013 г.