Метод Стронгина

Материал из testwiki
Перейти к навигации Перейти к поиску

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

Постановка задачи оптимизации

Требуется найти точку x*[a;b] такую, что f(x*)=min{f(x):x[a;b],gj(x)0,1jm}. Предполагается, что функции f(x) и gj(x),j=1,m удовлетворяют условию Липшица на отрезке [a;b].

Обозначим gm+1(x)=f(x), тогда для j=1,m+1 выполняются следующие неравенства:

|gj(x+Δx)gj(x)|LjΔx,ax+Δxb,

где Lj0 — константы Липшица.

Описание схемы учета ограничений

Пусть Q0=[a;b]. Ограничение, имеющее номер j, выполняется во всех точках области Qj={x[a;b]:gj(x)0}, которая называется допустимой для этого ограничения. При этом допустимая область Q исходной задачи определяется равенством:

Q=j=0mQj.

Испытание в точке x[a;b] состоит в последовательном вычислении значений величин g1(x),,gν(x), где значение индекса ν определяется условиями:

xQj,0j<ν,xQν.

Выявление первого нарушенного ограничения прерывает испытание в точке x. В случае, когда точка x допустима, то есть xQ испытание включает в себя вычисление всех функций задачи. При этом значение индекса принимается равным величине ν=m+1.

Пара ν=ν(x),z=gν(x), где индекс ν лежит в границах 1νm+1, называется результатом испытания в точке x.

Такой подход к проведению испытаний позволяет свести исходную задачу с функциональными ограничениями к безусловной задаче минимизации разрывной функции:

ψ(x*)=minx[a;b]ψ(x),
ψ(x)={gν(x)/Lνν<M,(gM(x)gM*)/LMν=M.

Здесь M=max{ν(x):x[a;b]}, а gM*=min{gM(x):xi=0M1Qi}.

В силу определения числа M, задача отыскания gM* всегда имеет решение, а если M=m+1, то gM*=f(x*).

Дуги функции ψ(x) липшицевы на множествах i=0jQi,0jM1 с константой 1, а сама ψ(x) может иметь разрывы первого рода на границах этих множеств.

Несмотря на то, что значения констант Липшица и величина gM* заранее неизвестны, они могут быть оценены в процессе решения задачи.

Описание метода

Пусть x0=a,x1=b. Индексы концевых точек считаются нулевыми, а значения z в них не определены. Первое испытание осуществляется в точке x3=(a+b)/2. Выбор точки xk+1,k3 любого последующего испытания определяется следующими правилами:

  1. Перенумеровать точки x0,,xk k предшествующих испытаний нижними индексами в порядке увеличения значений координаты: a=x0<<xi<<xk=b и сопоставить им значения zi=gν(xi),ν=ν(xi),i=1,k.
  2. Для каждого целого числа ν,1νm+1 определить соответствующее ему множество Iν нижних индексов точек, в которых вычислялись значения функций gν(x):
    Iν={i:ν(xi)=ν,1ik},1νm+1.
    Также определить максимальное значение индекса M=max{ν(xi),1ik}.
  3. Вычислить текущие оценки для неизвестных констант Липшица:
    μν=max{|gν(xi)gν(xj)|/(xixj):i,jIν,i>j}.
    Если множество Iν содержит менее двух элементов или если значение μν оказывается равным нулю, то принять μν=1.
  4. Для всех непустых множеств Iν,ν=1,M вычислить оценки
    zν*={min{gν(xi):xiIν}ν=M,ενν<M,
    где вектор с неотрицательными координатами εR=(ε1,,εm) называется вектором резервов.
  5. Для каждого интервала (xi1;xi),1ik вычислить характеристику
    R(i)={Δi+(zizi1)2(rνμν)2Δi2zi+zi12zν*rνμνν=ν(xi)=ν(xi1),2Δi4zi1zν*rνμνν=ν(xi1)>ν(xi),2Δi4zizν*rνμνν=ν(xi)>ν(xi1),
    где Δi=xixi1.
    Величины rν>1,ν=1,m являются параметрами алгоритма. От них зависят произведения rνμν, используемые при вычислении характеристик в качестве оценок неизвестных констант Липшица.
  6. Определить интервал (xt1;xt), которому соответствует максимальная характеристика R(t)=max{R(i),1ik}.
  7. Провести очередное испытание в середине интервала (xt1;xt), если индексы его концевых точек не совпадают:
    xk+1=12(xt+xt1).
    В противном случае провести испытание в точке
    xk+1=12(xt+xt1)ztzt12rνμν,ν=ν(xt)=ν(xt1),
    увеличить k на 1.
  8. Если xtxt1<ε (ε>0 — заданная точность метода), то прекратить выполнение алгоритма, иначе перейти на шаг 1.

Достаточные условия сходимости

Пусть исходная задача оптимизации имеет решение x* и выполняются следующие условия:

  1. каждая область Qj,j=1,m представляет собой объединение конечного числа отрезков, имеющих положительную длину;
  2. каждая функция gj(x),j=1,m+1 удовлетворяет условию Липшица с соответствующей константой Lj;
  3. компоненты вектора резервов удовлетворяют неравенствам 02εν<Lν(βα), где βα — длина отрезка [α;β], лежащего в допустимой области Q и содержащего точку x*;
  4. начиная с некоторого значения k величины μν, соответствующие непустым множествам Iν, удовлетворяют неравенствам rνμν>2Lν.

Тогда верно следующее:

  1. точка x* является предельной точкой последовательности {xk}, порождаемой методом при ε=0 в условии остановки;
  2. любая предельная точка x0 последовательности {xk} является решением исходной задачи оптимизации;
  3. сходимость к предельной точке x0 является двухсторонней, если x0a,x0b.

Модификации метода

Параллельная модификация

Общая схема последовательного метода выглядит следующим образом:

  1. Упорядочить точки предшествующих испытаний в порядке возрастания их координат: a=x0<<xi<<xk=b.
  2. Вычислить для каждого интервала (xi1;xi),1ik характеристику R(i).
  3. Определить интервал (xt1;xt), которому соответствует максимальная характеристика R(t)=max{R(i),1ik}.
  4. Провести следующее испытание в точке xk+1=d(t)(xt1;xt), где d(t) — правило размещения точки следующего испытания в интервале с номером t.
  5. Проверить выполнение критерия остановки xtxt1<ε.

Параллельная модификация заключается в том, что на шаге 3 вместо одного интервала с наилучшей характеристикой выбирать p>1 интервалов в порядке убывания характеристик и параллельно проводить в каждом из них испытания.

Схема параллельного алгоритма:

  1. Упорядочить точки предшествующих испытаний в порядке возрастания их координат: a=x0<<xi<<xk=b.
  2. Вычислить для каждого интервала (xi1;xi),1ik характеристику R(i).
  3. Характеристики интервалов упорядочить по убыванию: R(i1)>>R(ik).
  4. Для всех интервалов с номерами i1,,ip провести испытания в точках xk+j=d(ij)(xij1;xij),j=1,p.
  5. Проверить выполнение критерия остановки: j,1jp:xijxij1<ε.

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

Модификация для решения задач c гёльдеровыми функциями

Метод достаточно просто обобщается на случай, когда функции gj(x),j=1,m+1 удовлетворяют условию Гёльдера с показателем 1/n, где n, то есть

|gj(x+Δx)gj(x)|Hj(Δx)1/n,ax+Δxb.

На шаге 3 значения μν вычисляются по формуле:

μν=max{|gν(xi)gν(xj)|/(xixj)1/n:i,jIν,i>j}.

На шаге 5 Δi=(xixi1)1/n.

На шаге 7 в случае совпадения индексов концевых точек

xk+1=12(xt+xt1)sgn(ztzt1)|ztzt1|n2rνμνn,ν=ν(xt)=ν(xt1).

На шаге 8 критерий остановки принимает вид (xtxt1)1/n<ε.

Замечания

  • Параметры rν отвечают за надежность метода. Чем больше их значения, тем больше итераций метода требуется для достижения заданной точности и тем вероятнее выполнение условия сходимости 4. Если устремить все rν к бесконечности, то R(i)=Δi, то есть метод превращается в перебор по равномерной сетке.
  • Использование ненулевого вектора резервов позволяет ускорить сходимость метода, однако при этом необходимо оценить возможность выполнения условия сходимости 3.
  • Одномерный метод может быть применен для решения многомерных задач без ограничений. Многомерная задача на множестве S={(x1,,xn)n:aixibi,i=1,n} представляется в виде
min(x1,,xn)Sf(x1,,xn)=mina1x1b1mina2x2b2minanxnbnf(x1,,xn).

Для решения задачи mina1x1b1ϕ(x1), где ϕ(x1)=mina2x2b2minanxnanf(x1,,xn) можно использовать одномерный алгоритм, но, чтобы вычислить значение функции ϕ(x1), необходимо решить задачу оптимизации размерности n1.

Если n=2, то задача mina2x2b2f(x1,x2) решается одномерным методом (значение переменной x1 при этом зафиксировано), иначе к ней также применяется процедура снижения размерности. Такой способ решения многомерных задач довольно трудоемкий, поэтому на практике применим при n5. Наличие нелинейных функциональных ограничений может привести к потере липшицевости во вспомогательных одномерных задачах.

Литература

  1. Баркалов К. А., СтронгинР. Г. Метод глобальной оптимизации с адаптивным порядком проверки ограничений // Ж. вычисл. матем. и матем. физ. — 2002. — Т. 42. — № 9. — стр. 1338—1350.
  2. Городецкий С. Ю., Гришагин В. А. Нелинейное программирование и многоэкстремальная оптимизация. — Нижний Новгород: Издательство Нижегородского Университета, 2007.
  3. Стронгин Р. Г. Численные методы в многоэкстремальных задачах (информационно-статистические алгоритмы). — Шаблон:М.: Наука, 1978. — 240 с.
  4. Sergeyev Ya. D., Grishagin V. A. Sequential and parallel algorithms for global optimization // Optimization Methods and Software, 3:1-3, 1994, pp. 111—124.
  5. Маркин Д. Л., Стронгин Р. Г. Метод решения многоэкстремальных задач с невыпуклыми ограничениями, использующий априорную информацию об оценках оптимума // Ж. вычисл. матем. и матем. физ., 27:1 (1987), стр. 56—62.

Ссылки

  • [1] - реализация метода на языке C++.
  • [2] - реализация на языке C++ модификации метода метода для решения многокритериальных многомерных задач.

Шаблон:Методы оптимизации