Schnelle Multiplikation großer Zahlen

  • View
    336

  • Download
    0

Embed Size (px)

Transcript

Computing 7, 281--292 (1971) 9 by Springer-Verlag 1971

Sehnelle Multiplikation groller ZahlenVon

A. Seh6nhage, Konstanzund

V. Strassen, Ztirich 1(Eingegangen am 8. Juli 1970)

Zusammenfassung -- Summary SehneUe Multiplikation groBer Zahlen. Es wird ein Algorithmus zur Berechnung des t)roduktes v o a zwei N-stelligen Dualzahlen angegeben. Zwei Arten der Realisiertmg werden b e t r a c h t e t : Turingmaschinen m i t mehreren B/indern und logisehe Netze (aus zweistelligen logischen Elementen aufgebaut). Fast Multiplication of Large Numbers. An algorithm is given for computing the product of two N-digit binary numbers b y 0 (N lg 57 ]g lg N) steps. Two ways of implementing the algorithm are considered: multitape Turing machines and logical nets (with step = binary logical element.)

1. EinleitungDie Sehulmethode zur Multiplikation zweier Dezimalzahlen 1/~l~t sich ohne weiteres ffir die Multiplikation N-stelliger Dualzahlen auf einer Turingmaschine mit mehreren B/~ndern oder in einem (aus zweistelligen logischen Elementen aufgebau~en)]ogischen Netz verwenden. In beiden F/~llen ergibt sich ein Aufwand der GrSl~enordnung N ~. Dabei verstehen wir unter dem Aufwand eines Netzes die Anzahl seiner Elemente. Bei einer Turingmaschine, die die Multiplikation yon Zahlen beliebiger L/~nge leistet, definiert man den Aufwand der Multiplikation N-stelliger Zahlen als das Maximum der Anzahl der Bewegungen der KSpfe, gebfldet fiber alle Inputzahlenpaare der L/~nge N. Die herrschende und intuitiv einleuchtende Auffassung, daft sich der bei der Schulmethode erforderliche Aufwand nicht wesentlich verkleinern ]/iBt, wurde 1962 yon A. KARACU]~A [4] durch Konstruktion eines Netzes mit 0 (N ~1~ 8) Elementen widerlegt (21g3 ~ 1,58). Die Methode fibertr/igt sich ohne Schwierigkeiten auf Turingmaschinen.1 P a r t of the research of the second author was done at the Depax'tment of Statistics, University of California, Berkeley. H e wishes to t h a n k the National Science Foundation for their support (~TSF GP-7454).

282

A. ScK6~AGE:

Eine weitere 0berraschung enthielt die im folgenden J a h r erschienene Note yon Too~ [7], in der ein Netz zur Multiplikation N-stelliger Dualzahlen mit 0 (N 2 constV ~ ) logischen Elementen angegeben wurde. Unabhii.ngig yon Too~ und mit einer ganz anderen Methode zeigte SCH6~AG~ [6] 1966, dab sieh N-stellige ZaMen auf einer Turingmaschine mit einem Aufwand von 0 (N 2 ~ (lg N) ~/2) multiplizieren lassen. In der Folge wurde auch der TooMsche Algorithmus auf Turingmaschinen ribertragen (COOK [1]), und zwar mit einem zu 0 (N 2 ~ lg N)

versch//rften Aufwand (Cook [1] nnd Kz~vTat [5], Seite 273). Die wesentlich verschiedenen Methoden yon T o o ~ und SCHSZ~mtGE liefern also praktisch den gteichen Aufwand, was zu Spekulationen riber dessen ungef~.hre Optimalitgt geftihrt hat. Dem interessierten Leser sei das 4. Kapitel yon K~cTI~S brillanter Ein-Mann-Enzyklop/idie ,,The Art of Computer Programming" empfohlen, in d e m die hier nur aufgez/ihlten Ergebnisse ausfrihrlieh dargestellt und bewiesen werden. In der vorliegenden Arbeit werden zwei Verfahren zur Multiplikation N-stelliger DuMzahlen angegeben, die sich mit logischen Netzen ebenso wie mit Turingmaschinen realisieren lassen. Der Aufwand des einen ist 0 (N lg N (lg lg N) 1+ ~), der des andern 0 (N lg N lg lg N). Beide Verfahren verwenden die schnelle FocRIE~transformation (CooLEY and TUKEY [3]; unabhiingig Yon uns hat auch D. K~vT~ die Idee gehabt, die schnelle Fov-RiERtransformation bei der Multiplikatio~ grol3er Zahlen auszunutzen). Ihre Verwendung wird dadurch nahegelegt, dab die Multiplikation zweier Zahlen bis auf das Ausffihren der (~bertr//ge eine Konvolution ist. SpMtet man also die beiden zu multiplizierenden Dualzahlen in Stricke geeigneter L/rage auf und interpretiert diese Stricke als Elemente eines Rings R, der die (eigentlieh im Ring Z der ganzen Zahlen zu vollziehenden) Rechnungen mit den Stricken treu wiederzugeben gestattet und aul~erdem die n6tigen Einheitswurzeln enth//lt, so kann man die gewrinschte ,,grol3e" Multiplikation zerlegen in die FOVRIERtransformation der beiden Strickfolgen, komponentenweise Multiplikation der transformierten Folgen, Riicktransformation und Ausfiihren der Ubertr/ige. Die dabei auftretenden ,,kleinen" Multiplikationen werden analog behandelt. Es entsteht so eine rekursive Schachtelung yon Routinen der gerade beschriebenen Art.

Schnello Multiplikmbion grol~er Zahlen

283

Bei unserem ersten Verfahren ist R = C der KSrper der komplexen Zahlen, die Stiiekl~nge ist ~ l g Y , und man erh~lt den Aufwand 0 (IV lg IV (lg lg IV)1+ ~) sehon, wenn man dreimal sehaehtelt. Bei unserem zweiten Ve~r verwenden wir fiir R den Restklassenring ZF n yon Z nach einer F]~RlVIATzahl F n ~ 22~@ 1, eine Stiickliinge yon ~ VN, und wir schachteln ungefiihr lg lg IV-real. Der entscheidende Vorteil der FER~ATzahlen F n besteht darin, dab 2 eine primitive 2n+l-te Einheitswurzel rood F n ist, deren Potenzreste extrem einfache Dualdarstellungen besitzen, so dab das Multiplizierea mit diesen Einheitswurzeln nicht ins Gewicht fgllt. Die R.ealisierung des zweiten Verfahrens durch ein logisches Netz kann so geschehen, dab die Tiefe des Netzes (die den Zeitaufwand bestimmt) 0 (lg N) ist. Wit ffihren das allerdings nicht genauer aus. Die GrSBenordnung lg IV ffir die Tiefe ist natiirlich die bestmSgliche. Wir glanben nicht, dab die GrSBenordnung IV lg IV lg lg IV fiir den Aufwand optimal ist, sondern vermuten dies fiir die Gr6Benordnung IV lg IV (vgl. hierzu das tiefliegende Resultat yon COOK und AAZeDER~ [2] ; leider ist die on-line Einschr/~nkung far logische Netze unannehmbar und fiir die Berechnung auf Turingmaschinen jedenfalls zu streng, da z.B. auBer der Schulmethode keines der erwiihnten Verfahren on-line verl/iuft). Im n/~chsten Abschnitt bringen ~wir die schnelle FouRIERtransformation in der Form, wie wir sie sp~ter brauchen. Im dritten Abschnitt skizzieren wir das einfachere mit R = C arbeitende Verfahren und im vierten Abschnitt schlieBlich besprechen wit ausfiihrlich das Verfahren mit R = Z~ n. 2. Schnelle F o u r i e r t r a n s f o r m a t i o n R sei kommutativer Ring mit 1, wn ~ R sei 2n-re Einheitswurzel mit w~~-1 = -- 1, und 2 = I -k 1 sei Einheit in R. Dann 1/iBt sich die Transformation2n--1

a~ = ~, ajw~ ~j=0

(0 ~< ~ < 2n),

(2.1)

die jedem Vektor a ~ R 2n die FouRiERtransformierte ~ zuordnet, nach folgendem Schema in Einzelschritte auflSsen. Ffir k und j werden die Dualdarstellungenn--1 n--1

=

]~ ~

2~,

j = ] ~ jr 2 n - 1 - ~

(~,, iv = o oder = 1)

(2.2)

benutzt. Ausgehend yonA o (jo, . . . , j n - 1 ) =- a1 (0 < j < 2n)

(2.3)

definiert man A 1 . . . . , A n rekursiv dureh

284 A ~ + I (/Co. . . . . 1

A. Sc~/3~g_~Gn : kv, j v + l . . . . . jn-1) =

= ~iv = 0

A , (/co, ...,/c,-1, j, . . . .

, i n _ l ) w ~ "~"-l-~(~e+'+~~176

(2.4)

oder u n t e r B e r f i c k s i c h t i g u n g v o n w~~-1 = - - 1 ausfiihrticherA v + l ( . . . /C,-1: 0: j~+l, - . . )=

|

= A~ (...,/C,_1, o, A+~, 9 9 .) + A , (...,/C,_~, 1, j~+~, . . . ) w~,

A,+I (.../C,_~, 1, j,+~, ...) == A~, (. . ., /C~,_I, O, j ~ + l , - . - ) - - A v ( . . . , / C ~ - 1 ,

I [I

(2.5)

1, j r + l , . . .) w n

m i t u - - 2 ~-1 - " (/C~-1 2 ~-1 -}- 9 9 9 + / C o 2o). A u s (2.3) u n d (2.4) erhglt m a n bei B e a c h t u n g y o nW~"02 n - 1 + """ ]~-12n- ~) k~ 2~ = 1

mittels Induktion1----

die geschlossene D a r s t e l l u n g A~+I (/CO . . . . .1

/C,, j , + l . . . .

, jn-1) =

~~'v= 0

.. . ~j~ =

a3.... ~(~2~-1 + . . . + j ~ - l - ~ ) ( k ~ + . . . + ~ o . 2 , )0

Gem/iB (2.1) u n d (2.2) folg~ so i n s b e s o n d e r eA n (/Co, 9 .., /cn-1) = ~ -

(2.6)

Fiir die U m k e h r t r a n s f o r m a t i o n (2.5) die V o r s c h r f f tA,, ( . . . . /Cv-1, 0, j v + l . . . .)=

$ ~-~ a e r g i b t sich d u t c h A u f l S s u n g y o n

= 2 -1 (A,+z ( . . . , /C,-1, 0, j , + l , . . . ) A , ( . . . . /C,-1, 1, jv+l . . . . ) =

-[- A , + I ( . . . , /C,_1,1, j,+l, . . . ) ) , (2.7)

= 2-1 9 w~ ~"(A~+~ (..., /cv-1, 0 , j ~ + l . . . ) - - A , + I (...,/cv-1, 1 , j , + l , . . . ) ) m i t ~ = 2 n-~ - " (/C~-1 2 "-~ -t- 9 9 9 + / C o 20). A n sp/iterer Stelle ist n o e h f o l g e n d e r U m s t a n d N a e h (2.3), (2.4) gilt speziell fiir 0 ~~ 0, b ~> 0 in N-stelliger Dualdarstellung das 2N-stellige Prodnkt c = a b berechnet wird. Ausgehend yon natfirlichen Zahlen 1 und n, die unter Einhaltung der Bedingung 1 . 2 n >~ 2 N (3.1) spgter in Abhgngigkeit yon N noch geeignet zu wghlen sein werden, zerlegt man die Faktoren a und b gemgB2n--1 2n--1

a =i=o

aj 2J ,

b =j=0

bj 2Jz

mit 0 ~< aj < 21, 0 ~ bj < 2z und aj = bj = 0 fiir j ~> 2 n-1 in Abschnitte der Lgnge 1. Dann ergibt sich das Produkt in der Form2n-1 C---- a b = Z c~231

(3.3)mit c r = Z aqb~= Ze+ ~ v ( m o d 2 n)

aeba'

e+ a= v

d. h. die c~ entstehen durch Fultung der a e m i t den b~. Die in 2. beschriebene Fov~IE~transformar mit w n ~ e 2~i'2-n iiberffihrt diese Faltung in 2n vide Multip]ikationen, ngmlich2n--1 2n--1 2n--1

~=0

a=O

~=0

Damit lggt sich das Verfahren Vm+l in groben Zflgen umreif~en: (3.5) (3.6) (3.7) (3.8) Ubergang von den a~ zu den ~ den b~ gemg$ (2.5); und entsprechend yon den b~ zu

Ausffihrung der 2n Multiplikationen a~b~ = ~k; lJbergang yon den g~ zu den cr gemg$ (2.7); stellengerechte Addition der c, gemgB (3.3).

U m diesen Plan finit zu realisieren, ist es erforderlich, die in den Schritten (3.5) bis (3.7) vorkommenden komplexen Zahlen dutch hin-

286