Вычислительная сложность математических операций
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2015 г. ) |
В следующих таблицах перечислена вычислительная сложность различных алгоритмов для распространенных математических операций .
Здесь сложность относится к временной сложности выполнения вычислений на многоленточной машине Тьюринга . [1] См. обозначение большой буквы O для объяснения используемых обозначений.
Примечание. Из-за разнообразия алгоритмов умножения ниже обозначает сложность выбранного алгоритма умножения.
Арифметические функции [ править ]
В этой таблице указана сложность математических операций с целыми числами.
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Добавление | Два -значные числа | Один -значное число | Дополнение к учебнику с переноской | |
Вычитание | Два -значные числа | Один -значное число | Вычитание учебника с заимствованием | |
Умножение | Два -значные числа | Один -значное число | Учебник длинного умножения | |
Алгоритм Карацубы | ||||
Трехстороннее умножение Тума – Кука | ||||
-способ умножения Тума-Кука | ||||
Тум-Кук смешанного уровня (Кнут 4.3.3-T) [2] | ||||
Алгоритм Шёнхаге – Штрассена | ||||
Алгоритм Харви-Хувена [3] [4] | ||||
Разделение | Два -значные числа | Один -значное число | Учебник длинного деления | |
Подразделение Бурникеля-Зиглера «Разделяй и властвуй» [5] | ||||
Подразделение Ньютона-Рафсона | ||||
Квадратный корень | Один -значное число | Один -значное число | метод Ньютона | |
Модульное возведение в степень | Два -цифровые целые числа и -битная экспонента | Один -цифровое целое число | Повторное умножение и сокращение | |
Возведение в степень возведением в степень | ||||
Возведение в степень с сокращением Монтгомери |
В более сильных вычислительных моделях, в частности, в указательной машине и, следовательно, в машине произвольного доступа с единичной стоимостью, можно умножить два n -битных числа за время O ( n ). [6]
Алгебраические функции [ править ]
Здесь мы рассматриваем операции над полиномами, а n обозначает их степень; для коэффициентов мы используем модель удельной стоимости , игнорируя количество битов в числе. На практике это означает, что мы предполагаем, что они являются машинными целыми числами.
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Полиномиальная оценка | Один многочлен степени с целыми коэффициентами | Один номер | Прямая оценка | |
метод Горнера | ||||
Полиномиальный НОД (более или ) | Два многочлена степени с целыми коэффициентами | Один многочлен степени не более | Евклидов алгоритм | |
Быстрый алгоритм Евклида (Лемера) [ нужна ссылка ] |
Специальные функции [ править ]
Многие из методов в этом разделе приведены в Borwein & Borwein. [7]
Элементарные функции [ править ]
Элементарные функции строятся путем составления арифметических операций, показательной функции ( ), натуральный логарифм ( ), тригонометрические функции ( ) и их обратные. Сложность элементарной функции эквивалентна сложности ее обратной, поскольку все элементарные функции аналитичны и, следовательно, обратимы с помощью метода Ньютона. В частности, если либо или в комплексной области можно вычислить с некоторой сложностью, то эта сложность достижима для всех других элементарных функций.
Ниже размер относится к количеству цифр точности, с которой должна быть вычислена функция.
Алгоритм | Применимость | Сложность |
---|---|---|
серия Тейлора ; повторное сокращение аргументов (например, ) и прямое суммирование | ||
серия Тейлора; БПФ Ускорение на основе | ||
серия Тейлора; двоичное разделение + алгоритм пакетной передачи битов [8] | ||
Среднеарифметико-геометрическая итерация [9] |
Неизвестно, является ли – оптимальная сложность элементарных функций. Самая известная нижняя оценка — это тривиальная оценка .
Неэлементарные функции [ править ]
Функция | Вход | Алгоритм | Сложность |
---|---|---|---|
Гамма-функция | -значное число | Рядовая аппроксимация неполной гамма-функции | |
Фиксированное рациональное число | Гипергеометрическая серия | ||
, для целое число. | Средняя арифметико-геометрическая итерация | ||
Гипергеометрическая функция | -значное число | (Как описано в Borwein & Borwein) | |
Фиксированное рациональное число | Гипергеометрическая серия |
Математические константы [ править ]
В этой таблице указана сложность вычисления аппроксимации заданных констант до правильные цифры.
Постоянный | Алгоритм | Сложность |
---|---|---|
Золотое сечение , | метод Ньютона | |
Квадратный корень из 2 , | метод Ньютона | |
число Эйлера , | Бинарное расщепление ряда Тейлора для показательной функции | |
Ньютоновское обращение натурального логарифма | ||
Пи , | Бинарное расщепление арктанса в формуле Мачина | [10] |
Алгоритм Гаусса – Лежандра | [10] | |
постоянная Эйлера , | Метод Суини (приближение экспоненциальным интегралом ) |
Теория чисел [ править ]
Алгоритмы теоретико-числовых расчетов изучаются в вычислительной теории чисел .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Наибольший общий делитель | Два -цифровые целые числа | Одно целое число, не более цифры | Евклидов алгоритм | |
Бинарный алгоритм НОД | ||||
Левый/правый k -арный двоичный алгоритм НОД [11] | ||||
Алгоритм Стеле – Циммермана [12] | ||||
Алгоритм Евклидова спуска, управляемый Шёнхаге [13] | ||||
Символ Якоби | Два -цифровые целые числа | , или | Алгоритм Евклидова спуска, управляемый Шёнхаге [14] | |
Алгоритм Стеле – Циммермана [15] | ||||
Факториал | Положительное целое число, меньшее | Один -цифровое целое число | Умножение снизу вверх | |
Бинарное расщепление | ||||
Возведение в степень простых множителей | , [16] [1] | |||
Тест на примитивность | А -цифровое целое число | Правда или ложь | Тест на простоту AKS | [17] [18] , предполагая гипотезу Агравала |
Доказательство простоты эллиптической кривой | эвристически [19] | |||
Тест на простоту Бэйли – PSW | [20] [21] | |||
Тест на простоту Миллера – Рабина | [22] | |||
Тест на простоту Соловея – Штрассена | [22] | |||
Целочисленная факторизация | А -битовое входное целое число | Набор факторов | Сито общего числового поля | [номер 1] |
Алгоритм Шора | , на квантовом компьютере |
Матричная алгебра [ править ]
Следующие цифры сложности предполагают, что арифметика с отдельными элементами имеет сложность O (1), как и в случае с арифметикой с плавающей запятой фиксированной точности или операциями над конечным полем .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Умножение матрицы | Два матрицы | Один матрица | Умножение матрицы школьного учебника | |
Уличный алгоритм | ||||
Алгоритм Копперсмита – Винограда ( галактический алгоритм ) | ||||
Оптимизированные CW-подобные алгоритмы [23] [24] [25] [26] ( галактические алгоритмы ) | ||||
Умножение матрицы | Один матрица и один матрица | Один матрица | Умножение матрицы школьного учебника | |
Умножение матрицы | Один матрица и один матрица, для некоторых | Один матрица | Алгоритмы, приведенные в [27] | , где верхние границы даны в [27] |
Инверсия матрицы | Один матрица | Один матрица | Элиминация Гаусса – Джордана | |
Уличный алгоритм | ||||
Алгоритм Копперсмита – Винограда | ||||
Оптимизированные CW-подобные алгоритмы | ||||
Разложение по сингулярным значениям | Один матрица | Один матрица, один матрица и один матрица | Двудиагонализация и QR-алгоритм | ( ) |
Один матрица, один матрица и один матрица | Двудиагонализация и QR-алгоритм | ( ) | ||
QR-разложение | Один матрица | Один матрица и один матрица | Алгоритмы в [28] | ( ) |
Определитель | Один матрица | Один номер | Расширение Лапласа | |
Алгоритм без деления [29] | ||||
LU-разложение | ||||
Алгоритм Барейсса | ||||
Быстрое умножение матриц [30] | ||||
Обратная замена | Треугольная матрица | решения | Обратная замена [31] |
В 2005 году Генри Кон , Роберт Кляйнберг , Балаж Сегеди и Крис Уманс показали, что любая из двух разных гипотез будет означать, что показатель умножения матриц равен 2. [32]
Трансформирует [ править ]
Алгоритмы вычисления преобразований функций (в частности, интегральных преобразований ) широко используются во всех областях математики, в частности в анализе и обработке сигналов .
Операция | Вход | Выход | Алгоритм | Сложность |
---|---|---|---|---|
Дискретное преобразование Фурье | Конечная последовательность данных размера | Набор комплексных чисел | Учебник | |
Быстрое преобразование Фурье |
Примечания [ править ]
- ^ Эта форма субэкспоненциального времени действительна для всех . Более точную форму сложности можно представить как
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б Шёнхаге, А.; Гротефельд, AFW; Веттер, Э. (1994). Быстрые алгоритмы — реализация многоленточной машины Тьюринга . Издательство BI Science. ISBN 978-3-411-16891-0 . ОСЛК 897602049 .
- ^ Кнут 1997
- ^ Харви, Д.; Ван дер Хувен, Дж. (2021). «Целое умножение за время O (n log n)» (PDF) . Анналы математики . 193 (2): 563–617. дои : 10.4007/анналы.2021.193.2.4 . S2CID 109934776 .
- ^ Кларрайх, Эрика (декабрь 2019 г.). «Умножение достигает предела скорости». Коммун. АКМ . 63 (1): 11–13. дои : 10.1145/3371387 . S2CID 209450552 .
- ^ Бурникель, Кристоф; Зиглер, Иоахим (1998). Быстрое рекурсивное деление . Отчеты об исследованиях Института компьютерных наук Макса Планка. Саарбрюккен: Библиотека компьютерных наук и документация MPI. OCLC 246319574 . МПИИ-98-1-022.
- ^ Шенхаге, Арнольд (1980). «Машины для модификации хранилища». SIAM Journal по вычислительной технике . 9 (3): 490–508. дои : 10.1137/0209036 .
- ^ Борвейн, Дж.; Борвейн, П. (1987). Пи и AGM: исследование аналитической теории чисел и сложности вычислений . Уайли. ISBN 978-0-471-83138-9 . OCLC 755165897 .
- ^ Чудновский, Дэвид; Чудновский, Григорий (1988). «Приближения и комплексное умножение по Рамануджану». Рамануджан вновь посетил: Материалы столетней конференции . Академическая пресса. стр. 375–472. ISBN 978-0-01-205856-5 .
- ^ Брент, Ричард П. (2014) [1975]. «Методы нахождения нуля многократной точности и сложность вычисления элементарных функций» . В Траубе, Дж. Ф. (ред.). Аналитическая вычислительная сложность . Эльзевир. стр. 151–176. arXiv : 1004.3412 . ISBN 978-1-4832-5789-1 .
- ^ Jump up to: Перейти обратно: а б Ричард П. Брент (2020), Братья Борвейн, Пи и годовое собрание акционеров , Springer Proceedings in Mathematics & Статистика, vol. 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. дои : 10.1006/jagm.1994.1006 .
- ^ Крэндалл, Р.; Померанс, К. (2005). «Алгоритм 9.4.7 (двоично-рекурсивный НОД Стеле-Циммермана)» . Простые числа - вычислительная перспектива (2-е изд.). Спрингер. стр. 471–3. ISBN 978-0-387-28979-3 .
- ^ Мёллер Н (2008). «Об алгоритме Шёнхаге и вычислении субквадратичных целых НОД» (PDF) . Математика вычислений . 77 (261): 589–607. Бибкод : 2008MaCom..77..589M . дои : 10.1090/S0025-5718-07-02017-0 .
- ^ Бернштейн, DJ «Более быстрые алгоритмы для поиска неквадратных чисел по модулю наихудших целых чисел» .
- ^ Брент, Ричард П.; Циммерманн, Пол (2010). "Ан Алгоритм для символа Якоби» . Международный симпозиум по алгоритмической теории чисел . Springer. стр. 83–95. arXiv : 1004.2091 . doi : 10.1007/978-3-642-14518-6_10 . ISBN 978-3-642-14518-6 . S2CID 7632655 .
- ^ Борвейн, П. (1985). «О сложности вычисления факториалов». Журнал алгоритмов . 6 (3): 376–380. дои : 10.1016/0196-6774(85)90006-9 .
- ^ Ленстра-младший, HW ; Померанс, Карл (2019). «Тестирование простоты с гауссовскими периодами» (PDF) . Журнал Европейского математического общества . 21 (4): 1229–69. дои : 10.4171/JEMS/861 . hdl : 21.11116/0000-0005-717D-0 .
- ^ Тао, Теренс (2010). «1.11 Тест на простоту АКС» . Эпсилон комнаты, II: Страницы третьего года математического блога . Аспирантура по математике. Том. 117. Американское математическое общество. стр. 82–86. дои : 10.1090/gsm/117 . ISBN 978-0-8218-5280-4 . МР 2780010 .
- ^ Морейн, Ф. (2007). «Реализация асимптотически быстрой версии алгоритма доказательства простоты эллиптической кривой». Математика вычислений . 76 (257): 493–505. arXiv : math/0502097 . Бибкод : 2007MaCom..76..493M . дои : 10.1090/S0025-5718-06-01890-4 . МР 2261033 . S2CID 133193 .
- ^ Померанс, Карл ; Селфридж, Джон Л .; Вагстафф-младший, Сэмюэл С. (июль 1980 г.). «Псевдопростые числа до 25·10 9 Математика (PDF) . вычислений . 35 (151): 1003–26. doi : 10.1090/S0025-5718-1980-0572872-7 . JSTOR 2006210 .
- ^ Бэйли, Роберт; Вагстафф-младший, Сэмюэл С. (октябрь 1980 г.). «Лукас Псевдопраймс» (PDF) . Математика вычислений . 35 (152): 1391–1417. дои : 10.1090/S0025-5718-1980-0583518-6 . JSTOR 2006406 . МР 0583518 .
- ^ Jump up to: Перейти обратно: а б Монье, Луи (1980). «Оценка и сравнение двух эффективных алгоритмов вероятностного тестирования простоты» . Теоретическая информатика . 12 (1): 97–108. дои : 10.1016/0304-3975(80)90007-9 . МР 0582244 .
- ^ Алман, Джош; Уильямс, Вирджиния Василевска (2020), «Усовершенствованный лазерный метод и более быстрое умножение матриц», 32-й ежегодный симпозиум ACM-SIAM по дискретным алгоритмам (SODA 2021) , arXiv : 2010.05846 , doi : 10.1137/1.9781611976465.32 , S2CID 2 22290442
- ^ Дэви, AM; Стотерс, AJ (2013), «Улучшенная оценка сложности матричного умножения», Proceedings of the Royal Society of Edinburgh , 143A (2): 351–370, doi : 10.1017/S0308210511001648 , S2CID 113401430
- ^ Василевска Уильямс, Вирджиния (2014), Преодоление барьера Копперсмита-Винограда: умножение матриц в O (n 2.373 ) время
- ^ Ле Галль, Франсуа (2014), «Степень тензоров и быстрое умножение матриц», Труды 39-го Международного симпозиума по символическим и алгебраическим вычислениям — ISSAC '14 , стр. 23, arXiv : 1401.7714 , Bibcode : 2014arXiv1401.7714L , doi : 10.1145/2608628.2627493 , ISBN 9781450325011 , S2CID 353236
- ^ Jump up to: Перейти обратно: а б Ле Галль, Франсуа; Уррутия, Флорен (2018). «Улучшенное умножение прямоугольных матриц с использованием степеней тензора Копперсмита-Винограда». В Чумае, Артур (ред.). Материалы двадцать девятого ежегодного симпозиума ACM-SIAM по дискретным алгоритмам . Общество промышленной и прикладной математики. дои : 10.1137/1.9781611975031.67 . ISBN 978-1-61197-503-1 . S2CID 33396059 .
- ^ Найт, Филип А. (май 1995 г.). «Быстрое умножение прямоугольной матрицы и QR-разложение» . Линейная алгебра и ее приложения . 221 : 69–81. дои : 10.1016/0024-3795(93)00230-w . ISSN 0024-3795 .
- ^ Роте, Г. (2001). «Алгоритмы без делений для определителя и пфаффиана: алгебраические и комбинаторные подходы» (PDF) . Вычислительная дискретная математика . Спрингер. стр. 119–135. ISBN 3-540-45506-Х .
- ^ Ахо, Альфред В .; Хопкрофт, Джон Э .; Уллман, Джеффри Д. (1974). «Теорема 6.6». Проектирование и анализ компьютерных алгоритмов . Аддисон-Уэсли. п. 241. ИСБН 978-0-201-00029-0 .
- ^ Фрели, Дж. Б.; Борегар, РА (1987). Линейная алгебра (3-е изд.). Аддисон-Уэсли. п. 95. ИСБН 978-0-201-15459-7 .
- ^ Кон, Генри; Кляйнберг, Роберт; Сегеди, Балаж; Уманс, Крис (2005). «Теоретико-групповые алгоритмы умножения матриц». Материалы 46-го ежегодного симпозиума по основам информатики . IEEE. стр. 379–388. arXiv : math.GR/0511460 . дои : 10.1109/SFCS.2005.39 . ISBN 0-7695-2468-0 . S2CID 6429088 .
Дальнейшее чтение [ править ]
- Брент, Ричард П .; Циммерманн, Пол (2010). Современная компьютерная арифметика . Издательство Кембриджского университета. ISBN 978-0-521-19469-3 .
- Кнут, Дональд Эрвин (1997). Получисловые алгоритмы . Искусство компьютерного программирования . Том. 2 (3-е изд.). Аддисон-Уэсли. ISBN 978-0-201-89684-8 .