Уровень алгоритма

Участник:KibAndrey/Ортогонализация Грама-Шмидта: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 31: Строка 31:
\mathbf{b_{2}}& =\mathbf{a_{2}}-proj_{\mathbf{b_1}}\mathbf{a_{1}}, \\
\mathbf{b_{2}}& =\mathbf{a_{2}}-proj_{\mathbf{b_1}}\mathbf{a_{1}}, \\
& ...\\
& ...\\
\mathbf{b_{\hskip1ptihskip1pt}} & = \mathbf{a_{i}}-\sum\limits_{j=1}^{i-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\
\mathbf{b_{\hskip1pt i hskip1pt}} & = \mathbf{a_{i}}-\sum\limits_{j=1}^{i-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\
& ...\\
& ...\\
\mathbf{b_{n}} & =\mathbf{ a_{n}}-\sum\limits_{j=1}^{n-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\
\mathbf{b_{n}} & =\mathbf{ a_{n}}-\sum\limits_{j=1}^{n-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\

Версия от 20:44, 18 сентября 2016


Ортогонализация Грама-Шмидта
Последовательный алгоритм
Последовательная сложность [math]\displaystyle{ O(n^3) }[/math]
Объём входных данных [math]\displaystyle{ }[/math]
Объём выходных данных [math]\displaystyle{ }[/math]
Параллельный алгоритм
Высота ярусно-параллельной формы [math]\displaystyle{ }[/math]
Ширина ярусно-параллельной формы [math]\displaystyle{ }[/math]


Основные авторы описания: А.В.Кибанов, Т.З.Аджиева


ЧАСТЬ. Свойства и структура алгоритма

Общее описание алгоритма

Математическое описание алгоритма

Исходные данные: [math]\displaystyle{ k }[/math] векторов [math]\displaystyle{ \mathbf{a_1},\mathbf{a_2},...,\mathbf{a_n} }[/math] длины [math]\displaystyle{ n }[/math] ([math]\displaystyle{ \alpha_{ij} }[/math], [math]\displaystyle{ j=1,2,...,n }[/math], — координаты вектора [math]\displaystyle{ \mathbf{a_i} }[/math] ).

Вычисляемые данные:

[math]\displaystyle{ k }[/math] ортогональных векторов [math]\displaystyle{ b_1,b_2,...,b_n }[/math] длины [math]\displaystyle{ n }[/math], причем [math]\displaystyle{ b_1=a_1 }[/math] либо

[math]\displaystyle{ k }[/math] ортонормированных векторов [math]\displaystyle{ e_1,e_2,...,e_n }[/math] длины [math]\displaystyle{ n }[/math], причем [math]\displaystyle{ e_1=\frac{a_1}{|a_1|} }[/math]

Формулы процесса ортогонализации:

[math]\displaystyle{ \begin{align} \mathbf{b_{1}} & =\mathbf{a_{1}}, \\ \mathbf{b_{2}}& =\mathbf{a_{2}}-proj_{\mathbf{b_1}}\mathbf{a_{1}}, \\ & ...\\ \mathbf{b_{\hskip1pt i hskip1pt}} & = \mathbf{a_{i}}-\sum\limits_{j=1}^{i-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\ & ...\\ \mathbf{b_{n}} & =\mathbf{ a_{n}}-\sum\limits_{j=1}^{n-1} proj_{\mathbf{b_j}}\mathbf{a_{j}},\\ \end{align} }[/math]

Здесь [math]\displaystyle{ proj_{\mathbf{b_j}}\mathbf{a_{j}} }[/math], для [math]\displaystyle{ j=1,...,n-1 }[/math] проекция вектора math>\mathb{a_{j}}</math> на направление вектора math>\mathb{b_{j}}</math>.

Cуществует также модифицированная версия алгоритма, однако в данном описании разобран только классический алгоритм ортогонализации Грама-Шмидта.

Вычислительное ядро алгоритма

Макроструктура алгоритма

Схема реализации последовательного алгоритма

[math]\displaystyle{ \begin{align} a_{1} & =b_{1}, \\ \beta_{ij} & = \frac{(a_{i},b_j)}{(b_j,b_j)}=-\frac{(a_i,b_j)}{|b_j|^2}, \quad i \in [2, n], \quad j \in [1, n] ,\\ \end{align} }[/math]


Последовательная сложность алгоритма

Информационный граф

Ресурс параллелизма алгоритма

Входные и выходные данные алгоритма

Свойства алгоритма

ЧАСТЬ Программная реализация алгоритма

Особенности реализации последовательного алгоритма

Локальность данных и вычислений

Возможные способы и особенности параллельной реализации алгоритма

Масштабируемость алгоритма и его реализации

Динамические характеристики и эффективность реализации алгоритма

Выводы для классов архитектур

Существующие реализации алгоритма

Литература

[1] Википедия [Электронный ресурс]. Тема: Процесс_Грама_―_Шмидта – Электрон. дан. – URL [1] (дата обращения 18.09.2016)