Złożoność obliczeniowa operacji matematycznych

w analizie algorytmów, przedstawiające liczbę operacji w funkcji rozmiaru wejściowego dla każdej funkcji.

Poniższe tabele przedstawiają złożoność obliczeniową różnych algorytmów 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żego O , aby uzyskać wyjaśnienie zastosowanej notacji.

Uwaga: Ze względu na różnorodność algorytmów mnożenia, złożoność wybranego

Funkcje arytmetyczne

Ta tabela zawiera listę złożoności operacji matematycznych na liczbach całkowitych.

Operacja Wejście Wyjście Algorytm Złożoność
Dodatek Dwie liczby -cyfrowe, { Jedna cyfra Dodatek do podręcznika szkolnego z możliwością przenoszenia
Odejmowanie Dwie liczby -cyfrowe, { Jedna cyfra Odejmowanie podręcznika szkolnego z pożyczką
Mnożenie Dwie _
Jedna cyfra Podręcznik długiego mnożenia
Algorytm Karatsuby
Trójdrożne mnożenie Toom-Cook
-sposób mnożenia Tooma – Cooka
Mieszany poziom Toom-Cook (Knuth 4.3.3-T)
Algorytm Schönhage-Strassena
Algorytm Harveya-Hoevena
Dział Dwie _ Jeden numer Podręcznik długi podział
Burnikel – Ziegler Dywizja „dziel i rządź”.
Podział Newtona-Raphsona
Pierwiastek kwadratowy Jeden numer Jeden numer Metoda Newtona
Modułowe potęgowanie Dwie -cyfrowe liczby i -bitowy wykładnik za Jedna całkowita Wielokrotne mnożenie i zmniejszanie
Potęgowanie przez podniesienie do kwadratu
Potęgowanie z redukcją Montgomery'ego

Funkcje algebraiczne

Operacja Wejście Wyjście Algorytm Złożoność
Ocena wielomianowa Jeden wielomian stopnia współczynnikami o stałym Jeden numer o stałym rozmiarze Ocena bezpośrednia
Metoda Hornera
Wielomian gcd (ponad lub lub ) Dwa wielomiany stopnia ze współczynnikami całkowitymi stałym Co najwyżej jeden wielomian stopnia Algorytm euklidesowy
Szybki algorytm euklidesowy (Lehmer)

Funkcje specjalne

Wiele metod w tej sekcji podano w Borwein & Borwein.

Funkcje elementarne

Funkcje elementarne są konstruowane przez komponowanie operacji arytmetycznych, funkcji wykładniczej ( ), logarytmu naturalnego ( ), trygonometrycznych ( ) i ich odwrotności. Złożoność funkcji elementarnej jest równoważna złożoności jej odwrotności, ponieważ wszystkie funkcje elementarne są analityczne , a zatem odwracalne za pomocą metody Newtona. W szczególności, jeśli albo w domenie złożonej można obliczyć z pewną złożonością, to ta złożoność jest osiągalna dla wszystkich

Poniżej rozmiar odnosi się do liczby cyfr precyzji, z jaką funkcja ma być

Algorytm Stosowalność Złożoność
szereg Taylora ; wielokrotna redukcja argumentów (np. ) i bezpośrednie sumowanie
szereg Taylora; Przyspieszenie oparte na FFT
szereg Taylora; podział binarny + algorytm bit-burst
Iteracja średniej arytmetyczno-geometrycznej

Nie złożoność Najbardziej znaną dolną granicą jest trywialna granica .

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. Iteracja średniej arytmetyczno-geometrycznej
funkcja hipergeometryczna -cyfrowy numer (Jak opisano w Borwein & Borwein)
Stała liczba wymierna Szeregi hipergeometryczne

Stałe matematyczne

przedstawia złożoność przybliżeń obliczeniowych podanych stałych do cyfr.

Stały Algorytm Złożoność
złoty podział , Metoda Newtona
pierwiastek kwadratowy z 2 , Metoda Newtona
liczba Eulera , Binarny podział szeregu Taylora dla funkcji wykładniczej
Inwersja Newtona logarytmu naturalnego
pi , Binarny podział szeregu arctan we wzorze Machin'a
Algorytm Gaussa-Legendre'a
stała Eulera , Metoda Sweeneya (przybliżenie 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 Dwie liczby Jedna liczba całkowita z co Algorytm euklidesowy
Binarny algorytm GCD
Lewo/prawo k -ary binarny algorytm GCD
Algorytm Stehlégo-Zimmermanna
Algorytm pochodzenia euklidesowego kontrolowany przez Schönhage'a
Symbol Jacobiego Dwie liczby , lub Algorytm pochodzenia euklidesowego kontrolowany przez Schönhage'a
Algorytm Stehlégo-Zimmermanna
Silnia Dodatnia liczba całkowita mniejsza niż O liczba całkowita Mnożenie od dołu do góry
Podział binarny
Potęgowanie czynników pierwszych
,
Test pierwszości ZA -cyfrowa liczba całkowita Prawda czy fałsz Test pierwszości AKS
, zakładając hipotezę Agrawala
Dowód pierwszości krzywej eliptycznej heurystycznie
Test pierwszości Baillie-PSW
Test pierwszości Millera-Rabina
Test pierwszości Solovaya-Strassena
Faktoryzacja liczb całkowitych ZA -bitowa liczba całkowita wejściowa Zestaw czynników Ogólne sito pola liczbowego
Algorytm Shora na komputerze kwantowym

Algebra macierzowa

Poniższe liczby złożoności zakładają, że arytmetyka z pojedynczymi 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 Podręcznik mnożenia macierzy
Algorytm Strassena
Algorytm Coppersmitha-Winograda ( algorytm galaktyczny )
Zoptymalizowane algorytmy podobne do CW ( algorytmy galaktyczne )
Mnożenie macierzy
Jedna i jedna macierz
Jedna macierz Podręcznik mnożenia macierzy
Mnożenie macierzy
Jedna i jedna macierz macierz, dla niektórych
Jedna macierz Algorytmy podane w podane są górne granice
Inwersja macierzy Jedna macierz Jedna macierz Eliminacja Gaussa-Jordana
Algorytm Strassena
Algorytm Coppersmitha-Winograda
Zoptymalizowane algorytmy podobne do CW
Rozkład według wartości osobliwych Jedna _

Jedna macierz macierz jedna macierz n
Dwudiagonalizacja i algorytm QR
( )


Jedna , jedna macierz jedna macierz i jedna
Dwudiagonalizacja i algorytm QR
( )
Wyznacznik Jedna macierz Jeden numer Rozwinięcie Laplace'a
Algorytm bez dzielenia
rozkład LU
Algorytm Bareissa
Szybkie mnożenie macierzy
Zmiana z powrotem Macierz trójkątna rozwiązania Zmiana z powrotem

W 2005 roku Henry Cohn , Robert Kleinberg , Balázs Szegedy i Chris Umans wykazali, że każda z dwóch różnych hipotez sugerowałaby, że wykładnik mnożenia macierzy wynosi 2.

Transformuje

Algorytmy obliczania przekształceń funkcji (zwłaszcza przekształceń całkowych ) są szeroko stosowane we wszystkich dziedzinach matematyki, aw szczególności w analizie i przetwarzaniu sygnałów .

Operacja Wejście Wyjście Algorytm Złożoność
Dyskretna transformata Fouriera Skończona sekwencja danych o rozmiarze Zestaw liczb zespolonych Szybka transformata Fouriera

Notatki

Dalsza lektura