УДК 51-37+519.61
DOI: 10.25559^тТО.15.201902.274-282
Градуированные вычисления
P. P. Айдагулов1'2, С. Т. Главацкий1*
1 Московский государственный университет имени М.В. Ломоносова, г. Москва, Россия 119991, Россия, г. Москва, ГСП-1, Ленинские горы, д. 1
* glavatsky_st@mail.ru
2 Институт машиноведения РАН имени А.А. Благонравова, г. Москва, Россия 119334, Россия, г. Москва, ул. Бардина, д. 4
Аннотация
Вычисления с большим количеством данных (или данных большой размерности) обычно сводят к наборам вычислений с достаточно малыми их объемами. Одним из способов такого сведения является фильтрация, когда разбиение всего объема данных на мелкие составляющие сводится к рассмотрению ветвлений на графе (дереве). Метод фильтрации вычислений, кратко формулируемый как метод «разделяй и властвуй», часто позиционируется как наиболее эффективный метод сокращения количества операций в сложных вычислениях. Мы рассмотрим здесь более эффективный метод, метод градуированных вычислений, суть которого ранее не была опубликована.
Основное содержание нашего метода заключается в разбиении множества элементов вычисления по их значениям. Это позволяет избежать множества повторов в промежуточных вычислениях. Градуировка линейного пространства предполагает разбиение его на подпространства так же, как при представлении его в виде тензорного произведения компонент малых размерностей. Значениями в этом случае являются линейные функционалы, которые вычисляются как многочлены, сопоставляющие определенные значения базисным элементам компонентов тензорного произведения. В задачах сортировки выигрыш скорее не так существенен, а в задачах умножения выигрыш метода градуированных вычислений проявляется явно. Даже в случае произведения больших чисел, представление многочлена от одной переменной как многочлена от нескольких переменных, соответствующее тензорному произведению пространств малых размерностей (малых степеней в компонентах), приводит к более эффективным алгоритмам, нежели алгоритм Карацубы, соответствующий вычислению с фильтрацией. Наш алгоритм позволяет выполнить вычисления за Nlog (Ы) операций при количестве данных N. Метод фильтрации приводит, вообще говоря, к N° операций с экспо-нентой (умножения) а > 1.
Ключевые слова: алгоритм, алгоритм Карацубы, алгоритм Штрассена, градуировка, фильтрация.
Для цитирования: Айдагулов Р. Р., Главацкий С. Т. Градуированные вычисления // Современные информационные технологии и ИТ-образование. 2019. Т. 15, № 2. С. 274-282. DOI: 10.25559/ SITITO.15.201902.274-282
|© Айдагулов Р. Р., Главацкий С. Т., 2019|
Контент доступен под лицензией Creative Commons Attribution 4.0 License. The content is available under Creative Commons Attribution 4.0 License.
Современные информационные технологии и ИТ-образование
Том 15, № 2. 2019
ISSN 2411-1473
sitito.cs.msu.ru
THEORETICAL QUESTIONS OF COMPUTER SCIENCE, COMPUTATIONAL MATHEMATICS, COMPUTER SCIENCE AND COGNITIVE INFORMATION TECHNOLOGIES
Graded Computing
R. R. Aidagulovab, S. T. Glavatskya*
a Lomonosov Moscow State University, Moscow, Russia 1, Leninskie gory, Moscow 119991, Russia * glavatsky_st@mail.ru
b Institute of Mechanical Engineering RAS after A.A. Blagonravov, Moscow, Russia 4 Bardina St., Moscow 119334, Russia
Abstract
Calculations with a large amount of data (or data of a large dimension) are usually reduced to sets of calculations with fairly small amounts of them. One of the methods of such information is filtering, when splitting the entire volume of data into small components is reduced to the consideration of branching on a graph (tree). The filtering method of computations, briefly formulated as the "divide and rule" method, is often positioned as the most effective method of reducing the number of operations in complex computations. We consider here a more efficient method, the method of graded calculations, the essence of which has not been previously published.
The main content of our method is to split the set of elements of the calculation according to their values. This avoids many repetitions in intermediate calculations. Graduation of a linear space implies splitting it into subspaces in the same way as when representing it as a tensor product of components of small dimensions. In this case, the values are linear functionals, which are calculated as polynomials that associate certain values with the basis's elements of the components of the tensor product. In sorting problems, the gain is probably not so significant, and in multiplication problems, the gain in the method of graded calculations appears explicitly. Even in the case of the multiplication of large numbers, the representation of a polynomial in one variable as a polynomial in several variables, corresponding to the tensor product of spaces of small dimensions (small degrees in the components), leads to more efficient algorithms than the Karatsuba algorithm, corresponding to the calculation with filtering. Our algorithm allows us to perform calculations for Nlog (N) operations with the amount of data N. The filtering method leads, generally speaking, to N" exponential operations (multiplication) a> 1.
Keywords: algorithm, Karatsuba multiplication algorithm, Strassen algorithm, grading, filtering.
For citation: Aidagulov R.R., Glavatsky S.T. Graded Computing. Sovremennye informacionnye teh-nologii i IT-obrazovanie = Modern Information Technologies and IT-Education. 2019; 15(2):274-282. DOI: 10.25559/SITITO.15.201902.274-282
Modern Information Technologies and IT-Education
Введение. Вычисления с фильтрацией и градуированные вычисления
Вычисления с большим количеством данных (или данных большой размерности) обычно сводят к наборам вычислений с достаточно малыми их объемами. Одним из способов такого сведения является фильтрация, когда разбиение всего объема данных на мелкие составляющие сводится к рассмотрению ветвлений на графе (дереве).
Вычисления при этом начинаются с нижних листьев, результаты передаются вышерасположенному уровню, где они агрегируются (сливаются), и т.д., вплоть до самого верхнего уровня дерева и результирующей агрегации. Это хорошо описано в методе сортировки слиянием. Общеизвестная мастер-теорема относится к оценке сложности вычисления методом фильтрации (не обязательно с бинарным деревом). При умножении больших чисел (или при умножении с большой точностью) к этому методу относится алгоритм Карацубы, при умножении матриц - его аналог, алгоритм Штрассена. Под градуированным вычислением мы понимаем вычисление по схеме, когда результаты промежуточных вычислений передаются во все продолжения градуировки по схеме из рисунка 1 ниже (справа).
Р и с. 1. Схемавычислений фильтрацией (слева)иградуированных
вычислений(справа) F i g. 1. Filtration calculationscheme (left) andgradedcalculations (right)
За счёт более широкого использования промежуточных вычислений повторы в вычислениях минимизируются, и достигается большая эффективность, нежели при вычислении с фильтрацией. При вычислении методом фильтрации элементами вычислений являются конечные вершины на графе - листья. Результаты промежуточных вычислений передаются только единственному верхнему узлу. При градуированном же вычислении — все пути, проходящие через один узел на каждом уровне. Результаты промежуточных вычислений передаются на продолжение градуировки (на рисунке с бинарной градуировкой) как правому, так и левому продолжению. В отличие от дерева, упорядочивание уровней носит условный характер, и их можно перенумеровать. На дереве порядок уровней определен жестко через граф связей (смотри рисунок слева). Отличие градуированного вычисления от вычисления с фильтрацией лучше объяснить на конкретных примерах. В качестве первого примера рассмотрим задачу упорядочивания, называемую сортировкой. При решении задачи методом фильтрации множество элементов разбивается на два подмножества, они, в свою очередь, - на два подмножества поменьше, и т.д. Вычисление (упорядочивание) начинается от отдельных элементов (листьев на графе), являющихся терминальными множествами, не разбивающимися далее. В задаче сортировки метод фильтрации называется сортировкой слиянием. Имея два отсортированных подмножества с т°8т2 элемента-
ми (вначале для листьев m1 = 1 = m2 ), за m1 + m2 -1 сравнений получаем упорядоченное (слитое) подмножество из m1 + m2 элементов. Поднимаясь по бинарному дереву, получаем упорядочение всего массива из n элементов примерно за nlog (n) сравнений (логарифм без указания основания в информатике означает логарифм по основанию 2). Здесь следует указать, что одно сравнение может состоять из большого количества операций (с точки зрения процессора). Такое происходит, когда сравниваются почти идентичные тексты или числа, совпадающие на многих разрядах. В качестве примера рассмотрим массив целых чисел
k-1
X = Yik-1- j 22' -' = 'о + h2 + •-• • + 4-12 k-^0или h = 1 •
j=0
При упорядочении этого массива из n = 2к чисел в среднем приходится считывать и сравнивать n / 3 бита с каждой парой сравниваемых чисел. Соответственно, упорядочивание выполняется за O(n2 log n)[ битовых операций.
Рассмотрим теперь другой метод упорядочивания. Вначале разделим множества на положительные и отрицательные числа (определяется одним битом). Главное здесь то, что любое положительное число больше любого отрицательного. В нашем случае отрицательных чисел нет, и этот этап пропускаем. Далее разбиваем на подмножества по их порядку. Опять-таки, любое число, имеющее больший порядок, больше любого числа, имеющего меньший порядок. Далее в полученных подмножествах продолжаем разбиение по порядку, полученному обнулением основного бита, определяющего их порядок, и т.д. Полученные новые значения чисел могут иметь совершенно разные порядки и могут опять разбиваться на подклассы по новому порядку. Если порядки чисел одинаковые, то разбиваем их по значению следующего определяющего бита. Так мы действительно получим упорядочивание за O(nlog (n) операций, по крайней мере, для упорядочивания указанного массива. Преимуществом этого способа является разбиение упорядочиваемого множества на подмножества по значениям их элементов. Подмножества с близкими значениями разбиваются на малые подмножества после вычета одного из определяющих битов, или по тому, насколько имеется отличие от одного из элементов. При этом убирается сравнение множества пар по неотличающимся битам. Пусть числа задаются m битами. Тогда количество выполняемых битовых операций равно Oiin + тдlog(n) операций. В предыдущем случае было 0(пт\og(n) операций.
Этот метод во многом сходен с первой реализованной одним из авторов подпрограммой упорядочивания. Тогда за O(п) операций находилось минимальное и максимальное значение в массиве чисел. Далее по их значениям определялся номер корзины:
№=
(Х.-Хшш )т
Когда данные распределены равномерно, и т ~ 2п, то номер корзины уже определяет порядок числа без всяких сравнений. В случае неравномерности распределения требуется доработать вышеуказанным способом. Номер корзины (полученный по значению) представляет градуировку элемента. Существенным здесь является упомянутое выше свойство разбиения по значениям: если номер }р)>)(к), то х1 > хк без всякого сравнения. Разбиение по значениям ассоциируется с инте-
Современные информационные технологии и ИТ-образование
Том 15, № 2. 2019
ISSN 2411-1473
sitito.cs.msu.ru
гральной суммой интеграла Лебега, в то время как сортировка слиянием ассоциируется с интегральной суммой интеграла Римана. Допустим, значения х1 равны 0 или 1, как у характеристической функции некоторого подмножества. Тогда в нашем случае, как и при вычислении интегральной суммы Лебега, мы сразу отделяем это подмножество по значениям 0 или 1. В последнем случае (сортировка слиянием) упорядоченные множества расширяются за счет слияния нулевых значений с нулевыми, единичных с единичными, как при интегральной сумме Римана.
В качестве второго примера рассмотрим умножение больших чисел. Перемножаемые числа записываются в системе исчисления с основанием N = 2: X = х0 + Х1N + ... + хку = Уо + у^ +... + укЗдесь количество цифр у обоих множителей п. Это не принципиально, всегда можно при необходимости дополнить нулевыми старшими цифрами. При умножении методом фильтрации (метод Карацубы для умножения больших чисел) числа разделяются на два примерно одинаковых числа х = Х1 + Х2М, у = Y1 + Y2М. Произведение сводится к произведению трех пар чисел вдвое меньшего разряда:
ху = Х& + (Х^2 + X2Yl )М + X2^2М2, Х^2 + X2Yl = ((I + Х2)(( + Y2)-ХЛ -Х2Y2.
Таким образом, произведение ^разрядных чисел вычисляется за О(«1ое(3)^ операций. Градуированному вычислению произведения соответствует умножение больших чисел методом Кули-Тьюки с использованием дискретного преобразования Фурье. Умножение чисел сводится к умножению многочленов с коэффициентами, соответствующими коэффициентам в первоначальном представлении. Количество разрядов п увеличивается до необходимого уровня, чтобы их произведение так же могло быть записано как ^разрядное число. При необходимости п увеличивается до такого значения, чтобы оно имело разложение на малые множители п = р1 р2...рк. Градуировка определяется, по сути, этим разложением и значениями многочленов соответствующих значений. Умножение многочленов вычисляется через произведения их значений. Остается эффективно вычислить значения многочлена в корнях из 1. Пусть п = рт. Тогда вычисление п значений на корнях степени п для многочлена:
/ (х) = а0 + а1 х + ... + ап-1х"~1
сводится к вычислению m значений для p многочленов степени m:
/о (х" ) = ао + архх +. + а(т-1)р х{т~1)р >
/ (хР ) = а1 + ар+1хР +. + а(т-1)р+1 х{("~11Р ,
/р-1 (хр ) = ар- + а2р-Iхр + ■ • ■ + а(т-1)р+р-1 Х{""11р .
По этим вычисленным величинам значения нашего многочлена получаются по формуле:
/(х) = /о (хр) + х/ (хр) + ...х"~1/р_1 (хр).
Здесь нам потребуется дополнительно складывать (p-1)n раз и умножать примерно столько же раз (на самом деле чуть меньше, при вычислении случая E = 1 обходимся без умножения). Таким образом, количество T (п) операций для преобразования Фурье на n точках удовлетворяет рекуррентному соотношению
T(п) = pT^Р j + (р - 1)п.
Когда все множители малые, то T(п) да O(nlog (n)) операций.
Если сделать оценку более точной, то для преобразования Фурье с
n = plp2 ...pk точками требуется выполнить N умножений и N сложений, где
N = Pl Р2 . Pk (Pl + P2 + ••• Pk - k ) = n (Pl + P2 + ••• + Pk - k )•
Для поиска минимального N(n) следует найти минимум этого выражения при условии p1p2 ...pk > n• Например, для n=45 величина N = 360 меньше, чем в случае p. = 2,к = 6, n = 64, N(64)=384. Если n=81, то величина N=648 меньше чем N (96) = 672 < 896 = N (128).
Заметим, что корни из 1 в целочисленном варианте берутся из колец Zq таких, для которых q - простое, и q-1 делится на n. Обратное преобразование совпадает по своему виду с преобразованием Фурье, осуществляется совершенно аналогично и занимает примерно такое же количество операций, что и само преобразование Фурье, так как отличие состоит только в том, что вместо корня т используется корень ш"1 и общий множитель для всех 1.
n
Таким образом, достигается эффективность, пропорциональная объему данных n с коэффициентом log(n)loglog(n) на каждое данное. Последний множитель связан с увеличением длины представления коэффициентов произведения при увеличении степени многочлена.
Заметим, что в последним случае мы опять прибегли к вычислению произведения через значения, и получили результат примерно за nlog (n) операций, что характерно для градуированных вычислений. Градуированность вычисления здесь проявляется в умножении многочленов по модулю многочлена хп — 1, с введением промежуточных переменных х1 = X, x2 = xP1,..., xk = xp-f, xPk = 1. Градуированность вычисления демонстрируется более наглядно в случае умножения многочленов от k переменных х1,х2,з ,хк с независимыми соотношениями хр' = 1. Представителем градуированного элемента является набор степеней
((, i2ik ) : x- x2 ... x'k ,0 < ij < ps. Градуированный элемент является тензорным произведением градуированных элементов с каждого из k уровней. Если все p. = p, то количество базисных градуированных элементов равно pk = n (растет по экспоненциальному закону от количества уровней k). Вычисление значения производится с переходом с одного уровня на другой за O(nk) = O(nlogn) операций. Хотя при вычислении произведения величины xt не являются независимыми, все равно вычисления производятся по канонам градуированного вычисления, описанного ранее.
Modern Information Technologies and IT-Education
Градуированные вычисления произведения матриц
Впервые более быстрый, нежели стандартный, алгоритм умножения матриц был разработан в 1969г. Штрассеном [1]. Этот алгоритм является аналогом алгоритма Карацубы, и имеет сложность О(п10®7) при умножении квадратных матриц размера п х п. В работе1 [2] рассмотрены почти все методы эффективного вычисления произведения матриц. Они сводятся к оценке ранга умножения и вычисления экспоненты умножения а = lognr (п) для алгебры матриц порядка п х п с рангом умножения г (п). Наилучшие оценки экспоненты умножения получены Виноградом и Копперсмитом в [3]. Этот метод более развёрнуто описан в [4]. При этом ранг в алгебре тензорного произведения оценивается через ранги алгебр сомножителей. Так, оценены ранги произведения матриц порядков, являющихся некоторыми степенями 2. Виноградом и Копперсмитом получена оценка с а = 2.373, и в работе [5] с помощью компьютерных вычислений их же методом оценка уточнена для порядка п = 28 = 256 до а = 2.3728639 .
Следует отметить, однако, что в этом методе оценки ранга имеется следующий изъян (недостаток): экспонента умножения для тензорного произведения получается больше /og25 ©2.321928, если экспоненты умножения для сомножителей больше этого числа. При этом отсутствует эффективный способ вычисления значений функционалов, как при преобразовании Фурье. Это приводит к нереально большим коэффициентам для количества операций даже при значениях п < 109 . При больших значениях п количество операций и ресурсов памяти таковы, что вычисления невыполнимы и на самых мощных суперкомпьютерах. Действительно, если нет эффективного способа вычисления функционалов, то количество операций при умножении матриц порядков п = тк оценивается величиной п т к . В методе Штрассена функционалы и постоянные матрицы более разреженные, и поэтому количество операций получается несколько меньше этой оценки. Однако и здесь это вычисление произведения эффективнее стандартного метода лишь начиная с к>9, и не более чем в 2 раза, пока к<14. Для лучшей оценки на сегодня с а = 2.3728639, т = 256 такое вычисление произведения эффективнее стандартного вычисления (с п3 произведениями) только при к>3. Когда к> 4, т=256 размер п матриц не меньше недостижимого значения даже для суперкомпьютеров: п = 232.
Как видно из этого краткого обзора, все успехи в быстром вычислении произведения матриц связаны с методом фильтрации. Успех в градуированном методе вычисления сразу привел бы к алгоритму со сложностью О(n2logdn^, с d=1 или d=2. Настоящая работа задумана как теоретическая статья для описания такого алгоритма. Ранее одним из авторов были опубликованы две алгебраические статьи на эту тему [6,7]. Они, как и настоящая статья, представляют и самостоятельный интерес. В них вводится структура бигрупповой алгебры на алгебре матриц, являющейся алгеброй некоммутативных многочленов от переменных х1, у, с соотношениями:
х"' =1 = У"', X У, = % У, X,
где в. - примитивный корень степени п1, а переменные разного уровня (с разными индексами) между собой коммутируют. Как и в случае умножения больших чисел, более удобной является структура с п1 = 2,в1 = -1. При к уровнях получаем алгебру квадратных матриц п х п, п = 2к. Умножение прямоугольных матриц сводится к умножению в такой алгебре при некотором к (при расширении матриц нулевыми элементами). Эта алгебра является к-й тензорной степенью алгебры матриц второго порядка.
Рассмотрим вначале подробнее структуру этой алгебры. Указанный базис состоит из следующих элементов:
1=I1 0)х=[0 -V
О 1
z = xV = - vx
1 О J 1-1 О
О 1
Переменные х, у, z являются антикоммутирующими. В случае базиса Вейля-Швингера [6], получающегося в этом случае заменой г на iz, где ^ = — 1 (;' - мнимая единица), переменные х, у, 2 симметричны относительно циклической перестановки как мнимые антикоммутирующие единицы кватернионов. В качестве образующих алгебры можно принять любую пару из тройки переменных х, у, 2. В качестве базиса , е, е алгебры можно принять любые линейные комбинации исходного базиса, составляющие базис линейного пространства. Любой линейный функционал / : А ^ R на алгебре определяется по формуле:
/ (а0е0 + а1е1 + а2е2 + а3е3) = а0Х0 + а1Я1 + а2к2 + аъХъ, а1, е R. По сути, его значения получаются, когда базисным элементам е¡ сопоставляют числа X.. При представлении элементов алгебры в другом базисе:
3 =
1
новые координаты представления вычисляются по формулам:
а' = ■
г
Новые координаты функционала связаны со старыми по формулам:
1 • 1 В итоге получается, что функционалы задают значения или коэффициенты в разложении элемента алгебры в некотором (сопряженном) базисе.
При умножении матриц надо уметь представлять их в разных базисах. Матрицы задаются обычно в таком базисе:
(10 ^ ( 0 1 ^ ( 0 0 ^ ( 0 0 А = "00 [0 0) + "01 [0 0) + "10 [ 1 0) + "11 [0 1
Базис е0 = 1,е1 = х,е2 = у,е3 = z назовем стандартным. Координаты матрицы в стандартном базисе имеют вид:
аа ^ >ai 2 > a2 2 > аз 2 ' Одним из удобных базисов является базис с проекторами:
1 Holtz O. Fast and stable matrix multiplication [Электронный ресурс]. URL: https://people.eecs.berkeley.edu/~oholtz/Talks/mit.pdf (дата обращения: 6.05.2019).
Современные информационные технологии и ИТ-образование
Том 15, № 2. 2019
ISSN 2411-1473
sitito.cs.msu.ru
THEORETICAL QUESTIONS OF COMPUTER SCIENCE, COMPUTATIONAL MATHEMATICS, COMPUTER SCIENCE AND COGNITIVE INFORMATION TECHNOLOGIES
1p=L-x e = (L - x)(L - j), _(L+x)(L - J)
2 ' 2 ' 2 .
i + e,x + e2 y + e3 xy Проверим, что оператор z =-1-—-является про-
ектором, учитывая значения попарных антикоммутирующих произведений и квадратов x2 = 1 = у2 _ - (xy) :
2_ 1 + е1+е2-е3 e¡x + s2y + e3xy _ i „2 „2 Z = 4 2
- = z, ej + s2 - e32 = i.
Здесь члены с , i ф ] исчезают из-за антикоммутирования переменных. Это доказывает, что введенные переменные и их дополнения р = 1 — р, е = 1 — е, t = 1 — tявляются проекторами. Представляя первый сомножитель в базисе 1, р, е, t, а другой сомножитель - в базисе 1,р,е,t, получим результат в виде линейной комбинации семи операторов 1, р,е, t, р,е, t.
с = АВ = (г (А)г (В)*1 - А(0,1,1)В(0,0,0)р -
- А (1,1,1)В (1,0,0)р - А (1,0,0 )В (0,0,1) -
- А (1,1,0 )В (0,1,1) - А (0,0,0 )В (1,1,0) -
- А (0,0.1)В (1,1,1)7.
Здесь А (а, Ь, с),В (а, Ь, с) - значения (функционалов) в базисе 1,p,e,t, когда вместо операторов подставляются числа:
1 -1, р - а, е - Ь, t - с.
В стандартном базисе 1,х,у,z = ху это соответствует:
1г (А ) = /7 = 2/0 = 2/ (0,0,0 ) = а00 + ап, $1 = А (1,1,1) = / (-1,-1,-1) = а11 - а01, /2 = А (1,0,0 ) = / (-1,1,-1) = ап + а10, /3 = А (1,1,0) = / (-1,0,0) = ап, /4 = А (0,0,1) = / (1,0,0) = а 00, /5 = А (0,1,1) = / (1,-1,1) = а00 - а10, /6 = А (0,0,0) = / (1,1,1) = а00 + а01.
Обозначим соответствующие значения через ф', а для произведения - через . Произведение определяется четырьмя значениями, получаемыми по формулам:
у1 = /У -/У - /У -/У, у2 = /У -/У -/У -/У, у = / У - / У - / У - / У, у4=/У -/У -/У - /у.
Эти функционалы удовлетворяют условию дополнения:
у. + у1-, = f 1,, = 1,2,3,4,5,6. , (1)
Заметим, что встречаются только 7 произведений /'ф , где
J (7) = 7, J (i) = 2l 7 J imad 7, j (l) = 2, j (2) = 4, j (4) = 1, j (6) = 3, j (3) = 5, j (5) = 6.
Элементы произведения матриц находятся из формул:
coo сп _у3, c0i -v\ci0 =W2-W3-
Это задает вычисление произведение двух матриц второго порядка.
Множество значений, по которым можно восстановить элементы матрицы, назовем полным. Покажем, что полный комплект значений (функционалов) вычисляются за O(4кк) = O(( log (n) операций, как и в случае значений коммутативных многочленов, переходя с одного уровня на другой. Полный комплект значений составляют 4k значений fV2"'4,1 < ij < 4. Они вычисляются от коэффициентов матрицы за k шагов, переходя с одного уровня на другой. На первом шаге вычисляем:
flj = а2 Ij +1,2 J +1 — A2 Ij,2 JJ +1, flj = a2ij +1,2jj +1 + a2ij +1,2jj ,
f 3 _
jlj _ a2 1j +1,2jj +1,
f 4 —
jl1j1 ~ a211,2 j1 ,
На следующем этапе вычисляем:
f '11 _ f '1 — f l1
j i2j2 j 2 i2+1,2 j2+1 f 2 i2 ,2 j2+1,
f '12 _ f '1 + f '1
J12J2 J 212+1,2j2J212+1,2j2 ,
f '13 _ f '1 j 12 j2 j 212+1,2 j2+1,
f '14 — f '1
J12 j2 J 212,2 j2 •
Далее реализуем третий, ..., k-й этап. Количество операций при кп2
вычислении составляет
сложений и столько же вычита-
ний. Имея такой полный комплект значений, коэффициенты матрицы (произведения) вычисляем за O(nопераций. Полный комплект n2 значений произведения матриц можно вычислить через N пар произведений различных значений сомножителей, переходя с одного уровня на другой. При одном типе организации вычислений n = n2 м + | ■ В этом случае
= П I 4 J
общее количество операций для вычисления произведения не превосходит O(n2log2n) операций. Можно вычислить экономнее, обойдясь всего N умножениями, где N = 4к + 3*4k-1 + 32 *4к-2 +_ + 3к = 4k+1 -3k+1 < 4п2 . Здесь к 4к умножениям первого уровня добавляется 3 умножения для каждого продолжения градуировки. Далее к поправочным произведениям в количестве 3*4к—1 потребуется еще 3*3*4к—2 дополнительных умножений и т.д. Общее количество операций при этом равно O(n2 log (n). В работе [6] высказывается, что ранг умножения может быть 2n2 — 1. Однако при такой экономии в количестве функциональных произведений мы теряем в количестве суммирований и умножений на коэффициенты. При вычислении любого полного базиса значений произведения, каждое значение в среднем состоит из суммы не менее n произведений значе-
Modern Information Technologies and IT-Education
ний. При этом не удается объединить их в последовательные сложения и умножения на коэффициенты, как описано выше, в k шагов. Из-за описанного в [6] разложения (n - l)(n +1) алгебры автоморфизмов, в коэффициентах появятся комплексные корни соответствующих степеней. Поэтому, экономия в функциональных произведениях приводит к еще большему количеству умножений на коэффициенты. Соответственно, сложность вычисления только увеличится. Исходя из таких соображений, авторы не стали разрабатывать до конца теорию о ранге умножения. Больше информации о современных достижениях в построении эффективных алгоритмов умножения можно найти в работах [7-20].
Скажем немного о методе фильтрации при умножении матриц. В этом случае размер п = тк . Пусть для умножения матриц порядка m х m получены формулы:
r(m)
! i = ■
j=i
Количество операций на одной ветке составит (без сокращения, как в случае градуированного вычисления) O(r (т )log п) операций для вычисления попарных произведений f^j и т2 (г (т) —l) сложений и т2 г (т) умножений на коэффициенты. Для количества операций при умножении матриц n х n получаем рекуррентное соотношение:
T (mkk = r (m )T (mk-1) +
(m) (умножений на коэффициенты)+
(r (m )-1)(
+m
+1 Как r (m )
сложении
'(m) -
мастер-теореме,
•(m )-
m2k iogmr(m)+2 умножений, и примерно —— = On k
столько сложений. За счет величины — в показателе, получа-
k
ем, что количество операций будет меньше n3 только при больших n, для некоторых формул это - при n > 109. При таких размерностях даже самые мощные суперкомпьютеры пока бессильны.
Заключение
В работе описывается относительно новый тип организации вычислений, названной градуированным вычислением, опирающийся на градуировку данных, и позволяющий выполнить вычисления за Nlog (N) операций, при количестве данных N. Этот метод сравнивается с распространенным методом «разделяй и властвуй», приводящим, вообще говоря, к Na операций с экспонентой (умножения) а > 1.
Список использованных источников
[1] Strassen V. Gaussian elimination is not optimal // Numerische Mathematik. 1969. Vol. 13, Issue 4. Pp. 354356. DOI: 10.1007/BF02165411
[2] Demmel J., Dumitriu I., Holtz O. Fast linear algebra is stable // Numerische Mathematik. 2007. Vol. 108, Issue 1. Pp. 5991. DOI: 10.1007/s00211-007-0114-x
[3] Coppersmith D., Winograd S. Matrix multiplication
via arithmetic progressions // Journal of Symbolic Computation. 1990. Vol. 9, Issue 3. Pp. 251-280. DOI: 10.1016/S0747-7171(08)80013-2
[4] Жданович Д. В. Экспонента сложности матричного умножения // Фундаментальная и прикладная математика. 2011/2012. Т. 17, № 2. С. 107-166. URL: https:// elibrary.ru/item.asp?id=23616768 (дата обращения: 6.05.2019).
[5] François Le Gall. Powers of tensors and fast matrix multiplication // Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation (ISSAC '14) / Katsusuke Nabeshima (eds). ACM, New York, NY, USA, 2014. Pp. 296-303. DOI: 10.1145/2608628.2608664
[6] Айдагулов Р. Р. Бигрупповые алгебры и их автоморфизмы // Дневник науки. 2019. № 1(25). C. 25. URL: https:// elibrary.ru/item.asp?id=36901640 (дата обращения: 6.05.2019).
[7] Айдагулов Р. Р. Бигрупповые алгебры и квантовая комбинаторика // Дневник науки. 2019. № 1(25). C. 26. URL: https://elibrary.ru/item.asp?id=36901641 (дата обращения: 6.05.2019).
[8] Harvey D., van der Hoeven J. Integer multiplication in time O(n log n). 2019. hal-02070778. URL: https://hal.archives-ouvertes.fr/hal-02070778/file/nlogn.pdf (дата обращения: 6.05.2019).
[9] Harvey D. Faster truncated integer multiplication // CoRR. 2017. Vol. abs/1703.00640. URL: http://arxiv.org/ abs/1703.00640 (дата обращения: 6.05.2019).
[10] Harvey D., van der Hoeven J. Faster integer and polynomial multiplication using cyclotomic coefficient rings //
получаем: CoRR. 2017. Vol. abs/1712.03693. URL: http://arxiv.org/
abs/1712.03693 (дата обращения: 6.05.2019).
[11] Harvey D., van der Hoeven J. On the complexity of integer matrix multiplication // Journal of Symbolic Computation. 2018. Vol. 89. Pp. 1-8. DOI: 10.1016/j.jsc.2017.11.001
[12] Harvey D., van der Hoeven J. Faster integer multiplication using plain vanilla FFT primes // Mathematics of Computation. 2019. Vol. 88. Pp. 501-514. DOI: 10.1090/ mcom/3328
[13] Harvey D., van der Hoeven J. Faster integer multiplication using short lattice vectors // ANTS XIII. Proceedings of the Thirteenth Algorithmic Number Theory Symposium / R. Scheidler, J. Sorenson (eds). Mathematical Sciences Publishers, Berkeley, 2019, pp. 293-310. DOI: 10.2140/ obs.2019.2.293
[14] Harvey D., van der Hoeven J. Faster polynomial multiplication over finite fields using cyclotomic coefficient rings // Journal of Complexity. 2019. Vol. 54. 101404. DOI: 10.1016/j.jco.2019.03.004
[15] Harvey D., van der Hoeven J. Polynomial multiplication over finite fields in time O(n log n). 2019. hal-02070816. URL: https://hal.archives-ouvertes.fr/hal-02070816 (дата обращения: 6.05.2019).
[16] Harvey D., van der Hoeven J., Lecerf G. Even faster integer multiplication // Journal of Complexity. 2016. Vol. 36. Pp. 1-30. DOI: 10.1016/j.jco.2016.03.001
[17] Harvey D., van der Hoeven J., Lecerf G. Faster Polynomial Multiplication over Finite Fields // Journal of the ACM. 2017. Vol. 63, Issue 6, Article 52. 23 p. DOI: 10.1145/3005344
[18] van der Hoeven J. Faster relaxed multiplication //
2
Современные информационные технологии и ИТ-образование
Том 15, № 2. 2019
ISSN 2411-1473
sitito.cs.msu.ru
Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation (ISSAC '14) / Katsusuke Nabeshima (ed). ACM, New York, NY, USA, 2014. Pp. 405-412. DOI: 10.1145/2608628.2608657
[19] Brent R. P., Zimmermann P. Modern Computer Arithmetic, Cambridge Monographs on Applied and Computational Mathematics. Vol. 18. Cambridge University Press, Cambridge, 2010. 236 p.
[20] De A., Kurur P., Saha C, Saptharishi R. Fast Integer Multiplication Using Modular Arithmetic // SIAM Journal on Computing. 2013. Vol. 42, Issue 2. Pp. 685-699. DOI: 10.1137/100811167
Поступила 6.05.2019; принята к публикации 10.07.2019; опубликована онлайн 25.07.2019.
|Об авторах:|
Айдагулов Рустем Римович, старший научный сотрудник кафедры теоретической информатики, отделение математики, механико-математический факультет, Московский государственный университет имени М.В. Ломоносова (119991, Россия, г. Москва, ГСП-1, Ленинские горы, д. 1), Институт машиноведения РАН имени А.А. Благонравова (119334, Россия, г. Москва, ул. Бардина, д. 4), кандидат физико-математических наук, ORCID: http://orcid.org/0000-0002-6579-429X, a_rust@ bk.ru
Главацкий Сергей Тимофеевич, доцент кафедры теоретической информатики, отделение математики, механико-математический факультет, Московский государственный университет имени М.В. Ломоносова (119991, Россия, г. Москва, ГСП-1, Ленинские горы, д. 1), кандидат физико-математических наук, доцент, ORCID: http://orcid.org/0000-0003-1857-6158, glavatsky_st@mail.ru
Все авторы прочитали и одобрили окончательный вариант рукописи.
References
[1] Strassen V. Gaussian elimination is not optimal. Numerische Mathematik. 1969; 13(4):354-356. (In Eng.) DOI: 10.1007/ BF02165411
[2] Demmel J., Dumitriu I., Holtz O. Fast linear algebra is stable. Numerische Mathematik. 2007; 108(1):59-91. (In Eng.) DOI: 10.1007/s00211-007-0114-x
[3] Coppersmith D., Winograd S. Matrix multiplication via arithmetic progressions. Journal of Symbolic Computation. 1990; 9(3):251-280. (In Eng.) DOI: 10.1016/S0747-7171(08)80013-2
[4] Zhdanovich D.V. The matrix capacity of a tensor. Journal of Mathematical Sciences. 2012; 186(4):599-643. (In Eng.) DOI: 10.1007/s10958-012-1009-7
[5] François Le Gall. Powers of tensors and fast matrix multiplication. In: Katsusuke Nabeshima (eds). Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation (ISSAC '14). ACM, New York, NY, USA. 2014; p. 296-303. (In Eng.) DOI: 10.1145/2608628.2608664
[6] Aidagulov R.R. B and Group Algebras and their Automorphisms. Dnevnik Nauki. 2019; 1(25):25. Available at: https://elibrary.ru/item.asp?id=36901640 (accessed
6.05.2019). (In Russ., abstract in Eng.)
[7] Aidagulov R.R. Group Algebras and Quantum Combinatorics. Dnevnik Nauki. 2019; 1(25):26. Available at: https:// elibrary.ru/item.asp?id=36901641 (accessed 6.05.2019). (In Russ., abstract in Eng.)
[8] Harvey D., van der Hoeven J. Integer multiplication in time
O(n log n). 2019; hal-02070778. Available at: https:// hal.archives-ouvertes.fr/hal-02070778/file/nlogn.pdf (accessed 6.05.2019). (In Eng.)
[9] Harvey D. Faster truncated integer multiplication. CoRR.
2017; abs/1703.00640. Available at: http://arxiv.org/ abs/1703.00640 (accessed 6.05.2019). (In Eng.)
[10] Harvey D., van der Hoeven J. Faster integer and polynomial
multiplication using cyclotomic coefficient rings. CoRR. 2017; abs/1712.03693. Available at: http://arxiv.org/ abs/1712.03693 (accessed 6.05.2019). (In Eng.)
[11] Harvey D., van der Hoeven J. On the complexity of integer
matrix multiplication. Journal of Symbolic Computation. 2018; 89:1-8. (In Eng.) DOI: 10.1016/j.jsc.2017.11.001
[12] Harvey D., van der Hoeven J. Faster integer multiplication
using plain vanilla FFT primes. Mathematics of Computation. 2019; 88:501-514. (In Eng.) DOI: 10.1090/mcom/3328
[13] Harvey D., van der Hoeven J. Faster integer multiplication
using short lattice vectors. In: Scheidler R., Sorenson J. (eds). ANTS XIII. Proceedings of the Thirteenth Algorithmic Number Theory Symposium. Mathematical Sciences Publishers, Berkeley. 2019; 293-310. (In Eng.) DOI: 10.2140/obs.2019.2.293
[14] Harvey D., van der Hoeven J. Faster polynomial multiplication
over finite fields using cyclotomic coefficient rings. Journal of Complexity. 2019; 54:101404. (In Eng.) DOI: 10.1016/j. jco.2019.03.004
[15] Harvey D., van der Hoeven J. Polynomial multiplication
over finite fields in time O(n log n). 2019; hal-02070816. Available at: https://hal.archives-ouvertes.fr/hal-02070816 (accessed 6.05.2019). (In Eng.)
[16] Harvey D., van der Hoeven J., Lecerf G. Even faster integer
multiplication. Journal of Complexity. 2016; 36:1-30. (In Eng.) DOI: 10.1016/j.jco.2016.03.001
[17] Harvey D., van der Hoeven J., Lecerf G. Faster Polynomial
Multiplication over Finite Fields. Journal of the ACM. 2017; 63(6):52. 23 p. (In Eng.) DOI: 10.1145/3005344
[18] van der Hoeven J. Faster relaxed multiplication. In: Katsusuke
Nabeshima (ed). Proceedings of the 39th International Symposium on Symbolic and Algebraic Computation (ISSAC '14). ACM, New York, NY, USA. 2014; 405-412. (In Eng.) DOI: 10.1145/2608628.2608657
[19] Brent R.P., Zimmermann P. Modern Computer Arithmetic,
Cambridge Monographs on Applied and Computational Mathematics. Vol. 18. Cambridge University Press, Cambridge, 2010. 236 p. (In Eng.)
[20] De A., Kurur P., Saha C., Saptharishi R. Fast Integer
Multiplication Using Modular Arithmetic. SIAM Journal on Computing. 2013; 42(2):685-699. (In Eng.) DOI: 10.1137/100811167
Submitted 16.05.2019; revised 20.06.2019; published online 25.07.2019.
About the authors:
Rustem R. Aidagulov, Senior Researcher of Department of The-
Modern Information Technologies and IT-Education
oretical Informatics, Faculty of Mechanics and Mathematics, Lo-monosov Moscow State University (1, Leninskie gory, Moscow 119991, Russia), Institute of Mechanical Engineering RAS after A.A. Blagonravov (4 Bardina St., Moscow 119334, Russia), Ph.D. (Phys.-Math.), ORCID: http://orcid.org/0000-0002-6579-429X, a_rust@
Sergei T. Glavatsky, Associate Professor of Department of Theoretical Informatics, Faculty of Mechanics and Mathematics, Lomonosov Moscow State University (1, Leninskie gory, Moscow 119991, Russia), Ph.D. (Phys.-Math.), Associate Professor, ORCID: http://orcid. org/0000-0003-1857-6158, glavatsky_st@mail.ru
All authors have read and approved the final manuscript.
bk.ru
Современные информационные технологии и ИТ-образование
Том 15, № 2. 2019 ISSN 2411-1473 sitito.cs.msu.ru