Złożoność obliczeniowa operacji matematycznych - Computational complexity of mathematical operations

Wykresy funkcji powszechnie stosowanych w analizie algorytmów, przedstawiające liczbę operacji w funkcji wielkości wejściowej dla każdej funkcji

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