Beim fehlertoleranten Quantencomputing wird zwischen physischen und logischen Qubits unterschieden.
Die logischen Qubits sind diejenigen, die wir in unserem Algorithmus verwenden. Wenn unsere Eingabe also eine Zahl ist, die binär über Qubits gespeichert ist (wie im Shor-Algorithmus), dann sind diese Qubits logische Qubits. Wenn wir nach einer Quanten-Fourier-Transformation für eine Sammlung von Qubits fragen, sind dies auch logische Qubits. Wir erwarten, dass logische Qubits und die Operationen, die wir an ihnen ausführen, völlig fehlerfrei sind, genau wie wir es mit den Bits und Operationen in normalen Computern tun.nn
Die physischen Qubits sind diejenigen, die tatsächlich existieren, und sie sind laut. Diese verwenden wir, um logische Qubits zu erstellen, aber normalerweise sind viele physische Qubits erforderlich, um ein logisches Qubit zu erstellen. Dies liegt an der großen Redundanz, die erforderlich ist, um Fehler erkennen und korrigieren zu können.
Das Design des tatsächlichen Codes, der auf physischen Qubits ausgeführt wird, erfolgt in Schichten. Ein Softwareentwickler für die Quantenfehlerkorrektur entwirft die logischen Qubits, indem er das Programm schreibt, das zur Implementierung des Quantenfehlerkorrekturcodes erforderlich ist. Für jede Operation, die jemand in einem Algorithmus benötigt, entwirft er eine fehlerkorrekturkompatible Version, die die Operation an den logischen Qubits so ausführt, dass ihre Unvollkommenheiten erkannt und korrigiert werden können.
Dann kommt der Programmierer und schreibt sein Programm. Sie müssen überhaupt nicht an physische Qubits oder Fehlerkorrekturen denken.
Schließlich kombiniert der Compiler alles, um die fehlertolerante Version des Programms zu erstellen, die auf den physischen Qubits ausgeführt werden soll. Dies sieht nicht so aus, wie es vom Programmierer geschrieben wurde. Es sieht nicht nach einer ständigen Abwechslung von Dingen aus, die der Programmierer geschrieben hat, gefolgt von Fehlerkorrekturen, um sie zu bereinigen. Es wird sich fast vollständig damit befassen, nur die ständig auftretenden Fehler zu erkennen und zu korrigieren, mit geringfügigen Störungen, um den Algorithmus zu implementieren.
Als Referenz denke ich, dass es am besten ist, etwas zu empfehlen, das erklärt, wie Operationen an logischen Qubits auf physischen Qubits über einen Fehlerkorrekturcode implementiert werden. Eine meiner eigenen Arbeiten erledigt diese Aufgabe, indem sie dies auf verschiedene Weise erklärt, um logische Operationen im Oberflächencode zu erhalten. Es enthält auch Verweise auf viele Werke anderer auf demselben Gebiet.