What is the difference between a physical and a logical qubit?

A logical qubit is one you can use for programming, which holds a superposition of the |0> and |1> states. It could be implemented by a simulator running on a normal binary CPU in your desktop or laptop, to let you develop and debug quantum algorithms. (Representing an n-qubit quantum state takes 2n-1 complex numbers. Presumably a simulator would use fixed width integer or floating-point representations, if rounding error is ok.)

A physical qubit is an actual quantum implementation of a qubit. Wikipedia has a table of various possibilities: https://en.wikipedia.org/wiki/Qubit#Physical_representation. For example, an electron that can have a superposition of spin up / spin down states.

Real physical qubits suffer from unwanted decoherence. This is a problem if you use them directly as logical qubits. Instead, you can implement a logical qubit on top of multiple physical qubits to get redundancy.

From Quantum Error Correction for Beginners, Devitt, Munro, and Nemoto (2013).

THE 3-QUBIT CODE: A GOOD STARTING POINT FOR QUANTUM ERROR CORRECTION

...

The 3-qubit code encodes a single logical qubit into three physical qubits with the property that it can correct for a single, σx, bit-flip error.

The two logical basis states |0>L and |1>L are defined as

|0>L = |000>, |1>L = |111> 

That paper goes on to describe other error-correction schemes that can handle more errors.

I barely looked at more than this in the paper myself, but this sounds very similar to classical fail-safe redundant computing where you correct for hardware failure / cosmic-ray glitches by having triple redundancy and taking the 2 results that agree. You can do this on a per-bit level for error-correction, especially in a high-error environment like space flight where cosmic rays will flip bits.

You can also build and program 3 separate computers (different hardware from different manufacturers, with software written by teams that don't talk to each other). Only compare their final results for the same inputs. This is what you want for airliner fly-by-wire control systems, and manned space flight.

Anyway, we're getting off topic here, but I hope the analogy is useful for understanding the idea of using multiple unreliable physical computations to produce one (more) reliable logical computation.


This is sort of the opposite of what we do with modern NAND flash storage. Instead of using only one bit per cell (low or high voltage), https://en.wikipedia.org/wiki/Multi-level_cell flash uses 4 or 8 voltage levels to store 2 or 3 bits per cell. (Or I guess 3 levels could store more than 1 bit per cell total across multiple cells, using an encoding scheme.)

Not that you'd want to (decoherence is enough of a problem without trying to pack more logical bits per physical thing), but some quantum systems could maybe do this. Wikipedia gives an example of a nonlinear oscillator where one level is the ground state, and another level is the first excited state. Using the 2nd and 3rd excited states could let you store 2 qubits in it. But like I said, this is not useful in real systems.