Výpočetní složitost matematických operací

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Následující tabulky uvádějí časovou složitost matematických operací. S ohledem na to, že efektivita značné části složitějších operací závisí na efektivitě implementace násobení, kterou používají, je v patřičných vzorcích použito M(n) pro naznačení této skutečnosti.

Aritmetické operace

OperaceVstupVýstupAlgoritmusSložitost
sčítánídvě čísla o n číslicíchčíslo o až n+1 číslicíchškolské sčítání s přenosemΘ(n)
odčítánídvě čísla o n číslicíchčíslo o až n+1 číslicíchškolské odčítání s výpůjčkouΘ(n)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchškolské násobeníO(n2)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchKaracubův algoritmusO(n1,585)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchtrojcestné Toomovo-Cookovo násobeníO(n1,465)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchk-cestné Toomovo-Cookovo násobeníO(nlog (2k − 1)/log k)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchToomovo-Cookovo násobení smíšené úrovněO(n\cdot 2^\sqrt{2 \log n}\log n)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchSchönhageův-Strassenův algoritmusO(n log n log log n)
násobenídvě čísla o n číslicíchčíslo o 2n číslicíchFürerův algoritmusO(n log n 2log* n)
dělenídvě čísla o n číslicíchčíslo o n číslicíchškolské děleníO(n2)
dělenídvě čísla o n číslicíchčíslo o n číslicíchNewtonovo-Raphsonovo děleníO(M(n))
druhá odmocninačíslo o n číslicíchčíslo o až n číslicíchNewtonova metodaO(M(n))
modulární mocněnídvě čísla až o n číslicích a jeden exponent o k číslicíchčíslo o až n číslicíchopakované násobení a moduleníO(2kM(n))
modulární mocněnídvě čísla až o n číslicích a jeden exponent o k číslicíchčíslo o až n číslicíchdvojkové mocněníO(k M(n))
modulární mocněnídvě čísla až o n číslicích a jeden exponent o k číslicíchčíslo o až n číslicíchmocnění s Montgomeryho redukcíO(k M(n))

Algebraické funkce

OperaceVstupVýstupAlgoritmusSložitost
Vyhodnocení polynomuJeden polynom stupně n s pevně danou velikostí koeficientůJedno číslo omezené velikostiPřímé vyhodnoceníΘ(n)
Vyhodnocení polynomuJeden polynom stupně n s pevně danou velikostí koeficientůJedno číslo omezené velikostiHornerovo schémaΘ(n)
Největší společný dělitel (nad okruhy Z[x] nebo T[x])Dva polynomy stupně n s koeficienty pevně dané velikostiJeden polynom stupně nejvýše nEukleidův algoritmusO(n2)
Největší společný dělitel (nad okruhy Z[x] nebo T[x])Dva polynomy stupně n s koeficienty pevně dané velikostiJeden polynom stupně nejvýše nRychlý Eukleidův algoritmusO(n (log n)2 log log n)

Speciální funkce

Elementární funkce

Elementární funkce je možné zkonstruovat skládáním aritmetických operací, jedná se o exponenciální funkci (exp), přirozený logaritmus (log) a o goniometrické funkce a funkce k nim (částečně) inverzní. Složitost elementárních funkcí je rovna složitosti funkcí k nim inverzních, protože všechny elementární funkce jsou analytické a tedy invertovatelné newtonovou metodou. +more Zejména platí, že je-li exponenciální funkce nebo logaritimická funkce vyčíslitelná s nějakou složitostí, jsou se stejnou složitostí vyčíslitelné i ostatní elementární funkce.

V tabulce níže se proměnnou n označuje požadovaný počet číslic přesnosti.

AlgoritmusPoužitelnostSložitost
Taylorova řada; přímý součet a opakovaná redukce argumentu (t. j. +more exp(2x) = [exp(x)]2)exp, log, sin, cosO(n1/2 M(n))
Taylorova řada; zrychlení pomocí rychlé Fourierovy transformaceexp, log, sin, cosO(n1/3 (log n)2 M(n))
Taylorova řada; binární děleníexp, log, sin, cosO((log n)2 M(n))
iterace aritmeticko-geometrického průměrulogO(log n M(n))
.

Není známo, zda O(log n M(n)) představuje optimální složitost výpočtu elementárních funkcí. Největší známý dolní odhad je Ω(M(n)).

Neelementární funkce

FunkceVstupAlgoritmusSložitost
funkce Gamačíslo o n číslicíchPostupná aproximace neúplné funkce GamaO(n1/2 (log n)2 M(n))
funkce Gamapevně dané racionální číslohypergeometrické řadyO((log n)2 M(n))
funkce Gamam/24, m je celé čísloiterace aritmeticko-geometrického průměruO(log n M(n))
hypergeometrická funkce pFqčíslo o n číslicíchO(n1/2 (log n)2 M(n))
hypergeometrická funkce pFqPevně dané racionální čísloHypergeometrické řadyO((log n)2 M(n))

Matematické konstanty

Tabulka níže shrnuje výpočetní složitost úlohy získat hodnotu dané konstanty s přesností n číslic.

KonstantaAlgoritmusSložitost
Zlatý řez, φMetoda tečenO(M(n))
druhá odmocnina ze dvou, \sqrt{2}Metoda tečenO(M(n))
Eulerovo číslo, eBinární dělení Taylorových řad pro exponenciální funkciO(log n M(n))
Eulerovo číslo, eNewtonův inverz přirozeného logaritmuO(log n M(n))
Ludolfovo číslo, πBinární dělení arctanové řady v Machinově vzorciO((log n)2 M(n))
Ludolfovo číslo, πSalaminův-Brentův algoritmusO(log n M(n))
Eulerova-Mascheroniho konstanta, γSweeneyho metodaO((log n)2 M(n))

Teorie čísel

Složitosti výpočtů z teorie čísel se věnuje výpočtová teorie čísel.

OperaceVstupVýstupAlgoritmusSložitost
Největší společný dělitelDvě čísla o n číslicíchČíslo o nejvýše n číslicíchEukleidův algoritmusO(n2)
Největší společný dělitelDvě čísla o n číslicíchČíslo o nejvýše n číslicíchSteinův algoritmusO(n2)
Největší společný dělitelDvě čísla o n číslicíchČíslo o nejvýše n číslicíchLevý/pravýk-ární Steinův algoritmusO(n2/ log n)
Největší společný dělitelDvě čísla o n číslicíchČíslo o nejvýše n číslicíchStehlého-Zimmermannův algoritmusO(log n M(n))
Největší společný dělitelDvě čísla o n číslicíchČíslo o nejvýše n číslicíchSchönhageho kontrolovaný eukleidovský sestupO(log n M(n))
Jacobiho symbolDvě čísla o n číslicích0, −1, or 1
Jacobiho symbolDvě čísla o n číslicích0, −1, or 1Schönhageho kontrolovaný eukleidovský sestupO(log n M(n))
Jacobiho symbolDvě čísla o n číslicích0, −1, or 1Stehlého-Zimmermannův algoritmusO(log n M(n))
FaktoriálPevně dané číslo mČíslo o O(m log m) číslicíchNásobení odspoduO(m2 log m)
FaktoriálPevně dané číslo mČíslo o O(m log m) číslicíchBinární děleníO(log m M(m log m))
FaktoriálPevně dané číslo mČíslo o O(m log m) číslicíchUmocňování prvočíselných dělitelů mO(log log m M(m log m)), O(M(m log m))

Maticová algebra

Hodnoty v následující tabulce jsou za platné za předpokládu, že maticové prvky lze násobit v konstantním čase.

OperaceVstupVýstupAlgoritmusSložitost
Násobení maticDvě matice rozměrů n×nJedna matice o rozměru n×nŠkolské násobeníO(n3)
Násobení maticDvě matice rozměrů n×nJedna matice o rozměru n×nStrassenův algoritmusO(n2,807)
Násobení maticDvě matice rozměrů n×nJedna matice o rozměru n×nCoppersmithův-Winogradův algoritmusO(n2,376)
Násobení maticDvě matice rozměrů n×nJedna matice o rozměru n×nWilliamsův algoritmusO(n2. 373)
Násobení maticjedna matice o rozměrech n×m a jedna matice o rozměrech m×pjedna matice o rozměru n×pŠkolské násobeníO(nmp)
Inverze maticematice o rozměrech n×nmatice o rozměrech n×nGaussova-Jordanova eliminaceO(n3)
Inverze maticematice o rozměrech n×nmatice o rozměrech n×nStrassenův algoritmusO(n2,807)
Inverze maticematice o rozměrech n×nmatice o rozměrech n×nCoppersmithův-Winogradův algoritmusO(n2,376)
Inverze maticematice o rozměrech n×nmatice o rozměrech n×nWilliamsův algoritmusO(n2,373)
Determinantjedna matice o rozměrech n×njedna hodnotaLaplaceův rozvojO(n. +more)
Determinantjedna matice o rozměrech n×njedna hodnotaLU dekompoziceO(n3)
Determinantjedna matice o rozměrech n×njedna hodnotaBareissův algoritmusO(n3)
Determinantjedna matice o rozměrech n×njedna hodnotaRychlé násobení maticO(n2,373)
Zpětné dosazenítrojúhelníková maticen řešeníZpětné dosazeníO(n2)
.

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top