№ 5 (50)
май, 2018 г.
ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ АЛГОРИТМОВ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ НАД КЛЕТОЧНЫМИ МАТРИЦАМИ
Чернокозов Владимир Васильевич
канд. техн. наук, доцент кафедры автоматики и управления, Московский политехнический университет,
107023, РФ, г. Москва, ул. Большая Семеновская, д.38 E-mail: wlchernokozov@mail. ru
IMPROVING THE EFFICIENCY OF ARITHMETIC ALGORITHMS OVER CELL MATRICES
Vladimir Chernokozov
Candidate of Engineering Sciences, Associate Professor of automation and control Department,
Moscow Polytechnic University, 107023, Russia, Moscow, Bolshaya Semenovskaya str., 38
АННОТАЦИЯ
В статье рассмотрена задача получения количественных соотношений числа элементарных операций при сложении и умножении клеточных матриц с учетом нулевых элементов. Полученные соотношения дают возможность оценить выигрыш учета нулевых элементов матриц в алгоритмах, содержащих арифметические операции над матрицами.
ABSTRACT
The article deals with the problem of obtaining quantitative ratios of the number of elementary operations in the addition and multiplication of cell matrices with zero elements. The obtained relations give a possibility to assess the gain of considering zero elements of the matrices in the algorithms of arithmetical operations on matrices.
Ключевые слова: элементарные операции, матрицы, нулевые элементы, алгоритмы.
Keywords: elementary operations, matrices, zero elements, algorithms.
Арифметические операции над матрицами реализуются в ряде научно-технических направлений [2]: геометрическое моделирование, современная ускорительная техника, проектирование роботизированных систем, классификация бинарных отношений, численное решение дифференциальных уравнений, обработка сигналов и др. Операции над матрицами используются при математическом моделировании процессов, систем и явлений.
Обработка больших объемов данных повышает требования к времени нахождения арифметических операций над матрицами. Часто время, затрачиваемое на выполнение расчетов с матрицами, является определяющим фактором, от которого зависит общее время решения прикладной задачи в целом. Сокращение числа арифметических операций над матрицами, позволяет существенно сократить время реализующих их алгоритмов на современных вычислительных средствах.
Матрицы высокого порядка, описывающие сложные системы, как правило, содержат определенное (часто значительное) число нулевых элементов. Учет нулевых элементов при составлении программ, выполняющих операции над матрицами высокого порядка приводит к увеличению быстродействия и уменьшению объема памяти, резервируемой процессором для выполнения программы. Ниже приводятся исходные соотношения для оценки эффективности
одного из методов учета нулевых элементов разбиения матриц на блоки (клетки).
Рассмотрим две матрицы A=[a^J]m,n и B=[Ъij]mn одинакового типа. Пусть эти матрицы разбиты на клетки:
A=
Ац
Лр1
А
1 ч
А
pq-l
; b=
Bi вг
(1)
Если p=r и q=s и клетки и В^ имеют одинаковый тип, то
A+B=
+ ßi
Api + Вр1
Alq + Biq
А 4- R
. (2)
До разбиения на клетки, сложение матриц А и B требовало =m п элементарных операций сложения. Определим, сколько таких операций потребуется с учетом клеточной структуры матриц.
Разобьем клетки на четыре вида: нулевые, все элементы которых равны нулю, обозначим Н; диагональные - Д; треугольные, элементы которых ниже (выше) главной диагонали равны нулю, обозначим Т; Полные матрицы, в которых не учитываются нулевые значения их элементов, обозначим П.
1
Библиографическое описание: Чернокозов В.В. Повышение эффективности алгоритмов арифметических операций над клеточными матрицами // Universum: Технические науки: электрон. научн. журн. 2018. № 5(50). URL: http://7universum.com/ru/tech/archive/item/5929
№ 5 (50)
май, 2018 г.
Элементы матрицы (2) Ац + В^ в зависимости от вида матриц А^ и В^ разобьем на четыре группы: 1 -Н+Н, Н+Д, Н+Т, Н+П; 2 - Д+Д; Д+Т; Д+П; 3 - Т+Т, Т+П; 4 - П+П.
Пусть размерность клетки Ац(Вц) равна кц х
сч •
Число элементарных сложений (вычитаний) N¿1 при определении элементов матрицы А + В в зависимости от группы равно:
1. N,1 =0; 2. N,2= ки ,(ки = Сц ); 3. N,3= кц ■ Сц . Обозначим VI множество пар индексов I,) элементов Ац + Вц матрицы
А+В, принадлежащих 1- ой группе. Тогда число элементарных сложений
(вычитаний) равно: к2 -кц
К =Zv2kij +
+ )+ Z
v4 кЧ • СЧ ' (3)
Сравнивая величину =т п с величиной из (3), можно определить эффективность разбиения матриц А и В на клетки при их сложении.
Рассмотрим произведение матриц А= [ац]тп и В=[Ьу]„,№ , которые имеют структуру вида (1), причем в (1) д=г. Все клетки Ац и В]1 таковы, что число столбцов клетки Ац равно числу строк клетки В]1 , т.е. Ац - типа ки х Су , а Вп - типа су х .
Число элементарных умножений при перемножении матриц А и В без учета клеточной структуры равно Му = пт^, а число элементарных сложений Мс=(п-1)т^.
Определим число элементарных умножений и сложений при вычислении одного элемента произведения с учетом клеточной структуры исходных матриц:
А¿1 ■В1к + ... +А1ч Вчк , (1 = 1,р; к = 1,5 ). (4)
В зависимости от вида клеток Ац и В]1 разобьем произведения клеток, входящих в (4), на четыре группы, аналогичные уже рассмотренным для случая
сложения матриц: 1 - Н Н, НД, НТ,НП; 2 - Д Д; Д Т; ДП; 3 - ТТ, Т П; 4 - П П. Нетрудно видеть, что число элементарных сложений и умножений не зависит от перестановки клеток в произведении.
В зависимости от принадлежности произведения клеток в (4) к той или иной 1 - ой группе, определим число элементарных сложений Мс1 и умножений Му1:
1. Мс1 = 0, Му1= 0;
2. Мс2 = 0, Му2 =кй;
3. Мсз(Т-Т) =
^^Х^О, при к=а=С;
1£=1щ=ки-о
Муъ (ТТ)
^ы+Ж+а-) при к=а=с;
Мсз(Т-П) = = , при с=к;
Муз(ТП) = ТЦ=1 Ь = ^^ , при с=к;
4. Мс4 = (с-1)кй; Му4 = скй. Обозначим через щ - число произведений 1 - й группы в (4), тогда число элементарных умножений в (4) будет равно
К = ZUnt •м,
У"
а число сложений
К = £4=1*1 -мс1 + (q+1)•k•d.
Таким образом, вычисляя величины Ыу и Ыс для всех элементов результирующей матрицы произведения А и В, можно определить общее число элементарных сложений и умножений при учете клеточной структуры исходных матриц. Без учета клеточной структуры общее число элементарных умножений равно ^ = q•c•k•d , а сложений Nс = q•(c-1)•k•d + (q-1)к^. Сравнение числа элементарных операций до и после разбиения матриц на клетки может служить критерием эффективности этого метода.
Список литературы:
1. Демидович Б.П., Марон И.А. Основы вычислительной математики. -М.: Наука, 1970. - 664 с.
2. Зотолокин Ю.А., Ватутин Э.И., Титов В.С. Алгоритмическая оптимизация программной реализации алгоритмов умножения плотных вещественных матриц на графических процессорах с поддержкой технологии OpenGL // Известия Юго-Западного государственного университета. 2017. Т.21, №5(74). С.6-15.
3. Мальцев А.И. Основы линейной алгебры. - М.: Наука, 1975.-400 с.