Additionskette
# Additionskette

Eine Additionskette für eine positive ganze Zahl $n$ ist eine endliche Folge positiver ganzer Zahlen, die mit 1 beginnt und mit $n$ 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 $r$ die Länge der Additionskette $(a_{i})_{i=0,\cdots ,r}$ für $n$, so ist $a_{0}=1,a_{1}=2,\cdots ,a_{r}=n$. Die minimale Länge aller Additionsketten für $n$ wird mit $l(n)$ 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.

$l(9)=4$, 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

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 $r$ für eine positive ganze Zahl $n$, so lässt sich zu einer Zahl $a$ die Potenz $a^{n}$ durch $r$ Multiplikationen berechnen. Sind nämlich für ein Glied $x$ der Additionskette, das Summe vorangegangener Glieder $y$ und $z$ ist, $a^{y}$ und $a^{z}$ schon berechnet worden, so ergibt sich $a^{x}$ daraus mit nur einer Multiplikation $a^{x}=a^{y+z}=a^{y}\cdot a^{z}$. Macht man das nacheinander für alle Glieder der Additionskette, so hat man mit $r$ Multiplikationen den Wert von $a^{n}$ erhalten. Dabei kann es sich bei der Basis $a$ 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 $n$ 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.

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 gehört 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

### Varianten der Definition

Die eingangs angegebene Definition einer Additionskette ist die ursprüngliche 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 $A$ positiver ganzer Zahlen die Menge der Kettenglieder einer Additionskette (also die Bildmenge der Folge) ist, gilt $1\in A$ und $A\setminus \{1\}\subset \{x+y:x,y\in A\}$. Dann aber ist insbesondere die eindeutig bestimmte streng monoton steigende, ab 0 indizierte Folge der Elemente von $A$ eine Additionskette für $n=\max A$. Es kann weitere Additionsketten für dieses $n$ geben, die aus derselben Menge von Gliedern in anderer Reihenfolge bestehen; diese lassen sich aber leicht aus $A$ konstruieren. Oft werden deshalb nur die streng monoton steigenden Additionsketten genauer untersucht, z. B. bei Knuth: „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

| 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 | 1, 2 | 1, 2, 3 | 1, 2, 3, 5 | …, 6 | 7 | 8 | 10 | …, 10 , 15 | …, 6, 11 | 8, 11 | 10, 11 |
| 1 | 1, 2 | 1, 2, 3 | 1, 2, 3, 6 | …, 7 | 8 | 9 | 12 | …, 9, 15 | 12, 15 | …, 8, 11 | 9, 11 |
| 1 | 1, 2 | 1, 2, 4 | 1, 2, 4, 5 | …, 6 | 7 | 8 | 9 | 10 | …, 10, 15 | …, 6, 11 | 7, 11 | 9, 11 | 10, 11 |
| 1 | 1, 2 | 1, 2, 4 | 1, 2, 4, 6 | …, 7 | 8 | 10 | 12 | | …, 7, 11 | 10, 11 |
| 1 | 1, 2 | 1, 2, 4 | 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 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 $n$ nur die kürzesten Ketten für die Zahlen $<n$ heranzuziehen.

## Kürzeste Additionsketten

| $n$ | $\nu (n)$ | $l(n)$ | $g(n)$ | $b(n)$ | $\Lambda (n)$ |
| - | - | - | - | - | - |
| 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 $n$ im Wesentlichen $\log _{2}(n)+{\frac {\log _{2}(n)}{\log _{2}(\log _{2}(n))}}$ ist.

Eine vermutete und bisher bis $n=2^{64}$ bestätigte untere Schranke für $l(n)$ ist $g(n)=\lfloor \log _{2}(n)\rfloor +\lceil \log _{2}(\nu (n))\rceil$, wobei $\nu (n)$ die Anzahl der Einsen in der Binärdarstellung von $n$ ist. Das ist zugleich mindestens für kleine $n$ eine brauchbare Schätzung für $l(n)$: bis $n=3690$ ist $l(n)$ entweder $g(n)$ oder $g(n)+1$, und bis $n=2^{31}$ ist mit nur einer Ausnahme $0\leqq l(n)-g(n)\leqq 3$. Die Ausnahme ist $n=2135101487\approx 0.994\cdot 2^{31}$ mit $\nu (n)=16$, $g(n)=34$, $l(n)=38$.

Eine obere Schranke für $l(n)$ ist $b(n)=\lfloor \log _{2}(n)\rfloor +\nu (n)-1$, denn man kann zunächst die Kette aller Zweierpotenzen $\leqq n$ bilden und dann die übrigen $\nu (n)-1$ in der Binärdarstellung von $n$ enthaltenen Zweierpotenzen durch Addition hinzufügen. Einige Beispiele von Werten dieser Funktionen sind in der Tabelle rechts aufgeführt, dazu die Anzahl $\Lambda (n)$ kürzester Ketten für $n$.

Für alle $n$ mit $\nu (n)<5$ ist $l(n)$ bekannt:

* Ist $\nu (n)<4$, so ist $l(n)=b(n)=g(n)$.
* Ist $\nu (n)=4$, d. h. $n=2^{p}+2^{q}+2^{r}+2^{s}$ mit $p>q>r>s$, so definieren wir $c=2^{p-q}+1$ und $d=2^{r-s}+1$. Ist dann $c\geqq d$ und gibt es eine kürzeste Additionskette für $c$, in der $d$ vorkommt, so ergibt sich daraus eine Additionskette für $n$ der Länge $l(n)=p+2=g(n)=b(n)-1$. Das ist genau dann der Fall, wenn
   * $c=d$ (Beispiel: $n=45,c=d=5$, Kette 1, 2, 4, 5, 10, 20, 40, 45 der Länge 7) oder
   * $c=2d-1$ (Beispiel: $n=23,c=5,d=3$, Kette 1, 2, 3, 5, 10, 20, 23 der Länge 6) oder
   * $c=9,d=3$ (Beispiel: $n=147$, Kette 1, 2, 3, 6, 9, 18, 36, 72, 144, 147 der Länge 9).
* Hat $n$ die Form $135\cdot 2^{k}$, mithin $\nu (n)=4$, so ist 1, 2, …, 45, 90, 135, …, ${\boldsymbol {n}}$ eine Kette der Länge $l(n)=k+9=g(n)=b(n)-1$.
* In allen anderen Fällen mit $\nu (n)=4$ ist $l(n)=b(n)=g(n)+1$.
