Эта статья требует дополнительных ссылок для проверки . ( апрель 2015 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
В следующих таблицах приведена вычислительная сложность различных алгоритмов для общих математических операций .
Здесь под сложностью понимается временная сложность выполнения вычислений на многоленточной машине Тьюринга . [1] См. Большую нотацию O для объяснения используемых обозначений.
Примечание. Из-за разнообразия алгоритмов умножения ниже обозначена сложность выбранного алгоритма умножения.
Арифметические функции [ править ]
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Добавление | Два -разрядного числа, и | Один -значный номер | Дополнение к учебнику с переноской | |
Вычитание | Два -разрядного числа, и | Один -значный номер | Вычитание из учебника с заимствованием | |
Умножение | Два -разрядный номер | Один -значный номер | Учебник длинного умножения | |
Алгоритм Карацубы | ||||
3-полосная Тоом-Кук умножение | ||||
умножение Тоома – Кука | ||||
Смешанный уровень Тоома – Кука (Knuth 4.3.3-T) [2] | ||||
Алгоритм Шёнхаге – Штрассена | ||||
Алгоритм Фюрера [3] | ||||
Алгоритм Харви-Хувена [4] [5] | ||||
Разделение | Два -разрядный номер | Один -значный номер | Учебник с длинным делением | |
Дивизион Бурникеля-Циглера «Разделяй и властвуй» [6] | ||||
Деление Ньютона – Рафсона | ||||
Квадратный корень | Один -значный номер | Один -значный номер | Метод Ньютона | |
Модульное возведение в степень | Два -разрядного число и -битовый показатель | Один -значное целое | Повторное умножение и сокращение | |
Возведение в степень возведением в квадрат | ||||
Возведение в степень с редукцией по Монтгомери |
Алгебраические функции [ править ]
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Полиномиальная оценка | Один многочлен степени с коэффициентами фиксированного размера | Одно число фиксированного размера | Прямая оценка | |
Метод Хорнера | ||||
Полиномиальный gcd (больше или ) | Два полинома степени с целочисленными коэффициентами фиксированного размера | Один многочлен степени не выше | Евклидов алгоритм | |
Быстрый алгоритм Евклида (Лемер) [7] |
Специальные функции [ править ]
Многие методы в этом разделе приведены в Borwein & Borwein. [8]
Элементарные функции [ править ]
Эти элементарные функции строятся путем составления арифметических операций, то экспоненциальная функция ( ), то натуральный логарифм ( ), тригонометрические функции ( ), и их обратные. Сложность элементарной функции эквивалентна сложности ее обратной, поскольку все элементарные функции аналитичны и, следовательно, обратимы с помощью метода Ньютона. В частности, если любая или в комплексной области может быть вычислена с некоторой сложностью, то эта сложность достижима для всех других элементарных функций.
Ниже размер относится к количеству цифр точности, с которой должна оцениваться функция.
Алгоритм | Применимость | Сложность |
---|---|---|
Серия Тейлора ; повторное сокращение аргументов (например ) и прямое суммирование | ||
Серия Тейлора; Ускорение на основе БПФ | ||
Серия Тейлора; двоичное разделение + алгоритм битового пакета [9] | ||
Арифметика-геометрическое среднее итерации [10] |
Неизвестно, является ли оптимальная сложность для элементарных функций. Самая известная нижняя оценка - тривиальная оценка . Ω {\displaystyle \Omega }
Неэлементарные функции [ править ]
Функция | Вход | Алгоритм | Сложность |
---|---|---|---|
Гамма-функция | -цифровой номер | Аппроксимация неполной гамма-функции рядами | |
Фиксированное рациональное число | Гипергеометрический ряд | ||
, для целого числа. | Арифметика-геометрическое среднее итерация | ||
Гипергеометрическая функция | -цифровой номер | (Как описано в Borwein & Borwein) | |
Фиксированное рациональное число | Гипергеометрический ряд |
Математические константы [ править ]
В этой таблице указана сложность вычисления приближений к заданным константам для правильных цифр.
Постоянный | Алгоритм | Сложность |
---|---|---|
Золотое сечение , | Метод Ньютона | |
Корень квадратный из 2 , | Метод Ньютона | |
Число Эйлера , | Бинарное расщепление ряда Тейлора для экспоненциальной функции | |
Обращение Ньютона натурального логарифма | ||
Пи , | Бинарное расщепление арктанового ряда в формуле Мачина | [11] |
Алгоритм Гаусса – Лежандра | [11] | |
Постоянная Эйлера , | Метод Суини (приближение через экспоненциальный интеграл ) |
Теория чисел [ править ]
Алгоритмы теоретико-числовых вычислений изучаются в вычислительной теории чисел .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Наибольший общий делитель | Два -разрядного числа | Одно целое число, состоящее не более чем из цифр | Евклидов алгоритм | |
Бинарный алгоритм GCD | ||||
Левый / правый k- мерный двоичный алгоритм НОД [12] | ||||
Алгоритм Стеле – Циммермана [13] | ||||
Управляемый Шёнхаге алгоритм евклидова спуска [14] | ||||
Символ Якоби | Два -разрядного числа | , или | Управляемый Шёнхаге алгоритм евклидова спуска [15] | |
Алгоритм Стеле – Циммермана [16] | ||||
Факториал | Положительное целое число меньше, чем | Один -значное целое | Умножение снизу вверх | |
Двоичное расщепление | ||||
Возведение в степень простых факторов | , [17] [1] | |||
Тест на первичность | A -значное целое число | Правда или ложь | Тест на простоту AKS | [18] [19] или, [20] [21] , в предположении гипотезы Агравала |
Доказательство простоты эллиптической кривой | эвристически [22] | |||
Тест на простоту Baillie-PSW | [23] [24] | |||
Тест на простоту Миллера – Рабина | [25] | |||
Тест на простоту Соловея – Штрассена. | [25] | |||
Целочисленная факторизация | Входное целое число A- бит | Набор факторов | Общее числовое поле сито | [nb 1] |
Алгоритм Шора | , на квантовом компьютере |
Матричная алгебра [ править ]
На следующих рисунках сложности предполагается, что арифметика с отдельными элементами имеет сложность O (1), как и в случае с арифметикой с плавающей запятой фиксированной точности или операциями с конечным полем .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Умножение матриц | Две матрицы | Одна матрица | Умножение матриц учебника | |
Алгоритм Штрассена | ||||
Алгоритм Копперсмита – Винограда | ||||
Оптимизированные CW-подобные алгоритмы [26] [27] [28] | ||||
Умножение матриц | Одна матрица и одна матрица | Одна матрица | Умножение матриц учебника | |
Умножение матриц | Одна матрица и одна матрица, для некоторых | Одна матрица | Алгоритмы, приведенные в [29] | , где оценки сверху приведены в [29] |
Обращение матрицы * | Одна матрица | Одна матрица | Исключение Гаусса – Жордана | |
Алгоритм Штрассена | ||||
Алгоритм Копперсмита – Винограда | ||||
Оптимизированные CW-подобные алгоритмы | ||||
Разложение по сингулярным числам | Одна матрица | Одна матрица, одна матрица и одна матрица | Бидиагонализация и QR-алгоритм | ( ) |
Одна матрица, одна матрица и одна матрица | Бидиагонализация и QR-алгоритм | ( ) | ||
Детерминант | Одна матрица | Один номер | Разложение Лапласа | |
Алгоритм без деления [30] | ||||
LU разложение | ||||
Алгоритм Барейса | ||||
Быстрое матричное умножение [31] | ||||
Обратная подстановка | Треугольная матрица | решения | Обратная подстановка [32] |
В 2005 году Генри Кон , Роберт Кляйнберг , Балаж Сегеди и Крис Уманс показали, что любая из двух различных гипотез подразумевает, что показатель умножения матриц равен 2. [33]
^ * Из-за возможностипоблочного инвертирования матрицы, когда инверсияматрицы требует инверсии двух матриц половинного размера и шести умножений между двумя матрицами половинного размера, а также поскольку умножение матриц имеет нижнюю границу операций(), [ 34] можно показать, чтоалгоритм «разделяй и властвуй»,который использует поблочное обращение для инвертирования матрицы, работает с той же временной сложностью, что и алгоритм умножения матриц, который используется внутренне. [35] Ω {\displaystyle \Omega }
Преобразует [ править ]
Алгоритмы вычисления преобразований функций (особенно интегральных преобразований ) широко используются во всех областях математики, особенно в анализе и обработке сигналов .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Дискретное преобразование Фурье | Конечная последовательность данных размера | Набор комплексных чисел | Быстрое преобразование Фурье |
Заметки [ править ]
- ^ Эта форма субэкспоненциального времени действительна для всех. Более точная форма сложности может быть дана как
Ссылки [ править ]
- ^ a b A. Schönhage, AFW Grotefeld, E. Vetter: Fast Algorithms - A Multitape Machine Implementation , BI Wissenschafts-Verlag, Mannheim, 1994
- ^ Д. Кнут. Искусство программирования , Том 2. Третье издание, Addison-Wesley 1997.
- ^ Мартин Фюрер. Более быстрое целочисленное умножение [https://web.archive.org/web/20130425232048/http://www.cse.psu.edu/~furer/Papers/mult.pdf Архивировано 25 апреля 2013 г. в Wayback Machine . Материалы 39-го ежегодного симпозиума ACM по теории вычислений , Сан-Диего, Калифорния, США, 11–13 июня 2007 г., стр. 55–67.
- ^ Дэвид Харви, Джорис ван дер Хувен Целочисленное умножение за время O (n log n) . (2019).
- ^ Эрика Кларрайх. 2019. Умножение достигает предела скорости. Commun. ACM 63, 1 (декабрь 2019 г.), 11–13. DOI : 10,1145 / 3371387
- ^ Christoph Burnikel и Иоахим Циглер Fast Рекурсивный Division Im Stadtwald, D- Саарбрюккен 1998.
- ^ http://planetmath.org/fasteuclideanalgorithm
- ↑ J. Borwein и P. Borwein. Пи и AGM: исследование аналитической теории чисел и вычислительной сложности . Джон Вили 1987.
- ↑ Дэвид и Григорий Чудновские. Приближения и комплексное умножение по Рамануджану. Возвращение к Рамануджану , Academic Press, 1988, стр. 375–472.
- ^ Ричард П. Брент, Методы определения нуля с высокой точностью и сложность вычисления элементарных функций , в: Analytic Computational Complexity (JF Traub, ed.), Academic Press, New York, 1975, 151–176.
- ^ Б Ричард П. Брент (2020), The Borwein Brothers, Pi и AGM , Springer Труды по математике и статистике, 313 , Arxiv : 1802,07558 , DOI : 10.1007 / 978-3-030-36568-4 , ISBN 978-3-030-36567-7, S2CID 214742997
- ^ Дж. Соренсон. (1994). «Два быстрых алгоритма НОД». Журнал алгоритмов . 16 (1): 110–144. DOI : 10.1006 / jagm.1994.1006 .
- ^ Р. Крэндалл и К. Померанс. Простые числа - вычислительная перспектива . Второе издание, Springer 2005.
- Перейти ↑ Möller N (2008). «Об алгоритме Шёнхаге и вычислении субквадратичного целочисленного НОД» (PDF) . Математика вычислений . 77 (261): 589–607. Bibcode : 2008MaCom..77..589M . DOI : 10.1090 / S0025-5718-07-02017-0 .
- ^ Бернштейн Д. Дж. "Более быстрые алгоритмы для поиска неквадратов по модулю наихудшего случая целых чисел" .
- ^ Ричард П. Брент; Пол Циммерманн (2010). « Алгоритм для символа Якоби». arXiv : 1004.2091 [ cs.DS ].
- ^ Borwein, P. (1985). «О сложности вычисления факториалов». Журнал алгоритмов . 6 (3): 376–380. DOI : 10.1016 / 0196-6774 (85) 90006-9 .
- ↑ HW Lenstra Jr. и Карл Померанс, « Тестирование первичности с гауссовскими периодами », предварительная версия от 20 июля 2005 г.
- ^ HW Lenstra мл. и Померанс, « проверки простоты чисел с периодами гауссовых Архивные 2012-02-25 в Wayback Machine », версия от 12 апреля 2011 года.
- ^ Тао, Теренс (2010). «1.11 Тест на простоту AKS» . Эпсилон комнаты, II: страницы третьего года математического блога . Аспирантура по математике. 117 . Провиденс, Род-Айленд: Американское математическое общество. С. 82–86. DOI : 10,1090 / г / м2 / 117 . ISBN 978-0-8218-5280-4. Руководство по ремонту 2780010 .
- ^ Ленстра младший, HW ; Померанс, Карл (11 декабря 2016 г.). «Проверка на простоту с гауссовскими периодами» (PDF) . Cite journal requires
|journal=
(help) - ^ Морейн, Ф. (2007). «Реализация асимптотически быстрой версии алгоритма доказательства простоты эллиптической кривой». Математика вычислений . 76 (257): 493–505. arXiv : math / 0502097 . Bibcode : 2007MaCom..76..493M . DOI : 10.1090 / S0025-5718-06-01890-4 . Руководство по ремонту 2261033 . S2CID 133193 .
- ^ Карл Померанс ; Джон Л. Селфридж ; Сэмюэл С. Вагстафф младший (июль 1980 г.). «Псевдопреступности до 25 · 10 9 » (PDF) . Математика вычислений . 35 (151): 1003–1026. DOI : 10.1090 / S0025-5718-1980-0572872-7 . JSTOR 2006 210 .
- ^ Роберт Бэйли; Сэмюэл С. Вагстафф-младший (октябрь 1980 г.). "Лукас Псевдопреступления" (PDF) . Математика вычислений . 35 (152): 1391–1417. DOI : 10.1090 / S0025-5718-1980-0583518-6 . JSTOR 2006 406 . Руководство по ремонту 0583518 .
- ^ a b Монье, Луи (1980). «Оценка и сравнение двух эффективных алгоритмов вероятностного тестирования простоты». Теоретическая информатика . 12 (1): 97–108. DOI : 10.1016 / 0304-3975 (80) 90007-9 . Руководство по ремонту 0582244 .
- ^ Дэви, AM; Stothers, AJ (2013), "Улучшенная оценка сложности умножения матриц", Труды Королевского общества Эдинбурга , 143а (2): 351-370, DOI : 10,1017 / S0308210511001648
- ^ Vassilevska Williams, Virginia (2011), Разорвать барьер Медник-Винограда (PDF)
- ^ Ле Галл, Франсуа (2014), «Силы тензоров и быстрое умножение матриц», Труды 39-го Международного симпозиума по символьным и алгебраическим вычислениям (ISSAC 2014) , arXiv : 1401.7714 , Bibcode : 2014arXiv1401.7714L
- ^ а б Ле Галль, Франсуа; Уррутия, Флорен (2018). "Улучшенное умножение прямоугольной матрицы с использованием тензора Медника-Винограда". В Czumaj, Артур (ред.). Материалы двадцать девятого ежегодного симпозиума ACM-SIAM по дискретным алгоритмам . Общество промышленной и прикладной математики (SIAM). DOI : 10.1137 / 1.9781611975031.67 . ISBN 978-1-61197-503-1. S2CID 33396059 .
- ^ http://page.mi.fu-berlin.de/rote/Papers/pdf/Division-free+algorithms.pdf
- ^ Ахо, Альфред В .; Хопкрофт, Джон Э .; Ульман, Джеффри Д. (1974), Разработка и анализ компьютерных алгоритмов , Аддисон-Уэсли, теорема 6.6, с. 241
- ^ JB Fraleigh и RA Beauregard, "Linear Algebra", Addison-Wesley Publishing Company, 1987, p 95.
- ↑ Генри Кон, Роберт Кляйнберг, Балаш Сегеди и Крис Уманс. Теоретико-групповые алгоритмы умножения матриц. arXiv : math.GR/0511460 . Материалы 46-го ежегодного симпозиума по основам компьютерных наук , 23–25 октября 2005 г., Питтсбург, Пенсильвания, IEEE Computer Society, стр. 379–388.
- ↑ Ran Raz . О сложности матричного произведения. В материалах тридцать четвертого ежегодного симпозиума ACM по теории вычислений. ACM Press, 2002. DOI : 10,1145 / 509907,509932 .
- ^ TH Cormen, CE Leiserson, RL Rivest, C. Stein, Введение в алгоритмы , 3-е изд., MIT Press, Кембридж, Массачусетс, 2009, § 28.2.
Дальнейшее чтение [ править ]
- Брент, Ричард П .; Циммерманн, Пол (2010). Современная компьютерная арифметика . Издательство Кембриджского университета. ISBN 978-0-521-19469-3.
- Кнут, Дональд Эрвин (1997). Искусство программирования. Том 2: получисловые алгоритмы (3-е изд.). Эддисон-Уэсли. ISBN 978-0-201-89684-8.