DEV Community

Cover image for Quantencomputing verständlich erklärt — Episode 8B
Christian Ahrweiler
Christian Ahrweiler

Posted on Originally published at Medium

Quantencomputing verständlich erklärt — Episode 8B

Quantencomputing verständlich erklärt — Episode 8BWie ein Quantencomputer tatsächlich rechnetIn Episode 8A haben wir einen klassischen Computer von groß nach klein betrachtet:

Computer
↓
CPU oder GPU
↓
Kerne und Recheneinheiten
↓
digitale Schaltungen
↓
logische Gatter
↓
TransistorenAußerdem haben wir gesehen, wie aus einem Programm eine physische Berechnung wird:

Quellcode
↓
Compiler
↓
ausführbare Befehle
↓
Prozessor
↓
ErgebnisJetzt können wir denselben Weg bei einem Quantencomputer verfolgen.

Was entspricht dort dem Prozessor?

Was ist ein Qubit als reales physisches System?

Was ist überhaupt ein Quantenzustand?

Wo befinden sich die Amplituden, mit denen wir bisher gerechnet haben?

Und wie wird aus einem Quantengatter eine reale Operation auf einer QPU?

Die QPUDer Teil eines Quantencomputers, in dem die eigentlichen Quantenoperationen stattfinden, wird häufig QPU genannt:

Quantum Processing Unit

Der Name erinnert an CPU und GPU.

Auch eine QPU ist eine Recheneinheit.

Sie arbeitet jedoch nicht mit klassischen Bits und klassischen logischen Schaltungen, sondern mit Qubits.

Zur ersten Orientierung können wir deshalb vereinfacht gegenüberstellen:

Klassischer Rechner Quantenrechner

CPU QPU

Bit Qubit

logische Operation Quantenoperation

logisches Gatter Quantengatter

klassische Ausgabe Messung der QubitsDiese Gegenüberstellung zeigt ähnliche Rollen.

Sie bedeutet aber nicht, dass Bit und Qubit oder CPU und QPU technisch gleich funktionieren.

Wie wird ein klassisches Bit physisch gespeichert?Ein Bit ist zunächst nur eine Informationseinheit:

0 oder 1Damit ein Computer diesen Wert speichern kann, benötigt er einen physikalischen Zustand, den wir als 0 oder 1 interpretieren können.

Wie das geschieht, hängt von der verwendeten Speichertechnik ab.

Bei einem klassischen Speicher kann beispielsweise eine kleine Transistorschaltung zwei stabile elektrische Zustände besitzen:

Zustand A → 0
Zustand B → 1Bei SRAM werden mehrere Transistoren zu einer Speicherzelle verbunden, die einen dieser beiden Zustände hält.

Bei DRAM wird dafür unter anderem die elektrische Ladung eines kleinen Kondensators verwendet.

Die technische Umsetzung unterscheidet sich.

Das Grundprinzip ist aber einfach:

Ein klassisches Bit wird durch einen von zwei unterscheidbaren physikalischen Zuständen dargestellt.

Und wie wird ein Qubit physisch realisiert?Auch ein Qubit benötigt reale Hardware.

Dafür gibt es verschiedene technische Verfahren.

Für unsere Erklärung verwenden wir nur eines davon: das supraleitende Transmon-Qubit.

Es eignet sich für unseren Vergleich besonders gut, weil es ebenfalls als kleine elektrische Schaltung auf einem Chip realisiert werden kann.

Ein Transmon besteht vereinfacht aus:

Kondensator
+
Josephson-KontaktEin Kondensator kann elektrische Energie speichern.

Der Josephson-Kontakt ist eine besondere Verbindung zwischen supraleitenden Materialien.

Wie er im Detail funktioniert, müssen wir hier nicht betrachten.

Entscheidend ist das Ergebnis:

Die Transmon-Schaltung besitzt bestimmte erlaubte Energiezustände.

Die beiden niedrigsten davon verwenden wir als Basiszustände:

|0⟩und:

|1⟩Damit haben wir ein reales physisches Qubit.

Ein Qubit ist nicht einfach 0 oder 1Hier unterscheidet sich das Qubit entscheidend vom klassischen Bit.

Ein klassisches Bit besitzt einen bestimmten Zustand:

0oder:

1Beim Qubit sind |0⟩ und |1⟩ dagegen zunächst die beiden Basiszustände, mit denen wir seinen Quantenzustand beschreiben.

Ein Qubit kann beispielsweise genau im Zustand:

|0⟩sein.

Oder genau in:

|1⟩Es kann aber auch einen Quantenzustand besitzen, der sich aus beiden Basiszuständen zusammensetzt.

Zum Beispiel:

0,707 |0⟩ + 0,707 |1⟩Das ist kein klassisches Bit mit einem unbekannten Wert.

Es ist ein anderer physikalischer Zustand des Qubits.

Was ist ein Quantenzustand?Der Quantenzustand beschreibt den Zustand eines Quantensystems vor der Messung.

Bei einem Qubit verwenden wir dafür die beiden Basiszustände:

|0⟩
|1⟩und zwei zugehörige Amplituden.

Allgemein schreiben wir:

α |0⟩ + β |1⟩α ist die Amplitude für |0⟩.

β ist die Amplitude für |1⟩.

Ein konkretes Beispiel wäre:

0,707 |0⟩ + 0,707 |1⟩Aus den Amplituden können wir berechnen, mit welcher Wahrscheinlichkeit die beiden möglichen Ergebnisse bei einer Messung auftreten.

Für unser Beispiel:

0,707² ≈ 0,5Damit erhalten wir ungefähr:

50 % → 0
50 % → 1Wichtig ist die Reihenfolge:

Das Qubit besitzt zunächst einen Quantenzustand.

Erst eine Messung liefert daraus ein klassisches Ergebnis:

0oder:

1Wo befinden sich die Amplituden?Hier unterscheidet sich die Vorstellung stark von einem klassischen Speicher.

Die Amplituden werden nicht als Zahlen in einem besonderen Speicher der QPU abgelegt.

Es gibt also nicht:

Qubit
+
Amplitude-Speicherund auch keine interne Tabelle wie:

Amplitude für |0⟩ = 0,707
Amplitude für |1⟩ = 0,707Das reale Qubit selbst befindet sich in einem bestimmten Quantenzustand.

Die Quanteneigenschaften gehören zum Qubit selbst.

Die Amplituden sind die Zahlen, mit denen wir diesen Zustand mathematisch beschreiben.

Vereinfacht:

reales Qubit
↓
besitzt einen Quantenzustand
↓
wir beschreiben diesen Zustand mit AmplitudenDie Zahl 0,707 ist also keine bestimmte Menge elektrischer Ladung, die irgendwo in einer zusätzlichen Speicherzelle liegt.

Sie ist Teil der mathematischen Beschreibung des tatsächlichen Quantenzustands.

Die Amplitude ist keine Spannung und keine LadungsmengeDas ist wichtig, weil sonst schnell eine falsche Vorstellung entsteht.

Bei einem klassischen Speicher können wir uns je nach Technik durchaus einen elektrischen Zustand vorstellen, der einen Bitwert repräsentiert.

Beim Qubit funktioniert die Amplitude nicht nach dem Prinzip:

viel Ladung → große Amplitude
wenig Ladung → kleine AmplitudeDie Amplitude ist keine eigene physikalische Größe, die neben dem Qubit gespeichert wird.

Sie beschreibt den Zustand des gesamten Quantensystems relativ zu unseren Basiszuständen |0⟩ und |1⟩.

Das bedeutet:

α = 1
β = 0beschreibt:

|0⟩und:

α = 0
β = 1beschreibt:

|1⟩Während:

α ≈ 0,707
β ≈ 0,707einen anderen Quantenzustand beschreibt.

Die Quanteneigenschaft steckt im Qubit selbst.

Die Amplituden sind unser mathematisches Werkzeug, um diesen Zustand zu beschreiben.

Amplituden enthalten mehr als MesswahrscheinlichkeitenIn unseren bisherigen Beispielen haben wir einfache Werte verwendet:

0,5
-0,5
0,707
1Allgemein können Amplituden auch komplexe Zahlen sein.

Diese Mathematik müssen wir an dieser Stelle nicht weiter vertiefen.

Wichtig ist aber, dass Amplituden mehr Information enthalten als nur die Wahrscheinlichkeit einer Messung.

Betrachten wir zwei Zustände:

0,707 |0⟩ + 0,707 |1⟩und:

0,707 |0⟩ - 0,707 |1⟩Bei einer direkten Messung liefern beide:

50 % → 0
50 % → 1Trotzdem handelt es sich nicht um denselben Quantenzustand.

Das unterschiedliche Vorzeichen beschreibt einen Unterschied in der Phase.

Und dieser Unterschied kann bei späteren Quantengattern zu unterschiedlicher Interferenz führen.

Genau diesen Effekt haben wir bereits bei Grovers Algorithmus benutzt.

Bei mehreren Qubits entsteht ein gemeinsamer QuantenzustandBei einem einzelnen Qubit benötigen wir zwei Amplituden:

|0⟩
|1⟩Bei zwei Qubits gibt es vier mögliche Messergebnisse:

00
01
10
11Der gemeinsame Quantenzustand wird entsprechend durch vier Amplituden beschrieben.

Bei drei Qubits sind es acht.

Allgemein besitzen n Qubits:

2^nAmplituden.

Bei 30 Qubits wären das bereits mehr als eine Milliarde.

Aber auch hier gilt:

Die QPU besitzt nicht eine Milliarde Speicherzellen, in denen diese Amplituden als Zahlen abgelegt werden.

Die 30 Qubits besitzen gemeinsam einen Quantenzustand.

Dieser gemeinsame physikalische Zustand wird mathematisch durch mehr als eine Milliarde Amplituden beschrieben.

Das ist einer der grundlegenden Unterschiede zwischen klassischer und Quanteninformation.

Ein Qubit ist kein dauerhafter Speicher wie RAMMit dem Wort Speichern müssen wir beim Qubit außerdem vorsichtig sein.

Ein klassisches Speicherbit kann seinen Zustand sehr lange erhalten.

Ein Qubit ist wesentlich empfindlicher.

Sein Quantenzustand bleibt nur für eine begrenzte Zeit ausreichend kontrollierbar.

Während dieser Zeit muss die Berechnung stattfinden:

Qubits vorbereiten
↓
Quantenzustand verändern
↓
weitere Operationen ausführen
↓
messenDie QPU ist also kein Quantenspeicher, in dem wir Daten wie Dateien oder klassische Variablen dauerhaft ablegen.

Die Qubits bilden während einer Berechnung einen vorübergehenden Quantenzustand.

Was macht ein Quantengatter?Jetzt können wir auch genauer verstehen, was wir mit einem Quantengatter meinen.

Ein Beispiel kennen wir bereits:

Hdas Hadamard-Gatter.

In den bisherigen Episoden haben wir betrachtet, wie dieses Gatter mathematisch die Amplituden eines Qubits verändert.

Ein Quantengatter beschreibt eine bestimmte Veränderung des Quantenzustands.

Auf einer realen QPU muss diese Veränderung physisch erzeugt werden.

Bei unserem Transmon-Qubit geschieht das durch genau kontrollierte Steuersignale.

Für unseren Algorithmus müssen wir deren technische Details nicht kennen.

Wichtig ist die Trennung:

Quantengatter
↓
beschreibt die gewünschte Veränderung
des Quantenzustandsund:

Steuerelektronik
↓
setzt diese Veränderung
am realen Qubit umMathematisch sehen wir anschließend andere Amplituden und Phasen.

Physisch hat sich der Quantenzustand des Qubits verändert.

Von Quantengattern zum QuantenprogrammEin Quantenprogramm beschreibt eine Folge solcher Operationen.

Zum Beispiel:

Qubits vorbereiten
↓
H auf Qubit 1
↓
CNOT auf Qubit 1 und Qubit 2
↓
weitere Quantengatter
↓
Qubits messenAuf dieser Ebene sieht ein Quantenprogramm zunächst ähnlich aus wie ein klassisches Programm.

KlassischDaten
↓
Operation
↓
Operation
↓
Operation
↓
ErgebnisQuantencomputerQubits vorbereiten
↓
Quantengatter
↓
Quantengatter
↓
Quantengatter
↓
MessungDer Unterschied liegt darin, was während der Berechnung verändert wird.

Der klassische Rechner verarbeitet konkrete Bitwerte.

Der Quantenalgorithmus verändert den gemeinsamen Quantenzustand der Qubits.

Mathematisch sehen wir diese Veränderungen als Veränderungen von Amplituden und Phasen.

Auch ein Quantenprogramm muss übersetzt werdenIn Episode 8A haben wir den Compiler kennengelernt.

Ein Compiler übersetzt Programmcode in eine Form, die eine bestimmte Zielplattform ausführen kann.

Auch bei einem Quantencomputer gibt es eine solche Übersetzungsebene.

Ein Quantenprogramm kann beispielsweise enthalten:

H auf Qubit 1
CNOT auf Qubit 1 und Qubit 2
Qubits messenEine konkrete QPU besitzt jedoch bestimmte physische Qubits, bestimmte Verbindungen zwischen ihnen und bestimmte Operationen, die sie direkt ausführen kann.

Ein Quantencompiler übersetzt deshalb die Beschreibung des Algorithmus in eine Form, die zur verwendeten QPU passt.

Vereinfacht:

Quantenprogramm
↓
Quantencompiler
↓
Operationen für die konkrete QPU
↓
QPUDer Programmierer kann dadurch mit Quantengattern arbeiten, ohne die physische Steuerung jedes einzelnen Qubits selbst festlegen zu müssen.

Die Steuerung einer QPU erfordert zusätzlich klassische ComputertechnikEine QPU arbeitet nicht allein.

Sie benötigt klassische Computertechnik, die den Ablauf vorbereitet, steuert und anschließend die Ergebnisse verarbeitet.

Der Ablauf beginnt deshalb auf einem klassischen Computer.

Dort befindet sich das Programm, das festlegt, welche Quantenoperationen ausgeführt werden sollen.

Der Quantencompiler übersetzt diese Beschreibung für die konkrete QPU.

Anschließend erzeugt klassische Steuerelektronik die Signale, mit denen die Qubits tatsächlich verändert werden.

Nach der Berechnung werden die Qubits gemessen.

Diese Messwerte gelangen wieder zurück in die klassische Computerwelt.

Vereinfacht:

klassischer Computer / CPU
↓
Quantenprogramm
↓
Quantencompiler
↓
Steuerbefehle
↓
Steuerelektronik
↓
QPU
↓
Quantenzustand verändert sich
↓
Messung
↓
klassische Bits
↓
CPU verarbeitet das ErgebnisDie QPU ersetzt die CPU also nicht.

Ein Quantencomputer benötigt klassische Rechentechnik und eine QPU.

Die klassische Seite organisiert und steuert den Ablauf.

Die QPU führt den Teil der Berechnung aus, bei dem Quantenzustände genutzt werden.

CPU und QPU übernehmen unterschiedliche AufgabenDie Rollen lassen sich grob gegenüberstellen:

CPU und klassische Steuerung QPU

Programm vorbereiten Qubits bereitstellen

Quantenprogramm übersetzen Quantenzustand bereitstellen
Ablauf steuern Quantengatter ausführen

Steuersignale erzeugen lassen Quantenzustand verändern

Messergebnisse empfangen Qubits messen

Ergebnisse weiterverarbeiten Messwerte liefernDie QPU ist damit eine spezialisierte Recheneinheit, die von einem klassischen System benutzt wird.

In dieser Hinsicht gibt es eine gewisse Ähnlichkeit zur GPU.

Auch eine GPU ersetzt die CPU nicht vollständig. Die CPU organisiert das Programm und übergibt bestimmte Berechnungen an die GPU.

Bei einer QPU ist die ausgelagerte Art der Berechnung jedoch grundsätzlich anders.

Was passiert während einer Quantenberechnung?Jetzt können wir die bisherigen Episoden in die reale Hardware einordnen.

Zu Beginn werden die Qubits in einen bekannten Quantenzustand gebracht.

Dann verändern Quantengatter diesen Zustand.

Dabei können beispielsweise:

  • Superpositionen entstehen
  • Phasen verändert werden
  • Qubits miteinander verschränkt werden
  • Amplituden miteinander interferieren Bei Grovers Algorithmus haben wir gesehen, wie zunächst ein Phasenunterschied erzeugt wird.

Weitere Quantengatter nutzen diesen Unterschied anschließend für Interferenz.

Dadurch verändern sich die Messwahrscheinlichkeiten.

Erst am Ende wird gemessen.

Vereinfacht:

Anfangszustand
↓
Quantengatter
↓
Quantenzustand verändert sich
↓
weitere Quantengatter
↓
Interferenz
↓
neue Messwahrscheinlichkeiten
↓
MessungDie Messung liefert schließlich wieder klassische Bits.

Klassischer Rechner und Quantenrechner direkt verglichenDamit können wir die wichtigsten Ebenen gegenüberstellen:

Ebene Klassischer Rechner Quantenrechner

Recheneinheit CPU QPU

Informationseinheit Bit Qubit

physische Realisierung z. B. Speicherzelle aus Transistoren z. B. Transmon

Zustand 0 oder 1 Quantenzustand mit Amplituden und Phasen
mögliches Messergebnis 0 oder 1 0 oder 1

Operation logische Operation Quantenoperation

logisches Element logisches Gatter Quantengatter

Programm klassische Instruktionen Folge von Quantengattern

Übersetzung Compiler Quantencompiler

Berechnung Bitzustände verarbeiten Quantenzustand verändern

Ausgabe Bits Messung liefert BitsDamit wird auch deutlich:

Ein Qubit ist nicht einfach ein leistungsfähigeres Bit.

Die beiden erfüllen eine ähnliche Rolle als grundlegende Informationseinheit, funktionieren aber physikalisch und mathematisch unterschiedlich.

Nicht jedes klassische Bauteil besitzt ein Quanten-GegenstückBei einer klassischen CPU konnten wir von groß nach klein gehen:

CPU
↓
Prozessorkern
↓
digitale Schaltungen
↓
logische Gatter
↓
TransistorenFür eine QPU gibt es keine allgemein gültige entsprechende Kette.

Insbesondere gibt es kein universelles Quanten-Gegenstück zum Transistor.

Qubits können mit unterschiedlichen physikalischen Technologien gebaut werden.

Wir haben für unsere Erklärung das supraleitende Transmon gewählt.

Für unser Verständnis reicht deshalb zunächst:

QPU
↓
physische Qubits
↓
Quantenzustand
↓
kontrollierte Quantenoperationen
↓
MessungEin Qubit ist auch kein ProzessorkernEin Prozessorkern einer CPU kann weitgehend eigenständig eine Folge von Maschinenbefehlen ausführen.

Ein Qubit ist keine solche Recheneinheit.

Mehr Qubits bedeuten deshalb nicht:

mehr Qubits

mehr Programme gleichzeitigDie Qubits bilden vielmehr einen gemeinsamen Quantenzustand.

Bei zwei Qubits beschreiben wir diesen Zustand mit vier Amplituden:

00
01
10
11Bei drei Qubits mit acht.

Bei n Qubits mit:

2^nAmplituden.

Das sind keine 2^n Prozessoren und auch keine 2^n klassischen Speicherplätze.

Es ist die mathematische Beschreibung eines gemeinsamen Quantenzustands.

CPU, GPU und QPUDamit können wir drei unterschiedliche Recheneinheiten nebeneinanderstellen.

CPUEine CPU ist für allgemeine Programme mit vielen unterschiedlichen Operationen ausgelegt.

GPUEine GPU besitzt sehr viele Recheneinheiten und eignet sich besonders für große Mengen ähnlicher Berechnungen, die parallel ausgeführt werden können.

QPUEine QPU ermöglicht Berechnungen, bei denen Quantenzustände und Effekte wie Phase, Interferenz und Verschränkung gezielt genutzt werden.

Die drei Systeme bilden deshalb keine einfache Rangfolge:

CPU
↓
GPU
↓
QPU
↓
immer schnellerSie arbeiten unterschiedlich und eignen sich für unterschiedliche Aufgaben.

Warum eine QPU keine schnellere Universal-CPU istViele Aufgaben kann ein klassischer Rechner bereits sehr direkt ausführen:

Text anzeigen
Datei speichern
Netzwerkpaket verarbeiten
Zahl addieren
Bedingung prüfen
Fenster zeichnenEine QPU macht solche Aufgaben nicht automatisch schneller.

Ein möglicher Vorteil entsteht erst, wenn wir einen Algorithmus besitzen, der die Eigenschaften eines Quantenzustands gezielt für die Berechnung nutzt.

Bei Grover war das beispielsweise:

Phasenunterschied erzeugen
↓
Interferenz nutzen
↓
Messwahrscheinlichkeiten verändernAndere Quantenalgorithmen verwenden andere Strukturen.

Die entscheidende Frage lautet deshalb nicht:

Wie schnell ist die QPU?Sondern:

Kann dieses Problem so formuliert werden, dass ein Quantenalgorithmus die Eigenschaften der QPU sinnvoll nutzen kann?Die Hardware allein erzeugt keinen QuantenvorteilDas lässt sich mit einer GPU vergleichen.

Eine GPU kann enorme Rechenleistung besitzen.

Wenn ein Problem diese Art von Parallelität nicht nutzen kann, bringt die zusätzliche Rechenleistung wenig.

Bei einer QPU ist die Abhängigkeit vom geeigneten Algorithmus noch grundlegender.

Ein klassisches Programm wird nicht automatisch schneller, wenn wir es auf eine QPU übertragen.

Wir benötigen einen Algorithmus, dessen Rechenweg ausdrücklich für Quantenzustände und Quantengatter entwickelt wurde.

Der mögliche Vorteil entsteht deshalb nicht einfach durch:

schnellere Hardwaresondern durch:

andere Hardware
+
anderer Algorithmus
+
andere Art der InformationsverarbeitungVon groß nach kleinAuch den Quantencomputer können wir nun vereinfacht einordnen:

Quantencomputer
↓
klassischer Computer + QPU
↓
klassische Steuerung
↓
physische Qubits
↓
gemeinsamer Quantenzustand
↓
Quantengatter verändern diesen Zustand
↓
Messung
↓
klassische BitsAuf der Programmebene:

Quantenalgorithmus
↓
Quantengatter
↓
Quantencompiler
↓
Operationen für die konkrete QPU
↓
Steuerelektronik
↓
Qubits
↓
MessungWas wir jetzt wissen- Eine QPU ist eine spezialisierte Recheneinheit für Quantenoperationen.

  • Qubits sind die grundlegenden Informationseinheiten einer Quantenberechnung.
  • Ein Qubit benötigt eine reale physische Umsetzung.
  • Als Beispiel haben wir das supraleitende Transmon-Qubit betrachtet.
  • |0⟩ und |1⟩ sind Basiszustände des Qubits.
  • Ein Qubit ist vor der Messung nicht einfach 0 oder 1, sondern besitzt einen Quantenzustand.
  • Diesen Quantenzustand beschreiben wir mit Amplituden und Phasen.
  • Die Amplituden werden nicht als Zahlen in einem zusätzlichen Bauteil gespeichert.
  • Die Quanteneigenschaften gehören zum Qubit selbst; die Amplituden sind unsere mathematische Beschreibung dieses Zustands.
  • Bei mehreren Qubits beschreiben die Amplituden den gemeinsamen Quantenzustand.
  • Quantengatter verändern diesen Quantenzustand.
  • Ein Quantencompiler übersetzt ein Quantenprogramm für eine konkrete QPU.
  • Eine QPU benötigt zusätzlich klassische Computertechnik für Steuerung und Auswertung.
  • Die QPU ersetzt die CPU nicht.
  • Ein Qubit ist weder ein Transistor noch ein Prozessorkern.
  • Mehr Qubits bedeuten nicht mehr gleichzeitig laufende Programme.
  • Eine QPU ist keine allgemein schnellere CPU.
  • Ein möglicher Quantenvorteil entsteht erst durch einen Algorithmus, der die besonderen Eigenschaften des Quantenzustands gezielt nutzt. Damit können wir auch die Behauptung:

Ein Quantencomputer berechnet alle Möglichkeiten gleichzeitig.genauer einordnen.

Ein gemeinsamer Quantenzustand vieler Qubits wird tatsächlich durch sehr viele Amplituden beschrieben.

Aber diese Amplituden sind keine Sammlung fertig berechneter Antworten und keine separat gespeicherten Zahlen.

Sie beschreiben den gemeinsamen physikalischen Quantenzustand der Qubits.

Der entscheidende Teil eines Quantenalgorithmus besteht darin, diesen Zustand so zu verändern, dass Interferenz die gewünschten Messwahrscheinlichkeiten erzeugt.

Erst die Messung liefert daraus ein klassisches Ergebnis.

In Episode 9 schauen wir uns an, warum es so schwierig ist, aus einigen Qubits einen großen, zuverlässigen Quantencomputer zu bauen — und warum dabei Fehler, Dekohärenz, Kopplung und Fehlerkorrektur eine zentrale Rolle spielen.

Top comments (0)