Zum Hauptinhalt springen
Dieses Projekt befindet sich in der Beta-Phase. Einen Fehler gefunden? GitHub Issue erstellen. Frage oder Idee? In Discussions fragen — wir freuen uns über dein Feedback!
Wie ist die Übersetzungsqualität auf dieser Seite?

Analyse

Wir analysieren nun Grovers Algorithmus, um zu verstehen, wie er funktioniert. Wir beginnen mit dem, was man als symbolische Analyse beschreiben könnte, bei der wir berechnen, wie die Grover-Operation GG auf bestimmte Zustände wirkt, und verbinden diese symbolische Analyse dann mit einem geometrischen Bild, das dabei hilft, die Funktionsweise des Algorithmus zu visualisieren.

Lösungen und Nicht-Lösungen​

Beginnen wir mit der Definition zweier Mengen von Zeichenketten.

A0={x∈Σn:f(x)=0}A1={x∈Σn:f(x)=1}\begin{aligned} A_0 &= \bigl\{ x\in\Sigma^n : f(x) = 0\bigr\} \\ A_1 &= \bigl\{ x\in\Sigma^n : f(x) = 1\bigr\} \end{aligned}

Die Menge A1A_1 enthält alle Lösungen unseres Suchproblems, während A0A_0 die Zeichenketten enthält, die keine Lösungen sind (die wir als Nicht-Lösungen bezeichnen, wenn es praktisch ist). Diese beiden Mengen erfüllen A0∩A1=∅A_0 \cap A_1 = \varnothing und A0∪A1=ΣnA_0 \cup A_1 = \Sigma^n, das heißt, dies ist eine Bipartition von Σn\Sigma^n.

Als Nächstes definieren wir zwei Einheitsvektoren, die gleichmäßige Überlagerungen über die Mengen der Lösungen und Nicht-Lösungen darstellen.

∣A0⟩=1∣A0∣∑x∈A0∣x⟩∣A1⟩=1∣A1∣∑x∈A1∣x⟩\begin{aligned} \vert A_0\rangle &= \frac{1}{\sqrt{\vert A_0\vert}} \sum_{x\in A_0} \vert x\rangle \\ \vert A_1\rangle &= \frac{1}{\sqrt{\vert A_1\vert}} \sum_{x\in A_1} \vert x\rangle \end{aligned}

Formal gesehen ist jeder dieser Vektoren nur definiert, wenn die entsprechende Menge nicht leer ist, aber im Folgenden konzentrieren wir uns auf den Fall, dass weder A0A_0 noch A1A_1 leer ist. Die Fälle A0=∅A_0 = \varnothing und A1=∅A_1 = \varnothing lassen sich leicht separat behandeln, was wir später tun werden.

Nebenbei sei bemerkt: Die hier verwendete Notation ist üblich – immer wenn wir eine endliche und nicht leere Menge SS haben, können wir ∣S⟩\vert S\rangle schreiben, um den Quantenzustandsvektor zu bezeichnen, der gleichmäßig über den Elementen von SS verteilt ist.

Definieren wir außerdem ∣u⟩\vert u \rangle als gleichmäßigen Quantenzustand über alle nn-Bit-Zeichenketten:

∣u⟩=1N∑x∈Σn∣x⟩.\vert u\rangle = \frac{1}{\sqrt{N}} \sum_{x\in\Sigma^n} \vert x\rangle.

Beachte, dass

∣u⟩=∣A0∣N∣A0⟩+∣A1∣N∣A1⟩.\vert u\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle.

Außerdem gilt ∣u⟩=H⊗n∣0n⟩\vert u\rangle = H^{\otimes n} \vert 0^n \rangle, sodass ∣u⟩\vert u\rangle den Zustand des Registers Q\mathsf{Q} nach der Initialisierung in Schritt 1 von Grovers Algorithmus darstellt.

Das impliziert, dass der Zustand von Q\mathsf{Q} unmittelbar vor den Iterationen von GG in Schritt 2 im zweidimensionalen Vektorraum liegt, der von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle aufgespannt wird, und dass die Koeffizienten dieser Vektoren reelle Zahlen sind. Wie wir sehen werden, werden diese Eigenschaften des Zustands – dass er eine reelle Linearkombination von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle ist – nach jeder Anzahl von Iterationen der Operation GG in Schritt 2 erhalten bleiben.

Eine Beobachtung zur Grover-Operation​

Wir wenden uns nun der Grover-Operation zu:

G=H⊗nZORH⊗nZf,G = H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} Z_f,

und beginnen mit einer interessanten Beobachtung dazu.

Stellen wir uns kurz vor, wir würden die Funktion ff durch die Komposition von ff mit der NOT-Funktion ersetzen – oder anders gesagt, durch die Funktion, die wir erhalten, wenn wir das Ausgabebit von ff invertieren. Wir nennen diese neue Funktion gg und können sie symbolisch auf einige alternative Weisen ausdrücken.

g(x)=¬f(x)=1⊕f(x)=1−f(x)={1f(x)=00f(x)=1g(x) = \neg f(x) = 1 \oplus f(x) = 1 - f(x) = \begin{cases} 1 & f(x) = 0\\[1mm] 0 & f(x) = 1 \end{cases}

Beachte, dass

(−1)g(x)=(−1)1⊕f(x)=−(−1)f(x)(-1)^{g(x)} = (-1)^{1 \oplus f(x)} = - (-1)^{f(x)}

für jede Zeichenkette x∈Σnx\in\Sigma^n gilt und daher

Zg=−Zf.Z_g = - Z_f.

Das bedeutet, wenn wir die Funktion ff durch die Funktion gg ersetzen würden, würde Grovers Algorithmus nicht anders funktionieren – denn die Zustände, die wir aus dem Algorithmus in den beiden Fällen erhalten, sind notwendigerweise äquivalent bis auf eine globale Phase.

Das ist kein Problem! Intuitiv gesprochen ist es dem Algorithmus egal, welche Zeichenketten Lösungen sind und welche nicht – er muss nur in der Lage sein, Lösungen von Nicht-Lösungen zu unterscheiden, um korrekt zu funktionieren.

Wirkung der Grover-Operation​

Betrachten wir nun die Wirkung von GG auf die Quantenzustandsvektoren ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle.

Zunächst stellen wir fest, dass die Operation ZfZ_f eine sehr einfache Wirkung auf ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle hat.

Zf∣A0⟩=∣A0⟩Zf∣A1⟩=−∣A1⟩\begin{aligned} Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm] Z_f \vert A_1\rangle & = -\vert A_1\rangle \end{aligned}

Zweitens haben wir die Operation H⊗nZORH⊗nH^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}. Die Operation ZORZ_{\mathrm{OR}} ist definiert als

ZOR∣x⟩={∣x⟩x=0n−∣x⟩x≠0n,Z_{\mathrm{OR}} \vert x\rangle = \begin{cases} \vert x\rangle & x = 0^n \\[2mm] -\vert x\rangle & x \neq 0^n, \end{cases}

wiederum für jede Zeichenkette x∈Σnx\in\Sigma^n, und eine praktische alternative Ausdrucksweise dieser Operation ist:

ZOR=2∣0n⟩⟨0n∣−I.Z_{\mathrm{OR}} = 2 \vert 0^n \rangle \langle 0^n \vert - \mathbb{I}.

Eine einfache Möglichkeit, zu überprüfen, dass dieser Ausdruck mit der Definition von ZORZ_{\mathrm{OR}} übereinstimmt, besteht darin, seine Wirkung auf Standard-Basiszustände zu evaluieren.

Die Operation H⊗nZORH⊗nH^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} kann daher wie folgt geschrieben werden:

H⊗nZORH⊗n=2H⊗n∣0n⟩⟨0n∣H⊗n−I=2∣u⟩⟨u∣−I,H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 H^{\otimes n} \vert 0^n \rangle \langle 0^n \vert H^{\otimes n} - \mathbb{I} = 2 \vert u \rangle \langle u \vert - \mathbb{I},

wobei wir dieselbe Notation ∣u⟩\vert u \rangle wie oben für die gleichmäßige Überlagerung über alle nn-Bit-Zeichenketten verwenden.

Und nun haben wir, was wir brauchen, um die Wirkung von GG auf ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle zu berechnen. Zuerst berechnen wir die Wirkung von GG auf ∣A0⟩\vert A_0\rangle.

G∣A0⟩=(2∣u⟩⟨u∣−I)Zf∣A0⟩=(2∣u⟩⟨u∣−I)∣A0⟩=2∣A0∣N∣u⟩−∣A0⟩=2∣A0∣N(∣A0∣N∣A0⟩+∣A1∣N∣A1⟩)−∣A0⟩=(2∣A0∣N−1)∣A0⟩+2∣A0∣⋅∣A1∣N∣A1⟩=∣A0∣−∣A1∣N∣A0⟩+2∣A0∣⋅∣A1∣N∣A1⟩\begin{aligned} G \vert A_0 \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) Z_f \vert A_0\rangle \\ & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I}\bigr) \vert A_0\rangle \\ & = 2 \sqrt{\frac{\vert A_0\vert}{N}} \vert u\rangle -\vert A_0 \rangle\\ & = 2 \sqrt{\frac{\vert A_0\vert}{N}} \biggl( \sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr) -\vert A_0 \rangle \\ & = \biggl( \frac{2\vert A_0\vert}{N} - 1\biggr) \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle \\ & = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle \end{aligned}

Und zweitens berechnen wir die Wirkung von GG auf ∣A1⟩\vert A_1\rangle.

G∣A1⟩=(2∣u⟩⟨u∣−I)Zf∣A1⟩=−(2∣u⟩⟨u∣−I)∣A1⟩=−2∣A1∣N∣u⟩+∣A1⟩=−2∣A1∣N(∣A0∣N∣A0⟩+∣A1∣N∣A1⟩)+∣A1⟩=−2∣A1∣⋅∣A0∣N∣A0⟩+(1−2∣A1∣N)∣A1⟩=−2∣A1∣⋅∣A0∣N∣A0⟩+∣A0∣−∣A1∣N∣A1⟩\begin{aligned} G \vert A_1 \rangle & = \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) Z_f \vert A_1\rangle \\ & = - \bigl( 2 \vert u\rangle \langle u \vert - \mathbb{I} \bigr) \vert A_1\rangle \\ & = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \vert u\rangle + \vert A_1 \rangle \\ & = - 2 \sqrt{\frac{\vert A_1\vert}{N}} \biggl(\sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle\biggr) + \vert A_1 \rangle \\ & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \biggl( 1 - \frac{2\vert A_1\vert}{N} \biggr) \vert A_1 \rangle \\ & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle \end{aligned}

In beiden Fällen verwenden wir die Gleichung

∣u⟩=∣A0∣N∣A0⟩+∣A1∣N∣A1⟩\vert u\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1 \vert}{N}} \vert A_1\rangle

zusammen mit den daraus folgenden Ausdrücken

⟨u∣A0⟩=∣A0∣Nand⟨u∣A1⟩=∣A1∣N\langle u \vert A_0\rangle = \sqrt{\frac{\vert A_0 \vert}{N}} \qquad\text{and}\qquad \langle u \vert A_1\rangle = \sqrt{\frac{\vert A_1 \vert}{N}}

die sich daraus ergeben.

Zusammenfassend erhalten wir

G∣A0⟩=∣A0∣−∣A1∣N∣A0⟩+2∣A0∣⋅∣A1∣N∣A1⟩G∣A1⟩=−2∣A1∣⋅∣A0∣N∣A0⟩+∣A0∣−∣A1∣N∣A1⟩.\begin{aligned} G \vert A_0 \rangle & = \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_0 \rangle + \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} \vert A_1 \rangle\\[2mm] G \vert A_1 \rangle & = - \frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \vert A_0 \rangle + \frac{\vert A_0\vert - \vert A_1\vert}{N} \vert A_1 \rangle. \end{aligned}

Wie bereits erwähnt, liegt der Zustand von Q\mathsf{Q} unmittelbar vor Schritt 2 im zweidimensionalen Raum, der von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle aufgespannt wird, und wir haben gerade gezeigt, dass GG jeden Vektor in diesem Raum auf einen anderen Vektor im selben Raum abbildet. Das bedeutet, dass wir uns für die Analyse ausschließlich auf diesen Unterraum konzentrieren können.

Um besser zu verstehen, was in diesem zweidimensionalen Raum passiert, wollen wir die Wirkung von GG auf diesen Raum als Matrix ausdrücken,

M=(∣A0∣−∣A1∣N−2∣A1∣⋅∣A0∣N2∣A0∣⋅∣A1∣N∣A0∣−∣A1∣N),M = \begin{pmatrix} \frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm] \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N} \end{pmatrix},

deren erste und zweite Zeile/Spalte jeweils ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle entsprechen. Bisher haben wir in dieser Reihe die Zeilen und Spalten von Matrizen stets mit den klassischen Zuständen eines Systems verknüpft, aber Matrizen können auch verwendet werden, um die Wirkung linearer Abbildungen auf unterschiedlichen Basen zu beschreiben, wie wir es hier tun.

Obwohl es auf den ersten Blick überhaupt nicht offensichtlich ist, erhalten wir die Matrix MM, indem wir eine einfacher aussehende Matrix quadrieren.

(∣A0∣N−∣A1∣N∣A1∣N∣A0∣N)2=(∣A0∣−∣A1∣N−2∣A1∣⋅∣A0∣N2∣A0∣⋅∣A1∣N∣A0∣−∣A1∣N)=M\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix}^2 = \begin{pmatrix} \frac{\vert A_0\vert - \vert A_1\vert}{N} & -\frac{2 \sqrt{\vert A_1\vert \cdot \vert A_0\vert}}{N} \\[2mm] \frac{2 \sqrt{\vert A_0\vert \cdot \vert A_1\vert}}{N} & \frac{\vert A_0\vert - \vert A_1\vert}{N} \end{pmatrix} = M

Die Matrix

(∣A0∣N−∣A1∣N∣A1∣N∣A0∣N)\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix}

ist eine Rotationsmatrix, die wir alternativ ausdrücken können als

(∣A0∣N−∣A1∣N∣A1∣N∣A0∣N)=(cos⁡(θ)−sin⁡(θ)sin⁡(θ)cos⁡(θ))\begin{pmatrix} \sqrt{\frac{\vert A_0\vert}{N}} & - \sqrt{\frac{\vert A_1\vert}{N}} \\[2mm] \sqrt{\frac{\vert A_1\vert}{N}} & \sqrt{\frac{\vert A_0\vert}{N}} \end{pmatrix} = \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\[2mm] \sin(\theta) & \cos(\theta) \end{pmatrix}

für

θ=sin⁡−1(∣A1∣N).\theta = \sin^{-1}\biggl(\sqrt{\frac{\vert A_1\vert}{N}}\biggr).

Dieser Winkel θ\theta wird in der folgenden Analyse eine sehr wichtige Rolle spielen, deshalb lohnt es sich, seine Bedeutung zu betonen, wenn wir ihn hier zum ersten Mal sehen.

Angesichts dieses Ausdrucks beobachten wir, dass

M=(cos⁡(θ)−sin⁡(θ)sin⁡(θ)cos⁡(θ))2=(cos⁡(2θ)−sin⁡(2θ)sin⁡(2θ)cos⁡(2θ)).M = \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\[2mm] \sin(\theta) & \cos(\theta) \end{pmatrix}^2 = \begin{pmatrix} \cos(2\theta) & -\sin(2\theta) \\[2mm] \sin(2\theta) & \cos(2\theta) \end{pmatrix}.

Das liegt daran, dass eine zweimalige Rotation um den Winkel θ\theta einer Rotation um den Winkel 2θ2\theta entspricht. Eine weitere Möglichkeit, das einzusehen, ist die Verwendung des alternativen Ausdrucks

θ=cos⁡−1(∣A0∣N),\theta = \cos^{-1}\biggl(\sqrt{\frac{\vert A_0\vert}{N}}\biggr),

zusammen mit den Doppelwinkelformeln der Trigonometrie:

cos⁡(2θ)=cos⁡2(θ)−sin⁡2(θ)sin⁡(2θ)=2sin⁡(θ)cos⁡(θ).\begin{aligned} \cos(2\theta) & = \cos^2(\theta) - \sin^2(\theta)\\[1mm] \sin(2\theta) & = 2 \sin(\theta)\cos(\theta). \end{aligned}

Zusammenfassend ist der Zustand des Registers Q\mathsf{Q} zu Beginn von Schritt 2

∣u⟩=∣A0∣N∣A0⟩+∣A1∣N∣A1⟩=cos⁡(θ)∣A0⟩+sin⁡(θ)∣A1⟩,\vert u\rangle = \sqrt{\frac{\vert A_0\vert}{N}} \vert A_0\rangle + \sqrt{\frac{\vert A_1\vert}{N}} \vert A_1\rangle = \cos(\theta) \vert A_0\rangle + \sin(\theta) \vert A_1\rangle,

und der Effekt, GG auf diesen Zustand anzuwenden, besteht darin, ihn um einen Winkel 2θ2\theta im von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle aufgespannten Raum zu rotieren. So haben wir zum Beispiel

G∣u⟩=cos⁡(3θ)∣A0⟩+sin⁡(3θ)∣A1⟩G2∣u⟩=cos⁡(5θ)∣A0⟩+sin⁡(5θ)∣A1⟩G3∣u⟩=cos⁡(7θ)∣A0⟩+sin⁡(7θ)∣A1⟩\begin{aligned} G \vert u \rangle &= \cos(3\theta) \vert A_0\rangle + \sin(3\theta) \vert A_1\rangle\\[1mm] G^2 \vert u \rangle &= \cos(5\theta) \vert A_0\rangle + \sin(5\theta) \vert A_1\rangle\\[1mm] G^3 \vert u \rangle &= \cos(7\theta) \vert A_0\rangle + \sin(7\theta) \vert A_1\rangle \end{aligned}

und allgemein

Gt∣u⟩=cos⁡((2t+1)θ)∣A0⟩+sin⁡((2t+1)θ)∣A1⟩.G^t \vert u \rangle = \cos\bigl((2t + 1)\theta\bigr) \vert A_0\rangle + \sin\bigl((2t + 1)\theta\bigr) \vert A_1\rangle.

Geometrisches Bild​

Verbinden wir nun die gerade durchgeführte Analyse mit einem geometrischen Bild. Die Idee ist, dass die Operation GG das Produkt zweier Spiegelungen ist: ZfZ_f und H⊗nZORH⊗nH^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}. Und der Nettoeffekt von zwei Spiegelungen ist eine Rotation.

Beginnen wir mit ZfZ_f. Wie wir bereits zuvor beobachtet haben, gilt

Zf∣A0⟩=∣A0⟩Zf∣A1⟩=−∣A1⟩.\begin{aligned} Z_f \vert A_0\rangle & = \vert A_0\rangle \\[1mm] Z_f \vert A_1\rangle & = -\vert A_1\rangle. \end{aligned}

Im zweidimensionalen Vektorraum, der von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle aufgespannt wird, ist das eine Spiegelung an der Geraden parallel zu ∣A0⟩\vert A_0\rangle, die wir L1L_1 nennen werden. Hier ist eine Abbildung, die die Wirkung dieser Spiegelung auf einen hypothetischen Einheitsvektor ∣ψ⟩\vert\psi\rangle illustriert, der als reelle Linearkombination von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle angenommen wird.

Eine Abbildung, die die Wirkung einer Spiegelung auf einen Vektor zeigt.

Zweitens haben wir die Operation H⊗nZORH⊗nH^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n}, die sich, wie wir bereits gesehen haben, schreiben lässt als

H⊗nZORH⊗n=2∣u⟩⟨u∣−I.H^{\otimes n} Z_{\mathrm{OR}} H^{\otimes n} = 2 \vert u \rangle \langle u \vert - \mathbb{I}.

Auch das ist eine Spiegelung, diesmal an der Geraden L2L_2 parallel zum Vektor ∣u⟩\vert u\rangle. Hier ist eine Abbildung, die die Wirkung dieser Spiegelung auf einen Einheitsvektor ∣ψ⟩\vert\psi\rangle zeigt.

Eine Abbildung, die die Wirkung einer zweiten Spiegelung auf einen Vektor zeigt.

Wenn wir diese beiden Spiegelungen zusammensetzen, erhalten wir eine Rotation — um den doppelten Winkel zwischen den Spiegelungslinien —, wie diese Abbildung zeigt.

Eine Abbildung, die die Wirkung der Grover-Operation auf einen Vektor zeigt.

Das erklärt in geometrischen Begriffen, warum der Effekt der Grover-Operation darin besteht, Linearkombinationen von ∣A0⟩\vert A_0\rangle und ∣A1⟩\vert A_1\rangle um einen Winkel 2θ2\theta zu drehen.