Ergänzungen, Hinweise, Informationen zur Vorlesung Quantum

Werbung
Ergänzungen, Hinweise, Informationen zur Vorlesung
Quantum Computing
im Sommersemester 2016
Inhaltsverzeichnis
1 Hinweise zur Literatur
1
2 Komplexe Zahlen – Kurzeinführung
2
3 Der Sinn des Komplexitätsbegriffs
5
4 Lösungshinweise zu den Aufgaben 1, 3 und 4
8
5 Lösungshinweise zu den Aufgaben 5 - 10
11
4. März 2016
1
Hinweise zur Literatur
Die folgenden Bücher, Artikel und Tutorien sind recht verschiedenartig vom Stil, Niveau und der
Zielgruppe der Leser her.
Erläuterungen werden in der Vorlesung gegeben.
• Nielsen / Chuang [1]
• Kaye et al. [7]
• Mermin [2]
• Vedral [8]
• Hirvensalo [3]
• Kitaev et al. [9]
• Homeister [4]
• Audretsch [10, 11]
• Sturm, Schulze [5]
• Tutorien Oxford / Cambridge [12]
• Stolze, Suter [6]
• Arrojo Camejo [13]
Literatur
[1] Michael A. Nielsen and Isaac L Chuang. Quantum Computation and Quantum Information.
Cambridge University Press, Cambridge, 2000.
[2] N. David Mermin. Quantum Computer Science. An Introduction. Cambridge University Press,
Cambridge, UK, 2007.
[3] Mika Hirvensalo. Quantum Computing. Springer-Verlag, Berlin, Heidelberg, 2001.
[4] Matthias Homeister. Quantum Computing verstehen. Grundlagen, Anwendungen, Perspektiven.
Vieweg, 2005.
[5] Thomas F. Sturm and Jörg Schulze. Quantum Computation aus algorithmischer Sicht. Oldenbourg, München, Germany, 2009.
[6] Joachim Stolze and Dieter Suter. Quantum Computing. A Short Course from Theory to Experiment. Wiley VCH, Weinheim, 2004.
[7] Phillip Kaye, Raymond Laflamme, and Michele Mosca. An Introduction to Quantum Computing. Oxford, UK, 2007.
[8] Vlatko Vedral. Introduction to Quantum Information Science. Oxford, UK, 2006.
[9] A. Yu. Kitaev, A. H. Shen, and M. N. Vyalyi. Classical and Quantum Computation. American
Mathematical Society, USA, 2002.
[10] Jürgen Audretsch, editor. Quantenrechner – die neue Generation von Supercomputern? WileyVCH, 2002.
[11] Jürgen Audretsch. Verschränkte Systeme. Die Quantenphysik auf neuen Wegen. Wiley-VCH,
2005.
[12] Centre for Quantum Computation. Available at http://www.qubit.org/index.html.
[13] Silvia Arrojo Camejo. Skurrile Quantenwelt. Springer, 2006.
1
4. März 2016
2
Komplexe Zahlen – Kurzeinführung
Empfehlung: Es lohnt sich, hierzu die ersten Seiten in Wikipedia durchzulesen. Der gesamte Text
geht allerdings zum Teil erheblich über das hinaus, was wir brauchen.
Der folgende Text ist gedacht als lose Zusammenstellung einiger Fakten über komplexe Zahlen, nicht
als systematischer Aufbau dieses Zahlenkörpers.
• Erweiterung von Zahlensystemen:
natürliche Zahlen ⊂ ganze Zahlen ⊂ rationale Zahlen ⊂ reelle Zahlen ⊂ komplexe Zahlen
geschrieben mit Standardsymbolen (anstelle N häufig auch N0 ):
N⊂Z⊂Q⊂R⊂C
z.B. (0, )1, 2, 3, . . .
0, ±1, ±2, ±3, . . .
4 2
, ,...
2 3
√
1, 2, −3, 1.2345, 2, π, e, . . .
• Allgemeine Grundidee: gewisse Gleichungen sind in einem der Bereiche nicht lösbar, z.B.:
x2 = 2 für x ∈ Q ist nicht lösbar,
deshalb Erweiterung von Q zu R.
analog:
x2 = −1 für x ∈ R ist nicht lösbar,
deshalb Erweiterung von R zu C.
• Es reicht, eine einzige neue Zahl einzuführen: i mit i2 = −1 (sog. imaginäre Einheit)
und zusätzlich einige naheliegende Regeln.
• Jede komplexe Zahlen kann in der Form z = x + iy mit x, y reell geschrieben werden.
• Komplexe Zahlen kann man als Vektoren auffassen:
Man identifiziere x + iy mit (x, y), also insbesondere 1 mit (1, 0) und i mit (0, 1).
Das Pluszeichen in x + iy = x · 1 + y · i ist dann die normale Vektoraddition.
Außerdem gilt: die komplexe Zahl (x, 0) mit x ∈ R kann man mit der reellen Zahl x identifizieren. In diesem Sinne sind die reellen Zahlen spezielle komplexe Zahlen, nämlich genau die
mit Imaginärteil = 0
In der Mathematik werden komplexe Zahlen häufig genau so herum eingeführt, nämlich als
Paare (x, y) reeller Zahlen. Die Schreibweise x + iy ist dann nur eine praktische Bezeichnung
für das Paar (x, y).
• graphische Darstellung und Veranschaulichung: Gaußsche Zahlenebene
• Im Folgenden gelte z = x + iy und w = u + iv mit x, y, u, v ∈ R.
2
• Real- und Imaginärteil zu gegebenem z ∈ C:
x = <z,
y = =z
oder auch “Re” und “Im”
• Bildung des Negativen:
−z = −(x + iy) = −x − iy
• Addition
z + w = (x + iy) + (u + iv) = x + u + i(y + v)
• Subtraktion, zurückgeführt auf Addition:
z − w := z + (−w) = x + iy − (u + iv) = x − u + i(y − v)
• Multiplikation
zw = (x + iy)(u + iv) = xu + i2 yv + iyu + ixv = xu − yv + i(yu + xv)
• konjugiert komplexer Wert
z = z ∗ = x − iy
• Betrag einer komplexen Zahl
p
p
p
√
|z| = zz = (x − iy)(x + iy) = x2 − i2 y 2 = x2 + y 2
• reziproker Wert einer komplexen Zahl
w−1 =
1
w
w
u
v
=
=
== 2
−i 2
w
ww
|w|2
u + v2
u + v2
• Division
z
1
= z
w
w
• Funktionen im Komplexen:
ez = ex+iy = ex eiy = ex (cos y + i sin y)
sin z =
1 iz
(e − e−iz )
2i
1
cos z = (eiz + e−iz )
2
• wichtig: Einheitskreis:
eiϕ = cos ϕ + i sin ϕ mit 0 ≤ ϕ < 2π
Es gilt |eiϕ | = 1 wegen sin2 ϕ + cos2 ϕ = 1.
3
• Werte, die man wissen sollte:
π
ei 2 = i
eiπ = −1
• alternative Darstellung komplexer Zahlen ( Exponentialform“):
”
z = |z|eiϕ
|z| = Modul, ϕ = Argument
4
4. März 2016
3
Der Sinn des Komplexitätsbegriffs
(aus Vorlesungsskript zur Algorithmik I)
In der Informatik werden meistens zwei Anforderungen an Algorithmen gestellt. Sie sollen erstens
die gewünschte Wirkung haben, also effektiv sein. Damit ist gemeint, dass sie bei Einhaltung von
Vorbedingungen eine Spezifikation korrekt erfüllen. So soll z. B. ein Sortieralgorithmus ein Array mit
gegebener Wertebelegung in einen neuen Zustand überführen, in dem das Array sortiert ist. Oder
ein Suchalgorithmus wie zum Beispiel das binäre Suchen soll in einem Array ein Element entweder
finden, falls es vorhanden ist oder sonst anzeigen, dass es nicht vorhanden ist. Vorbedingung für
das korrekte Arbeiten ist in diesem Fall, dass das Array sortiert ist. Algorithmen sollen zweitens
aber auch möglichst kleine Anforderungen an Ressourcen stellen, also effizient sein. Das bedeutet
insbesondere, dass sie schnell sind und wenig Speicherplatzanforderungen stellen.
In diesem Abschnitt wird der Begriff der Effizienz vertieft behandelt: es wird insbesondere diskutiert, wie sich die qualitative Formulierung geringer Ressourcenbedarf quantifizieren läßt. Die
Erläuterungen halten sich an das Beispiel Laufzeitverhalten, also der sog. Laufzeitkomplexität.
Der nächstliegende Ansatz besteht offensichtlich darin, Laufzeiten einfach in Abhängigkeit von der
Problemgröße zu messen und dann in Form einer Tabelle oder auch in Funktionsform die entsprechende Abhängigkeit anzugeben. Diese Methode ist durchaus sinnvoll, wenn man für einen bestimmten Rechner unter gegebenen Betriebsbedingungen wissen will, welches denn die Zeitanforderungen
eines Algorithmus sind. Es gibt allerdings mindestens zwei gravierende Nachteile. Erstens erhält man
auf diese Weise nicht wirklich eine Aussage über den verwendeten Algorithmus selbst, sondern vielmehr nur eine Information über die Kombination aus Algorithmus, genauer, dessen Implementierung,
und der zugrundeliegenden Hardware, wobei möglicherweise auch noch der spezielle Betriebszustand
der Rechenanlage eingeht. Zweitens weiß man bei diesem Ansatz nach wie vor nichts über das Zeitverhalten des Algorithmus für Werte außerhalb des Meßbereiches. Eine brauchbare Extrapolation
ist bei weitem nicht offensichtlich, denn die vielleicht naheliegende Faustregel aus der Technik, dass
doppelte Anforderungen größenordnungsmäßig auch einen doppelten Ressourcenbedarf nach sich
ziehen, gilt für Algorithmen i. a. in keiner Weise.
Daher ist dieser Ansatz jedenfalls dann nicht sinnvoll, wenn man wirklich Aussagen haben will über
den Algorithmus selbst. Man abstrahiert in diesem Fall von der Hardware in der Weise, dass man
Programmschritte zählt, wobei Schritte verschiedener Arten wie etwa Vergleiche und Bewegungen,
also Kopiervorgänge, durchaus verschieden gewichtet werden können. Häufig werden diese Gewichtsfaktoren aber einheitlich auf 1 gesetzt. Implizit hat man daher ein Modell eines abstrakten Rechners
zugrunde gelegt, der ein in einer Hochsprache formuliertes Programm direkt interpretiert, für den
die Hochsprache sozusagen als Assembler aufzufassen ist. Dieser Ansatz wird so von Niklaus Wirth
in seinem Buch über Algorithmen und Datenstrukturen zugrundegelegt.
Einfache Algorithmen kann man auf diese Weise sehr gut und vollständig analysieren. Z. B. ergibt
sich für BubbleSort die folgende Tabelle: (aus Wirth-Buch über Algorithmen und Datenstrukturen)
Anzahl Vergleiche
Anzahl Bewegungen
Minimum
n(n − 1)
2
0
Mittel
n(n − 1)
2
3n(n − 1)
4
Maximum
n(n − 1)
2
3n(n − 1)
2
Diese Aussagen sind leicht zu begründen: die Gleichheit der Formeln in der ersten Zeile ergibt
sich einfach daraus, dass die Anzahl der Vergleiche bei BubbleSort unabhängig ist von der konkret
5
vorliegenden Arraybelegung. Die konkrete Form folgt dann daraus, dass beim ersten Durchlauf n − 1
Vergleiche gemacht werden, beim zweiten nur noch n − 2 usw. bis 1. Daher gilt also
(n − 1) + (n − 2) + · · · + 1 =
n(n − 1)
2
Dass die Anzahl der Bewegungen im Mittel gerade die Hälfte der Anzahl im ungünstigsten Fall
ist, bei dem mit jedem Vergleich ein Austausch und damit 3 Bewegungen erforderlich sind, mag
plausibel erschienen. Man sollte aber nicht vergessen, dass hier bereits ein einfaches stochastisches
Modell eingeführt wird, dem die (implizite) Annahme zugrunde liegt, dass jede Permutation der n!
möglichen Arraybelegungen gleichwahrscheinlich ist. Wenn diese Annahme nicht zutrifft, wie das
praktisch häufig der Fall sein wird, dann stimmt auch diese mittlere Formel nicht.
Meistens interessieren diese Formeln nur für größere Werte von n: dann kann man natürlich den
2
exakten Ausdruck n(n−1)
ersetzen durch n2 . Wenn man darüberhinaus auch nur an Verhältnissen
2
der Laufzeiten zwischen zwei n-Werten interessiert ist, dann kann die obige Aussage darauf reduziert
werden, dass die Laufzeit proportional zu n2 ist.
Es ist vielleicht nahe liegend, ähnliche Überlegungen für andere Algorithmen anzustellen: man sucht
einfach Näherungsformeln für die Laufzeiten in Abhängigkeit von der Problemgröße. Die konkreten
Formeln sind dann vielleicht komplizierter, aber im Prinzip sollte sich das Verfahren allgemein
anwenden lassen. Für viele Algorithmen ist das auch so möglich wie z. B. für Quicksort.
Leider ist die Realität wesentlich komplizierter. Die (Zeit-) Komplexität von Algorithmen ist ja
eine Aussage über diskrete Systeme. Und denen fehlt in der Regel eine Eigenschaft, die technische
Systeme sonst meistens haben, nämlich eine Art stetiges Verhalten zu zeigen. Eine Brücke z.B., die
ein Gewicht von 1000 Tonnen tragen kann, wird auch ein weiteres Kilogramm aushalten und erst
recht ein Kilogramm weniger. Systeme der Informatik sind in dieser Hinsicht fundamental anders. So
muß man z. B. bei der Zeitkomplexität von Algorithmen damit rechnen, dass das Laufzeitverhalten
für eine Problemgröße, die eine 2er-Potenz ist, ganz anders ist, als etwa für einen Wert unmittelbar
darunter. Z. B. MergeSort zeigt ein solch irreguläres Verhalten. Für 2er-Potenzen gibt es zwar eine
einfache Formel für die Laufzeit; die sonstige Kurve hat aber eine Art fraktale Struktur. Nun läßt
sich in diesem Fall zwar trotzdem noch eine exakte Formel angeben, nicht aber ohne weiteres eine
vernünftige Näherung in irgend einem Sinne. Außerdem enthält eine solche exakte Formel viel zu
viel Information, an der man z. B. beim Vergleich von Algorithmen gar nicht interessiert ist.
Das hat zu einem Ansatz geführt, der nochmal erheblich von solchen Details abstrahiert und der –
in voller Absicht – nur noch eine sehr abstrakte Vergleichbarkeit erlaubt.
Man sucht für das Laufzeitverhalten nur noch nach oberen und unteren Schranken und läßt dabei
Konstanten frei. Wenn also f (n) das Laufzeitverhalten eines Algorithmus als Funktion der Problemgröße n darstellt und wenn es möglich ist, f (n) für hinreichend große n durch die Funktion
M g(n) mit frei wählbarer Konstanten M zu beschränken, dann verwendet man die Schreibweise
f (n) = O(g(n)).
Die mathematisch präzise Formulierung lautet also: Für gegebene Funktionen f (n) und g(n) gilt
f (n) = O(g(n)) genau dann, wenn es zwei positive Konstanten n0 und M gibt, so dass f (n) ≤ M g(n)
gilt für n ≥ n0 (Positivität der Funktionen unterstellt).
Mathematisch handelt es sich ausdrücklich nicht um eine Gleichheitsrelation. Die gelegentlich auch
verwendete und präzisere Notation ist f ∈ O(g), die sich aber nicht allgemein durchgesetzt hat.
Damit hat man eine Schreibweise an der Hand, mit der man die Laufzeitkomplexität eines jeden
Algorithmus abschätzen kann, wenn auch um den Preis einer erheblichen Abstraktion. Insbesondere
konkrete Zahlenwerte für das Laufzeitverhalten lassen sich wegen der Freiheit in der Wahl der
Konstanten M nicht mehr verläßlich angeben. Aus Sicht der Informatik hat diese Notation zwei
Aspekte, sozusagen einen syntaktischen und einen pragmatischen. Der syntaktische Aspekt besteht
darin, dass man zunächst die formale Definition richtig erfüllt. Aus dieser Sicht gehört jede Funktion,
die z. B. der Klasse O(n2 ) angehört natürlich auch der Klasse O(n3 ) an. Offenbar ist das absolut
6
analog zu der Situation, dass jede Zahl x, die etwa x ≥ 5 erfüllt, natürlich auch x ≥ 0 erfüllt. Der
Übergang von der ersten zur zweiten Aussage bedeutet einen Informationsverlust.
Solche Abschätzungen sollten natürlich eine möglichst genaue Information liefern; daher ist die Frage
nahe liegend, ob man obere Schranken nicht in irgend einem Sinne optimieren kann. Wie also lautet
z. B. die optimale obere Schranke für die obige Funkton von BubbleSort? Nach kurzem Nachdenken
sieht man, dass die einzig richtige Antwort lautet: es ist die Funktion selbst mit den Konstanten
M = 1, n0 = 1. Offenbar ist die Frage so also noch falsch gestellt. Hier kommt nun der pragmatische
Aspekt zum Tragen: zumindestens in der Informatik beschränkt man sich auf eine Liste spezieller
Vergleichsfunktionen. Nur die sollen als obere Schranken Anwendung finden. Eine mögliche Liste ist
z. B. O(1), O(log n), O(n), O(n log n), O(n2 ), O(n3 ), O(2n ).
Mit dieser Selbstbeschränkung hat man zwei Probleme gleichzeitig gelöst: das gerade formulierte
Optimierungsproblem ist jetzt sinnvoll. Welches ist die beste“ Funktion aus der Liste, die eine
”
obere Schranke z.B. für BubbleSort darstellt? O(n log n) ist es nicht, was sich leicht nachrechnen
läßt; O(2n ) ist zwar eine obere Schranke, ebenso wie O(n3 ), aber O(n2 ) ist auch in dem obigen
Sinne eine obere Schranke und natürlich eine schärfere, also bessere. Für alle diejenigen, die eine
Formalisierung des Problems sehen möchten, lautet die Frage: welches ist der kleinste ganzzahlige
Wert k, so dass n(n−1)
= O(nk ) gilt. Die eindeutige Antwort lautet natürlich 2.
2
Der zweite Punkt ist, dass man nun auch außerordentlich verschiedene Algorithmen gut vergleichen
kann wie z.B. BubbleSort und MergeSort, bei denen die exakten Lösungen nicht entfernt irgendwelche Ähnlichkeiten haben. Tatsächlich ist die exakte Funktion bei MergeSort nur formulierbar mit
den ceil- und floor-Operationen.
Ebenso wie man obere Schranken einführt, kann man analog auch untere Schranken einführen und
dann auch nach der gleichzeitigen Existenz beider Schranken fragen. Wenn also eine Funktion f (n)
gleichzeitig von oben und von unten bis auf Konstanten durch eine Funktion g(n) beschränkt werden
kann, dann wird die Notation f (n) = Θ(g(n)) verwendet. Hier wird nochmal sehr deutlich, weshalb
man die freien Konstanten einführt: ein quadratischer Ausdruck wie bei BubbleSort kann natürlich
nicht gleichzeitig von oben und von unten etwa durch dieselbe Funktion n2 beschränkt werden. Wenn
man aber frei wählbare Konstanten zuläßt, dann gilt in diesem Fall n(n−1)
≤ 12 n2 für n ≥ 1 und
2
n(n−1)
gleichzeitig
≥ 14 n2 für n ≥ 2. Daher gehört BubbleSort also zur Komplexitätsklasse Θ(n2 ).
2
So wichtig diese Notationen auch sind, so vorsichtig sollte man im Umgang damit sein und sich
vor unzulässigen Schlußfolgerungen hüten. Z. B. können sich zwei O(n)- Algorithmen“ durchaus
”
extrem unterscheiden, weil die auftretenden Konstanten natürlich nicht unwichtig sind, oder gar
vernachlässigbar“. Ein Beispiel: Reisezeiten sind grob betrachtet – unabhängig vom Verkehrsmittel
”
– stets Funktionen der Klasse O(n), wenn n die Entfernung bedeutet (doppelte Entfernung bedeutet
doppelte Reisezeit). Die Schlußfolgerung, dass daher die Wahl des Algorithmus“, in diesem Fall also
”
des Verkehrsmittels, eigentlich egal ist, ist reichlich gewagt: man denke etwa an eine Urlaubsreise
nach Südafrika und die alternativen Verkehrmittel Flugzeug/Fahrrad.
7
12. März 2016
4
Lösungshinweise zu den Aufgaben 1, 3 und 4
Aufgabe 1
a) 5n2 − 6n = Θ(n2 ):
zu zeigen ist also: 5n2 − 6n ≤ M n2 und 5n2 − 6n ≥ N n2
5n2 − 6n ≤ 5n2 : M = 5, n ≥ 1
5n2 − 6n ≥ 4n2 , denn 5n2 − 6n = 4n2 + n(n − 6) ≥ 4n2 für n ≥ 6: N = 4
b) n! = O(nn ):
zu zeigen ist also: n! ≤ M nn
n! = 1 · 2 · · · · · n ≤ nn : M = 1, n ≥ 1
Pn 2
3
c)
i=1 i = Θ(n ):
P
P
zu zeigen ist also: ni=1 i2 ≤ M n3 und ni=1 i2 ≥ N n3
Pn 2
2
2
2
2
3
i=1 i = 1 + 2 + · · · + n ≤ n · n = n : M = 1, n ≥ 1
Abschätzung nach unten: entweder aus expliziter Formel:
n
X
i2 =
i=1
daraus: ≥
n(n + 1)(2n + 1)
6
n·n·2n
6
= n3 /3
oder durch Vergleich mit der Parabel y = x2 für 0 ≤ x ≤ n:
n
X
i=1
2
Z
n
2
Z
dx e dx >
i =
0
0
n
1
x2 dx = n3
3
Der zweite Weg ist elegant aber nicht ganz einfach zu finden, der erste mit der expliziten
Formel nicht besonders gut, da der Sinn des ganzen Formalismus mit O(), Ω() und Θ() ja
gerade darin liegt, nur sehr abstrahierte, grobe Aussagen zu bekommen unter Vermeidung
längerer Rechnungen und Anwendung fertiger geschlossener Formeln, die viel mehr liefern, als
man eigentlich wissen wollte.
Eine Alternative an dieser Stelle wäre auch ein Induktionsbeweis. Allerdings ist der Aufwand
dann auch kaum kleiner als beim Beweis der exakten Formel durch Induktion.
Der Induktionsbeweis im Detail:
1. Induktionsanfang: Die Formel
Pn
2
i=1 i
≥ n3 /3 ist offenbar richtig für n = 1.
2. Induktionsschluß n −→ n + 1:
8
Unter der Voraussetzung
Pn+1
i=1
i2 =
Pn
2
i=1 i
Pn
2
i=1 i
≥ n3 /3 ist also
Pn+1
i=1
i2 ≥ (n + 1)3 /3 zu zeigen.
+ (n + 1)2
≥ n3 /3 + (n + 1)2
= n3 /3 + n2 + 2n + 1
=
≥
1
3
3 (n
1
3
3 (n
+ 3n2 + 6n + 3)
+ 3n2 + 3n + 1)
= (n + 1)3 /3
d) zu zeigen: n2 log n 6= Θ(n2 ):
angenommen: n2 log n ≤ M n2 : dann folgt log n ≤ M für n ≥ n0 , d. h., der log ist eine
beschränkte Funktion: Widerspruch
e) f (n) = O(n) gilt genau dann, wenn f (n) = O(n + 1) (war mal eine Frage in der Vorlesung: die
Vermutung war, O(n) wäre vielleicht etwas Anderes (Besseres, Schlechteres?) als O(n + 1))
zu zeigen ist also: |f (n)| ≤ M n genau dann, wenn |f (n)| ≤ N (n + 1)
(1) ⇒: |f (n)| ≤ M n ≤ M (n + 1), also setze N = M
(2) ⇐: |f (n)| ≤ N (n + 1) ≤ 2N n für M = 2N , n ≥ 1
Aufgabe 3
Angenommen, es existieren Zahlen p, q ∈ N, die teilerfremd sind und
Dann folgt:
p2 = 2q 2 ⇒
⇒
⇒
⇒
⇒
⇒
⇒
p2 gerade
p gerade: p = 2m
p2 = 2q 2 = 4m2
q 2 = 2m2
q 2 gerade
q gerade
p gerade und q gerade:
Widerspruch.
Aufgabe 4
a) Drücken Sie sowohl D(α)D(β) möglichst einfach aus . . .
D(α)D(β) = D(α + β)
b) . . . als auch (D(α))n (mit n ≥ 1) und (D(α))−1 .
(D(α))n = D(nα)
(D(α))−1 = D(−α)
c) Was ist die anschauliche Bedeutung von D(α)?
Drehung im R2
9
√
2=
p
q
erfüllen.
Man erhält die Lösung natürlich direkt ohne Rechnung, wenn man die Bedeutung der Matrix als
Drehmatrix einsieht und der Anschauung vertraut. Formal ergibt sich das Ergebnis durch elementares Ausmultiplizieren der betreffenden Matrizen.
Eine Frage ist, ob man das Ergebnis nicht auch (fast) ohne Rechnung formal erhält, ohne sich auf
die Anschauung zu berufen. Eine Möglichkeit ist die folgende.
Man setze z = x + iy und w = u + iv. Wenn nun D(α) den Vektor (x, y) in (u, v) überführt, kann
man fragen, welche Operation dann z in w überführt. Eine kurze Rechnung zeigt, dass dieses gerade
die Multiplikation von z mit eiα ist, also
w = eiα z
Die Fragen in der Aufgabe sind damit reduziert auf elementare Operationen mit der e-Funktion.
10
4. April 2016
5
Lösungshinweise zu den Aufgaben 5 - 10
Aufgabe 5
→
A
√1 (|0i
2
K,L
→
√1 i(|0i
2
+ i|1i)
→
S
√1 i(|0i
2
+ i(α|1i + β|si)) =
B
√1 (i √1 (|0i
2
2
|0i
→
+ i|1i)
√1 (i|0i
2
− α|1i − β|si))
+ i|1i) − α √12 (i|0i + |1i) − β|si) = 12 (i(|0i + i|1i) − α(i|0i + |1i) −
Terme sortieren nach |0i, |1i, |si, daraus Zustand am Ende:
√
1
|ψi =
i(1 − α)|0i − (1 + α)|1i − 2β|si
2
mit
α = cos ϕ,
β = sin ϕ
nützliche Formeln:
1
2 (1
γ
2
2
cos γ2
− cos γ) = sin2
1
2 (1
+ cos γ) =
√
√
sin π4 = 12 2, cos π4 = 12 2,
sin π2 = 1
Wahrscheinlichkeiten:
1
4 (1 −
1
4 (1 +
1 2
2β
P [D0 ] =
P [D1 ] =
P [S ]
=
ϕ
2
cos4 ϕ2
1
2
2 sin ϕ
α)2 = sin4
α)2 =
=
Bomb test (Elitzur, Vaidman)
1
0.8
D1
0.6
probability
S
0.4
0.2
D0
0
0
π
8
π
4
3π
8
ϕ
11
π
2
√
2β|si)
Aufgabe 6
|0i →
A
√1 (|0i
2
+ i|1i)
K
√1 (|0i
2
+ iγ|1i)
→
L
√1 (γ|0i
2
→0
P
√1 γ(eiϕ0 |0i
2
+ i|1i)
→1
P
√1 γ(eiϕ0 |0i
2
+ ieiϕ1 |1i)
B
1
iϕ0
2 γ((e
→
→
+ iγ|1i) =
√1 γ(|0i
2
+ i|1i)
− eiϕ1 )|0i + i(eiϕ0 + eiϕ1 )|1i)
daher:
2
p0 = 41 |γ|2 eiϕ0 − eiϕ1 2
p1 = 41 |γ|2 eiϕ0 + eiϕ1 iϕ
e 0 − eiϕ1 2 = eiϕ0 − eiϕ1 e−iϕ0 − e−iϕ1
= − ei∆ϕ + e−i∆ϕ − 2 mit ∆ϕ = ϕ1 − ϕ0
2
= − ei∆ϕ/2 − e−i∆ϕ/2
2
= 4 (ei∆ϕ/2 − e−i∆ϕ/2 )/2i
= 4 sin2
∆ϕ
2
Wegen |γ| = 1 und p0 + p1 = 1 folgt dann das Endergebnis.
0
p0 = sin2 ϕ1 −ϕ
2
ϕ1 −ϕ0
2
p1 = cos
2
Aufgabe 7
Die Ergebnisse ergeben sich aus den folgenden Aussagen:
1. Die Quadrate der σ’s sind = 1
2. Die σ’s zu verschiedenen Indizes antikommutieren.
3. Es gilt:
σ1 σ2 = iσ3
σ2 σ3 = iσ1
σ3 σ1 = iσ2
Einige Hinweise zu den verwendeten Begriffen:
• gerade / ungerade Permutation
Eine Permutation der natürlichen Zahlen 1, 2, . . . , n heißt gerade bzw. ungerade, wenn man
sie durch eine gerade bzw. ungerade Anzahl von Paarvertauschungen erhält.
Die natürliche Anordnung 1, 2, . . . , n selbst gilt als gerade Permutation.
Eine Paarvertauschung etwa in 1, 9, 4, 6, 3, 7, 5 ist z.B. 1, 3, 4, 6, 9, 7, 5.
12
• A† ist eine Notation für die zur Matrix A adjungierte Matrix (= transponierte und elementweise
konjugiert-komplex genommene Matrix).
alternative Notationen: A∗ und A+
• Kreuzprodukt: Es seien ~a = (ax , ay , az ) und analog ~b = (bx , by , bz ). Dann gilt
(~a × ~b)x = ay bz − az by
(~a × ~b)y = az bx − ax bz
(~a × ~b)z = ax by − ay bx
Im Zusammenhang mit dieser Aufgabe tritt die Frage auf, wie man die Produkte der Pauli-Matrizen
berechnen kann, ohne in jedem einzelnen Fall immer wieder die entsprechenden Matrizen explizit
auszumultiplizieren.
Hier ist eine Möglichkeit: Man berechnet zunächst die Quadrate σ12 = σ22 = σ32 = 1 sowie eines
der Produkte, z.B. σ1 σ2 = iσ3 , durch Ausmultiplizieren der betreffenden Matrizen. Die restlichen
Produkte erhält man dann durch die folgenden Schlüsse:
... ⇒
... ⇒
... ⇒
... ⇒
... ⇒
... ⇒
σ1 σ2 = iσ3
σ1 σ3 = −iσ2
σ2 σ3 = iσ1
σ2 σ1 = −iσ3
σ3 σ1 = iσ2
σ3 σ2 = −iσ1
σ1 σ2 = iσ3
⇒
⇒
⇒
⇒
⇒
⇒
⇒ ...
⇒ ...
⇒ ...
⇒ ...
⇒ ...
⇒ ...
σ1 σ1 σ2 = iσ1 σ3
σ1 σ3 σ3 = −iσ2 σ3
σ2 σ2 σ3 = iσ2 σ1
σ2 σ1 σ1 = −iσ3 σ1
σ3 σ3 σ1 = iσ3 σ2
σ3 σ2 σ2 = −iσ1 σ2
Aus der Tatsache, dass die Schlüsse auf den Ausgangspunkt zurückführen, folgt auch, dass es belanglos ist, welches Produkt man zuerst berechnet.
Eine elegante Zusammenfassung von Produkten der Pauli-Matrizen ist in der folgenden allgemeinen
Gleichung enthalten:
~σ · ~a ~σ · ~b = ~a · ~b 1 + i ~σ · (~a × ~b)
~a und ~b sind zwei beliebige Vektoren im R3 .
Aufgabe 8
|0ih0| =
|0ih1| =
|1ih0| =
|1ih1| =
1
0
1
0
0
1
0
1
⊗
1 0
⊗
0 1
1 0
0 1
⊗
⊗
=
=
1 0
0 0
0 1
0 0
0 0
1 0
0 0
0 1
=
=
In diesem (etwas singulären) Fall gilt, dass man anstelle des Tensorprodukts auch das gewöhnliche
Matrixprodukt schreiben dürfte. Die beiden Produkte sind im allgemeinen verschiedenen.
13
Aufgabe 9
Das Eigenwertproblem für den Operator M = ~σ · ~n im speziellen Fall ~n = (1, 0, 0)t
Eigenwertgleichung:
σx |λi = λ|λi
explizit:
0 1
1 0
α
β
=λ
α
β
mit |λi =
α
,
β
|α|2 + |β|2 = 1
oder
−λ 1
1 −λ
α
β
=0
d.h.
−λα + β = 0
α − λβ = 0
Lösbarkeitsbedingung, d. h. Bedingung, dass eine Lösung (α, β) 6= (0, 0) existiert:
−λ 1 1 −λ = 0
daraus:
λ2 − 1 = 0,
Lösungen λ± = ±1 = Eigenwerte
Bedingungen an α und β:
für λ = λ+ = +1:
α+ − β + = 0
iϕ+
β+ = α+ = |α+ |e
,
|λ+ i =
α+
β+
iϕ+
= |α+ |e
1
1
und für λ = λ− = −1:
α− + β− = 0
β− = −α− = −|α− |eiϕ− ,
Normierung:
p
√
1 = |α± |2 + |α± |2 = 2|α± |,
|λ− i =
α−
β−
= |α− |eiϕ−
1
−1
√
daher |α± | = 1/ 2
setze
ϕ± = 0
Dieser sogenannte Phasenfaktor (genauer: globale Phasenfaktor) ist immer frei wählbar und hat auf
Messresultate (Messwerte, Messwahrscheinlichkeiten) keinen Einfluss.
Dann ergeben sich die Eigenrichtungen zu
1
1
1
1
|λ− i = √2
|λ+ i = √2
1
−1
14
Aufgabe 10
Die Lösung steht im Skript; hier gibt es ein paar zusätzliche Details.
Für λ+ = +1:
sin 2θ (− sin 2θ α+ + e−iϕ cos 2θ β+ ) = 0
cos 2θ (eiϕ sin 2θ α+ − cos 2θ β+ )
= 0
Der rechte Faktor verschwindet, da sin und cos für kein Argument gemeinsam 0 werden.
Zu lösen ist also:
θ
θ
− sin α+ + e−iϕ cos β+ = 0
2
2
mit Nebenbedingung
|α+ |2 + |β+ |2 = 1
Die lineare Gleichung liefert α+ , ausgedrückt durch β+ , also α+ als Funktion von zwei freien reellen
Parametern. Zusammen mit der Nebenbedingung bleibt also ein freier reeller Parameter.
Will man alles sehr strikt formal machen, kann man folgendermaßen vorgehen.
Die Nebenbedingung kann man parametrisieren durch
|α+ | = cos
τ
τ
und |β+ | = sin mit 0 ≤ τ ≤ π
2
2
insgesamt also
τ
τ
α+ = cos e−iγ und β+ = sin e−iδ
2
2
Setzt man die Gleichungen für die Beträge ein in
θ
θ
sin |α+ | = cos |β+ |
2
2
dann folgt
sin2
θ
τ
θ
τ
cos2 = cos2 sin2
2
2
2
2
und daraus – wegen der Bereiche der beiden Variablen – dann eindeutig
τ =θ
Benutzt man diese Tatache in der Ausgangsgleichung, dann folgt
γ−δ =ϕ
Es bleibt also eine freie gemeinsame Phase in |λ+ i und |λ− i.
15
Herunterladen