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

Алгоритм Качмажа

Материал из Алговики
Перейти к навигации Перейти к поиску


Алгоритм Качмажа (S. Kaczmarz)


Основные авторы описания: Е.С. Козлова, А.А. Иванов.

Содержание

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

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

Стефан Качмаж (Stefan Kaczmarz) - польский математик, родился 1895 г. в городе Самбор (Sambor) Галиция (Galicia), Австро-Венгрия (Austria-Hungary), ныне Украина. Стефан Качмаж был профессором математики на факультете машиностроения университета Яна Казимира (Jan Kazimierz University) в городе Львов (Lwów) с 1919 по 1939 год, там же сотрудничал с Стефаном Банахом. Предложенный им итерационный метод решения с.л.а.у. послужил основой для многих современных технологий в обработке изображений, в том числе в задачах компьютерной томографии [1].

Применение метода С. Качмажа или т.н. метода алгебраической реконструкции наиболее известно в задачах реконструктивной компьютерной томографии высокого разрешения. Для интерпретации данных, полученных в результате неразрушающего сканирования некоторого объекта, с 60-70-х годов применяются различные аппаратные и программные реализации итерационного метода, разработанного польским математиком С. Качмажем (S. Kaczmarz) в 1937 году[2]; этот метод был использован Г. Хаусфилдом (G.N. Hounsfield) - конструктором первого томографа «ЭМИ-сканнер»[3] (нобелевская премия по физиологии и медицине в 1979 году).

Так же данный метод можно часто встретить под следующими названиями: Algebraic Reconstruction Technique (ART)[4][5][6], Projection onto Convex Sets (PCS)[7], Kaczmarz Algorithm [8] или метод ортогональных проекций.

Конструированию различных алгоритмов на основе итераций С. Качмажа посвящено существенное количество работ: согласно исследованию польского математика и библиографа А. Сигелски (A. Cegielski), на начало 2010 года статья С. Качмажа цитируется более чем в четырехстах реферируемых и значимых публикациях ученых из различных областей знаний. В Советской и Российской научных школах исследования итераций С. Качмажа представлены в литературе такими известными учеными как: В.Н. Ильин, Г.П. Васильченко, А.А. Светлаков и другие, например, в работах[9][10]. Общие идеи о проекционных методах так же представлены в классической работе Л. Г. Гурина, Б. Т. Поляка, Э. В. Райка[11], где впервые предлагается и обосновывается идентичный алгоритм для решения систем линейных алгебраических неравенств и уравнений.

В 2008 году американскими математиками Т. Штромером (T. Strohmer) и Р. Вершининым (R. Vershynin) в [12] была предложена рандомизированная модификация итерационного метода, в которой последовательность приближений к решению для совместных и переопределенных с.л.а.у. сходится с экспоненциальной скоростью.

Множество модификаций идеи метода ортогональных проекций нашли свое практическое применение в различных областях знаний, связанных с обработкой и интерпретацией больших объемов данных: при реконструкции синограмм в медицине, биологии, геологии; при решении задач диагностики плазмы, кристаллографии[13], дефектоскопии и микроскопии, параллельных вычислений и распределенного анализа[14] и др.

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

1.2.1 Математическое описание

Запишем совместную (в общем случае - переопределенную) с.л.а.у.

[math]Au=f,\, A\in R^{m\times n},\, u\in R^{n},\, f\in R^{m},[/math]

тогда итерации согласно алгоритму определяются последовательностью

[math]u^{k+1}=u^{k}+\lambda_{k}\frac{f_{j\left(k\right)}-\left(a_{j\left(k\right)},u^{k}\right)}{\Vert a_{j\left(k\right)}\Vert^{2}}a_{j\left(k\right)},[/math]

где

[math]A=\left(a_{1},\, a_{2},\,\ldots\,,\, a_{m}\right)^{T}\in R^{m\times n},\, u\in R^{n},\, f=\left(f_{1},\, f_{2},\,\ldots\,,\, f_{m}\right)\in R^{m},[/math]

а последовательность проектирования в классическом варианте алгоритма определяется как

[math]j\left(k\right)=\left(k\ \bmod\ m\right)+1,\, k=\overline{0,\infty},[/math]

где [math]k[/math] - номер итерации, [math]u^{0}[/math] - начальное приближение, а [math]\lambda_{k}[/math] - параметр релаксации (Рис. 2 построен для случая, когда [math]\lambda_{k}=1,\,\forall k[/math]).

1.2.2 Геометрическая интерпретация

Метод алгебраической реконструкции достаточно просто формулируется с использованием его геометрической интерпретации. Рассмотрим совместную с.л.а.у. с двумя неизвестными

[math]A=\begin{pmatrix}3 & 2\\
2 & 3
\end{pmatrix},\text{ }f=\begin{pmatrix}1\\
2
\end{pmatrix}[/math]

и несовместную переопределенную, полученную добавлением к этой системе дополнительного уравнения [math]-u_{1}+u_{2}=1.5[/math]. Каждое уравнение из с.л.а.у. можно интерпретировать как гиперплоскость в пространстве координат, а решение совместной с.л.а.у. - как точку пересечения всех этих гиперплоскостей. При использовании метода алгебраической реконструкции для решения с.л.а.у. поиск приближенного решения осуществляется в направлениях, перпендикулярных к гиперплоскостям, каждая из которых описывается отдельным уравнением решаемой системы (см. Рис.1).

Рисунок 1. К геометрической интерпретации метода алгебраической реконструкции: слева --- случай совместной с.л.а.у., справа --- несовместной с.л.а.у.

Интерактивная диаграмма для совместного случая подготовлена авторами статьи здесь (Notes about S. Kaczmarz algorithm - consistent case), а для несовместного случая здесь (Notes about S. Kaczmarz algorithm - inconsistent case). Данные диаграммы позволяют регулировать параметры с.л.а.у. и начальное приближение, что позволяет наглядно демонстрировать сходимость итерационной последовательности.

Описанные результаты наводят на очевидную идею - проекционная последовательность влияет на скорость сходимости метода ортогональных проекций. Обратите внимание на Рис.2.

Рисунок 2. Выбор последовательности проектирования в алгоритме С. Качмажа: К выбору последовательности ортогональных проекций: слева - последовательность проектирования начинается от первого к последнему уравнению и в обратном порядке - от последнего к предпоследнему (symART[15][16][17]), а справа - последовательность строится циклическим способом (от последнего к первому уравнению и т.д.)

Как показано на Рис. 2 - итерационная последовательность, в случае Рис. 2 (справа) сходится вообще за конечное число итераций.

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

Вычислительное ядро алгоритма Качмажа состоит из двух частей: расчета норм строк матрицы и итеративного расчета решения с.л.а.у. с заданной точностью. Для вычисления норм используются такие макрооперации как транспонирование матрицы, поэлементное произведение матриц и суммирование элементов массива. Расчет очередного приближения решения с.л.а.у. и оценки точности его вычисления выполняются в цикле вплоть до выхода по одному из условий: 1) достижение необходимой точности; 2) достижение максимального числа итераций. Для расчета очередного приближения к решению используются такие макрооперации, как векторное произведение, умножением вектора на число и сложение векторов. Оценка точности вычисления очередного приближения решения проводится путем сравнения нормы вектора отклонения решений на данном и предыдущем шаге с заранее определенным вектором допустимой погрешности, который характеризует чувствительность правила останова. Количество сложений, умножений и сравнений прямо пропорционально количеству итераций, которое зависит от исходных данных (обусловленности матрицы с.л.а.у.), и размерности задачи.

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

Внутри алгоритма Качмажа для вычисления очередного приближения решения используется векторное произведение, умножение вектора на число и сложение векторов. Для вычисления нормы вектора отклонений используются поэлементное возведение в степень вектора, нахождение суммы элементов вектора, возведение числа в степень. Для параллелизации алгоритма Качмажа используются параллельные реализации выше перечисленных макроопераций.

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

  1. Инициализируем вектор решения первым приближением: [math]u = u^{0}[/math]. В качестве первого приближения зачастую используется нулевой вектор.
  2. Рассчитываем нормы строк матрицы с.л.а.у.: [math]{\Vert A \Vert}[/math].
  3. Вычисляем очередной номер проекции: [math]j\left(k\right)=\left(k\ \bmod\ m\right)+1,\, k=\overline{0,\infty}[/math].
  4. Для целей обеспечения устойчивости, проверяем, что норма соответствующей проекции не близка к нулю и продолжаем вычисления, иначе переходим к новой итерации (пункт 3).
  5. Запоминаем предыдущее приближение решения и вычисляем новое: [math]u^{k+1}=u^{k}+\lambda_{k}\frac{f_{j\left(k\right)}-\left(a_{j\left(k\right)},u^{k}\right)}{\Vert a_{j\left(k\right)}\Vert^{2}}a_{j\left(k\right)}[/math].
  6. Если решение вычислено с заданной точностью, то выходим из цикла иначе переходим к новой итерации (пункт 3).

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

Вычислительная сложность алгоритма Качмажа складывается из вычислительных сложностей макроопераций, которые ,спользуются внутри алгоритма (см. предыдущий раздел). В первой части алгоритма, где рассчитываются нормы строк матрицы, основная доля приходится на обращение матрицы [math]A[/math]. Сложность данной макрооперации [math]O(n^{3})[/math]. Во второй итеративной части по расчету решения с.л.а.у. основной вклад в вычислительную сложность вносит операция векторного произведения - [math]O(n^{2})[/math]. Однако необходимо учесть, что количество итераций алгоритма заранее не определено и сильно зависит от входных данных.

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

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

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

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

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

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

Ниже представлен прототип программной реализации алгоритма на языке MatLab. Большое количество вариантов реализации и различных модификаций представлено в этих пакетах [18][19].

function [ u ] = ART(A, f, maxit, tol)
%ART1 - алгоритм алгебраической реконструкции (С. Качмажа) с циклическим обходом
%   A, f - исходные данные задачи
%   tol - чувствительность правила останова
	[m,n] = size(A); u = zeros(n,1);
	% Нормы строк матрицы с.л.а.у. рассчитываются заранее
	nrma2 = full(abs(sum(A.*A',1)));
	for k = 1:1:maxit     
		j = mod(k-1,m) + 1;
		if (nrma2(j) <= 0), continue, end;
		u_prev = u;
		u = u + (f(j) - (A(j,:)*u))/nrma2(j) * A(j,:)';
		if (norm(u_prev-u) <= tol), break, end;
	end;
end;

В качестве критерия завершения итераций используют наиболее популярные правила останова (но не всегда эффективные): критерий останова по невязке [math]\left\Vert A\cdot u_{k}-f\right\Vert \lt \epsilon[/math] или [math]\left\Vert u_{k-1}-u_{k}\right\Vert \lt \epsilon[/math] (как в представленной реализации). Последний критерий может слишком рано завершать итерации, в виду того, что часто, алгоритм имеет медленную скорость сходимости.

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

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

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

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

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

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

3 ЧАСТЬ. Дополнительная информация

3.1 Классификация проекционных последовательностей

Под проекционной последовательностью понимается порядок обхода уравнений системы в процессе итераций алгоритма Качмажа. А рассматриваемая последовательность задается с использованием правила [math]j\left(k\right)[/math], где [math]k\in N_{0}[/math] которое позволяет вычислить номер используемого уравнения на итерации с номером [math]k[/math]. Правило [math]j\left(k\right)[/math]рассматривать как сюръективное отображение множества [math]N_{0}[/math] на множество [math]\left\{ 1,2,\ldots,m\right\}[/math], где [math]m[/math] - количество уравнений в с.л.а.у. [math]Au=f,\ A\in R^{m\times n},\ u\in R^{n},\ f\in R^{m}[/math].

Отображения такого вида могут быть как детерминированными, так и случайными, рандомизированными. В последнем случае [math]j\left(k\right)[/math] является дискретной случайной величиной с заданным законом распределения. Например, к детерминированным отображениям необходимо отнести:

  • правило циклического обхода [math]j\left(k\right)=\left(k\bmod m\right)+1,\, k=\overline{0,\infty}[/math];
  • метод четной перестановки - эвристический метод для задач компьютерной томограции из [20];
  • симметричное правило (symmetric ART), в котором последовательность проектирования на гиперплоскости идет в начале в прямом порядке от первого уравнения к последнему, а затем в обратном порядке - от последнего - к первому.

Существенно важной является классификация рассматриваемых правил по их зависимости от данных. Например, результат из [21], где [math]j\left(k\right)[/math] является дискретной случайной величиной с заданным законом распределения [math]P\left(j\left(k\right)=i\right)=\frac{\left\Vert a_{i}\right\Vert _{2}^{2}}{\left\Vert A\right\Vert _{F}^{2}}[/math], где [math]\left\Vert \cdot\right\Vert _{F}[/math] - матричная норма Фробениуса и [math]\left\Vert a_{i}\right\Vert[/math] - евклидова норма строки матрицы с.л.а.у. с номером [math]i=\overline{1,m}[/math]. Этот результат качественно отличается от всех известных рандомизированных способов наличием зависимости от матрицы с.л.а.у - от исходных данных задачи.

Рисунок 3. Классификация правил для задания проекционной последовательности в алгоритме C. Качмажа

3.2 Рандомизированная версия алгоритма и скорость сходимости

3.3 Алгоритм Качмажа как метод максимального уменьшения ошибки на каждой итерации

3.4 Алгоритм Качмажа с четной перестановкой

3.5 Параллельные реализации

4 Литература

  1. Natterer, Frank (2001), "V.3 Kaczmarz's method", The Mathematics of Computerized Tomography, Classics in Applied Mathematics 32, SIAM, p. 128, ISBN 9780898714937.
  2. Kaczmarz, S. Angenäherte Auflösung von Systemen linearer Gleichungen [Текст] / S. Kaczmarz // Bulletin International de l'Académie Polonaise des Sciences et des Lettres / Classe des Sciences Mathématiques et Naturelles. Série A, Sciences Mathématiques. — 1937. — Vol. 35. — С. 355-357.
  3. Hounsfield, G. N. A Discussion on Recent Developments in Medical Endoscopy and Related Fields [Текст] / G. N. Hounsfield // Proceedings of the Royal Society of London. Series B, Biological Sciences. — 1977. — Vol. 195, N. 1119. — С. 281-289.
  4. Gordon, R. Algebraic reconstruction techniques (ART) for three-dimensional electron microscopy and x-ray photography [Текст] / R. Gordon, R. Bender, G. T. Herman // Journal of theoretical biology. — 1970. — Vol. 29, Issue 3. — С. 471–481.
  5. Micke, A. The Mathematics of Computerized Tomography [Текст] / A. Micke, F. Natterer // ZAMM - Zeitschrift für Angewandte Mathematik und Mechanik (Journal of Applied Mathematics and Mechanics). — 1987. — Vol. 67, Issue 11. — С. 580. —ISBN 3-519-02103-X and 0-471-90959-9.
  6. Herman, G. T. Fundamentals of computerized tomography: Image reconstruction from projection [Текст] : 2nd ed. / G. T. Herman. — Springer, 2009. — 300 с.
  7. Sezan, K. M. Applications of convex projection theory to image recovery in tomography and related areas [Текст] / K. M. Sezan, H. Stark // Image Recovery: Theory and Application / H. Stark, editor. — Academic Press, 1987. — С. 415-462.
  8. Cegielski, A. Bibliography on the Kaczmarz method [Электронный ресурс] : Faculty of Mathematics, Computer Science and Econometrics University of Zielona Gora ; Poland, March, 28th, 2010 / Режим доступа: http://www.uz.zgora.pl/~acegiels/Publikacje-Kaczmarz.pdf
  9. Ильин, В. П. Об итерационном методе Качмажа и его обобщениях [Текст] / В. П. Ильин // Сибирский журнал индустриальной математики. — 2006. — Т. 9, вып. 3. — С. 39–49.
  10. Г. П. Васильченко, А. А. Светлаков, “Проекционный алгоритм решения систем линейных алгебраических уравнений большой размерности”, Ж. вычисл. матем. и матем. физ., 20:1 (1980), 3–10.
  11. Л. Г. Гурин, Б. Т. Поляк, Э. В. Райк, “Методы проекций для отыскания общей точки выпуклых множеств”, Ж. вычисл. матем. и матем. физ., 7:6 (1967), 1211–1228
  12. Strohmer, T. A Randomized Kaczmarz Algorithm with Exponential Convergence [Текст] / T. Strohmer, R. Vershynin // Journal of Fourier Analysis and Applications. — 2009. — Vol. 15, Issue 2. — С. 262-278.
  13. Marks, L. D. A feasible set approach to the crystallographic phase problem [Текст] / L. D. Marks, W. Sinkler, E. Landree // Acta Crystallographica Section A. — 1987. — Vol. 55, Issue 4. — С. 601-612.
  14. JElble, J. M. GPU computing with Kaczmarz’s and other iterative algorithms for linear systems [Текст] / J. M. Elble, N. V. Sahinidis, P. Vouzis // Parallel Computing. — 2010. — Vol. 36, Issues 5-6. — С. 215–231.
  15. Bjorck, A. Accelerated projection methods for computing pseudoinverse solutions of systems of linear equations [Текст] / A. Bjorck, T. Elfving // BIT Numerical Mathematics. — 1979. — Vol. 19, Issue 2. — С.145-163.
  16. Nikazad, T. Algebraic Reconstruction Methods [Текст] : PhD. Thesis, Linköping University / T. Nikazad. — Linköping, 2008.
  17. Kamath, G. Component-Average Based Distributed Seismic Tomography in Sensor Networks [Текст] / G. Kamath, L. Shi, W.-Z. Song // IEEE International Conference on Distributed Computing in Sensor Systems. — 2013. — С. 88-95.
  18. Hansen, P. C. AIR Tools – A MATLAB package of algebraic iterative reconstruction methods [Электронный ресурс] / Режим доступа: http://www2.compute.dtu.dk/~pcha/AIRtools/
  19. Ivanov, A. A. Regularization Kaczmarz Tools Version 1.4 for Matlab, Matlabcentral Fileexchange [Электронный ресурс] / Режим доступа: http://www.mathworks.com/matlabcentral/fileexchange/43791
  20. Guan H. A projection access order for speedy convergence of ART (algebraic reconstruction technique): a multilevel scheme for computed tomography [Текст] / Guan H., R. Gordon // Physics in Medicine and Biology. — 1994. — Vol. 39, N. 11. — С. 2005-2022.
  21. Strohmer, T. A Randomized Kaczmarz Algorithm with Exponential Convergence [Текст] / T. Strohmer, R. Vershynin // Journal of Fourier Analysis and Applications. — 2009. — Vol. 15, Issue 2. — С. 262-278.