www.wikidata.de-de.nina.az
Der Karazuba Algorithmus ist ein Algorithmus zur Multiplikation zweier grosser ganzer Zahlen Er wurde 1960 von dem 23 jahrigen Anatoli Alexejewitsch Karazuba engl Karatsuba russisch Anatolij Alekseevich Karacuba entwickelt und 1962 veroffentlicht Bezeichnet n displaystyle n die Bit Anzahl der beiden Zahlen und O displaystyle O ein Landau Symbol so ist der Algorithmus mit einer Laufzeitkomplexitat von O n log 2 3 log 2 3 1 584 9 displaystyle O n log 2 3 log 2 3 1 5849 ldots deutlich schneller als die Schulmethode Diese und auch deren implizite Ubertragung auf das Binarsystem in Form der russischen Bauernmultiplikation besitzt eine Laufzeitkomplexitat von O n 2 displaystyle O n 2 Die Methode von Karazuba wurde zum Vorbild fur das Teile und herrsche Prinzip in der Informatik Fur hinreichend grosse Zahlen ist der Karazuba Algorithmus langsamer als seine Verallgemeinerungen wie der Toom Cook Algorithmus 1965 und der Schonhage Strassen Algorithmus 1971 dessen Laufzeitkomplexitat O n log n log log n displaystyle O big n log n log log n big betragt und der aus Sicht der Komplexitatstheorie als schnellster Algorithmus zur Multiplikation grosser ganzer Zahlen galt bis 2007 Martin Furer eine Weiterentwicklung mit einer bisher nur theoretisch geringeren Laufzeitkomplexitat vorstellte 1 Inhaltsverzeichnis 1 Idee des Algorithmus 2 Der Algorithmus im Detail 3 Laufzeitanalyse 4 Beispiel zur Produktumformung 5 Verallgemeinerung 6 Literatur 7 Weblinks 8 Einzelnachweise und AnmerkungenIdee des Algorithmus BearbeitenMultiplizieren verursacht in der Schulmethode einen Aufwand der mit dem Quadrat der Stellenanzahl wachst wahrend Additionen und Verschiebeoperationen bei denen mit einer Potenz der Basis des verwendeten Stellenwertsystems multipliziert wird nur linearen Aufwand benotigen Die Idee ist nach dem Teile und herrsche Prinzip die beiden zu multiplizierenden Zahlen in zwei Teile aufzuspalten und die Multiplikationen soweit moglich durch Additionen und Verschiebeoperationen zu ersetzen Das Ausmultiplizieren der aufgeteilten Zahlen ergibt drei Teilterme die durch vier Multiplikationen gebildet werden Diese konnen durch Verschiebe und Additionsoperationen zum Gesamtergebnis zusammengesetzt werden Einer dieser Terme ist dabei eine Summe zweier Produkte Dieser Term lasst sich als Differenz mit einem neuen Produkt und der Summe der anderen beiden Teilterme schreiben Insgesamt spart man so also eine Teilmultiplikation ein Fuhrt man dieses Verfahren rekursiv durch so erhalt man eine wesentlich gunstigere Laufzeit als nach der Schulmethode Der Algorithmus im Detail BearbeitenDer hier angegebene Algorithmus gilt fur naturliche Zahlen er lasst sich aber leicht auch auf ganze Zahlen verallgemeinern indem ihre Vorzeichen gesondert berucksichtigt werden Die Faktoren X displaystyle X nbsp und Y displaystyle Y nbsp seien im Stellenwertsystem zur Basis b displaystyle b nbsp als Tupel dargestellt Der Wert von b displaystyle b nbsp ist unerheblich Etwa in einem Computer mit einem Multiplizierer fur 32 Bit breite Zahlen wurde b 2 31 displaystyle b 2 31 nbsp gewahlt werden Die Beispiele weiter unten verwenden Dezimalzahlen Um die Rekursion bis n 1 displaystyle n 1 nbsp durchfuhren zu konnen seien die Langen beider Zifferntupel eine Zweierpotenz 2 m displaystyle 2 m nbsp mit m gt 1 displaystyle m gt 1 nbsp und es sei n 2 m 1 displaystyle n 2 m 1 nbsp Das ist immer erreichbar durch geeignet vorangestellte Nullen an der unten durchgefuhrten Laufzeitabschatzung andert sich dadurch nichts Wesentliches Die Zifferntupel seien also X x 2 n 1 x 0 b displaystyle X x 2n 1 ldots x 0 b nbsp und Y y 2 n 1 y 0 b displaystyle Y y 2n 1 ldots y 0 b nbsp Jedes Zifferntupel wird nun in zwei Tupel der Lange n displaystyle n nbsp aufgespalten Das liefert die vier Zahlen X h x 2 n 1 x n b displaystyle X h x 2n 1 ldots x n b nbsp und X l x n 1 x 0 b displaystyle X l x n 1 ldots x 0 b nbsp sowie Y h y 2 n 1 y n b displaystyle Y h y 2n 1 ldots y n b nbsp und Y l y n 1 y 0 b displaystyle Y l y n 1 ldots y 0 b nbsp Damit ist X X h b n X l displaystyle X X h b n X l nbsp und Y Y h b n Y l displaystyle Y Y h b n Y l nbsp Ausmultipliziert ergibt sich X Y X h b n X l Y h b n Y l X h Y h b 2 n X h Y l X l Y h b n X l Y l displaystyle X Y X h b n X l Y h b n Y l X h Y h b 2n X h Y l X l Y h b n X l Y l nbsp Den Term X h Y l X l Y h displaystyle X h Y l X l Y h nbsp kann man nun in eine andere hier schneller berechenbare Form bringen X h Y l X l Y h X h Y h X h Y l X l Y h X l Y l X h Y h X l Y l X h X l Y h Y l X h Y h X l Y l displaystyle X h Y l X l Y h X h Y h X h Y l X l Y h X l Y l X h Y h X l Y l X h X l Y h Y l X h Y h X l Y l nbsp Damit ergibt sich fur das Produkt die Darstellung X Y X h Y h b 2 n X h X l Y h Y l X h Y h X l Y l b n X l Y l displaystyle X Y X h Y h b 2n big X h X l Y h Y l X h Y h X l Y l big b n X l Y l nbsp in der nur noch die drei kurzen Produkte P 1 X h Y h P 2 X l Y l P 3 X h X l Y h Y l displaystyle P 1 X h Y h P 2 X l Y l P 3 X h X l Y h Y l nbsp erscheinen Rekursiv berechnet und mit einfachen Verschiebe und Additionsoperationen verknupft ergeben sie X Y P 1 b 2 n P 3 P 1 P 2 b n P 2 displaystyle X Y P 1 b 2n big P 3 P 1 P 2 big b n P 2 nbsp Von den vier moglichen Produkten von X mit Y Xh Yh Xh Yl Xl Yh Xl Yl wird das erste P1 und das letzte P2 direkt im Ergebnis verwendet Der Term aus der Summe der beiden mittleren Produkten kann als Summe von allen Produkten minus des ersten und letzten Produkt gebildet werden Die Summe aus allen vier Produkten kann uber das neu eingefuhrte Produkt P3 mit nur einer Multiplikation erzeugt werden Laufzeitanalyse BearbeitenEine Multiplikation zweier 2 n displaystyle 2n nbsp stelliger Zahlen wird zuruckgefuhrt auf drei Multiplikationen von je zwei n displaystyle n nbsp stelligen Zahlen und vier Additionen bzw Subtraktionen n displaystyle n nbsp stelliger Zahlen eventuell mit Ubertragen sowie mit zwei Verschiebungen Die benotigte Zeit fur die Operationen die keine Multiplikationen sind ist kleiner als c n displaystyle cn nbsp mit einer von n displaystyle n nbsp unabhangigen Konstanten c displaystyle c nbsp Bezeichnet T s displaystyle T s nbsp die Gesamtzahl der Operationen bei der Multiplikation zweier s displaystyle s nbsp stelliger Zahlen so gilt T 2 n 3 T n c n T 1 1 displaystyle T 2n leq 3T n cn T 1 1 nbsp Der hier anwendbare erste Fall des Master Theorems mit a 3 b 2 displaystyle a 3 b 2 nbsp und f n c n displaystyle f n leq cn nbsp liefert O n log 2 3 displaystyle O n log 2 3 nbsp als Laufzeitkomplexitat von T n displaystyle T n nbsp Die direkte Herleitung mit vollstandiger Induktion ermoglicht einen genaueren Einblick T 2 m 3 m T 1 c 2 2 m k 0 m 1 3 2 k 3 m c 3 m 2 m lt c 1 3 m displaystyle T 2 m leq 3 m T 1 frac c 2 2 m sum limits k 0 m 1 left frac 3 2 right k 3 m c 3 m 2 m lt c 1 3 m nbsp Ersetzen von 2 m displaystyle 2 m nbsp durch n displaystyle n nbsp ergibt dann T n lt c 1 2 log 2 3 m c 1 2 m log 2 3 c 1 n log 2 3 displaystyle T n lt c 1 2 log 2 3 m c 1 2 m log 2 3 c 1 n log 2 3 nbsp Beispiel zur Produktumformung BearbeitenDie zu multiplizierenden Zahlen seien X 84 232 332 233 displaystyle X 84 232 332 233 nbsp und Y 1 532 664 392 displaystyle Y 1 532 664 392 nbsp Da es hier nur um die Veranschaulichung der Produktumformung geht wird mit vorangestellten Nullen auf die nachste gerade und gleiche Lange und nicht auf eine Zweipotenzlange aufgefullt Damit ergeben sich die Zifferntupel X 084 232 332 233 displaystyle X color Blue 084 232 color OliveGreen 332 233 nbsp und Y 001 532 664 392 displaystyle Y color Red 001 532 color Brown 664 392 nbsp der Lange 2 n 12 displaystyle 2n 12 nbsp die in vier Tupel der Lange n 6 displaystyle n 6 nbsp zerlegt werden X h 084 232 displaystyle X h color Blue 084 232 nbsp und X l 332 233 displaystyle X l color OliveGreen 332 233 nbsp sowie Y h 001 532 displaystyle Y h color Red 001 532 nbsp und Y l 664 392 displaystyle Y l color Brown 664 392 nbsp Es gilt X X h 10 6 X l 084 232 10 6 332 233 displaystyle X X h cdot 10 6 X l color Blue 084 232 cdot 10 6 color OliveGreen 332 233 nbsp und Y Y h 10 6 Y l 001 532 10 6 664 392 displaystyle Y Y h cdot 10 6 Y l color Red 001 532 cdot 10 6 color Brown 664 392 nbsp Die benotigten Produkte sind P 1 X h Y h 084 232 001 532 000 129 043 424 displaystyle P 1 X h cdot Y h color Blue 084 232 cdot color Red 001 532 000 129 043 424 nbsp P 2 X l Y l 332 233 664 392 220 732 947 336 displaystyle P 2 X l cdot Y l color OliveGreen 332 233 cdot color Brown 664 392 220 732 947 336 nbsp und P 3 displaystyle P 3 nbsp X h X l Y h Y l 084 232 332 233 001 532 664 392 416 465 665 924 277 334 038 660 displaystyle X h X l cdot Y h Y l color Blue 084 232 color OliveGreen 332 233 cdot color Red 001 532 color Brown 664 392 416 465 cdot 665 924 277 334 038 660 nbsp Der Algorithmus wurde die Produkte P 1 displaystyle P 1 nbsp P 2 displaystyle P 2 nbsp und P 3 displaystyle P 3 nbsp rekursiv bestimmen Es bleibt das Ergebnis gemass obiger Formel zusammenzusetzen X Y P 1 10 12 P 3 P 1 P 2 10 6 P 2 000 129 043 424 10 12 277 334 038 660 000 129 043 424 220 732 947 336 10 6 220 732 947 336 displaystyle begin array rll X cdot Y amp amp P 1 cdot 10 12 big P 3 P 1 P 2 big cdot 10 6 P 2 amp amp 000 129 043 424 cdot 10 12 amp amp big 277 334 038 660 000 129 043 424 220 732 947 336 big cdot 10 6 amp amp 220 732 947 336 end array nbsp Wahrend die Schulmethode 110 Ziffernmultiplikationen und 90 Additionen ohne Ubertrage benotigt sind es hier 92 Multiplikationen und 83 Additionen Verallgemeinerung BearbeitenStatt in zwei Teile konnen die zu multiplizierenden Zahlen auch in mehr Teile zerlegt werden Durch geschickte Linearkombination von Teilergebnissen genugen dann bei Zerlegung in d 1 displaystyle d 1 nbsp Teile 2 d 1 displaystyle 2d 1 nbsp Multiplikationen auf den kleineren Zahlen Rekursiv angewandt fuhrt dieses Verfahren dann zum Toom Cook Algorithmus Literatur BearbeitenA Karatsuba Y Ofman Multiplication of Many Digital Numbers by Automatic Computers In Soviet Physics Doklady 7 1963 S 595 596 engl Ubersetzung des russ Originals In Doklady Akad Nauk SSSR Band 145 1962 S 293 294 A A Karacuba Berechnungen und die Kompliziertheit von Beziehungen In Elektron Informationsverarb Kybernetik 11 1975 S 603 606 A A Karatsuba The Complexity of Computations In Proc Steklov Inst Math 211 1995 S 169 183 cs ru PDF engl Ubersetzung des russ Originals In Trudy Mat Inst Steklova 211 1995 S 186 202 D E Knuth The Art of Computer Programming Band 2 Seminumerical Algorithms Addison Wesley Publ Co Reading Mass 1969 ISBN 0 201 89684 2 Weblinks BearbeitenKaratsuba Multiplication auf MathWorld D J Bernstein Multidigit multiplication for mathematicians PDF 276 kB Mathematische Darstellung diverser Multiplikationsalgorithmen Behandelt auch den Karazuba Algorithmus Karatsuba Multiplication on Fast Algorithms and the FEE Einzelnachweise und Anmerkungen Bearbeiten Das englische Lemma Furer s algorithm enthalt dazu einige Hinweise Abgerufen von https de wikipedia org w index php title Karazuba Algorithmus amp oldid 208612016