Złożoność obliczeniowa operacji matematycznych - Computational complexity of mathematical operations
Poniższe tabele przedstawiają złożoność obliczeniową różnych algorytmów dla typowych operacji matematycznych .
Tutaj złożoność odnosi się do złożoności czasowej wykonywania obliczeń na wielotaśmowej maszynie Turinga . Zobacz notację duże O dla wyjaśnienia użytej notacji.
Uwaga: Ze względu na różnorodność algorytmów mnożenia poniżej przedstawiono złożoność wybranego algorytmu mnożenia.
Funkcje arytmetyczne
Operacja | Wejście | Wyjście | Algorytm | Złożoność |
---|---|---|---|---|
Dodatek | Dwa -cyfrowy numery, a | Jeden numer -cyfrowy | Dodatek do podręcznika z noszeniem | |
Odejmowanie | Dwa -cyfrowy numery, a | Jeden numer -cyfrowy | Odejmowanie z podręcznika szkolnego z pożyczeniem | |
Mnożenie | Dwa -cyfrowy numery |
Jeden numer -cyfrowy | Długie mnożenie w podręczniku | |
Algorytm Karatsuby | ||||
3-drożne mnożenie Toom-Cook | ||||
-sposób mnożenia Toom-Cook | ||||
Toom–Cook na poziomie mieszanym (Knuth 4.3.3-T) | ||||
Algorytm Schönhage-Strassena | ||||
Algorytm Fürera | ||||
Algorytm Harveya-Hoevena | ||||
Podział | Dwa -cyfrowy numery | Jeden numer -cyfrowy | Długi podział w podręczniku szkolnym | |
Dywizja dziel i zwyciężaj Burnikel-Ziegler | ||||
podział Newtona-Raphsona | ||||
Pierwiastek kwadratowy | Jeden numer -cyfrowy | Jeden numer -cyfrowy | Metoda Newtona | |
Potęgowanie modułowe | Dwa -cyfrowy całkowitymi i -bitowa wykładnik | Jeden -cyfrowy całkowitą | Wielokrotne mnożenie i zmniejszanie | |
Potęgowanie przez podniesienie do kwadratu | ||||
Potęgowanie z redukcją Montgomery |
Funkcje algebraiczne
Operacja | Wejście | Wyjście | Algorytm | Złożoność |
---|---|---|---|---|
Ocena wielomianowa | Jeden wielomian stopnia ze współczynnikami o stałej wielkości | Jeden numer o stałym rozmiarze | Ocena bezpośrednia | |
Metoda Hornera | ||||
Wielomian gcd (ponad lub ) | Dwa wielomiany stopnia o stałych współczynnikach całkowitych | Co najwyżej jeden wielomian stopnia | Algorytm Euklidesa | |
Szybki algorytm Euklidesa (Lehmer) |
Funkcje specjalne
Wiele metod w tej sekcji jest podanych w Borwein & Borwein.
Podstawowe funkcje
Funkcje elementarne są konstruowane przez złożenie operacji arytmetycznych, funkcji wykładniczej ( ), logarytmu naturalnego ( ), funkcji trygonometrycznych ( ) i ich odwrotności. Złożoność funkcji elementarnej jest równoważna jej odwrotności, ponieważ wszystkie funkcje elementarne są analityczne, a zatem odwracalne za pomocą metody Newtona. W szczególności, jeśli którykolwiek lub w dziedzinie złożonej można obliczyć z pewną złożonością, to ta złożoność jest osiągalna dla wszystkich innych funkcji elementarnych.
Poniżej rozmiar odnosi się do liczby cyfr precyzji, z jaką funkcja ma być oceniana.
Algorytm | Zastosowanie | Złożoność |
---|---|---|
seria Taylora ; wielokrotne redukowanie argumentów (np. ) i bezpośrednie sumowanie | ||
seria Taylora; Przyspieszenie oparte na FFT | ||
seria Taylora; dzielenie binarne + algorytm bit-burst | ||
Średnia arytmetyczno-geometryczna iteracji |
Nie wiadomo, czy jest optymalna złożoność funkcji elementarnych. Najbardziej znanym ograniczeniem dolnym jest ograniczenie trywialne .
Funkcje nieelementarne
Funkcjonować | Wejście | Algorytm | Złożoność |
---|---|---|---|
Funkcja gamma | -cyfrowy numer | Szeregowe przybliżenie niepełnej funkcji gamma | |
Stała liczba wymierna | Szeregi hipergeometryczne | ||
, dla liczby całkowitej. | Średnia arytmetyczno-geometryczna iteracji | ||
Funkcja hipergeometryczna | -cyfrowy numer | (Zgodnie z opisem w Borwein & Borwein) | |
Stała liczba wymierna | Szeregi hipergeometryczne |
Stałe matematyczne
Ta tabela podaje złożoność obliczania przybliżeń danych stałych do poprawnych cyfr.
Stały | Algorytm | Złożoność |
---|---|---|
Złoty podział , | Metoda Newtona | |
Pierwiastek kwadratowy z 2 , | Metoda Newtona | |
liczba Eulera , | Dzielenie binarne szeregu Taylora dla funkcji wykładniczej | |
Inwersja Newtona logarytmu naturalnego | ||
Pi , | Dzielenie binarne szeregu arctan we wzorze Machina | |
Algorytm Gaussa-Legendre'a | ||
stała Eulera , | Metoda Sweeneya (przybliżenie w postaci całki wykładniczej ) |
Teoria liczb
Algorytmy obliczeń teoretycznych liczb są badane w obliczeniowej teorii liczb .
Operacja | Wejście | Wyjście | Algorytm | Złożoność |
---|---|---|---|---|
Największy wspólny dzielnik | Dwa -cyfrowy całkowitymi | Jedna liczba całkowita z co najwyżej cyframi | Algorytm Euklidesa | |
Binarny algorytm GCD | ||||
Lewy/prawy k- arny binarny algorytm GCD | ||||
Algorytm Stehlego-Zimmermanna | ||||
Algorytm zejścia Euklidesa kontrolowany przez Schönhage | ||||
Symbol Jacobiego | Dwa -cyfrowy całkowitymi | , lub | Algorytm zejścia Euklidesa kontrolowany przez Schönhage | |
Algorytm Stehlego-Zimmermanna | ||||
Factorial | Dodatnia liczba całkowita mniejsza niż | Jeden -cyfrowy całkowitą | Mnożenie z dołu do góry | |
Dzielenie binarne | ||||
Potęgowanie czynników pierwszych |
, |
|||
Test pierwszości | A -cyfrowa liczba całkowita | Prawda czy fałsz | Test pierwszości AKS |
lub , , zakładając przypuszczenie Agrawala |
Potwierdzenie pierwszości krzywej eliptycznej | heurystycznie | |||
Test pierwszości Baillie-PSW | ||||
Test pierwszości Millera-Rabina | ||||
Test pierwszości Solovay-Strassena | ||||
Faktoryzacja liczb całkowitych | A -bitowa wejściowa liczba całkowita | Zestaw czynników | Ogólny numer sita pola | |
Algorytm Shora | , na komputerze kwantowym |
Algebra macierzowa
Poniższe rysunki złożoności zakładają, że arytmetyka z poszczególnymi elementami ma złożoność O (1), tak jak ma to miejsce w przypadku arytmetyki zmiennoprzecinkowej o stałej precyzji lub operacji na polu skończonym .
Operacja | Wejście | Wyjście | Algorytm | Złożoność |
---|---|---|---|---|
Mnożenie macierzy | Dwie macierze | Jedna macierz | Mnożenie macierzy w podręczniku | |
Algorytm Strassena | ||||
Algorytm Coppersmitha-Winograda ( algorytm galaktyczny ) | ||||
Zoptymalizowane algorytmy podobne do CW ( algorytmy galaktyczne ) | ||||
Mnożenie macierzy | Jedna macierz i jedna macierz | Jedna macierz | Mnożenie macierzy w podręczniku | |
Mnożenie macierzy | Jedna macierz i
jedna matryca, dla niektórych |
Jedna macierz | Algorytmy podane w | , gdzie górne granice podane są w |
Odwrócenie macierzy | Jedna macierz | Jedna macierz | Eliminacja Gaussa-Jordana | |
Algorytm Strassena | ||||
Algorytm Coppersmith-Winograd | ||||
Zoptymalizowane algorytmy podobne do CW | ||||
Rozkład według wartości osobliwych | Jedna macierz | Jedna macierz, jedna macierz i jedna macierz
|
Bidiagonalizacja i algorytm QR |
( ) |
Jedna macierz, jedna macierz i jedna macierz
|
Bidiagonalizacja i algorytm QR |
( ) |
||
Wyznacznik | Jedna macierz | Jeden numer | Ekspansja Laplace'a | |
Algorytm bez dzielenia | ||||
Rozkład LU | ||||
Algorytm Bareiss | ||||
Szybkie mnożenie macierzy | ||||
Powrót do substytucji | Macierz trójkątna | rozwiązania | Powrót do substytucji |
W 2005 roku Henry Cohn , Robert Kleinberg , Balázs Szegedy i Chris Umans wykazali, że jedna z dwóch różnych hipotez sugeruje, że wykładnik mnożenia macierzy wynosi 2.
Przekształcenia
Algorytmy obliczania przekształceń funkcji (w szczególności przekształceń całkowych ) są szeroko stosowane we wszystkich dziedzinach matematyki, zwłaszcza w analizie i przetwarzaniu sygnałów .
Operacja | Wejście | Wyjście | Algorytm | Złożoność |
---|---|---|---|---|
Dyskretna transformata Fouriera | Skończona sekwencja danych o rozmiarze | Zbiór liczb zespolonych | Szybka transformata Fouriera |
Uwagi
Bibliografia
Dalsza lektura
- Brent, Richard P .; Zimmermann, Paweł (2010). Nowoczesna arytmetyka komputerowa . Wydawnictwo Uniwersytetu Cambridge. Numer ISBN 978-0-521-19469-3.
- Knutha, Donalda Erwina (1997). Sztuka programowania komputerowego. Tom 2: Algorytmy półnumeryczne (3rd ed.). Addisona-Wesleya. Numer ISBN 978-0-201-89684-8.