Programmierung eines Quantencomputers
- Martin Döhring

- vor 3 Tagen
- 3 Min. Lesezeit

Wenn man die Ionenfalle aus Sicht eines Computerprogramms betrachtet, wird deutlich, dass ein Quantencomputer im Grunde eine hochpräzise, echtzeitfähige Steuerungssoftware für ein physikalisches Experiment ist. Anders als bei einem klassischen Computer führt das Programm keine Rechenoperationen direkt auf Transistoren aus, sondern steuert Spannungen, Laser und Messgeräte mit höchster Präzision.
Die Softwarearchitektur
Die Software ist in mehrere Ebenen gegliedert:
Python / C++
│
▼
Quantenalgorithmus
│
▼
Quantum Compiler
│
▼
Gate Scheduler
│
▼
Hardware Controller
│
▼
DACs
RF Generator
Laser Controller
Photon Detector
Jede Ebene übersetzt den Programmcode in immer konkretere Steuerbefehle.
Ebene 1: Quantenalgorithmus
Der Programmierer schreibt beispielsweise:
from qiskit import QuantumCircuit
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0,1)
qc.measure_all()
Dies beschreibt lediglich die mathematischen Operationen:
Hadamard
CNOT
Messung
Es sagt noch nichts darüber aus, welche Laser oder Spannungen verwendet werden.
Ebene 2: Compiler
Der Compiler weiß:
Qubit 0
liegt auf
Ion Nummer 8
Qubit 1
liegt auf
Ion Nummer 9
Nun ersetzt er
H
durch
Laserpuls
729 nm
Dauer 18 µs
Phase 90°
und
CNOT
durch
Mølmer-Sørensen-Gatter
Laser 729 nm
beide Ionen gleichzeitig
Ebene 3: Scheduler
Jetzt wird alles zeitlich geplant.
Beispiel
0 µs
Laser einschalten
20 µs
Laser ausschalten
25 µs
RF stabilisieren
30 µs
nächster Laserpuls
45 µs
Messung
Jede Operation besitzt ihre exakte Zeit.
Ebene 4: Hardware Controller
Jetzt beginnt eigentliche Ingenieurtechnik.
Der Controller erzeugt
digitale Steuerdaten.
Zum Beispiel
DAC 1
+2,35 Volt
DAC 2
-1,12 Volt
DAC 3
+0,78 Volt
Diese Spannungen landen auf den Elektroden der Ionenfalle.
Bewegung der Ionen
Soll ein Ion transportiert werden,
ändert die Software kontinuierlich
alle Spannungen.
Zum Beispiel
Zeit 0 ms
Elektrode 1 = 2 Volt
Elektrode 2 = 1 Volt
Elektrode 3 = 0 Volt
nach
Zeit 1 ms
Elektrode 1 = 1 Volt
Elektrode 2 = 2 Volt
Elektrode 3 = 1 Volt
nach
Zeit 2 ms
Elektrode 1 = 0 Volt
Elektrode 2 = 1 Volt
Elektrode 3 = 2 Volt
Dadurch wandert die Potentialmulde langsam nach rechts.
Das Ion bewegt sich mit.
Fast wie eine Kugel,
die immer im Tal eines beweglichen Hügels bleibt.
Lasersteuerung
Die Software kontrolliert gleichzeitig
mehrere Laser.
Für jeden Laser werden geregelt
Wellenlänge
729,000000 nm
Leistung
8 mW
Pulsdauer
20 µs
Phase
90°
Frequenz
411 THz
Jeder dieser Werte muss extrem genau eingehalten werden.
Synchronisation
Alle Geräte besitzen
eine gemeinsame Referenzuhr.
Zum Beispiel
10 MHz Rubidium Clock
oder
Optische Atomuhr
Alle Ereignisse laufen dadurch synchron.
Messung
Nach der Berechnung
beleuchtet der Laser
die Ionen.
Jetzt misst eine Kamera
Photonen.
Das Rohsignal könnte so aussehen:
Ion 1
3245 Photonen
=> Zustand |0⟩
Ion 2
15 Photonen
=> Zustand |1⟩
Die Software entscheidet anhand eines Schwellenwerts:
if (counts > 1000)
qubit = 0;
else
qubit = 1;
Rückkopplung
Viele Systeme arbeiten bereits mit Echtzeit-Feedback.
Beispiel
Laserleistung zu gering
↓
Photodetektor erkennt
-3 %
↓
Software regelt nach
Laserleistung +3 %
Dieser Regelkreis läuft tausendfach pro Sekunde.
Fehlerkorrektur
Die Software überwacht ständig
Laserstabilität
Temperatur
RF-Leistung
Vakuum
Magnetfelder
Photonenzahl
Entsteht ein Fehler,
wird sofort korrigiert.
Beispielsweise:
Qubit 17
Dekohärenz erkannt
↓
erneute Initialisierung
↓
Quantenfehlerkorrektur
↓
Berechnung läuft weiter
Typischer Software-Stack
Ein modernes System verwendet häufig:
Benutzerebene: Python mit Frameworks wie Qiskit, Cirq oder PennyLane zur Beschreibung des Quantenalgorithmus.
Compiler-Ebene: Übersetzung der Quantenschaltungen in eine Folge hardwaregeeigneter Gatter und Pulse.
Puls-Ebene: Erzeugung konkreter Pulsfolgen (Laserpulse, HF-Pulse, Spannungsprofile) mit exakten Zeiten, Frequenzen und Phasen.
Echtzeitsteuerung: FPGA- oder Mikrocontroller-basierte Hardware erzeugt die Signale für DACs, DDS-Synthesizer, AOMs und Detektoren mit einer zeitlichen Auflösung im Nano- bis Mikrosekundenbereich.
Geräteebene: Elektronik steuert Elektroden, Laser, Hochfrequenzgeneratoren und Kameras.
Der eigentliche "Computer"
Der faszinierende Punkt ist, dass der Quantencomputer nicht allein aus der Ionenfalle besteht. Die Ionen übernehmen die Speicherung und Verarbeitung der Quantenzustände, während ein leistungsfähiger klassischer Rechner permanent die gesamte Infrastruktur kontrolliert. Er berechnet Spannungsprofile, synchronisiert Laser, liest Detektoren aus, führt Kalibrierungen durch und entscheidet anhand der Messdaten über den weiteren Ablauf.
Man kann den Aufbau daher als Zusammenspiel zweier Rechner verstehen:
Der klassische Computer ist das präzise Echtzeit-Steuerungssystem.
Die Ionenfalle ist der physikalische Quantenprozessor (Quantum Processing Unit, QPU), in dem die eigentlichen Quantenoperationen stattfinden.
Erst das enge Zusammenspiel beider Systeme ermöglicht einen funktionsfähigen Quantencomputer.




Die Programmierung eines Quantencomputers unterscheidet sich grundlegend von der eines klassischen Computers. Während ein klassischer Prozessor logische Gatter auf Bits (0 oder 1) ausführt, programmiert man bei einem Quantencomputer die Entwicklung eines Quantenzustands. Das Programm beschreibt also nicht nur Berechnungen, sondern eine kontrollierte physikalische Transformation eines Quantensystems.
1. Die Grundidee
Ein Quantencomputer besteht aus Qubits.
Ein klassisches Bit kennt nur
0
1
Ein Qubit kann dagegen eine Superposition sein:
[|\psi\rangle=\alpha|0\rangle+\beta|1\rangle]
mit
[|\alpha|^2+|\beta|^2=1.]
Die Koeffizienten heißen Wahrscheinlichkeitsamplituden.
Erst bei der Messung entsteht eine klassische 0 oder 1.
2. Ein Quantenprogramm
Ein Quantenprogramm besteht im Wesentlichen aus einer Folge von Quantengattern (Quantum Gates).
Ähnlich wie beim klassischen Computer
AND OR NOT
gibt es
X Y Z H S T RX RY RZ CX…