Журнал вычислительной математики и математической физики, 2020, T. 60, № 5, стр. 815-827

Применение проективного покоординатного спуска в задаче Фекете

Б. Т. Поляк 1*, И. Ф. Фатхуллин 2**

1 ИПУ РАН
117342 Москва, ул. Профсоюзная, 65, Россия

2 МФТИ
141700 Долгопрудный, М. о., Институтский пер., 9, Россия

* E-mail: boris@ipu.ru
** E-mail: ilyas.fn979@gmail.com

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

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

Аннотация

Рассматривается задача минимизации энергии системы из $N$ точек, на поверхности сферы в ${{\mathbb{R}}^{3}}$, взаимодействующих с потенциалом $U = \tfrac{1}{{{{r}^{s}}}}$, $s > 0$, где $r$ – евклидово расстояние между парой точек. В работе предлагается метод проективного покоординатного спуска, использующий быстрый счет функции и градиента, а также покоординатный метод второго порядка, который достаточно быстро приближается к известным из литературы минимальным значениям. Библ. 27. Фиг. 10. Табл. 3.

Ключевые слова: минимизация энергии на сфере, задача Фекете, задача Томсона, проективный покоординатный спуск.

1. ВВЕДЕНИЕ

Пусть задано натуральное $N \geqslant 2$. Задача Фекете порядка $N$ формулируется следующим образом [1]. Найти множество точек ${\mathbf{x}} = {\text{\{ }}{{x}_{1}},\; \ldots ,\;{{x}_{N}}{\text{\} }} \in {{\mathbb{R}}^{{3N}}}$ с ограничением для каждой точки ${{x}_{i}}$ на единичной сфере $S_{i}^{2} = {{S}^{2}} = \{ x \in {{\mathbb{R}}^{3}}:{{\left\| x \right\|}_{2}} = 1\} $ такое, что оно минимизирует потенциальную энергию системы:

(1)
$U({\mathbf{x}}): = \sum\limits_{1 \leqslant i < j \leqslant N} U ({{x}_{i}},{{x}_{j}}),$
т.е. формально решается задача
(2)
${\mathbf{x}}{\kern 1pt} * = \mathop {{\text{argmin}}}\limits_{{\mathbf{x}} \in \prod\nolimits_{i = 1}^N S_{i}^{2}} U({\mathbf{x}}),$
где $U({{x}_{i}},{{x}_{j}})$ – функция взаимного потенциала между точками ${{x}_{i}}$ и ${{x}_{j}}$, которую обычно можно представить в виде ядерной функции от евклидова расстояния ${{r}_{{ij}}} = {{\left\| {{{x}_{i}} - {{x}_{j}}} \right\|}_{2}}$: $\tilde {U}({{r}_{{ij}}}) = U({{x}_{i}},{{x}_{j}})$. Особый интерес представляет изучение ядерной функции Рисса ${{\tilde {U}}_{s}}({{r}_{{ij}}}) = r_{{ij}}^{{ - s}}$, $s > 0$ и логарифмического ядра ${{\tilde {U}}_{0}}({{r}_{{ij}}}) = - log({{r}_{{ij}}})$, которое получается при $s \to 0$. Далее в работе под $U({\mathbf{x}})$ будет подразумеваться функция (1) с ядром ${{\tilde {U}}_{s}}({{r}_{{ij}}})$, $s \geqslant 0$.

При $s = 1$ получается кулоновский потенциал и соответственно задача Томсона. Последняя была поставлена Дж.Дж. Томсоном еще в 1904 г. [2], однако, до сих пор остается нерешенной для произвольного $N$. Задача Фекете привлекла особое внимание математиков, потому что она появляется в списке Смейла [3] – нерешенных задач для 21-го века. Кроме того, задача имеет применения в химии и биологии [4]–[7], а также в силу своей сложности стала эталоном для тестирования численных методов оптимизации [8]. Стоит отметить, что в современных приложениях, например, в моделировании макромолекул [9] также применяются численные методы для минимизации потенциала. Конечно, часто потенциалы имеют более сложный вид и решается задача безусловной оптимизации, однако эти задачи имеют структуру, похожую на задачу Фекете в том смысле, что потенциал является суммой некоторых симметричных функций $K:\mathcal{X} \times \mathcal{X} \to \mathbb{R}$, что позволяет эффективно пересчитывать значение потенциала при смещении одной точки. В контексте вышеупомянутых приложений стоит обозначить, что целью работы является именно локальная минимзация функции (1), и в дальнейшем под ${\mathbf{x}}{\text{*}}$ понимается локальный минимум, ближайший к начальному положению ${{{\mathbf{x}}}^{0}}$.

Учитывая широкое применение, задача Фекете была хорошо изучена [10]–[12]. Известны аналитические решения при $s = 1$ для $N = 2{\kern 1pt} - {\kern 1pt} 6$ и $12$. Для различных $s$ и больших $N$ получены решения с помощью численных методов [13]. В данной статье мы остановимся на обсуждении метода проективного покоординатного градиентного спуска. Рассматриваемый метод использует быстрый счет функции и метод дробления шага. Также предлагается алгоритм второго порядка для решения данной задачи.

Определение точек Фекете есть невыпуклая задача оптимизации с нелинейными ограничениями. Следует отметить, что здесь можно легко избавиться от ограничений, параметризуя каждую точку на сфере двумя углами [14], [15], и решать задачу нелинейной оптимизации без ограничений от $2N$ переменных вместо $3N$. Однако на практике применение градиентных методов в таких координатах существенно замедляет счет оптимизируемой функции и градиента из-за относительно медленного вычисления тригонометрических функций. Поэтому остановимся подробнее на решении задачи в исходных координатах. Можно применять градиентные методы, рассматривая зависимость энергии от всех $3N$ переменных, и на каждой итерации перемещать все точки одновременно. Сравнительный анализ в разд. 5 показывает, что покоординатный метод оказывается вполне конкурентоспособным. Более того, появляется возможность использовать покоординатную версию метода второго порядка, что оказывается затруднительным для полноградиентной версии (так как это требует подсчета и обращения матрицы размера $3N \times 3N$). Поэтому интересно рассматривать проективный покоординатный спуск в исходных координатах. Еще одним аргументом в пользу изучения покоординатного спуска на примере задачи вида (1) является то, что впоследствии это дает возможность эффективно распараллелить вычисления. Если удается эффективно организовать приближенный счет функции и его градиента по ближайшим соседям, то можно на каждой итерации случайно разбивать множество точек так, чтобы в одну группу попадали близкие точки, и проводить блочно-покоординатный спуск параллельно для каждой группы [9]. В отличие от [16], в описанном ниже методе координата точки сразу после шага проектируется на поверхность сферы, а не раскладывается на нормальную и касательную составляющие.

2. МЕТОД ПЕРВОГО ПОРЯДКА

Итак, мы минимизируем функцию $3N$ переменных ${\mathbf{x}} = ({{x}_{1}},\; \ldots ,\;{{x}_{N}})$

(3)
$U({\mathbf{x}}): = {{\sum\limits_{1 \leqslant i < j \leqslant N} {\left\| {{{x}_{i}} - {{x}_{j}}} \right\|} }^{{ - s}}}$
при наличии ограничений
(4)
${{x}_{i}} \in {{R}^{3}},\quad {{\left\| {{{x}_{i}}} \right\|}_{2}} = 1,\quad i = 1,\; \ldots ,\;N.$
Заметим, что и эта функция, и ограничения невыпуклы. Более того, функция дифференцируема не всюду (при ${{x}_{i}} \ne {{x}_{j}}$) и не ограничена на множестве (4). Поэтому для ее минимизации нужны специальные методы.

Зафиксируем положения $N - 1$ точек (без $k$-й) на единичной сфере. Обозначим через

(5)
${{U}_{k}}(y,{{{\mathbf{\alpha }}}_{k}}): = {{\left. {U({\mathbf{x}})} \right|}_{{({{x}_{1}}, \ldots ,{{x}_{{k - 1}}},y,{{x}_{{k + 1}}}, \ldots ,{{x}_{N}})}}}$
функцию от $k$-й переменной, в которой все остальные компоненты x зафиксированы и являются параметрами ${{{\mathbf{\alpha }}}_{k}} = ({{x}_{1}},\; \ldots ,\;{{x}_{{k - 1}}},{{x}_{{k + 1}}},\; \ldots ,\;{{x}_{N}})$. Получаем задачу относительно переменной (${{x}_{k}} \in {{\mathbb{R}}^{3}}$) с ограничением на сфере:

(6)
$y{\kern 1pt} * = \mathop {\arg \min }\limits_{y \in {{S}^{2}}} {{U}_{k}}(y,{{{\mathbf{\alpha }}}_{k}}).$

Градиент и гессиан (3) можно вычислить аналитически, при $s > 0$ и $y: = {{x}_{i}}$:

(7)
$\nabla {{U}_{k}}(y,{{{\mathbf{\alpha }}}_{k}}) = - \sum\limits_{i = 1,i \ne k}^N {\frac{s}{{r_{{ik}}^{{s + 2}}}}} (y - {{x}_{i}}),$
(8)
${{\nabla }^{2}}{{U}_{k}}(y,{{{\mathbf{\alpha }}}_{k}}) = s\sum\limits_{i = 1,i \ne k}^N {\frac{{ - Ir_{{ik}}^{2} + (s + 2)(y - {{x}_{i}}){{{(y - {{x}_{i}})}}^{{\text{т}}}}}}{{r_{{ik}}^{{s + 4}}}}} ,$
где ${{r}_{{ik}}}: = \left\| {y - {{x}_{i}}} \right\|$.

Оценим норму гессиана (8). В силу эквивалентности норм в конечномерных пространствах ${{l}_{p}}$ и ${{l}_{q}}$ (размерность пространства $N - 1$) при $s \geqslant 1$ найдется константа $C = C(s,N)$:

(9)
$\left\| {{{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})} \right\| \leqslant s(s + 1)\sum\limits_{i = 1,i \ne k}^N {\frac{1}{{r_{{ik}}^{{s + 2}}}}} \leqslant C{{\left( {\sum\limits_{i = 1,i \ne k}^N {\frac{1}{{r_{{ik}}^{s}}}} } \right)}^{{\tfrac{s}{{s + 2}}}}} = C{{(U({\mathbf{x}}))}^{{\tfrac{s}{{s + 2}}}}} = :L.$

Тогда если обозначить $Q = \left\{ {{\mathbf{x}} \in \prod\nolimits_{i = 1}^N {S_{i}^{2}} :U({\mathbf{x}}) \leqslant U({{{\mathbf{x}}}^{0}})} \right\}$, то на таком множестве будет выполнено

(10)
$\left\| {\nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}) - \nabla {{U}_{k}}({{y}_{k}},{{{\mathbf{\alpha }}}_{k}})} \right\| \leqslant L\left\| {{{x}_{k}} - {{y}_{k}}} \right\|\quad \forall k \in \overline {1,N} ,\quad {\mathbf{x}},{\mathbf{y}} \in Q.$

Несложно показать, что минимизацией квадратичного приближения (6):

(11)
$x_{k}^{{n + 1}} = \mathop {\arg \min }\limits_{y \in {{S}^{2}}} \left\{ {{{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n}) + \left\langle {\nabla {{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n}),y - x_{k}^{n}} \right\rangle + \frac{L}{2}{{{\left\| {y - x_{k}^{n}} \right\|}}^{2}}} \right\}$
будет являться градиентный шаг с проектированием
(12)
$x_{k}^{{n + 1}} = \frac{{x_{k}^{n} - t\nabla {{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n})}}{{\left\| {x_{k}^{n} - t\nabla {{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n})} \right\|}},$
где $t = 1{\text{/}}L$, $L$ – константа Липшица градиента.

Утверждение 1. Пусть $f({\kern 1pt} \cdot {\kern 1pt} ):{{\mathbb{R}}^{n}} \to \mathbb{R}$ дифференцируема в точке $x \in {{\mathbb{R}}^{n}}:\left\| x \right\| = 1$ и $\left\| {f{\kern 1pt} {\text{'}}(x)} \right\| \ne \left| {(f{\kern 1pt} {\text{'}}(x),x)} \right|$. Тогда существует длина шага ${{t}_{0}} > 0$, что

(13)
$f\left( {\frac{{x - {{t}_{0}}f{\kern 1pt} {\text{'}}(x)}}{{\left\| {x - {{t}_{0}}f{\kern 1pt} {\text{'}}(x)} \right\|}}} \right) < f(x).$

Доказательство 1. Обозначим $y = y(x,t): = \tfrac{{x - tf{\kern 1pt} {\text{'}}(x)}}{{\left\| {x - tf{\kern 1pt} {\text{'}}(x)} \right\|}}$. В силу дифференцируемости $f({\kern 1pt} \cdot {\kern 1pt} )$:

$f(y) - f(x) = (f{\kern 1pt} {\text{'}}(x),y - x) + o\left( {\left\| {y - x} \right\|} \right).$
Так как $\left\| x \right\| = 1$, то существует ${{t}_{1}} > 0:\forall t \in (0,{{t}_{1}})$

$\left\| {x - tf{\kern 1pt} {\text{'}}(x)} \right\| = 1 - t(x,f{\kern 1pt} {\text{'}}(x)) + o(t).$

Тогда $o\left( {\left\| {y - x} \right\|} \right) = o(t)$. Следовательно, найдется ${{t}_{2}} > 0$: $\forall t \in (0,{{t}_{2}})$

$f(y) - f(x) = - t\left( {\frac{{(f{\kern 1pt} {\text{'}}(x),f{\kern 1pt} {\text{'}}(x) - x(x,f{\kern 1pt} {\text{'}}(x)) + xo(1))}}{{\left\| {x - tf{\kern 1pt} {\text{'}}(x)} \right\|}} + \frac{{o(t)}}{t}} \right) < 0.$
Для ${{t}_{0}} = {\text{min}}({{t}_{1}},{{t}_{2}})$ будет выполнено требуемое неравенство (13).

Определение 1. Точку ${\mathbf{x}} \in \prod\nolimits_{i = 1}^N \,S_{i}^{2}$ будем называть стационарной точкой функции $U( \cdot )$, если

$\left\| {(I - {{x}_{k}}x_{k}^{{\text{т}}})\nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})} \right\| = 0\quad \forall k \in \overline {1,N} .$

В недавней работе [17] получены оценки сходимости для задачи вида (6) при некоторых предположениях. В частности, при условии липшицевости градиента на сфере метод (12) генерирует невозрастающую по функции последовательность точек. В нашем случае применим метод дробления шага, который заключается в том, чтобы уменьшать шаг ${{t}_{0}}$ вдвое, при невыполнении условия (13).

Утверждение 2. Пусть $L = C{{(U({{{\mathbf{x}}}^{0}}))}^{{\tfrac{s}{{s + 2}}}}}$ для некоторого начального положения ${{{\mathbf{x}}}^{0}}$, причем $s \geqslant 1$. Тогда последовательность точек ${\text{\{ }}{{{\mathbf{x}}}^{n}}{\text{\} }}_{{n = 1}}^{\infty }$, полученная из (12) (например, последовательным обновлением компонент ${{x}_{k}}$) методом дробления шага, монотонно $U({{{\mathbf{x}}}^{{n + 1}}}) \leqslant U({{{\mathbf{x}}}^{n}})$  $\forall n \in \mathbb{N}$ сходится к стационарной точке функции $U( \cdot )$.

Отметим, что для функции $U({\kern 1pt} \cdot {\kern 1pt} )$, условие (10) не выполнено на всем множестве $\prod\nolimits_{i = 1}^N \,S_{i}^{2}$, однако, ясно, что если (9) выполнено для некоторого ${\mathbf{x}}$, то после шага (12) данная оценка не ухудшится и (10) будет справедливо на траектории.

Итак, опишем общую структуру метода.

1. Выбрать начальное приближение ${{{\mathbf{x}}}^{0}}$.

2. Пока не достигнут критерий останова на $n$-й итерации.

2.1. Выбрать индекс $k$-й точки, которую будем изменять.

2.2. Выбрать шаг ${{t}_{0}} = 1{\text{/}}L$.

2.3. Вычислить градиент $\nabla {{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n}))$ относительно $k$-й точки.

2.4. Сделать шаг (12).

2.5. Если выполнено условие (13), обновить $k$-ю компоненту ${{{\mathbf{x}}}^{n}}$.

Иначе дробить шаг ${{t}_{0}}: = {{t}_{0}}{\text{/}}2$ и перейти к п. 2.4.

3. МЕТОД ВТОРОГО ПОРЯДКА

Идея метода Ньютона и других методов второго порядка заключается в более точном приближении оптимизируемой функции квадратичной функцией вместо параболоида вращения (11), что ведет к большему выигрышу по функции на каждой итерации. Однако несмотря на быструю сходимость таких алгоритмов по количеству итераций, их главным недостатком остается сложность вычисления и обращения матрицы вторых производных. В связи с чем активно развиваются различные модификации метода Ньютона, основанные на приближенном подсчете гессиана (квазиньютоновские методы) [18], [19], а также различные покоординатные версии [20], [21]. Здесь мы остановимся на покоординатной версии метода Ньютона для оптимизации с ограничением на сфере. Разложим функцию ${{U}_{k}}(z,{{\alpha }_{k}}):{{\mathbb{R}}^{3}} \to \mathbb{R}$, зависящую только от координаты одной точки, в ряд Тейлора до второго порядка в окрестности точки ${{x}_{k}}$:

${{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}) + \nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})(z - {{x}_{k}}) + \frac{1}{2}({{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})(z - {{x}_{k}}),(z - {{x}_{k}})) = $
(14)
$ = \;{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}) - \nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}} + \frac{1}{2}({{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}},{{x}_{k}}) + \nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})z - $
$ - \;({{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}},z) + \frac{1}{2}({{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})z,z) = {\mathbf{c}} + \frac{1}{2}({\mathbf{A}}({\mathbf{x}})z,z) - {{{\mathbf{b}}}^{{\text{т}}}}({\mathbf{x}})z.$
Здесь слагаемое ${\mathbf{c}} = {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}) - \nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}} + \tfrac{1}{2}({{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}},{{x}_{k}})$ есть скалярная константа, не зависящая от $z$; ${\mathbf{A}}({\mathbf{x}}) = {{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})$, ${\mathbf{b}}({\mathbf{x}}) = {{\nabla }^{2}}{{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}}){{x}_{k}} - \nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})$. Итак, из разложения (14) мы получаем вспомогательную задачу минимизации неоднородной квадратичной функции на сфере (15). Стоит заметить, что на каждой итерации гессиан ${\mathbf{A}}({\mathbf{x}})$ не является положительно полуопределенным, так как существует направление (радиальное), вдоль которого функция возрастает вместе со своим квадратичным приближением. Отсюда следует, что допустимое множество можно овыпуклить, заменив его единичным шаром, так как решение все равно будет лежать на поверхности сферы

(15)
$x_{i}^{{n + 1}} = \mathop {\arg \min }\limits_{z \in {{S}^{2}}} \left\{ {\frac{1}{2}{{z}^{{\text{т}}}}{\mathbf{A}}({{{\mathbf{x}}}^{n}})z - {{{\mathbf{b}}}^{{\text{т}}}}({{{\mathbf{x}}}^{n}})z} \right\}.$

Решение данной подзадачи опирается на следующий результат.

Утверждение 3. Если ${{\lambda }_{1}} < {{\lambda }_{2}} \leqslant \; \ldots \; \leqslant {{\lambda }_{m}}$ – собственные значения матрицы ${\mathbf{A}}$, а ${{\phi }_{1}},\; \ldots ,\;{{\phi }_{m}}$ – соответствующие ортонормированные собственные векторы и ${{\beta }_{i}} = {{{\mathbf{b}}}^{{\text{т}}}}(x){{\phi }_{i}}$, $i = 1,\; \ldots ,\;m$, причем ${{\beta }_{1}} \ne 0$. Тогда $\phi = \sum\nolimits_{i = 1}^m {{{c}_{i}}} {{\phi }_{i}}$ будет решением задачи (15), если ${{c}_{i}} = \tfrac{{{{\beta }_{i}}}}{{{{\lambda }_{i}} + \mu }}$, $i = 1,\; \ldots ,\;m$, $\mu > - {{\lambda }_{1}}$, выбирается из условия

$\sum\limits_{i = 1}^m {\frac{{\beta _{i}^{2}}}{{{{{({{\lambda }_{i}} + \mu )}}^{2}}}}} = 1.$

Это позволяет построить эффективный метод нахождения решения задачи (15), используя метод деления отрезка пополам. Для этого достаточно ограничить $\mu $ из утверждения (3). Поскольку $0 < {{\lambda }_{1}} + \mu < {{\lambda }_{i}} + \mu $, $1 \leqslant i \leqslant m$, то

$1 = \sum\limits_{i = 1}^m {\frac{{\beta _{i}^{2}}}{{{{{({{\lambda }_{i}} + \mu )}}^{2}}}}} < \sum\limits_{i = 1}^m {\frac{{\beta _{i}^{2}}}{{{{{({{\lambda }_{1}} + \mu )}}^{2}}}}} = \frac{{\mathop {\left\| {\mathbf{b}} \right\|}\nolimits^2 }}{{{{{({{\lambda }_{1}} + \mu )}}^{2}}}}.$
С другой стороны,
$1 = \sum\limits_{i = 1}^m {\frac{{\beta _{i}^{2}}}{{{{{({{\lambda }_{i}} + \mu )}}^{2}}}}} > \frac{{\beta _{1}^{2}}}{{{{{({{\lambda }_{1}} + \mu )}}^{2}}}}.$
Объединяя две оценки, получаем

${{\mu }_{l}} = - {{\lambda }_{1}} + {{\beta }_{1}} \leqslant \mu \leqslant - {{\lambda }_{1}} + \left\| {\mathbf{b}} \right\| = {{\mu }_{u}}.$

Итак, опишем общую структуру проективного покоординатного метода Ньютона.

1. Выбрать начальное приближение ${{{\mathbf{x}}}^{0}}$.

2. Пока не достигнут критерий останова на $n$-й итерации.

2.1. Выбрать индекс $k$ точки, которую будем изменять.

2.2. Вычислить градиент $\nabla {{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n}))$ и гессиан ${{\nabla }^{2}}{{U}_{k}}(x_{k}^{n},{\mathbf{\alpha }}_{k}^{n}))$.

2.3. Сделать шаг (15), обновив $k$-ю компоненту ${\mathbf{x}}$.

4. ВЫБОР НАЧАЛЬНОГО ПРИБЛИЖЕНИЯ, БЫСТРЫЙ СЧЕТ ФУНКЦИИ И ГРАДИЕНТА

4.1. Выбор начального приближения

Функции (1), (5), как уже было отмечено, являются невыпуклыми. Более того, эти функции разрывны на своей области определения и, строго говоря, никакие проективные градиентные методы для поиска минимума здесь не применимы. Однако, если выбор шага и начальной конфигурации гарантируют, что на траектории алгоритм не попадет в область разрывов, то можно получить гарантии сходимости. Итак, при применении градиентных методов для решения (2) важную роль играет выбор начального приближения. В литературе известно множество детерминированных [22], [23] и рандомизированных [24] алгоритмов расположения точек на поверхности сферы. Один из способов – метод Монте-Карло, в котором каждый элемент ${{x}^{0}}$ выбирается из равномерного распределения на поверхности сферы. В предельном случае $N \to \infty $ метод дает равномерную плотность распределения точек на сфере. Однако данный метод имеет явный недостаток в контексте выполнения условия (10), так как положение каждой точки является независимой случайной величиной, то минимальное расстояние между любой парой точек может быть малым, что, как легко видеть из оценки (9), ведет к большой константе $L$ и медленной сходимости. В работе [25] исследован метод “generalized spiral” и поведение $U({{{\mathbf{x}}}^{0}})$ в зависимости от количества точек $N$. Данный метод стремится расположить точки в узлах правильной сферической сетки из шестиугольников (hexogonal set). Так как данный детерминированный метод ассимптотически ограничивает снизу минимальное расстояние между точками и дает разумное приближение задачи (2) по функции, ожидается, что условие (10) будет выполнено на множестве $Q$ с небольшой константой $L$.

4.2. Быстрый счет функции и градиента

В силу специфики задачи можно существенно асимптотически ускорить каждую итерацию алгоритма по сравнению с наивным подходом с помощью быстрого подсчета функции. Как видно из (1), для подсчета энергии необходимо знать лишь попарные расстояния между точками. Поэтому будем хранить в памяти матрицу расстояний. Теперь на каждой итерации (для $i$-й точки) будем обновлять энергию следующим образом: вычтем $N - 1$ слагаемое (те, которые содержат индекс $i$) до выполнения шага, а затем прибавим соответствующие слагаемые после выполнения шага. Таким образом, если положить время вычисления одного слагаемого в (1) равным $\tau $, то получим время вычисления порядка $2N\tau $ вместо ${{N}^{2}}\tau $.

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

(16)
$\left\| {(I - {{x}_{k}}x_{k}^{{\text{т}}})\nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})} \right\|.$
Последнее дает очень важную информацию о системе точек и позволяет определить, какие точки находятся в неустойчивом положении, а значит, дадут наибольшее уменьшение в энергии. При этом такой подход не будет затратным ни по времени, ни по памяти. Казалось бы, на каждой итерации придется считать $N$ градиентов, что требует порядка ${{N}^{2}}$ операций, однако данный подсчет можно провести за линейное время. Пусть на предыдущей итерации двигалась точка с индексом $j$, тогда для обновления градиентов (7) достаточно из каждого градиента $\nabla {{U}_{k}}({{x}_{k}},{{{\mathbf{\alpha }}}_{k}})$, $k \ne j$, вычесть $ - \tfrac{s}{{r_{{jk}}^{{s + 2}}}}({{x}_{k}} - {{x}_{j}})$ до выполнения итерации и прибавить такое же слагаемое после. Кроме того, потребуется $O(N)$ операций, чтобы обновить градиент для $j$-й точки. Согласно полученному критерию можно выбирать точки, например, с максимальной проекцией градиента или со взвешенными вероятностями, пропорциональными проекции градиента, причем такой выбор также делается за линейное время. Однако может оказаться, что выбор на каждой итерации точки с максимальным (16) будет всегда оптимальным с точки зрения поиска глобального минимума, потому что в таком случае есть большая вероятность сойтись к близкому, но не оптимальному локальному минимуму, что и наблюдается в экспериментах. Для локальной минимизации мы используем именно такой подход, потому что он обеспечивает наилучшую релаксацию и более быструю сходимость.

5. РЕЗУЛЬТАТЫ ВЫЧИСЛИТЕЛЬНЫХ ЭКСПЕРИМЕНТОВ

Для ясности дальнейшего анализа результатов, следуя [26], введем понятие “эпоха” (epoch) – $N$ последовательных итераций покоординатного спуска, где $N$ – количество точек. Итерацией по-прежнему будем называть шаг вида (12). При сравнении с полноградиентным методом естественно сопоставить один шаг полноградиентного метода с одной эпохой покоординатного спуска.

В разд. 4 предложен способ быстрого счета функции и градиента. Время выполнения метода первого порядка при фиксированном количестве итераций определяется линейными членами по количеству точек $N$. Мы исследовали зависимость реального времени выполнения метода (от количества точек $N$), запущенного на современном ноутбуке (процессор 2.8 GHz, оперативная память 16 ГБ). Как видно из фиг. 1, гипотеза о линейности оправдана.

Фиг. 1.

Линейное время выполнения.

В предположении условия (10) было показано свойство релаксации. Интересно экспериментально выяснить скорость сходимости метода. Мы ожидаем получить сходимость по функции $U({\mathbf{x}})$ со скоростью геометрической прогрессии с параметрами $a$ и $b$:

(17)
$U({{{\mathbf{x}}}^{n}})\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{ \approx } aU({{{\mathbf{x}}}^{{n - 1}}}) + b$
или

(18)
$U({{{\mathbf{x}}}^{n}})\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{ \approx } {{a}^{n}}U({{{\mathbf{x}}}^{0}}) + b\frac{{1 - {{a}^{{n - 1}}}}}{{1 - a}}.$

Таким образом, величина $a$ приближенно равна знаменателю геометрической прогрессии, с которой убывает отклонение функции от минимального, приближенно равного $\tfrac{b}{{1 - a}}$. Для подбора параметров $a$ и $b$ используется нелинейный метод наименьших квадратов. График на фиг. 2 показывает скорость сходимости метода относительно функции (1) при $s = 1$ в режиме $epoch \leqslant N$. Это соответствует так называемому режиму “large scale” оптимизации, так как для данного покоординатного метода одна итерация оказывается в $N$ раз дешевле подсчета полного градиента. Параметры МНК и минимально найденное значение функции $U({{{\mathbf{x}}}^{n}})$ для различных $N$ указаны в табл. 1. В четвертом столбце рассчитано предельное значение аппроксимации $\tfrac{b}{{1 - a}}$, к которому ассимптотически стремится модель (17), (18). Сравнивая столбцы $U({{{\mathbf{x}}}^{n}})$ и $U({\mathbf{x}}*)$ табл. 1, можно заметить, что алгоритм достаточно близко приближается к минимально известным значениям. Различие составляет порядка 10–3%.

Фиг. 2.

Скорость сходимости, $N = 972$, $s = 1.$

Таблица 1.

Параметры МНК при $s = 1$

N $a$ ${{U}_{{{\text{lim}}}}}$ $U({{{\mathbf{x}}}^{n}})$ $U({\mathbf{x}}{\kern 1pt} *)$ Итер. Время, мин
100 0.99981 4448.31 4448.49 4448.35 10 000 0.6
470 0.99997 104 826.19 104 825.40 104 822.89 220 900 69.5
972 0.99997 455 659.61 455 656.38 455 651.08 944 784 650.5
1300 0.99998 819 146.96 819 143.51 1 690 000 1482

${{U}_{{{\text{lim}}}}}$ – предельное значение аппроксимации, $U({{{\mathbf{x}}}^{n}})$ – результат работы алгоритма, $U({\mathbf{x}}{\kern 1pt} *)$ – минимально известное значение из литературы [13], [27].

В разд. 4 также описывается возможность выбора точки для движения за время $O(N)$ на каждой итерации. На фиг. 3 изображены графики сходимости для различных стратегий при $s = 0$. Оказывается, что на начальном этапе стратегия выбора точки с максимальной проекцией градиента (max_grad) достаточно сильно обгоняет циклический перебор (cyclic). Стратегия (max_grad_prob), которая заключается в том, что точки выбираются пропорционально квадратам проекций, также оказывается достаточно хорошей. Вид графика оказывается типичным и при других $s$.

Фиг. 3.

Сравнение способов выбора точек для выполнения шага, $N = 500$, s = 0.

На фиг. 5 и фиг. 6 изображены графики сходимости на последних 100 из 5000 итераций для $N = 30$ для методов первого и второго порядка соответственно. Начальные положения точек генерировались методом Монте-Карло. Можно заметить, что функция (1) для $s = 1$ является многоэкстремальной уже при $N = 30$. Интересно также, что метод второго порядка намного чаще достигает глобального минимума, а метод первого порядка застревает в точках, достаточно далеких от оптимума. Прерывистыми линиями выделены графики при генерации точек методом generalized spiral.

Фиг. 4.

Сравнение полноградиентного метода с покоординатными методами с градиентным и ньютоновским шагами, N = 470, s = 1.

Фиг. 5.

Локальные минимумы для $N = 30$, $s = 1$. Метод 1 порядка.

Фиг. 6.

Локальные минимумы для $N = 30$, $s = 1$. Метод 2 порядка.

В разд. 3 предложен покоординатный аналог метода Ньютона с ограничением на сфере. Ожидается, что скорость сходимости по количеству итераций будет достаточно высокой, чтобы оправдать решение более сложной подзадачи на каждой итерации. Были проведены численные эксперименты с целью сравнить два предложенных метода в режиме $epoch \leqslant N$. На фиг. 4 изображены графики сходимости для данных двух методов и полноградиентного метода при $s = 1$. Оказывается, что время работы алгоритмов proj_newt и proj_grad в среднем отличается примерно в два раза, при этом из графиков видно, что в рассмотренном режиме proj_newt обгоняет proj_grad больше, чем в два раза по функции. То есть количество эпох, которое требуется методу proj_newt, чтобы достичь значения функции, которое достиг proj_grad за $N$ эпох меньше, чем $N{\text{/}}2$. Также можно заметить, что оба метода значительно обгоняют полноградиентный метод при рассмотрении сходимости по функции. В табл. 2 и 3 приведены результаты работы двух методов. В табл. 3 критерием останова, кроме количества итераций, задано изменение по функции на последних двух эпохах (если оно оказывается меньше ${{10}^{{ - 12}}}$, то алгоритм останавливается). Можно заметить, что метод 2 порядка (proj_newt) значительно чаще достигает меньших минимумов, при этом ему часто для этого требуется меньшее число итераций.

Таблица 2.  

Результаты экспериментов при $s = 1$ для больших $N$

N $U({\mathbf{x}}*)$ Минимум (метод 1) Минимум (метод 2) Итераций (1, 2) Время (1), мин Время (2), мин
100 4448.351 4448.493 4448.450 10 000 0.7 2.0
200 18 438.843 18 439.644 18 439.156 40 000 5.3 9.6
312 45 629.314 45 630.736 45 629.926 97 344 20 42
400 75 582.449 75 584.100 75 583.854 160 000 42 85
470 104 822.886 1048 25.398 104 824.527 220 900 85 150

$U({\mathbf{x}}{\kern 1pt} *)$ – минимально известное значение из литературы [13], [27].

Таблица 3.  

Результаты экспериментов при $s = 1$ для небольших $N$

N $U({\mathbf{x}}{\kern 1pt} *)$ Минимум (метод 1) Минимум (метод 2) Итераций (1) Итераций (2) Время (1), сек Время (2), сек
2 0.500000000 0.500000000 0.500000000 56 9 0.01 0.01
3 1.732050808 1.732050808 1.732050808 81 29 0.02 0.06
4 3.674234614 3.674234614 3.674234614 94 36 0.02 0.08
5 6.474691495 6.474691495 6.474691495 379 74 0.10 0.17
6 9.985281374 9.985281374 9.985281374 287 90 0.09 0.17
7 14.452977414 14.452977417 14.452977414 7350 1911 2.46 6.02
8 19.675287861 19.675287861 19.675287861 1455 439 0.54 1.37
9 25.759986531 25.759986531 25.759986531 2256 727 0.94 2.17
10 32.716949460 32.716949460 32.716949460 2827 1389 1.30 4.77
11 40.596450508 40.596450508 40.596450508 3439 1494 1.73 5.08
12 49.165253058 49.165253058 49.165253058 630 353 0.35 0.99
13 58.853230612 58.853230612 58.853230612 7719 5354 4.52 20.54
14 69.306363297 69.306363297 69.306363297 1905 1266 1.21 4.39
15 80.670244114 80.670244114 80.670244114 3821 2066 2.56 7.76
16 92.911655302 92.920353962 92.920353962 2670 1981 1.91 8.92
17 106.050404829 106.050404829 106.050404829 6335 4067 4.77 16.18
18 120.084467447 120.084467447 120.084467447 4514 3711 3.59 17.08
19 135.089467557 135.089467598 135.089467557 54 150 54 150 46.95 282.30
20 150.881568334 150.881568334 150.881568334 9403 5335 8.46 24.17
21 167.641622399 167.641622399 167.641622399 32 935 22 896 31.23 148.31
22 185.287536149 185.287536149 185.287536149 6076 4306 5.96 23.12
23 203.930190663 203.930190663 203.930190663 5383 3439 5.54 16.05
24 223.347074052 223.347074052 223.347074052 7426 4837 7.92 24.45
25 243.812760299 243.812760306 243.812760299 93 750 76 103 108.55 442.88
26 265.133326317 265.133326317 265.133326317 45 109 27 332 52.59 189.53
27 287.302615033 287.302615033 287.302615033 12 481 7414 14.98 40.95
28 310.491542358 310.491542358 310.491542358 8950 5935 11.06 33.30
29 334.634439920 334.634439921 334.634439920 44 380 28 592 57.22 195.81
30 359.603945904 359.603945904 359.603945904 28 068 24 989 37.12 148.93
31 385.530838063 385.530838063 385.530838063 9762 4572 13.31 29.12
32 412.261274651 412.261274651 412.261274651 5476 3136 7.76 21.35
33 440.204057448 440.204057449 440.204057448 163 350 117 552 255.54 809.63
34 468.904853281 468.904853281 468.904853281 26 628 14 157 40.05 93.49
35 498.569872491 498.573454038 498.573454038 183 750 97 072 309.04 796.23
36 529.122408375 529.122408762 529.122408475 194 400 194 400 339.14 1710.69
37 560.618887731 560.618887731 560.618887731 39 055 19 634 63.97 161.08
38 593.038503566 593.038503566 593.038503566 12 768 6769 21.46 54.07
39 626.389009017 626.389009017 626.389009017 12 929 6634 22.17 48.01
40 660.675278835 660.675278835 660.675278835 15 831 8542 26.93 62.92
41 695.916744342 695.916744342 695.916744342 12 799 6691 22.22 52.37
42 732.078107544 732.078107544 732.078107544 26 700 14 488 47.95 98.29
43 769.190846459 769.190846460 769.190846460 213 084 95 671 436.80 959.87
44 807.174263085 807.174263085 807.174263085 112 652 40 445 220.13 400.13
45 846.188401061 846.188401062 846.188401062 303 750 85 123 711.34 870.44
46 886.167113639 886.170216023 886.171432425 38 313 26 262 74.65 210.60
47 927.059270680 927.072224565 927.072224565 164 854 65 438 357.04 363.51
48 968.713455344 968.713455344 968.713455344 34 190 16 851 72.21 152.74
49 1011.557182654 1011.557182654 1011.557182654 109 322 30 728 242.43 232.27
50 1055.182314726 1055.182314726 1055.182314726 32 643 15 879 72.45 136.42

$U({\mathbf{x}}{\kern 1pt} *)$ – минимально известное значение из литературы [13], [27].

Сложность задачи (2) оказывается не монотонной с точки зрения требуемого количества итераций для сходимости по функции. Так, например, при $N = 19,\;36$ обоим методам требуется значительное количество итераций, при том что задачи при $N = 20,\;37$ решаются намного быстрее.

Расположение точек на сфере независимо от вида задачи (1) наглядно представляeтся с помощью сферических диаграмм Вороного. Данные диаграммы представляют собой разбиение поверхности сферы на области (многоугольники), в которых каждая точка является ближайшей к данной точке (электрону). Большинство областей – шестиугольники, многоугольники с иным числом сторон выделены цветом. Интуитивно можно ожидать, что чем меньше таких “неправильных” многоугольников, тем лучше прооптимизирована целевая функция. На фиг. 7–10 представлены диаграммы Вороного, в каждой паре слева – диаграмма при начальной генерации точек методом generalized spiral, справа – диаграмма после оптимизации с функцией (1) при $s = 1$. Отсюда можно заметить, что выбранное начальное приближение располагает точки достаточно равномерно, структура диаграмм после оптимизации согласуeтся с результатами из литературы [11], [27].

Фиг. 7.

Диаграмма Вороного до оптимизации, N = 100.

Фиг. 8.

Диаграмма Вороного после оптимизации, N = 100.

Фиг. 9.

Диаграмма Вороного до оптимизации, N = 972.

Фиг. 10.

Диаграмма Вороного после оптимизации, N = 972.

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

Предложены два проективных покоординатных метода для поиска локального минимума в задаче Фекете. Алгоритмы используют быстрый счет функции, градиента и выбор наилучшей компоненты для оптимизации. Наши численные эксперименты показывают превосходство предложенных методов перед полноградиентным методом при количестве точек $N < 1000$. Можно ожидать, что предложенные методы окажутся предпочтительными для задач больших размерностей.

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

  1. Fekete M. Über die Verteilung der Wurzeln bei gewissen algebraischen Gleichungen mit ganzzagligen Koeffizienten // Mathematische Zeitschrift. 1923. V. 17. P. 228–249.

  2. Thomson J.J. On the structure of the atom: an investigation of the stability and periods of oscillation of a number of corpuscles arranged at equal intervals around the circumference of a circle; with application of the results to the theory of atomic structure // The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science. 1904. V. 7. P. 237–265.

  3. Smale S. Math. problems for the next century // The Mathematical Intelligencer. 1998. V. 20. P. 7–15.

  4. Robinson M., Suarez-Martinez I., Marks N.A. Generalized method for constructing the atomic coordinates of nanotube caps // Phys. Rev. B. 2013. V. 87. № 15. P. 155–430.

  5. Patra M., Patriarca M., Karttunen M. Stability of charge inversion, Thomson problem, and application to electrophoresis // Physical review. E, Statistical, nonlinear, and soft matter physics. 2003. V. 67. P. 031402.

  6. Caspar D., Klug A. Physical principles in the construction of regular viruses // Cold Spring Harbor Symposia on Quantitative Biology. 1962. V. 27. P. 1–24.

  7. Arias E., Pérez-Torres J.F. Algorithm based on the Thomson problem for determination of equilibrium structures of metal nanoclusters // J. Chem. Phys. D. 2017.

  8. Generalized Simulated Annealing for Global Optimization: The GenSA Package / Y. Xiang et al. // The R. J. 2013. V. 5.

  9. Алгоритмы локальной минимизации силового поля для трехмерного представления макромолекул / П.А. Яковлев и др. // Ж. вычисл. матем. и матем. физ. 2019. Вып. 12.

  10. Altschuler E.L., Pérez-Carrido A. New Global Mimina for Thomson’s Problem of Charges on a Sphere. 2004.

  11. Waves D.J., McKay H., Altschuler E.L. Defect motifs for spherical topologies // Phys. Rev. B. 2009. V. 79. № 22. P. 224115.

  12. LaFave T., Jr. Discrete Transformations in the Thomson Problem // J. Electrostatics. 2014. V. 72. P. 39–43.

  13. Ridgway J.W., Cheviakov A.F. An iterative procedure for finding locally and globally optimal arrangements of particles on the unit sphere // Comput. Physics Commun. 2018. V. 233.

  14. Lakhbab H., EL Bernoussi S., EL Harif A. Energy Minimization of Point Charges on a Sphere with a Spectral Projected Gradient method. 2012.

  15. Nurmela J.K. Constructing Spherical Codes by Global Optimization Methods. 1995.

  16. Estimation of Fekete points / E. Bendito et al. // J. Comput. Phys. 2007. V. 225. P. 2354–2376.

  17. Polyak B.T., Balashov M.V., Tremba A.A. Gradient projection and conditional gradient methods for constrained nonconvex optimization // Numerical Functional Analysis and Optimization. 2020. P. 1–28.

  18. Liu D.C., Nocedal J. On the limited memory BFGS method for large scale optimization // Math. Program. 1989. V. 45. P. 503–528.

  19. A Stochastic Quasi-Newton Method for Large-Scale Optimization / H.R. Byrd et al. // SIAM Journal on Optimizat. 2014. V. 26.

  20. Mutny M., Richtarik P. Parallel stochastic Newton method // J. Comput. Math. 2018. V. 36. P. 404.

  21. Doikov N., Richtarik P. Randomized Block Cubic Newton Method. 2018.

  22. Yershova A.M., LaValle S. Deterministic Sampling Methods for Spheres and SO(3) // Proc. IEEE Internat. Conference on Robotics and Automation. 2003. V. 2004.

  23. Saff E.B., Kuijlaars A.B.J. Distributing many points on a sphere // The Math. Intelligencer. 1997. V. 19. P. 5–11.

  24. Yershova A., LaValle S.M., Mitchell J.C. Generating Uniform Incremental Grids on SO(3) Using the Hopf Fibration // Algorithmic Foundation of Robotics VIII: Selected Contributions of the Eight International Workshop on the Algorithmic Foundations of Robotics / Ed. by G.S. Chirikjian et al. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. P. 385–399.

  25. Rakhmanov E., Saff B.E., Zhou M.Y. Minimal discrete energy on the sphere // Math. Research Letters. 1994. V. 1. P. 647–662.

  26. Wright S.J. Coordinate descent algorithms // Math. Programming. 2015. V. 151. P. 3–34.

  27. Wales D., Ulker S. Structure and dynamics of spherical crystals characterized for the Thomson problem // Phys. Rev. B. 2006. V. 74.

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