Additionskette
Eine Additionskette für eine positive ganze Zahl ist eine endliche Folge positiver ganzer Zahlen, die mit 1 beginnt und mit endet und bei der jede Zahl der Folge außer der 1 die Summe zweier nicht notwendig verschiedener vorangegangener Folgenglieder ist. Für fast alle Fragestellungen genügt es, streng monoton steigende Folgen zu betrachten, so dass die Monotonie oft mit gefordert wird (siehe Varianten der Definition).
Unter der Länge einer Additionskette versteht man die Anzahl der Folgenglieder, die Summe vorangegangener Folgenglieder sind – die 1 am Anfang wird also nicht mitgezählt. Ist die Länge der Additionskette für , so ist . Die minimale Länge aller Additionsketten für wird mit bezeichnet.
Beispiel:
- (1, 2, 4, 5, 9) ist eine Additionskette der Länge 4 für 9, denn 2 = 1+1, 4 = 2+2, 5 = 4+1 und 9 = 5+4.
- (1, 2, 4, 6, 9) ist keine Additionskette für 9, denn 9 ist nicht Summe zweier vorangegangener Folgenglieder.
, denn es gibt keine kürzere Additionskette für 9. Andere Additionsketten für 9 sind gleich lang (zwei weitere) oder länger.
Anwendung und Geschichte
[Bearbeiten | Quelltext bearbeiten]Die erste und bis heute wohl wichtigste Anwendung von Additionsketten ist die Optimierung der Berechnung von Potenzen mit großen natürlichen Exponenten. Hat man eine Additionskette der Länge für eine positive ganze Zahl , so lässt sich zu einer Zahl die Potenz durch Multiplikationen berechnen. Sind nämlich für ein Glied der Additionskette, das Summe vorangegangener Glieder und ist, und schon berechnet worden, so ergibt sich daraus mit nur einer Multiplikation . Macht man das nacheinander für alle Glieder der Additionskette, so hat man mit Multiplikationen den Wert von erhalten. Dabei kann es sich bei der Basis um ein Element einer beliebigen nicht notwendig kommutativen Halbgruppe handeln; es muss also keine Zahl im üblichen Sinne sein. Besonders für endliche Strukturen bietet sich das an, z. B. die Multiplikation und Potenzierung modulo einer ganzen Zahl in Restklassenringen.
Die Frage, wie viele Multiplikationen man für eine Potenzierung mit einem natürlichen Exponenten mindestens braucht, ist 1894 in L'intermédiaire des mathématiciens von H. Dellac gestellt und im selben Jahr von Ernest de Jonquières beantwortet worden, der für einige Fälle die Lösung angab.[1]
Einen neuen Aufschwung hat das Problem durch die moderne Kryptographie genommen, wo bei einigen Verfahren hohe Potenzen ganzer Zahlen in Modulo-Arithmetik gebraucht werden. Dabei kann die Berechnung durch geeignete Additionsketten beschleunigt werden. Die optimale Lösung zu berechnen, also eine kürzeste Addtionskette für eine Zahl zu finden, hat sich dabei als sehr schwierig erwiesen. Für die Praxis spielt das eine geringe Rolle, da auch fast optimale Lösungen den Zweck erfüllen, aber als mathematische Herausforderung ist es bis heute ein schwieriges Problem trotz der einfachen Fragestellung.
In kryptographischen Verfahren wie RSA ist der Exponent Teil des privaten Schlüssels. Da die Anzahl der Rechenschritte von der Anzahl der Einsen in der Binärdarstellung des Exponenten abhängt, könnte ein Angreifer durch genaue Zeitmessung Rückschlüsse auf die Anzahl der binären Einsen und damit auf den Exponenten selbst ziehen. Um diesen Seitenkanalangriff zu vereiteln, wird das Potenzieren üblicherweise mit einem Algorithmus durchgeführt, dessen Laufzeit unabhängig von Exponenten ist.
Aufbau von Additionsketten
[Bearbeiten | Quelltext bearbeiten]Varianten der Definition
[Bearbeiten | Quelltext bearbeiten]Die eingangs angegebene Definition einer Additionskette ist die ursprüngliche[2][3] und wird daher meist zugrunde gelegt. Bei ihr treten die Zahlen nicht notwendig in aufsteigender Reihenfolge auf; so sind etwa (1, 2, 3, 4, 8, 11), (1, 2, 4, 3, 8, 11) und (1, 2, 4, 8, 3, 11) drei verschiedene Additionsketten, die dieselben Summen derselben Glieder enthalten und sich nur in der Reihenfolge der Summenbildungen unterscheiden. In aller Regel interessiert man sich aber für die Reihenfolge nicht, sondern betrachtet die drei Ketten als Varianten derselben Kette, genauer: als Repräsentanten derselben Äquivalenzklasse von Ketten. Diese ist dann allein durch die (ungeordnete) Menge der Glieder gegeben: Genau dann, wenn eine endliche Menge positiver ganzer Zahlen die Menge der Kettenglieder einer Additionskette (also die Bildmenge der Folge) ist, gilt und . Dann aber ist insbesondere die eindeutig bestimmte streng monoton steigende, ab 0 indizierte Folge der Elemente von eine Additionskette für . Es kann weitere Additionsketten für dieses geben, die aus derselben Menge von Gliedern in anderer Reihenfolge bestehen; diese lassen sich aber leicht aus konstruieren. Oft werden deshalb nur die streng monoton steigenden Additionsketten genauer untersucht, z. B. bei Knuth:[4] „Wir können ohne Beschränkung der Allgemeinheit annehmen, dass eine Additionskette aufsteigend ist, […] Von jetzt an werden wir nur aufsteigende Ketten betrachten, ohne diese Annahme explizit zu erwähnen.“
Aufzählung von Additionsketten
[Bearbeiten | Quelltext bearbeiten]0 | 1 | 2 | 3 | 4 | 5 (nur für 15) | 5 (nur für 11) |
---|---|---|---|---|---|---|
1 | 1, 2 | 1, 2, 3 | 1, 2, 3, 4 | …, 5 | 6 | 7 | 8 | …, 7, 11 | 8, 11 | |
1, 2, 3, 5 | …, 6 | 7 | 8 | 10 | …, 10 , 15 | …, 6, 11 | 8, 11 | 10, 11 | |||
1, 2, 3, 6 | …, 7 | 8 | 9 | 12 | …, 9, 15 | 12, 15 | …, 8, 11 | 9, 11 | |||
1, 2, 4 | 1, 2, 4, 5 | …, 6 | 7 | 8 | 9 | 10 | …, 10, 15 | …, 6, 11 | 7, 11 | 9, 11 | 10, 11 | ||
1, 2, 4, 6 | …, 7 | 8 | 10 | 12 | …, 7, 11 | 10, 11 | ||||
1, 2, 4, 8 | …, 9 | 10 | 12 | 16 | …, 9, 11 | 10, 11 |
In dieser Tabelle stehen alle Additionsketten der Länge bis 4 sowie eine Auswahl der insgesamt 135 Ketten der Länge 5, nämlich diejenigen, deren Endglied entweder 15 oder 11 ist. Der senkrechte Strich „|“ trennt alternative Teilketten. Das Auslassungszeichen „…“ bedeutet immer die Kette der Länge 3 in derselben Tabellenzeile. Die Endglieder sind fettgedruckt, wo sie in einer kürzesten Kette für diese Zahl erscheinen.
Auf diese Weise kann man im Prinzip alle Additionsketten aufzählen und erhält damit zu jeder Zahl eine kürzeste, alle kürzesten oder auch alle überhaupt. Ohne weiteres praktikabel ist dieses Verfahren aber nur für kleine Zahlen: Bereits mit der Länge 10 gibt es über 10 Millionen[5] verschiedene Additionsketten, und ihre Zahl wächst rasch weiter.
Die Anfangsabschnitte einer kürzesten Kette sind nicht notwendig selbst kürzeste Ketten für ihr jeweiliges Endglied. So beginnen die Ketten für 7 und 11 in der obersten Tabellenzeile mit (1, 2, 3, 4), was keine kürzeste Kette ist. Es genügt also nicht, bei der Konstruktion von kürzesten Ketten für ein nur die kürzesten Ketten für die Zahlen heranzuziehen.
Kürzeste Additionsketten
[Bearbeiten | Quelltext bearbeiten]2 | 1 | 1 | 1 | 1 | 1 |
3 | 2 | 2 | 2 | 2 | 1 |
4 | 1 | 2 | 2 | 2 | 1 |
5 | 2 | 3 | 3 | 3 | 2 |
6 | 2 | 3 | 3 | 3 | 2 |
7 | 3 | 4 | 4 | 4 | 5 |
8 | 1 | 3 | 3 | 3 | 1 |
9 | 2 | 4 | 4 | 4 | 3 |
10 | 2 | 4 | 4 | 4 | 4 |
11 | 3 | 5 | 5 | 5 | 15 |
12 | 2 | 4 | 4 | 4 | 3 |
13 | 3 | 5 | 5 | 5 | 10 |
14 | 3 | 5 | 5 | 5 | 14 |
15 | 4 | 5 | 5 | 6 | 4 |
16 | 1 | 4 | 4 | 4 | 1 |
17 | 2 | 5 | 5 | 5 | 2 |
18 | 2 | 5 | 5 | 5 | 7 |
19 | 3 | 6 | 6 | 6 | 33 |
20 | 2 | 5 | 5 | 5 | 6 |
21 | 3 | 6 | 6 | 6 | 29 |
22 | 3 | 6 | 6 | 6 | 40 |
23 | 4 | 6 | 6 | 7 | 4 |
24 | 2 | 5 | 5 | 5 | 4 |
25 | 3 | 6 | 6 | 6 | 14 |
26 | 3 | 6 | 6 | 6 | 24 |
27 | 4 | 6 | 6 | 7 | 5 |
28 | 3 | 6 | 6 | 6 | 23 |
29 | 4 | 7 | 6 | 7 | 132 |
30 | 4 | 6 | 6 | 7 | 12 |
31 | 5 | 7 | 7 | 8 | 77 |
32 | 1 | 5 | 5 | 5 | 1 |
53 | 4 | 8 | 7 | 8 | 205 |
57 | 4 | 8 | 7 | 8 | 173 |
58 | 4 | 8 | 7 | 8 | 352 |
71 | 4 | 9 | 8 | 9 | 1258 |
89 | 4 | 9 | 8 | 9 | 471 |
127 | 7 | 10 | 9 | 12 | 2661 |
191 | 7 | 11 | 10 | 13 | 9787 |
382 | 7 | 11 | 11 | 14 | 4 |
465 | 5 | 12 | 11 | 12 | 6352 |
1018 | 8 | 13 | 12 | 16 | 2677 |
1019 | 9 | 13 | 13 | 17 | 129 |
1020 | 8 | 12 | 12 | 16 | 240 |
1021 | 9 | 13 | 13 | 17 | 934 |
1022 | 9 | 13 | 13 | 17 | 3960 |
1023 | 10 | 13 | 13 | 18 | 1072 |
1024 | 1 | 10 | 10 | 10 | 1 |
Zu jeder natürlichen Zahl ab 4 gibt es mehrere Additionsketten, die diese als letztes Element enthalten. Interessant sind besonders kürzeste Ketten, die eine bestimmte Zahl erreichen. Die Zweierpotenzen und die 3 – und nur diese, wie sich zeigen lässt – haben nur eine kürzeste Additionskette. Die 6 sowie alle Zahlen außer 9, die um 1 größer sind als eine Zweierpotenz ab 4, haben genau zwei kürzeste Additionsketten, z. B. 1, 2, 4, 8, 16, (17 oder 32), 33.
Die meisten Zahlen (letztlich sogar fast alle, bezogen auf die richtige Wahl einer Dichte) lassen sich mittels einer Additionskette beschreiben, deren Länge in Abhängigkeit von der Zahl im Wesentlichen ist.
Eine vermutete und bisher bis bestätigte untere Schranke für ist , wobei die Anzahl der Einsen in der Binärdarstellung von ist. Das ist zugleich mindestens für kleine eine brauchbare Schätzung für : bis ist entweder oder , und bis ist mit nur einer Ausnahme . Die Ausnahme ist mit , , .
Eine obere Schranke für ist , denn man kann zunächst die Kette aller Zweierpotenzen bilden und dann die übrigen in der Binärdarstellung von enthaltenen Zweierpotenzen durch Addition hinzufügen. Einige Beispiele von Werten dieser Funktionen sind in der Tabelle rechts aufgeführt, dazu die Anzahl kürzester Ketten für .
Für alle mit ist bekannt[6]:
- Ist , so ist .
- Ist , d. h. mit , so definieren wir und . Ist dann und gibt es eine kürzeste Additionskette für , in der vorkommt, so ergibt sich daraus eine Additionskette für der Länge . Das ist genau dann der Fall, wenn
- (Beispiel: , Kette 1, 2, 4, 5, 10, 20, 40, 45 der Länge 7) oder
- (Beispiel: , Kette 1, 2, 3, 5, 10, 20, 23 der Länge 6) oder
- (Beispiel: , Kette 1, 2, 3, 6, 9, 18, 36, 72, 144, 147 der Länge 9).
- Hat die Form , mithin , so ist 1, 2, …, 45, 90, 135, …, eine Kette der Länge .
- In allen anderen Fällen mit ist .
Weblinks
[Bearbeiten | Quelltext bearbeiten]- Shortest Addition Chains Ergebnisse und Literaturverweise zusammengestellt von Achim Flammenkamp
- Online-Encyclopedia of Integer Sequences, insbesondere Folgen A003313 und A079300
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Frage 49 und Antwort dazu in L'intermédiaire des mathématiciens, Band 1 (1894), S. 20 und 162–164; Digitalisat online bei der SUB Göttingen
- ↑ Arnold Scholz: (Aufgabe 253). In: Jahresbericht der Deutschen Mathematiker-Vereinigung. Band 47, 1937, ISSN 0012-0456, S. 41–42 (digizeitschriften.de [PDF]).
- ↑ Alfred Brauer: On Addition Chains. In: Bulletin of the American Mathematical Society. Band 45, 1939, ISSN 0273-0979, S. 736–739 (englisch, ams.org [PDF]).
- ↑ Donald E. Knuth: Arithmetik. Springer, Berlin, Heidelberg u. a. 2001, ISBN 3-540-66745-8, S. 298 (englisch: The Art of Computer Programming. Übersetzt von R. Loos).
Komplettes Zitat: „Wir können ohne Beschränkung der Allgemeinheit annehmen, dass eine Additionskette aufsteigend ist, . Denn wenn irgend zwei gleich sind, kann eines von ihnen weggelassen werden; und wir können auch die Folge (1) in aufsteigender Ordnung neu arrangieren und Terme wegnehmen, ohne die Additionsketteneigenschaft (2) zu zerstören. Von jetzt an werden wir nur aufsteigende Ketten betrachten, ohne diese Annahme explizit zu erwähnen.“ - ↑ Folge A008933 in OEIS
- ↑ Donald E. Knuth: The Art of Computer Programming, Vol. 2, Seminumerical Algorithms, 2nd Ed. 1981, Addison-Wesley, ISBN 0-201-03822-6, Theorem C, S. 449