Журнал вычислительной математики и математической физики, 2021, T. 61, № 7, стр. 1059-1069

Численное исследование задач оптимизации больших размерностей с использованием модификации метода Б.Т. Поляка

А. Н. Андрианов 2***, А. С. Аникин 1**, А. Ю. Горнов 1*

1 Институт динамики систем и теории управления СО РАН
664033 Иркутск, ул. Лермонтова, 134, Россия

2 Институт прикладной математики им. М.В. Келдыша РАН
125047 Москва, Миусская пл., 4, Россия

*** E-mail: and@a5.kiam.ru
** E-mail: anikin@icc.ru
* E-mail: gornov@icc.ru

Поступила в редакцию 26.11.2020
После доработки 26.11.2020
Принята к публикации 11.03.2021

Полный текст (PDF)

Аннотация

Предложена модификация специального метода выпуклой оптимизации Б.Т. Поляка. Свойства соответствующего алгоритма исследованы путем вычислительных экспериментов для задач выпуклой сепарабельной и несепарабельной оптимизации, невыпуклых задач оптимизации потенциалов атомно-молекулярных кластеров и модельной задачи оптимального управления. Реализованы последовательные и параллельные версии алгоритма, позволившие решить задачи с размерностями до ста миллиардов переменных. Библ. 10. Фиг. 4. Табл. 6.

Ключевые слова: выпуклая оптимизация, метод Б.Т. Поляка, задачи больших размерностей.

1. ВВЕДЕНИЕ

В ранних работах Бориса Теодоровича Поляка (см., например, [1]) был предложен (суб)градиентный метод поиска экстремума в выпуклых задачах математического программирования. Большого внимания специалистов метод не привлек, что связано, очевидно, с некоторыми его “неудобными” особенностями. Во-первых, сходимость метода гарантировалась только при минимизации выпуклых функций, нарушение выпуклости могло приводить к нарушению релаксации на итерациях. Во-вторых, для работы метода требовалось априорное знание точного значения функции в экстремальных точках. Сформулированные требования и наличие развиваемых в те годы методов сопряженных градиентов Флетчера–Ривса и Полака–Поляка–Рибьера (см. [2]) привели к незаслуженному, на наш взгляд, снижению активности по исследованию и использованию предложенного алгоритма.

Новый всплеск интереса к методу появился лишь в последние годы, что связано, очевидно, с рассмотрением больших и сверхбольших задач оптимизации. В соответствии с современной классификацией (см., например, [3], [4]) задачи выпуклой оптимизации можно разделить по размерности на: “Small” – до 100 переменных, “Medium” – от ${{10}^{3}}$ до ${{10}^{4}}$, “Large” – от ${{10}^{5}}$ до ${{10}^{7}}$ и “Huge” – более ${{10}^{8}}$ переменных. В соответствии с доминирующей в настоящее время точкой зрения решать задачи выпуклой оптимизации размерности ${{10}^{8}}$ и более при отсутствии разреженности (при “плотных” векторах) с использованием современной вычислительной техники малореально.

Основные недостатки метода Поляка при рассмотрении задач, в которых указанные требования не выполняются, в том числе, невыпуклых, возможно преодолевать путем введения несложных модификаций. Например, шаг метода по направлению градиента в общем случае может приводить в точку, в которой значение функции больше, чем значение в текущей точке. В этой ситуации можно, не слишком утруждаясь, организовать кратное уменьшение шага, например, в два раза, при этом свойство релаксации будет гарантировано, если, конечно, еще не найдено решение из множества оптимальных. Однако сильные стороны метода (“дешевая” итерация, малые требования к оперативной памяти) могут оказаться очень удобными при рассмотрении задач больших и сверхбольших размерностей.

В работе рассматриваются модификации метода Поляка, ориентированные на решение больших и свербольших задач оптимизации. На простейших примерах из семейств выпуклых функций сепарабельного и квазисепарабельного типа исследуются возможности численного решения гладких задач безусловной минимизации растущих размерностей. На примерах мультиэкстремальных задач оптимизации потенциалов атомно-молекулярных кластеров Морса (см. [5]) и Китинга (см. [6]) исследуются глобализующие свойства модификации метода Поляка. Для нелинейных задач оптимального управления оцениваются возможности решения аппроксимативных задач на сетках с уменьшающимся постоянным шагом. Рассматриваемые модификации метода реализованы на языке С (компиляторы BCC, GCC, Clang и ICC) под управлением операционных систем Linux, Mac OS X и Windows с использованием технологий распараллеливания OpenMP и MPI. Приводимые в работе вычислительные эксперименты выполнялись как на обычных персональных компьютерах, так и на кластерных системах МВС-100К Межведомственного Суперкомпьютерного Центра (МСЦ) РАН и Института прикладной математики им. М.В. Келдыша (ИПМ) РАН.

2. ОБЩАЯ СТРУКТУРА МЕТОДОВ ГРАДИЕНТНОГО ТИПА

Рассматривается стандартная задача конечномерной оптимизации:

(1)
$f(x) \to min,\quad f(x) \in \mathbb{R},\quad x \in {{\mathbb{R}}^{n}}.$

Итерация классического алгоритма градиентного типа записывается в следующем традиционном виде:

(2)
${{x}_{{k + 1}}} = {{x}_{k}} + {{\alpha }_{k}}{{d}_{k}},$
где направление спуска ${{d}_{k}}$ выбирается как антиградиент минимизируемой функции $f(x)$ в точке ${{x}_{k}}$:

(3)
${{d}_{k}} = - \nabla f({{x}_{k}}).$

Размер шага ${{\alpha }_{k}}$ может выбираться разными способами, опирающимися на учет свойств целевой функции. Например, для дифференцируемых функций с известной константой Липшица оптимальным является выбор шага ${{\alpha }_{k}} = 1{\text{/}}L$. Однако такой способ не всегда применим для задач рассматриваемого класса в силу отсутствия информации о значении константы Липшица. Величина шага в направлении спуска может в общем случае вычисляться по формуле

(4)
${{\alpha }_{k}} = arg\mathop {min}\limits_\alpha f({{x}_{k}} + \alpha {{d}_{k}}).$
Данный вариант обеспечивает наилучшую функцию релаксации на одну итерацию, но требует значительных вычислительных затрат. Для сверхбольших задач оптимизации предлагается использовать вычислительные технологии, основанные на применении методов, не требующих постоянных вычислений оптимизируемой функции и позволяющих исследовать прикладные задачи оптимизации больших и сверхбольших размерностей.

3. МЕТОД Б.Т. ПОЛЯКА И ЕГО МОДИФИКАЦИЯ

Метод был предложен Б.Т. Поляком в [1] (и, по нашим сведениям, дальнейшего развития не получил):

(5)
${{x}_{{i + 1}}} = {{x}_{i}} - \frac{{f({{x}_{i}}) - f{\text{*}}}}{{{{{\left\| {\nabla f({{x}_{i}})} \right\|}}^{2}}}}\nabla f({{x}_{i}}),$
где $f{\text{*}}$ – известное минимальное значение функции.

Для одномерного случая метод совпадает с методом Ньютона для решения уравнения $f(x) = f{\text{*}}$.

Поскольку в большинстве реальных постановок задач оптимизации $f{\text{*}}$ заранее не известно, предлагается ввести некоторую величину ${{\delta }_{f}} > 0$, определяющую прогнозируемое значение оптимизируемой функции на каждом шаге:

(6)
$\begin{gathered} f* = f({{x}_{i}}) - {{\delta }_{f}}, \\ {{x}_{{i + 1}}} = {{x}_{i}} - \frac{{{{\delta }_{f}}}}{{{{{\left\| {\nabla f({{x}_{i}})} \right\|}}^{2}}}}\nabla f({{x}_{i}}). \\ \end{gathered} $

Сходимость метода следует из теоремы, доказанной в [1]:

Теорема 1. Пусть $f(x)$ является выпуклой, непрерывной, $Q$ выпукло и замкнуто, существует точка минимума $x{\kern 1pt} * \in Q$, $f(x{\kern 1pt} *) = f{\text{*}}$ и $\left\| {\nabla f(x)} \right\| \leqslant c$ на $S = \left\{ {x \in Q,\left\| {x - {{x}^{0}}} \right\| \leqslant \left\| {x{\kern 1pt} {\text{*}} - {{x}^{0}}} \right\|} \right\}.$ Тогда в методе (5) $f({{x}^{n}}) \to f{\text{*}}$, а ${{x}^{n}}$ слабо сходится к некоторой точке минимума.

Здесь функция $f(x)$ определена на некотором множестве $Q$. В случае неактивных границ и использования множеств простой структуры (например, параллелепипедного типа), приведенные результаты применимы к рассматриваемой постановке (1).

Алгоритм предлагаемой модификации метода Б.Т. Поляка строится следующим образом.

В качестве входных данных используются: начальная точка ${{x}_{0}}$, точность по норме градиента ${{\varepsilon }_{\nabla }} > 0$, точность по функции ${{\varepsilon }_{f}} > 0$, прогнозная оценка ${{\delta }_{f}} > 0$, коэффициент корректировки шага $0 < k < 1$, минимально допустимый шаг ${{\varepsilon }_{\lambda }} > 0$, $i = 0$ – номер итерации.

Algorithm 1.  Основной цикл алгоритма

 1: Вычисляется $f({{x}_{i}})$, $\nabla f({{x}_{i}})$, $\left\| {\nabla f({{x}_{i}})} \right\|$

 2: if $\left\| {\nabla f({{x}_{i}})} \right\| < {{\varepsilon }_{\nabla }}$ или $(f({{x}_{{i - 1}}}) - f({{x}_{i}})) < {{\varepsilon }_{f}}$ then

 3:  переходим на шаг 13

 4: end if

 5: Находится шаг $\lambda = \tfrac{{{{\delta }_{f}}}}{{{{{\left\| {\nabla f({{x}_{n}})} \right\|}}^{2}}}}$

 6: Вычисляется ${{x}_{{i + 1}}} = {{x}_{i}} - \lambda \cdot \nabla f({{x}_{i}})$

 7: if $f({{x}_{{i + 1}}}) < f({{x}_{i}})$, then

 8:  полагается $i = i + 1$ и выполняется переход на шаг 1

 9: end if

10: if $\lambda > {{\varepsilon }_{\lambda }}$ then

11:  $\lambda = \lambda \cdot k$ и выполняется переход к шагу 6

12: end if

13: Возвращается ${{x}_{i}}$ – как найденная точка минимума

Утверждение о сходимости предлагаемого метода для выпуклых задач с известным $f{\text{*}}$ и половинным делением шага ($k = 0.5$) является тривиальным следствием теоремы 1, поскольку последовательность модифицированного метода обязательно содержит в себе последовательность исходного, сходимость которого строго доказана.

Можно выделить следующие особенности предложенной модификации.

1. При соответствующей настройке алгоритмических параметров (${{\delta }_{f}}$) предложенный метод может делать “большие” шаги, что добавляет ему глобализующие свойства.

2. Метод имеет высокий потенциал параллелизма.

3. Алгоритм имеет простую конструкцию, что имеет большое значение при реализации метода на ряде высокопроизводительных архитектур, например, GPU.

Рассмотрим далее примеры использования предложенной модификации метода при решении экстремальных задач различных классов.

4. ВЫПУКЛАЯ ОПТИМИЗАЦИЯ. СЕПАРАБЕЛЬНАЯ ТЕСТОВАЯ ЗАДАЧА

Решение задач безусловной минимизации класса “Huge-Scale” естественным образом сопряжено с рядом сложностей, одна из которых – собственно, размерность. Увеличение числа переменных очевидным образом влечет за собой повышение требований к объему памяти доступной вычислительной системы. При рассмотрении задач с предельными размерностями возникают ситуации, когда требуемый объем памяти слишком велик для одного вычислительного узла, что влечет за собой необходимость использования распределенных суперкомпьютерных мощностей. Объем памяти, требуемый для задач различной размерности, приведен в табл. 1.

Таблица 1.  

Объем памяти (ОЗУ), требуемой для хранения $n$-мерного вектора вещественных чисел (float – одинарная точность, double – двойная)

$n$ Float Double
${{10}^{2}}$ 0.39 Kb 0.78 Kb
${{10}^{3}}$ 3.91 Kb 7.81 Kb
${{10}^{4}}$ 39.06 Kb 78.13 Kb
${{10}^{5}}$ 390.63 Kb 781.25 Kb
${{10}^{6}}$ 3.81 Mb 7.63 Mb
${{10}^{7}}$ 38.15 Mb 76.29 Mb
${{10}^{8}}$ 381.47 Mb 762.94 Mb
${{10}^{9}}$ 3.73 Gb 7.45 Gb
${{10}^{{10}}}$ 37.25 Gb 74.51 Gb
${{10}^{{11}}}$ 372.53 Gb 745.06 Gb
${{10}^{{12}}}$ 3.63 Tb 7.28 Tb

Можно увидеть, что с точки зрения потребления памяти задачи с размерностями до ${{10}^{9}}$ вполне возможно решать на современных вычислительных системах с общей памятью, задачи с большими размерностями требуют использования памяти суперкомпьютеров.

Рассмотрим сепарабельную функцию, имеющую следующий вид:

(7)
$f(x) = \sum\limits_{i = 1}^n {(x_{i}^{2} + x_{i}^{6})} .$

Очевидно, что данная функция имеет минимум в точке, где все компоненты вектора $x$ равны 0 и значение функции в этой точке также равно 0.

Расчеты проводились на суперкомпьютерах ИПМ РАН и МСЦ РАН, имеющих ограничение в 1 ГБ ОЗУ на процессорное ядро. Данное ограничение необходимо учитывать при выборе числа требуемых процессоров, чтобы не допустить “перерасхода” памяти на вычислительных узлах. Результаты расчетов для задач с различной размерностью приведены в табл. 2 и на фиг. 1.

Таблица 2.  

Время [c], затраченное на работу алгоритма в зависимости от размерности тестовой сепарабельной функции

$n$ Core i7, 4 CPU ИПМ, 100 CPU МСЦ, 100 CPU МСЦ, 1000 CPU
${{10}^{2}}$ 1.02559
${{10}^{3}}$ 1.02685 1.58932 1.44929
${{10}^{4}}$ 1.03031 1.63431 1.72392
${{10}^{5}}$ 1.03406 1.63837 1.92358
${{10}^{6}}$ 1.12513 1.64386 2.12392 2.27892
${{10}^{7}}$ 2.01723 1.72646 2.23966 2.40381
${{10}^{8}}$ 10.93844 2.22012 3.77897 3.36539
${{10}^{9}}$ 16.29881 18.55662 7.78179
${{10}^{{10}}}$ 140.30873 160.74543 58.09801
${{10}^{{11}}}$ 198.05384
Фиг. 1.

Время, затраченное на работу алгоритма в зависимости от размерности задачи: (а) – сепарабельная функция, (б) – несепарабельная функция.

Максимальная размерность тестовой сепарабельной задачи, которую удалось решить – ${{10}^{{11}}}$ переменных. На фиг. 1 хорошо видна линейная зависимость времени расчета от числа переменных, что говорит о хорошей масштабируемости предложенной модификации алгоритма.

5. ВЫПУКЛАЯ ОПТИМИЗАЦИЯ. НЕСЕПАРАБЕЛЬНАЯ ТЕСТОВАЯ ЗАДАЧА

Рассмотрим тестовую несепарабельную функцию вида

(8)
$f(x) = \sum\limits_{i = 1}^n {x_{i}^{2}} + \sum\limits_{i = 2}^n {{{{({{x}_{i}} - {{x}_{{i - 1}}})}}^{2}}} .$

При реализации варианта алгоритма для этого класса задач потребовалось применение технологии обмена сообщениями MPI для кластерных вычислительных систем. Произведенные оценки показали, что обмен данными между вычислительными узлами при нахождении градиента функции составляют незначительную величину от общего времени расчетов. Основным лимитирующим фактором для алгоритма все так же является объем доступной памяти.

Результаты расчетов для задач с различной размерностью приведены в табл. 3 и на фиг. 1. Произведенные вычислительные эксперименты показали, что для несепарабельных задач также имеет место линейная зависимость временных затрат от размерности. В частности, решение “максимальной” задачи с ${{10}^{{11}}}$ переменными с использованием 1000 процессоров потребовало всего 6 мин.

Таблица 3.  

Время [c], затраченное на работу алгоритма в зависимости от размерности тестовой несепарабельной функции

$n$ Core i7, 4 CPU ИПМ, 100 CPU МСЦ, 100 CPU МСЦ, 1000 CPU
${{10}^{2}}$ 1.02845
${{10}^{3}}$ 1.03536 1.52187 1.08275
${{10}^{4}}$ 1.03566 1.59923 1.30111
${{10}^{5}}$ 1.05166 1.56577 1.33428
${{10}^{6}}$ 1.28414 1.60642 1.79563 2.62236
${{10}^{7}}$ 4.17233 1.65246 2.00984 3.68216
${{10}^{8}}$ 33.29102 3.29295 5.99972 4.15825
${{10}^{9}}$ 17.26339 41.40902 10.97092
${{10}^{{10}}}$ 246.75377 363.31317 88.66335
${{10}^{{11}}}$ 358.11812

6. НЕВЫПУКЛАЯ ОПТИМИЗАЦИЯ. ПОИСК МОЛЕКУЛЯРНЫХ КЛАСТЕРОВ С МИНИМАЛЬНОЙ ЭНЕРГИЕЙ

Рассматривается потенциальная функция Морса (см. [5])

(9)
$f(x) = {{V}_{M}} = \sum\limits_{i = 1}^n {\sum\limits_{j > i}^n {[{{{({{e}^{{{{\rho }_{0}}(1 - {{r}_{{ij}}})}}} - 1)}}^{2}} - 1]} } .$

Задача минимизации данного потенциала является популярной “мультиэкстремальной” задачей глобальной оптимизации с астрономически растущим от размерности числом локальных экстремумов. Данная функция относится к классу несепарабельных, и оптимальное значение $f{\text{*}}$ неизвестно.

Традиционно для решения задач такого типа применяются специализированные методы невыпуклой оптимизации. Предложенная модификация алгоритма, дополненная механизмом случайного мультстарта, позволила успешно найти глобальные решения для кластеров, содержащих до 80 атомов. При этом проявились нестандартные “глобализующие” свойства изначально локального метода, аппроксимирующего случайное распределение проб в окрестности рекордного значения. Примеры проекций траекторий спусков приведены на фиг. 2.

Фиг. 2.

Проекции траекторий спусков для метода Поляка (модиф.) при различных значениях ${{\delta }_{f}}$; минимизация потенциала Морса, 80 атомов (240 переменных).

7. МИНИМИЗАЦИЯ ПОТЕНЦИАЛА КИТИНГА

Рассмотрим задачу минимизации потенциала Китинга (см. [6]), моделирующего межатомное взаимодействие в кристаллических структурах “кремний–германий”:

${{E}_{k}} = \sum\limits_{i = 1}^n {\left[ {\frac{3}{{16}}\sum\limits_{j = 1}^4 {\frac{{{{\alpha }_{{ij}}}}}{{d_{{ij}}^{2}}}{{{\left\{ {{{{\left\| {{{r}_{i}} - {{r}_{j}}} \right\|}}^{2}} - d_{{ij}}^{2}} \right\}}}^{2}}} + \frac{3}{8}\sum\limits_{j = 1}^4 {\sum\limits_{k = j + 1}^4 {\frac{{{{\beta }_{{ijk}}}}}{{{{d}_{{ij}}}{{d}_{{ik}}}}}} } {{{\left\{ {\left\langle {{{r}_{i}} - {{r}_{j}},{{r}_{i}} - {{r}_{k}}} \right\rangle + \frac{{{{d}_{{ij}}}{{d}_{{ik}}}}}{3}} \right\}}}^{2}}} \right]} {\kern 1pt} .$

С применением предложенной модификации метода авторами производилась минимизация потенциала Китинга для кристалла с 1 029 000 переменными (343 000 атомов в кристаллической решетке). Проводилось сравнение результатов расчетов с результатами вычислений, полученных с помощью метода сопряженных градиентов (вариант Полак–Поляк–Рибьер) и “метода Коши” (модификация метода наискорейшего спуска). Результаты расчетов приведены в табл. 4. На фиг. 3 показано поведение (сходимость) сравниваемых алгоритмов оптимизации.

Таблица 4.  

Минимизация потенциала Китинга, 1 029 00 переменных (343 000 атомов)

Mетод Bремя, с ${{f}_{{{\text{min}}}}}$ $\left\| {\nabla {{f}_{{{\text{min}}}}}} \right\|$
Сопряженных градиентов 1087.242 4.421883e+01 3.401397e–05
Коши 2819.445 4.421883e+01 1.734354e–05
Поляка (модиф.) 19  615.083 4.421883e+01 2.191246e–05
Фиг. 3.

Минимизация потенциала Китинга, 1 029 000 переменных (343 000 атомов).

Проводилось исследование поведения модифицированного алгоритма при различных значениях параметра ${{\delta }_{f}}$ на задаче минимизации потенциала Китинга для кристалла с 24 000 переменными (8000 атомов), результаты показаны на фиг. 4.

Фиг. 4.

Минимизация потенциала Китинга, 24 000 переменных (8000 атомов).

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

8. ЗАДАЧА ОПТИМАЛЬНОГО УПРАВЛЕНИЯ

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

$I(u) = \phi (x({{t}_{1}})),$
определенного на траекториях управляемой системы дифференциальных уравнений (дифференциального включения)
(11)
$\dot {x} = f(x(t),u(t),t),$
заданной на интервале времени $t \in [{{t}_{0}},{{t}_{1}}]$. Начальный фазовый вектор ${{x}_{0}} = x({{t}_{0}})$ предполагается фиксированным, на управления наложены ограничения $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{u} \leqslant u(t) \leqslant \bar {u}$, где $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{u} $, $\bar {u}$ – фиксированные векторы. Рассматриваемая задача занимает центральное место в теории оптимального управления, к такой постановке сводится большое количество задач более сложных классов (с интегральными функционалами, с терминальными и фазовыми ограничениями, с нефиксированным временем и др.). Для задачи в такой постановке получен значительный объем глубоких теоретических результатов и предложено множество вычислительных методов. Однако практика численного решения задач такого класса, особенно прикладных, несмотря на усилия множества специалистов по теории управления, позволяет сделать вывод о доминировании методов, основанных на редукции к задачам конечномерной оптимизации. После введения сетки разбиения интервала времени, например, с равномерным шагом $h$, оказывается возможным сформулировать задачу конечномерной оптимизации, аппроксимирующую задачу в исходной постановке. В аппроксимативной задаче динамика системы описывается рекуррентными соотношениями $x(t + h) = {{f}_{h}}(x(t),u(t),t,h)$, все остальные условия сохраняются. Аппроксимативные задачи, очевидно, представляют собой специальный класс задач математического программирования с условиями типа равенств и неравенств. Если зафиксировать разностную схему, по которой выполняется дискретизация (Эйлера, Рунге–Кутты или другую), то можно воспользоваться предложенным в теории оптимального управления методом оценки градиента функционала, основанным на применении формализма сопряженных переменных. Получаемые по такой схеме алгоритмы оказываются весьма близкими к алгоритмам, которые генерируются с помощью методик быстрого автоматического дифференцирования (см., например, [7]). Вычисление градиента функционала по любой из указанных схем требует решения всего двух задач Коши. Таким образом, задача оптимального управления со свободным правым концом может быть рассмотрена как задача безусловной минимизации с “дешевым”, алгоритмически оцениваемым градиентом, но вычисляемым с некоторой погрешностью, зависящей от размеров шага дискретизации $h$. Размер шага дискретизации непрерывной задачи задает число переменных в аппроксимативной задаче, равное, грубо говоря, $N = ({{t}_{1}} - {{t}_{0}}){\text{/}}h$.

Эффективность предложенной модификации метода Поляка попробуем оценить с помощью численных экспериментов для одной из самых популярных тестовых задач – задачи успокоения нелинейного маятника. Будем последовательно решать аппроксимативные задачи с растущим числом переменных $N$ (и, соответственно, числом прямых ограничений на переменные), фиксируя процессорное время расчета, число итераций, решенных задач Коши и достигнутое значение функционала.

Динамика модели описывается системой (см., например, [8])

(12)
${{\dot {x}}_{1}} = {{x}_{2}},\quad {{\dot {x}}_{2}} = u - sin{{x}_{1}},$
определенной на интервале времени $t \in [0,\;5]$ с начальными условиями ${{x}_{1}}(0) = 5$, ${{x}_{2}}(0) = 0$. Требуется минимизировать функционал $I(u) = x_{1}^{2}(5) + x_{2}^{2}(5)$ при ограничениях на управления $\left| {u(t)} \right| \leqslant 1$. В задаче имеет место два локальных экстремума, глобально оптимальное значение функционала $I(u*) = 11.908013767$, полученное с применением метода интегрирования DOPRI8 (8-й порядок точности), достигается на релейном управлении:

$u{\text{*}}(t) = \left\{ \begin{gathered} + 1,\quad t \in [0.0,\;0.98244286] \cup [4.55036911,\;5.0], \hfill \\ - 1,\quad t \in [0.98244286,\;4.55036911]. \hfill \\ \end{gathered} \right.$

Для решения задач Коши использовался метод интегрирования из семейства Рунге–Кутты 2-го порядка (так называемый метод “Эйлера с итерациями”). Расчет прерывался при выполнении условия $I({{u}^{{k - 1}}}) - I({{u}^{k}}) < {{10}^{{ - 6}}}$. Все задачи решались, начиная с одинаковых начальных приближений ${{u}^{0}}(t) \equiv - 0.5$. В этой задаче, очевидно, известна гарантированная, но неоптимальная, нижняя оценка значения функционала, равная $0$.

Эксперимент выполнялся с использованием стандартного программного комплекса (ПК) OPTCON-A (см. [9], [10]) в состав которого включена предложенная модификация алгоритма. Результаты эксперимента приведены в табл. 5.

Таблица 5.  

Время решения задачи оптимального управления программным комплексом OPTCON-A ($N$ – число узлов сетки дискретизации)

$N$ $I(u{\kern 1pt} {\text{*}})$ $t$, с Задачи Коши Норма градиента Итерации
101 1.191521713372e+01 0 135 5.7e–3 15
201 1.190999877810e+01 0 317 2.4e–4 23
401 1.190841888965e+01 0 276 8.0e–5 24
801 1.190817286834e+01 0 182 2.2e–4 21
1601 1.190804296061e+01 0 241 1.2e–5 21
3201 1.190804923806e+01 0 167 6.8e–5 17
6401 1.190801439789e+01 1 109 1.8e–5 16
12 801 1.190805357054e+01 3 206 3.5e–5 19
25 601 1.190806771202e+01 8 237 4.7e–5 21
51 201 1.190812331446e+01 13 203 4.4e–5 19
102 401 1.190811071137e+01 22 167 3.8e–5 17
204 801 1.190815091482e+01 44 166 4.0e–5 17
409 601 1.190814768992e+01 88 166 2.9e–5 17
819 201 1.190847626971e+01 144 131 2.9e–5 15

Максимальной размерностью задач, решенных при использовании ПК OPTCON" A, оказалась размерность 819 201, что связано, очевидно, с излишним объемом внутренней памяти комплекса, используемой для работы других алгоритмов. Процессорное время решения при размерностях задач от 101 до 3201 переменной было менее 0.5 с и оценено в 0 с, поскольку используемый датчик времени позволяет учитывать его с точностью до 1. Начиная с размерности 401 переменных, во всех задачах получены значения функционала, с точностью до четырех знаков совпадающие с известным оптимальным значением. Быстрый рост процессорного времени с ростом размерности задач связан с неэффективностью работы процедур аппроксимации управления общего назначения, не позволяющих учитывать специфические особенности алгоритма.

Второй эксперимент проводился со специальной программной реализацией алгоритма, проверенной с использованием нескольких популярных компиляторов на нескольких различных компьютерах. В эксперименте участвовали следующие пары “процессор–компилятор”.

1. Intel Core i7-2640M; Linux; icc-15.0.1, gcc-4.8.2, gcc-4.9.1, clang-3.4.2, clang-3.5.0.

2. Intel Core i7-2640M; Mac OS X; gcc-4.8.3, clang-3.4.2.

3. Intel Core i5 4260U; Mac OS X; gcc-4.8.3, clang-600.0.56 (based on LLVM 3.5svn).

4. AMD Opteron 6220; Linux; icc-14.0.0.

Результаты выполненных расчетов приведены в табл. 6. Наилучшую производительность показала версия алгоритма, реализованная с использованием компилятора icc.

Таблица 6.  

Время [c] решения задачи оптимального управления специализированной программой ($N$ – число узлов сетки дискретизации)

N AMD 6220
Linux
i7-2640M
Linux
i7-2640M
Mac OS X
i5 4260U
Mac OS X
icc icc gcc clang gcc clang gcc clang
14.0.0 15.0.1 4.8.2 3.4.2 4.8.3 3.4.2 4.8.3 3.5SVN
101 0.006 0.001 0.006 0.009 0.001 0.001 0.002 0.002
201 0.014 0.003 0.012 0.005 0.003 0.003 0.004 0.004
401 0.018 0.007 0.014 0.014 0.006 0.006 0.009 0.008
801 0.033 0.010 0.023 0.028 0.011 0.010 0.015 0.015
1601 0.019 0.010 0.019 0.014 0.006 0.007 0.008 0.008
3201 0.085 0.031 0.065 0.070 0.044 0.034 0.045 0.046
6401 0.078 0.041 0.099 0.100 0.046 0.051 0.066 0.069
12 801 0.289 0.159 0.271 0.311 0.156 0.154 0.220 0.255
25 601 0.674 0.298 0.620 0.687 0.366 0.380 0.500 0.495
51 201 1.030 0.521 1.060 1.234 0.627 0.613 0.870 0.942
102 401 1.890 0.887 1.799 2.023 1.142 1.160 1.505 2.100
204 801 3.546 1.765 4.415 4.015 2.352 2.319 2.866 3.044
40 9601 7.251 3.576 7.133 8.034 4.588 4.511 5.509 5.938
819 201 11.662 5.714 11.608 12.883 7.447 7.315 8.752 8.682
1 638 401 18.197 8.929 18.203 20.443 11.588 11.381 13.547 13.313
3 276 801 35.353 17.975 35.947 40.622 22.972 25.862 27.110 26.504
6 553 601 50.279 26.991 52.610 59.321 33.680 33.090 39.626 39.432
13 107 201 103.237
26 214 401 205.603
52 428 801 346.577
104 857 601 692.295

Проведенные эксперименты показали принципиальную возможность решения аппроксимативных задач оптимального управления с размерностями, превышающими ${{10}^{8}}$ даже без применения параллельных вычислительных технологий.

9. ЗАКЛЮЧЕНИЕ

Рассмотренная в работе модификация метода Поляка позволила создать вычислительные технологии, обладающие способностью эффективно решать экстремальные задачи размерностей “Huge-Scale” из различных классов. На основе численных экспериментов выявлены ограничения по размерности решаемых “плотных” задач, которые оказались значительно большими, чем предполагалось теоретически (см. [3]). Метод Б.Т. Поляка 1969 г. с применением простейших модификаций может рассматриваться в качестве удобного и высокомасштабируемого инструмента для численного решения “больших” задач конечномерной и бесконечномерной оптимизации.

Список литературы

  1. Поляк Б.Т. Минимизация негладких функционалов // Ж. вычисл. матем. и матем. физ. 1969. Т. 9. № 3. С. 509–521.

  2. Поляк Б.Т. Введение в оптимизацию. М.: Наука, 1983. 384 с.

  3. Нестеров Ю.Е. Введение в выпуклую оптимизацию. М.: МЦНМО, 2010. 280 с.

  4. Yurii Nesterov Subgradient Methods for Huge-Scale Optimization Problems // Math. Program. 2014. V. 146. Iss. 1-2. P. 275–297.

  5. Marques J.M.C., Pais A.A.C.C., Abreu P.E. On the use of big-bang method to generate low-energy structures of atomic clusters modeled with pair potentials of different ranges // J. Comput. Chemistry. 2012. V. 33. № 4. P. 442–452.

  6. Keating P.N. Effect of Invariance Requirements on the Elastic Strain Energy of Crystals with Application to the Diamond Structure // Phys. Rev. 1966. V. 145. P. 637–645.

  7. Евтушенко Ю.Г. Оптимизация и быстрое автоматическое дифференцирование. Препринт ВЦ им. А.А. Дородницына РАН, 2013. 144 с.

  8. Горнов А.Ю. Вычислительные технологии решения задач оптимального управления. Новосибирск: Наука, 2009. 278 с.

  9. Gornov A.Yu., Zarodnyuk T.S., Anikin A.S. The computational technique for nonlinear nonconvex optimal control problems based on modification gully method // DEStech Transact. Comput. Sci. Eng. 2018. P. 152–162.

  10. Gornov A.Yu., Tyatyushkin A.I., Finkelstein E.A. Numerical methods for solving terminal optimal control problems // Comput. Math. and Math. Phys. 2016. V. 56. № 2. P. 221–234.

Дополнительные материалы отсутствуют.

Инструменты

Журнал вычислительной математики и математической физики