<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2+%D0%90%D1%80%D1%81%D0%B5%D0%BD%D0%B8%D0%B9</id>
	<title>Алговики - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2+%D0%90%D1%80%D1%81%D0%B5%D0%BD%D0%B8%D0%B9"/>
	<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/ru/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_%D0%90%D1%80%D1%81%D0%B5%D0%BD%D0%B8%D0%B9"/>
	<updated>2026-10-22T17:28:24Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28631</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28631"/>
		<updated>2021-10-26T20:36:54Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Литература */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому их набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;, тогда &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; ортонормированные матрицы базисов этих пространств, соответственно. Для матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; существует представление: &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для неё:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будем с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{A}(Z) = \mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;\mathcal{P}_r - &amp;lt;/math&amp;gt; проектор на множество матриц ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (SVD).&lt;br /&gt;
&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, \mathcal{P}_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r[Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZ_tB^T - X)B] &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Speedup Matrix Completion with Side Information: Application to Multi-Label Learning. M Xu, R Jin, ZH Zhou&lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восполнение матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28630</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28630"/>
		<updated>2021-10-26T20:32:19Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому их набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;, тогда &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; ортонормированные матрицы базисов этих пространств, соответственно. Для матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; существует представление: &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для неё:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будем с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{A}(Z) = \mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;\mathcal{P}_r - &amp;lt;/math&amp;gt; проектор на множество матриц ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (SVD).&lt;br /&gt;
&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, \mathcal{P}_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r[Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZ_tB^T - X)B] &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28629</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28629"/>
		<updated>2021-10-26T20:30:38Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;, тогда &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; ортонормированные матрицы базисов этих пространств, соответственно. Для матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; существует представление: &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для неё:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будем с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{A}(Z) = \mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;\mathcal{P}_r - &amp;lt;/math&amp;gt; проектор на множество матриц ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (SVD).&lt;br /&gt;
&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, \mathcal{P}_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r[Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZ_tB^T - X)B] &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28628</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28628"/>
		<updated>2021-10-26T20:23:33Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будет с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;\mathcal{P}_r - &amp;lt;/math&amp;gt; проектор на множество матриц ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (SVD).&lt;br /&gt;
&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, \mathcal{P}_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r[Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZ_tB^T - X)B] &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28627</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28627"/>
		<updated>2021-10-26T20:21:20Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будет с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
где &amp;lt;math&amp;gt;\mathcal{P}_r - &amp;lt;/math&amp;gt; проектор на множество матриц ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt; (SVD).&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, mathcal{P}_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZB^T - X)B, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28626</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28626"/>
		<updated>2021-10-26T20:16:56Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Свойства и структура алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будет с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
Найдя формулу сопряженного оператора: &amp;lt;math&amp;gt;\mathcal{A^*}(X) = A^T \, \cP_{\Omega}(X)B &amp;lt;/math&amp;gt; получим алгоритм:&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t A^T\mathcal{P}_{\Omega}(AZB^T - X)B, &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28625</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28625"/>
		<updated>2021-10-26T20:11:56Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega}(X) = 1[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Пусть решением этой задачи является матрица &amp;lt;math&amp;gt;\tilde Z&amp;lt;/math&amp;gt;. Тогда построим матрицу &amp;lt;math&amp;gt;\tilde X = A \tilde ZB^T&amp;lt;/math&amp;gt;. Матрица &amp;lt;math&amp;gt;\tilde X&amp;lt;/math&amp;gt; и будем задачи матричного восполнения. Минимизировать этот функционал будет с помощью алгоритма SVP с оператором &amp;lt;math&amp;gt;\mathcal{P}_\Omega(AZB^T)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;Z_{t+1} = \mathcal{P}_r(Z_{t} - \eta_t \nabla f(Z_{t})) =  \mathcal{P}_r(Z_{t} - \eta_t \mathcal{A^*}(\mathcal{A}(Z_{t}) - b)), &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28624</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28624"/>
		<updated>2021-10-26T20:02:49Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Свойства и структура алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table style=&amp;quot;width:100%&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
  &amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r, \text{ где } &amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\Omega \subset [n_1] \times [n_2] - &amp;lt;/math&amp;gt; множество известных нам индексов, а &amp;lt;math&amp;gt;\mathcal{P}_{\Omega} = \mathds{1}[(i, j) \in \Omega] \circ X&amp;lt;/math&amp;gt; - проектор на это множество.&lt;br /&gt;
&lt;br /&gt;
Эта задача эквивалента задачи восполнения &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, если &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; единственная матрица ранга не выше &amp;lt;math&amp;gt;r&amp;lt;/math&amp;gt;, для которой \mathcal{P}_{\Omega}(X) совпадает с известными нам элементами, и для которой столбцы и строки лежат в &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;. Это верно не всегда (что приводит к расходимости алгоритма), но при о&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28623</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28623"/>
		<updated>2021-10-26T19:45:25Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r\&amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28622</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28622"/>
		<updated>2021-10-26T19:43:56Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td align=&amp;quot;center&amp;quot; width=&amp;quot;90%&amp;quot;&amp;gt;&amp;lt;math&amp;gt;\min_{Z} f(Z) = \frac{1}{2} ||\mathcal{P}_{\Omega}(AZB^T - X)||^2_2, \; \; rank(Z) \leq r\&amp;lt;/math&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28621</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28621"/>
		<updated>2021-10-26T19:38:57Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Свойства и структура алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;. Матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеют взаимно однозначное соответствие, а матрица &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt; имеет существенно меньшие размеры, поэтому мы будет решать некоторую оптимизационную задачу для матрицы &amp;lt;math&amp;gt;Z&amp;lt;/math&amp;gt;, а именно:&lt;br /&gt;
&lt;br /&gt;
\[\label{pr:Z}&lt;br /&gt;
    \min_{Z} f(Z) = \frac{1}{2} ||\cPo(AZB^T - X)||^2_2, \; \; rank(Z) \leq r\&lt;br /&gt;
\]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28620</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28620"/>
		<updated>2021-10-26T19:33:34Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Свойства и структура алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известно, что &amp;lt;math&amp;gt;Im(X) \subset L_A, \ Im(X^T) \subset L_B &amp;lt;/math&amp;gt;. Пусть &amp;lt;math&amp;gt;dim(L_A) = s_1$, \  dim (L_B) = s_2&amp;lt;/math&amp;gt;. Зададим ортонормированные матрицы &amp;lt;math&amp;gt;A \in \mathbb{R}^{n_1 \times s_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;B \in \mathbb{R}^{n_2 \times s_2}&amp;lt;/math&amp;gt; &amp;lt;math&amp;gt;-&amp;lt;/math&amp;gt; базисы этих пространств, соответственно. Тогда &amp;lt;math&amp;gt;X = AZB^T, Z \in \mathbb{R}^{s_1 \times s_2}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28619</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28619"/>
		<updated>2021-10-26T19:27:39Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Математическое описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
Нам известны &amp;lt;math&amp;gt;Im(\tX) \subset L_A, \ Im(\tX^T) \subset L_B &amp;lt;\math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28618</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28618"/>
		<updated>2021-10-26T19:16:27Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: /* Общее описание алгоритма */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. Если &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;L_B&amp;lt;/math&amp;gt; тривиальные (то есть совпадают с &amp;lt;math&amp;gt;\mathbb{R}^{n_1}&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;\mathbb{R}^{n_2}&amp;lt;/math&amp;gt;), то задача сводиться к задаче обычного восполнения матриц.&lt;br /&gt;
&lt;br /&gt;
Для решения этой задачи применяется итеративный метод SVPWS, который является глубокой модификацией метода SVP. На каждой итерации мы будем делать градиентный шаг и проектироваться обратно на множество матриц малого ранга (с помощью SVD), получая тем самым очередное приближение к исходной неизвестной матрице &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28616</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28616"/>
		<updated>2021-10-26T19:06:40Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \mathbb{R}^{n_1 \times n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому малому набору и дополнительной информации. Под дополнительной информацией понимаются линейные пространства &amp;lt;math&amp;gt;L_A&amp;lt;/math&amp;gt;, и &amp;lt;math&amp;gt;L_B \, - &amp;lt;/math&amp;gt;, содержащие столбцы и строки матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; соответственно. &lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28614</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28614"/>
		<updated>2021-10-26T18:57:23Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
Пусть &amp;lt;math&amp;gt;X \in \ms{n_1}{n_2} - &amp;lt;/math&amp;gt; неизвестная малоранговая матрица. Нашей целью является восполнение матрицы &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, то есть нахождение всех её элементов, по некоторому набору её элементов и дополнительной информации. &lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28608</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28608"/>
		<updated>2021-10-26T18:04:45Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = $O(n^3)$&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
	<entry>
		<id>https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28606</id>
		<title>Восполнение матриц с дополнительной информацией</title>
		<link rel="alternate" type="text/html" href="https://xn--80aecvaldz.xn--80ahdrnmvk.xn--p1ai/w/ru/index.php?title=%D0%92%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86_%D1%81_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B9_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B5%D0%B9&amp;diff=28606"/>
		<updated>2021-10-26T18:04:03Z</updated>

		<summary type="html">&lt;p&gt;Михайлов Арсений: Новая страница: «{{algorithm | name              = Восстановление матриц | serial_complexity = &amp;lt;math&amp;gt;O(n^3)&amp;lt;/math&amp;gt; | pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt; | pf...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{algorithm&lt;br /&gt;
| name              = Восстановление матриц&lt;br /&gt;
| serial_complexity = &amp;lt;math&amp;gt;O(n^3)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_height         = &amp;lt;math&amp;gt;O(n)&amp;lt;/math&amp;gt;&lt;br /&gt;
| pf_width          = &amp;lt;math&amp;gt;O(n^2)&amp;lt;/math&amp;gt;&lt;br /&gt;
| input_data        = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
| output_data       = &amp;lt;math&amp;gt;\frac{n (n + 1)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Свойства и структура алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Общее описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Математическое описание алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Макроструктура алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Схема реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Последовательная сложность алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Информационный граф ===&lt;br /&gt;
&lt;br /&gt;
=== Ресурс параллелизма алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Входные и выходные данные алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Свойства алгоритма ===&lt;br /&gt;
&lt;br /&gt;
== Программная реализация алгоритма ==&lt;br /&gt;
&lt;br /&gt;
=== Особенности реализации последовательного алгоритма ===&lt;br /&gt;
&lt;br /&gt;
=== Локальность данных и вычислений ===&lt;br /&gt;
&lt;br /&gt;
==== Локальность реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
===== Структура обращений в память и качественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
===== Количественная оценка локальности =====&lt;br /&gt;
&lt;br /&gt;
=== Возможные способы и особенности параллельной реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Масштабируемость алгоритма и его реализации ===&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость алгоритма ====&lt;br /&gt;
&lt;br /&gt;
==== Масштабируемость реализации алгоритма ====&lt;br /&gt;
&lt;br /&gt;
=== Динамические характеристики и эффективность реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Выводы для классов архитектур ===&lt;br /&gt;
&lt;br /&gt;
=== Существующие реализации алгоритма ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Литература ==&lt;br /&gt;
&lt;br /&gt;
[1] Guaranteed Rank Minimization via Singular Value Projection.Raghu Meka, Prateek Jain, Inderjit S. Dhillon // arXiv:0909.5457&lt;br /&gt;
&lt;br /&gt;
[2] Low-rank matrix completion by Riemannian optimization. Bart Vandereycken // arXiv:0909.5457 &lt;br /&gt;
&lt;br /&gt;
[[en:Matrix completion]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Восстановление матриц]]&lt;/div&gt;</summary>
		<author><name>Михайлов Арсений</name></author>
	</entry>
</feed>