Журнал вычислительной математики и математической физики, 2020, T. 60, № 12, стр. 2177-2184
Построение z-переставленных матриц в QTT-формате
Л. Б. Маркеева 1, *, И. В. Цыбулин 2
1 Сколковский Институт Науки и Техники
143026 Москва, ул. Большой бульвар, 30, Россия
2 Яндекс
119021 Москва, ул. Льва Толстого, 16, Россия
* E-mail: l.markeeva@skoltech.ru
Поступила в редакцию 27.07.2020
После доработки 27.07.2020
Принята к публикации 04.08.2020
Аннотация
В работе представлен метод построения матриц в QTT-формате, столбцы и строки которых переупорядочены специальным образом – z-перестановкой. Для получения матрицы в данной перестановке вводится новая операция в QTT-формате (Quantized Tensor Train) – z-kron. Такое переупорядочивание позволяет уменьшить QTT-ранги аппроксимации матрицы жесткости, что позволяет ускорить сходимость численного решения системы. Например, при решении задачи Дирихле для уравнения Пуассона методом конечных элементов (МКЭ), где для хранения матрицы коэффициентов используются QTT-формат, переупорядочение строк и столбцов в матрице коэффициентов размера $n \times n$, где $n = {{4}^{d}}$, позволяет предотвратить экспоненциальный по $d$ рост рангов. Библ. 9. Фиг. 3.
ВВЕДЕНИЕ
В работах [1] и [2] было показано, что для класса эллиптических уравнений в полигональных ограниченных двумерных областях с аналитическими правыми частями существуют малопараметрические аппроксимации решения в формате квантизованного тензорного поезда (quantized tensor train, QTT). Точность приближения решения убывает экспоненциально с числом параметров в ТТ-разложении, что позволяет говорить об оптимальном алгоритме решения таких задач. Для реализации эффективного практического алгоритма необходимо решить несколько задач, одной из таких задач посвящена данная работа. Основная идея подхода состоит в том, что используются конечные элементы низкого порядка на очень мелкой “виртуальной” сетке, а аппроксимация строится на дискретном уровне. Оказывается, что нумерация конечных элементов играет важную роль в структуре возникающих тензоров. Для получения небольшого числа параметров, необходимо использовать так называемую z-перестановку (см. ниже фиг. 3). Сама матрица перестановки имеет полный тензорный ранг, поэтому необходимо уметь формировать переставленную матрицу напрямую. Основное предположение состоит в том, что дискретная матрица жесткости может быть представлена в виде суммы кронекеровских произведений матриц, соответствующих “одномерным” операторам. Для этого случая мы предлагаем и обосновываем метод построения QTT-представления для матриц жесткости в z-перестановке. Основой для этого служит модифицированная операция кронекеровского произведения (z-kron), которая позволяет напрямую собирать матрицы, в которых переставлены строки и столбцы в соответствии с z-перестановкой, из QTT-представлений матриц, соответствующих “одномерным” операторам.
В разд. 1 приводится основная информация о QTT-формате и важных для данной работы операциях. В разд. 2 вводится операция z-крон и доказывается, что она порождает QTT-матрицы с переставленными строками и столбцами в z-перестановке. Разд. 3 содержит эксперименты, которые показывают, что матрица коэффициентов метода конечных элементов имеет более маленькие ранги аппроксимации будучи z-переставленной по сравнению с каноническим порядком строк и столбцов.
1. QTT-ФОРМАТ
В данном разделе будут описаны основные идеи TT- и QTT-форматов. Более детальная информация о свойствах TT-формата представлена в [3].
Tensor Train формат (TT-формат) – это нелинейный метод малоранговой аппроксимации многомерных массивов (тензоров). Рассмотрим $d$-мерный тензор $T \in {{\mathbb{R}}^{{{{n}_{1}} \times \ldots \times {{n}_{d}}}}}$. Мы говорим, что тензор $T$ представлен в ТТ-формате, если его элемент представляется в виде
(1)
${{T}_{{{{i}_{1}} \cdots {{i}_{d}}}}} = \sum\limits_{{{\alpha }_{1}} = 1}^{{{r}_{1}}} \cdots \sum\limits_{{{\alpha }_{{d - 1}}}}^{{{r}_{{d - 1}}}} {{{G}_{1}}} ({{i}_{1}},{{\alpha }_{1}}){{G}_{2}}({{\alpha }_{1}},{{i}_{1}},{{\alpha }_{2}}) \ldots {{G}_{{d - 1}}}({{\alpha }_{{d - 2}}},{{i}_{{d - 1}}},{{\alpha }_{{d - 1}}}){{G}_{d}}({{\alpha }_{{d - 1}}},{{i}_{d}}),$Уравнение (1) можно представить как произведение матриц
(2)
${{T}_{{{{i}_{1}} \ldots {{i}_{d}}}}} = {{G}_{1}}({{i}_{1}}){{G}_{2}}({{i}_{2}}) \ldots {{G}_{{d - 1}}}({{i}_{{d - 1}}}){{G}_{d}}({{i}_{d}}),$Объем памяти, занимаемый тензором $T$, может быть оценен по следующей формуле:
(3)
$S = {{r}_{1}}{{n}_{1}} + \sum\limits_{i = 2}^{d - 1} {{{r}_{{i - 1}}}} {{n}_{i}}{{r}_{i}} + {{r}_{{d - 1}}}{{n}_{d}}.$(4)
$S = {{r}_{1}}{{n}_{1}} + \sum\limits_{i = 2}^{d - 1} {{{r}_{{i - 1}}}} {{n}_{i}}{{r}_{i}} + {{r}_{{d - 1}}}{{n}_{d}} = {{r}_{e}}{{n}_{1}} + \sum\limits_{i = 2}^{d - 1} {r_{e}^{2}} {{n}_{i}} + {{r}_{e}}{{n}_{d}}.$(5)
${{M}_{\begin{subarray}{l} {{i}_{1}} \ldots {{i}_{d}} \\ {{j}_{1}} \ldots {{j}_{d}} \end{subarray} }} = \sum\limits_{{{\alpha }_{1}} = 1}^{{{r}_{1}}} \cdots \sum\limits_{{{\alpha }_{{d - 1}}} = 1}^{{{r}_{{d - 1}}}} {{{V}_{1}}} ({{i}_{1}},{{j}_{1}},{{\alpha }_{1}}){{V}_{2}}({{\alpha }_{1}},{{i}_{2}},{{j}_{2}},{{\alpha }_{2}}) \ldots {{V}_{{d - 1}}}({{\alpha }_{{d - 2}}},{{i}_{{d - 1}}},{{j}_{{d - 1}}},{{\alpha }_{{d - 1}}}){{V}_{d}}({{\alpha }_{{d - 1}}},{{i}_{d}},{{j}_{d}}),$В матричной форме (5) может быть представлено в виде
(6)
${{M}_{\begin{subarray}{l} {{i}_{1}} \ldots {{i}_{d}} \\ {{j}_{1}} \ldots {{j}_{d}} \end{subarray} }} = {{V}_{1}}({{i}_{1}},{{j}_{1}}){{V}_{2}}({{i}_{2}},{{j}_{2}}) \ldots {{V}_{{d - 1}}}({{i}_{{d - 1}}},{{j}_{{d - 1}}}){{V}_{d}}({{i}_{d}},{{j}_{d}}),$Из (5) следует, что если TT-ранг $M$ равен 1, то $M$ может быть представлена как кронекерово произведение матриц:
где ${{M}_{k}}$ – это матрицы размера ${{n}_{k}} \times {{m}_{k}}$, $k \in [1 \ldots d]$.Сложность многих основных операций с тензорами в ТТ-формате может быть оценена сверху как $dn{{r}^{\alpha }}$, где $\alpha \in \left\{ {2,3} \right\}$, $n = max({{n}_{1}},\; \ldots \;{{n}_{d}})$, $r = max({{r}_{1}},\; \ldots \;{{r}_{{d - 1}}}).$
QTT-формат возникает при введении “виртуальных размерностей”, а именно, когда индексы исходного тензора (например, вектора) представляются $n$-арным кодом. Рассмотрим пример с бинарным кодированием индексов вектора ${v} \in {{R}^{{{{2}^{d}}}}}$. Данный вектор может быть представлен в виде тензора $V$ с размерностями $\underbrace {2 \times 2 \times \; \ldots \; \times 2}_{d\;{\text{раз}}}$. QTT-разложением или QTT-аппроксимацией назовем ТТ-разложение или ТТ-аппроксимацию тензора $V$. Превращение вектора ${v}$ в $d$-мерный тензор эквивалентно кодированию индекса этого вектора $0 \leqslant i \leqslant {{2}^{d}} - 1$ в бинарном формате:
(8)
$i = \overline {{{i}_{1}},{{i}_{2}},\; \ldots \;{{i}_{d}}} = \sum\limits_{k = 1}^d {{{2}^{{k - 1}}}} {{i}_{k}} \leftrightarrow ({{i}_{1}},{{i}_{2}},\; \ldots \;{{i}_{d}}),$Полезной вспомогательной операцией является сильное произведение Кронекера (см. [4]) $ \triangleright \triangleleft $, которая определяется как операция между двумя блочными матрицами. Использование такой операции для компактного представления ТТ-разложений различных тензоров было предложено в работе [5].
Каждое ядро в TT-представлении матрицы можно рассматривать как блочную матрицу. Тогда операция $ \triangleright \triangleleft $ похожа на матричное произведение, но элементы блочных матриц перемножаются друг с другом с использованием кронекеровского произведения вместо матричного произведения, тогда как умножение блочных матриц происходит по стандартному правилу.
(9)
$\begin{gathered} C = K \triangleright \triangleleft L = \left[ {\begin{array}{*{20}{c}} {{{K}_{{11}}}}& \ldots &{{{K}_{{1{{r}_{2}}}}}} \\ \vdots & \ddots & \vdots \\ {{{K}_{{{{r}_{1}}1}}}}& \ldots &{{{K}_{{{{r}_{1}}{{r}_{2}}}}}} \end{array}} \right] \triangleright \triangleleft \left[ {\begin{array}{*{20}{c}} {{{L}_{{11}}}}& \ldots &{{{L}_{{1{{r}_{3}}}}}} \\ \vdots & \ddots & \vdots \\ {{{L}_{{{{r}_{2}}1}}}}& \ldots &{{{L}_{{{{r}_{2}}{{r}_{3}}}}}} \end{array}} \right] = \\ = \left[ {\begin{array}{*{20}{c}} {{{K}_{{11}}} \otimes {{L}_{{11}}} + \ldots + {{K}_{{1{{r}_{2}}}}} \otimes {{L}_{{{{r}_{2}}1}}}}& \ldots &{{{K}_{{11}}} \otimes {{L}_{{1{{r}_{3}}}}} + \ldots + {{K}_{{1{{r}_{2}}}}} \otimes {{L}_{{{{r}_{2}}{{r}_{3}}}}}} \\ \vdots & \ddots & \vdots \\ {{{K}_{{{{r}_{1}}1}}} \otimes {{L}_{{11}}} + \ldots + {{K}_{{{{r}_{1}}{{r}_{2}}}}} \otimes {{L}_{{{{r}_{2}}1}}}}& \ldots &{{{K}_{{{{r}_{1}}1}}} \otimes {{L}_{{1{{r}_{3}}}}} + \ldots + {{K}_{{{{r}_{1}}{{r}_{2}}}}} \otimes {{L}_{{{{r}_{2}}{{r}_{3}}}}}} \end{array}} \right]. \\ \end{gathered} $(10)
$C = \left[ {\begin{array}{*{20}{c}} {\left( {\begin{array}{*{20}{c}} 1&2 \\ 3&4 \end{array}} \right)} \\ {\left( {\begin{array}{*{20}{c}} 1&2 \\ 3&4 \end{array}} \right)} \end{array}} \right] \triangleright \triangleleft \left[ {\begin{array}{*{20}{c}} {\left( {\begin{array}{*{20}{c}} 1&0 \\ 0&1 \end{array}} \right)}&{\left( {\begin{array}{*{20}{c}} 1&2 \\ 2&1 \end{array}} \right)} \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {\left( {\begin{array}{*{20}{c}} 1&0&2&0 \\ 0&1&0&2 \\ 3&0&4&0 \\ 0&3&0&4 \end{array}} \right)}&{\left( {\begin{array}{*{20}{c}} 2&1&4&2 \\ 1&2&2&4 \\ 6&3&8&4 \\ 3&6&4&8 \end{array}} \right)} \\ {\left( {\begin{array}{*{20}{c}} 1&0&2&0 \\ 0&1&0&2 \\ 3&0&4&0 \\ 0&3&0&4 \end{array}} \right)}&{\left( {\begin{array}{*{20}{c}} 2&1&4&2 \\ 1&2&2&4 \\ 6&3&8&4 \\ 3&6&4&8 \end{array}} \right)} \end{array}} \right].$В следующем разделе мы покажем, как строить матрицы в QTT-формате с переставленными в z-последовательности строками и столбцами при помощи операции z-kron.
2. ОПЕРАЦИЯ Z-ПРОИЗВЕДЕНИЯ
В данном разделе вводится понятие z-нумерации (z-перестановки, z-последовательности), и вводится операция z-крон, которая позволяет строить QTT-матрицы размера ${{4}^{d}} \times {{4}^{d}}$, в которых строки и столбцы переупорядочены в z-последовательности.
2.1. Порядок элементов в матрицах
Рассмотрим квадрат, на котором введена равномерная сетка с числом узлов ${{2}^{d}} \times {{2}^{d}}$ (т.е. всего ${{4}^{d}}$ узлов). Координата каждого узла в сетке однозначно задается парой чисел ($i$, $j$), где $i,j \in [0,{{2}^{d}} - 1]$. Нам необходимо пронумеровать узлы этой сетки. Каноническое упорядочивание связано с последовательным обходом элементов сетки по столбцам или строкам, а z-упорядочивание имеет более сложную структуру. Эти нумерации представлены на фиг. 1.
1. Каноническая нумерация. Позиция узла с номером ($i$, $j$) в канонической нумерации определяется по формуле:
2. z-нумерация. Представим $i$ и $j$ в бинарном формате:
(13)
$i = \sum\limits_{k = 1}^d {{{2}^{{k - 1}}}} {{i}_{k}} \leftrightarrow ({{i}_{1}},{{i}_{2}},\; \ldots {{i}_{d}}),\quad j = \sum\limits_{k = 1}^d {{{2}^{{k - 1}}}} {{j}_{k}} \leftrightarrow ({{j}_{1}},{{j}_{2}},\; \ldots \;{{j}_{d}}).$2.2. Z-крон
Предположим, что на нашей равномерной сетке с ${{4}^{d}}$ узлами задан линейный оператор, который определяется матрицей размера ${{4}^{d}} \times {{4}^{d}}$. Различная нумерация узлов сетки будет приводить к перестановке строк и столбцов матрицы. Мы будем рассматривать матрицы, которые являются кронекеровым произведением двух “одномерных” QTT-матриц:
(15)
${{K}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}} \\ {{j}_{1}}, \ldots ,{{j}_{d}} \end{subarray} }} = {{K}_{1}}({{i}_{1}},{{j}_{1}})\; \ldots \;{{K}_{d}}({{i}_{d}},{{j}_{d}}),\quad {{L}_{\begin{subarray}{l} i_{1}^{'}, \ldots ,i_{d}^{'} \\ j_{1}^{'}, \ldots ,j_{d}^{'} \end{subarray} }} = {{L}_{1}}(i_{1}^{'},j_{1}^{'})\; \ldots \;{{L}_{d}}(i_{d}^{'},j_{d}^{'}),\quad {\text{где}}\quad {{i}_{k}} \in {\text{\{ }}0,\;1{\text{\} }}.$(16)
${{M}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}},i_{1}^{'}, \ldots ,i_{d}^{'} \\ {{j}_{1}}, \ldots ,{{j}_{d}},j_{1}^{'}, \ldots ,j_{d}^{'} \end{subarray} }} = {{K}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}} \\ {{j}_{1}}, \ldots ,{{j}_{d}} \end{subarray} }}{{L}_{\begin{subarray}{l} i_{1}^{'}, \ldots ,i_{d}^{'} \\ j_{1}^{'}, \ldots ,j_{d}^{'} \end{subarray} }} = {{K}_{1}}({{i}_{1}},{{j}_{1}})\; \ldots \;{{K}_{d}}({{i}_{d}},{{j}_{d}}){{L}_{1}}(i_{1}^{'},j_{1}^{'})\; \ldots \;{{L}_{d}}(i_{d}^{'},j_{d}^{'}).$(17)
${{M}_{\begin{subarray}{l} {{z}_{1}}, \ldots ,{{z}_{d}} \\ z_{1}^{'}, \ldots ,z_{d}^{'} \end{subarray} }} = {{K}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}} \\ {{j}_{1}}, \ldots ,{{j}_{d}} \end{subarray} }}{{L}_{\begin{subarray}{l} i_{1}^{'}, \ldots ,i_{d}^{'} \\ j_{1}^{'}, \ldots ,j_{d}^{'} \end{subarray} }},\quad {\text{где}}\quad {{z}_{k}} = {{i}_{k}} + 2{{j}_{k}},\quad z_{k}^{'} = i_{k}^{'} + 2j_{k}^{'},\quad k \in [1\; \ldots \;d].$(18)
${{M}_{\begin{subarray}{l} {{z}_{1}}, \ldots ,{{z}_{d}} \\ z_{1}^{'}, \ldots ,z_{d}^{'} \end{subarray} }} = {{M}_{1}}({{z}_{1}},z_{1}^{'}){{M}_{2}}({{z}_{2}},z_{2}^{'})\; \ldots \;{{M}_{d}}({{z}_{d}},z_{d}^{'}),$Покажем, что ${{M}_{k}}({{z}_{k}},z_{k}^{'}) = L(i_{k}^{'},j_{k}^{'}) \otimes K({{i}_{k}},{{j}_{k}})$ действительно приводит нас к (17):
(19)
$\begin{gathered} {{M}_{\begin{subarray}{l} {{z}_{1}}, \ldots ,{{z}_{d}} \\ z_{1}^{'}, \ldots ,z_{d}^{'} \end{subarray} }} = {{K}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}} \\ {{j}_{1}}, \ldots ,{{j}_{d}} \end{subarray} }} \oslash {{L}_{\begin{subarray}{l} i_{1}^{'}, \ldots ,i_{d}^{'} \\ j_{1}^{'}, \ldots ,j_{d}^{'} \end{subarray} }} = ({{L}_{1}}(i_{1}^{'},j_{1}^{'}) \otimes {{K}_{1}}({{i}_{1}},{{j}_{1}})) \cdots ({{L}_{d}}(i_{d}^{'},j_{d}^{'}) \otimes {{K}_{d}}({{i}_{d}},{{j}_{d}})) = \\ = \;({{L}_{1}}(i_{1}^{'},j_{1}^{'}) \ldots {{L}_{d}}(i_{d}^{'},j_{d}^{'})) \otimes ({{K}_{1}}({{i}_{1}},{{j}_{1}}) \ldots {{K}_{d}}({{i}_{d}},{{j}_{d}})). \\ \end{gathered} $(20)
$({{L}_{1}}(i_{1}^{'},j_{1}^{'}) \ldots {{L}_{d}}(i_{d}^{'},j_{d}^{'})) \otimes ({{K}_{1}}({{i}_{1}},{{j}_{1}}) \ldots {{K}_{d}}({{i}_{d}},{{j}_{d}})) = {{L}_{1}}(i_{1}^{'},j_{1}^{'}) \ldots {{L}_{d}}(i_{d}^{'},j_{d}^{'}){{K}_{1}}({{i}_{1}},{{j}_{1}}) \ldots {{K}_{d}}({{i}_{d}},{{j}_{d}}) = {{M}_{\begin{subarray}{l} {{z}_{1}}, \ldots ,{{z}_{d}} \\ z_{1}^{'}, \ldots ,z_{d}^{'} \end{subarray} }}.$2.3. Связь z-крона и z-нумерации
Снова рассмотрим две QTT-матрицы:
(21)
${{A}_{\begin{subarray}{l} {{k}_{1}}, \ldots ,{{k}_{d}} \\ {{l}_{1}}, \ldots ,{{l}_{d}} \end{subarray} }} = {{A}_{1}}({{k}_{1}},{{l}_{1}}) \ldots {{A}_{d}}({{k}_{d}},{{l}_{d}}),\quad {{B}_{\begin{subarray}{l} {{m}_{1}}, \ldots ,{{m}_{d}} \\ {{n}_{1}}, \ldots ,{{n}_{d}} \end{subarray} }} = {{B}_{1}}({{m}_{1}},{{n}_{1}}) \ldots {{B}_{d}}({{m}_{d}},{{n}_{d}}),\quad {{k}_{t}},{{l}_{t}},{{m}_{t}},{{n}_{t}} \in {\text{\{ }}0,\;1{\text{\} }}.$(22)
${{C}_{\begin{subarray}{l} {{i}_{1}}, \ldots ,{{i}_{d}} \\ {{j}_{1}}, \ldots ,{{j}_{d}} \end{subarray} }} = {{A}_{\begin{subarray}{l} {{k}_{1}}, \ldots ,{{k}_{d}} \\ {{l}_{1}}, \ldots ,{{l}_{d}} \end{subarray} }} \oslash {{B}_{\begin{subarray}{l} {{m}_{1}}, \ldots ,{{m}_{d}} \\ {{n}_{1}}, \ldots ,{{n}_{d}} \end{subarray} }},\quad {{i}_{t}},{{j}_{t}} \in {\text{\{ }}0,\;1,\;2,\;3{\text{\} }}.$Теорема 1. Для (22) верно, что
(23)
${{{\mathbf{C}}}_{{ij}}} = {{{\mathbf{A}}}_{{kl}}}{{{\mathbf{B}}}_{{mn}}},\quad i = \mathcal{Z}(k,m),\quad j = \mathcal{Z}(l,n).$Доказательство. Выделим младший разряд в индексах:
(24)
$\begin{gathered} {{i}^{H}} = \left\lfloor {i{\text{/}}4} \right\rfloor ,\quad {{i}^{L}} = i\bmod 4,\quad {{j}^{H}} = \left\lfloor {j{\text{/}}4} \right\rfloor ,\quad {{j}^{L}} = jmod4, \\ {{k}^{H}} = \left\lfloor {k{\text{/}}2} \right\rfloor ,\quad {{k}^{L}} = kmod2,\quad {{m}^{H}} = \left\lfloor {m{\text{/}}2} \right\rfloor ,\quad {{m}^{L}} = mmod2, \\ {{l}^{H}} = \left\lfloor {l{\text{/}}2} \right\rfloor ,\quad {{l}^{L}} = lmod2,\quad {{n}^{H}} = \left\lfloor {n{\text{/}}2} \right\rfloor ,\quad {{n}^{L}} = nmod2. \\ \end{gathered} $(25)
$i = \mathcal{Z}(k,m) \Leftrightarrow {{i}^{H}} = \mathcal{Z}({{k}^{H}},{{m}^{H}}),\quad {{i}^{L}} = \mathcal{Z}({{k}^{L}},{{m}^{L}}).$(26)
$\begin{gathered} \mathcal{Z}(k,m) = \mathcal{Z}(2{{k}^{H}} + {{k}^{L}},\;2{{m}^{H}} + {{m}^{L}}) = \sum\limits_{t = 2}^d {{{2}^{{2t - 2}}}} k_{{t - 1}}^{H} + {{k}^{L}} + \sum\limits_{t = 2}^d {{{2}^{{2t - 1}}}} m_{{t - 1}}^{H} + 2{{m}^{L}} = \\ = \;4\left( {\sum\limits_{t = 1}^{d - 1} {{{2}^{{2t - 2}}}} k_{t}^{H} + \sum\limits_{t = 1}^{d - 1} {{{2}^{{2t - 1}}}} m_{t}^{H}} \right) + {{k}^{L}} + 2{{m}^{L}} = 4Z({{k}^{H}},{{m}^{H}}) + Z({{k}^{L}},{{m}^{L}}) = 4{{i}^{H}} + {{i}^{L}} = i, \\ \end{gathered} $Далее применим метод математической индукции по $d$ для доказательства (23).
1. $d = 1$: этот результат следует из свойств кронекерового произведения:
(27)
${{{\mathbf{C}}}_{{ij}}} = {{A}_{\begin{subarray}{l} k \\ l \end{subarray} }} \oslash {{B}_{\begin{subarray}{l} m \\ n \end{subarray} }} = {{B}_{\begin{subarray}{l} m \\ n \end{subarray} }} \otimes {{A}_{\begin{subarray}{l} k \\ l \end{subarray} }} = {{{\mathbf{B}}}_{{mn}}}{{{\mathbf{A}}}_{{kl}}}.$2. По свойству кронекерова произведения имеем
3. Пусть для $d = q$ утверждение теоремы (23) истинно. Тогда для любых ${{A}^{q}}$, ${{B}^{q}}$, ${{C}^{q}}$ имеем
(29)
${\mathbf{C}}_{{ij}}^{q} = {\mathbf{A}}_{{kl}}^{q}{\mathbf{B}}_{{mn}}^{q},\quad i = \mathcal{Z}(k,m),\quad j = \mathcal{Z}(l,n);$Теперь рассмотрим $(i,j)$ элемент матрицы ${{{\mathbf{C}}}^{{q + 1}}}$ для $d = q + 1$. Напомним, что $i,j$-й элемент матрицы ${\mathbf{C}}$ имеет TT-индекс $\begin{gathered} {{i}_{1}} \ldots {{i}_{d}} \hfill \\ {{j}_{1}} \ldots {{j}_{d}} \hfill \\ \end{gathered} $, где $0 \leqslant {{i}_{t}}$, ${{j}_{t}} \leqslant 4$. Также используем обозначения (24).
Пусть $L(a) = amod2$, $H(a) = \left\lfloor {a{\text{/}}2} \right\rfloor $, тогда получим
(30)
$\begin{gathered} {\mathbf{A}}_{{kl}}^{{q + 1}}{\mathbf{B}}_{{mn}}^{{q + 1}} = {\mathbf{C}}_{{ij}}^{{q + 1}} = \Pi _{{t = 1}}^{{q + 1}}{{({{B}_{t}} \otimes {{A}_{t}})}_{{{{i}_{t}},{{j}_{t}}}}} = \Pi _{{t = 1}}^{{q + 1}}{{({{B}_{t}})}_{{H({{i}_{t}}),H({{j}_{t}})}}}{{({{A}_{t}})}_{{L({{i}_{t}}),L({{j}_{t}})}}} = \\ = \;[\Pi _{{t = 1}}^{q}{{({{B}_{t}})}_{{H({{i}_{t}}),H({{j}_{t}})}}}{{({{A}_{t}})}_{{L({{i}_{t}}),L({{j}_{t}})}}}]{{({{B}_{{q + 1}}})}_{{H({{i}^{L}}),H({{j}^{L}})}}}{{({{A}_{{q + 1}}})}_{{L({{i}^{L}}),L({{j}^{L}})}}} = \\ = \;{\mathbf{A}}_{{{{k}^{H}}{{l}^{H}}}}^{q}{\mathbf{B}}_{{{{m}^{H}}{{n}^{H}}}}^{q}{{({{B}_{{q + 1}}})}_{{H({{i}^{L}}),H({{j}^{L}})}}}{{({{A}_{{q + 1}}})}_{{L({{i}^{L}}),L({{j}^{L}})}}}. \\ \end{gathered} $(31)
${{i}^{H}} = \mathcal{Z}({{k}^{H}},{{m}^{H}}),\quad {{j}^{H}} = \mathcal{Z}({{l}^{H}},{{n}^{H}}).$(32)
${\mathbf{A}}_{{kl}}^{{q + 1}} = {\mathbf{A}}_{{{{k}^{H}}{{l}^{H}}}}^{q}{{({{A}_{{q + 1}}})}_{{L({{i}^{L}}),L({{j}^{L}})}}}.$(33)
${\mathbf{A}}_{{kl}}^{{q + 1}} = \Pi _{{t = 1}}^{{q + 1}}{{({{A}_{t}})}_{{{{k}_{t}},{{l}_{t}}}}} = [\Pi _{{t = 1}}^{q}{{({{A}_{t}})}_{{k_{t}^{H},l_{t}^{H}}}}]{{({{A}_{{q + 1}}})}_{{{{k}^{L}},{{l}^{L}}}}} = {\mathbf{A}}_{{{{k}^{H}}{{l}^{H}}}}^{q}{{({{A}_{{q + 1}}})}_{{{{k}^{L}},{{l}^{L}}}}}.$3. ЧИСЛЕННАЯ ИЛЛЮСТРАЦИЯ
В качестве численной иллюстрации предложенного алгоритма сборки матриц жесткости в z-перестановке рассмотрим модельную задачу Дирихле для уравнения Пуассона с единичной правой частью и нулевыми граничными условиями Дирихле в ограниченной двумерной области $\Omega $ с кусочно-гладкой границей $\partial \Omega $:
(35)
$\begin{array}{*{20}{c}} { - \Delta u = 1\quad {\text{в}}\quad \Omega ,} \\ {{{{\left. u \right|}}_{{\partial \Omega }}} = 0.} \end{array}$Фиг. 2.
Примеры областей и их разбиение на четырехугольные подобласти и визуализация решения задачи Дирихле для уравнения Пуассона с нулевым граничным условием и единичной правой частью. (а) – остроугольный треугольник, разбитый на 3 четырехугольника, (б) – пятиконечная звезда, разбитая на 5 четырехугольников.

Фиг. 3.
(а) – график зависимости эффективного ранга глобальной матрицы жесткости в методе конечных элементов от d для канонического порядка и z-переставленных строк и столбцов, (б) – график отношения эффективного ранга канонического порядка элементов и z-перестановки для той же матрицы.

Матрица жесткости строится в двух перестановках, которые обсуждались в данной работе. Цель эксперимента состоит в том, чтобы сравнить число параметров, требуемое для представления матриц.
Мы проверили различные области $\Omega $ с различным числом подобластей $q$ от 3 до 11 (все результаты доступны по ссылке: https://github.com/RerRayne/qtt-laplace).
Вне зависимости от выбираемой нами конфигурации поведение эффективных QTT-рангов глобальной матрицы жесткости совпадало с представленным на фиг. 3. В статье [2] показано, что QTT-ранги растут не более чем экспоненциально. В наших экспериментах для канонического порядка мы наблюдали полиномиальный рост QTT-рангов со степенью порядка $2.8$. В случае z-нумерации строк и столбцов эффективные ранги растут линейно по $d$.
ЗАКЛЮЧЕНИЕ
Данная работа развивает QTT-технологию решения задач математической физики, которая затронута в нескольких недавних работах. Основной результат состоит во введении новой операции между матрицами, которая позволяет строить представление двумерных операторов в z-перестановке из их одномерных представлений. Численные эксперименты показали, что в примерах, рассмотренных ранее в [9], такое представление позволяет получить логарифмическую зависимость объема памяти, необходимой для хранения дискретизованного оператора, от числа неизвестных, что позволяет использовать эффективные тензорные решатели. Стоит отметить, что практическое применение такой технологии и ее сравнение с другими известными подходами (адаптивные сетки, hp-метод, спектральные методы и др.) еще только предстоит сделать. Только недавно удалось преодолеть принципиальные сложности, связанные с обусловленностью дискретных операторов на очень мелких виртуальных сетках [8]. Мы рассчитываем в дальнейших работах получить практически применимые результаты для решения различных классов двумерных и трехмерных задач математической физики.
Список литературы
Morton G. A computer oriented geodetic data base and a new technique in file sequencing. Ottawa: International Business Machines Company, 1966.
Kazeev V., Schwab C. Quantized tensor-structured finite elements for second-order elliptic PDEs in two dimensions // Numerische Mathematik. 2018. V. 1. № 138. P. 133–190.
Oseledets I. Tensor-train decomposition // SIAM Journal on Scientific Comput. 2011. V. 5. № 33. P. 2295–2317.
De Launey W., Seberry J. The strong Kronecker product // J. of Combinatorial Theory. 1994. V. 2. № 66. P. 192–213.
Kazeev V., Khoromskij B. Low-rank explicit QTT representation of the Laplace operator and its inverse // SIAM Journal on Matrix Analys. and Applicat. 2012. V. 3. № 33. P. 742–758.
Kazeev V., Reichmann O., Schwab C. Low-rank tensor structure of linear diffusion operators in the TT and QTT formats // Linear Algebra and its Applicat. 2013. V. 11. № 438. P. 4204–4221.
Strang G., Fix G. An analysis of the finite element method. New Jersey: Prentice-hall Englewood Cliffs, 1973.
Bachmayr M., Kazeev V. Stability of Low-Rank Tensor Representations and Structured Multilevel Preconditioning for Elliptic PDEs // Foundations of Comput. Math. 2020. P. 1–62.
Markeeva L., Tsybulin I., Oseledets I. QTT-isogeometric solver in two dimensions: arXiv preprint arXiv:1802.02839. 2018.
Дополнительные материалы отсутствуют.
Инструменты
Журнал вычислительной математики и математической физики