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

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

Материал из Алговики
Перейти к навигации Перейти к поиску
Строка 16: Строка 16:
 
*
 
*
 
=== Вычислительное ядро алгоритма ===
 
=== Вычислительное ядро алгоритма ===
*
+
Основное время работы алгоритма приходится на вычисление сумм <math>\sum_{i=1}^{j-1} \mathbf{proj}_{\mathbf{b}_i} \mathbf{a}_i \forall j: j=\overline{1, m}</math>.
 +
 
 
=== Макроструктура алгоритма ===
 
=== Макроструктура алгоритма ===
 
*
 
*

Версия 00:36, 16 октября 2016


Ортогонализация Грама-Шмидта
Последовательный алгоритм
Последовательная сложность O(nm^2)
Объём входных данных nm
Объём выходных данных nm
Параллельный алгоритм
Высота ярусно-параллельной формы ?
Ширина ярусно-параллельной формы ?


Основные авторы описания: Белов Н. А., Богомолов Д. А..

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

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

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

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

Основное время работы алгоритма приходится на вычисление сумм \sum_{i=1}^{j-1} \mathbf{proj}_{\mathbf{b}_i} \mathbf{a}_i \forall j: j=\overline{1, m}.

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

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

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

Рассмотрим n векторов длины m.

  1. Скалярное произведение векторов требует n - 1 сложение и n произведений.
  2. Нормализация вектора требует 1 скалярного произведения, 1 вычисления квадратного корня и n делений, то есть:
    1. n-1 (+);
    2. n (\times);
    3. n (\div);
    4. 1 (\sqrt{}).
  3. Вычитание проекции вектора требует 1 скалярного произведения, n сложений и n умножений, то есть:
    1. 2n-1 (+);
    2. 2n (\times).
  4. Вычисление i-го вектора требует i-1 вычитаний проекций с нормализацией, то есть:
    1. (2n-1)(i-1)+n-1 (+);
    2. 2n(i-1)+n (\times);
    3. n (\div);
    4. 1 (\sqrt{}).
  5. Мы вычисляем вектора от i=1 до m, поэтому i-1 множителей выражаются треугольным числом (m-1)\frac{m}{2}, а элементы независимых i умножаются на m.
    1. (2n-1)(m-1)\frac{m}{2}+(n-1)m (+);
    2. 2n(m-1)\frac{m}{2}+nm (\times);
    3. nm (\div);
    4. m (\sqrt{}).
  6. В скалярном произведении n делений могут быть рассмотрены как n умножений:
    1. (2n-1)(m-1)\frac{m}{2}+(n-1)m (+);
    2. 2n(m-1)\frac{m}{2}+2nm (\times);
    3. m (\div);
    4. m (\sqrt{}).

Таким образом, требуется 2nm^2 операций. Сложность алгоритма O(nm^2).

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

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

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

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

2 Программная реализация алгоритма

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

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

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

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

Срок сдачи продлен до 15 ноября.

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

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

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

3 Литература