Additionskette

ein Begriff aus der Mathematik und der Informatik

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

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

Varianten der Definition

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
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
           
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  .
Bearbeiten

Einzelnachweise

Bearbeiten
  1. 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
  2. Arnold Scholz: (Aufgabe 253). In: Jahresbericht der Deutschen Mathematiker-Vereinigung. Band 47, 1937, ISSN 0012-0456, S. 41–42 (digizeitschriften.de [PDF]).
  3. 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]).
  4. 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.“
  5. Folge A008933 in OEIS
  6. 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