-
Notifications
You must be signed in to change notification settings - Fork 218
Lattice surgery demo #1598
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Lattice surgery demo #1598
Conversation
|
👋 Hey, looks like you've updated some demos! 🐘 Don't forget to update the Please hide this comment once the field(s) are updated. Thanks! |
Your preview is ready 🎉!You can view your changes here
|
…into lattice-surgery
…into lattice-surgery
dwierichs
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing job with this demo @Qottmann 🎉 💯
I had a couple of comments.
Overall, any additional exemplary calculations that can be added without opening large cans of worms would be appreciated. Those could come in a "box", for example, to make them optional info that a reader can trace if they want to understand the details of what's going on , or decide to skip.
Otherwise I find the length and level of detail very well-chosen 👌
Co-authored-by: David Wierichs <[email protected]>
dwierichs
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing work, @Qottmann
Just left some last minor things like typos, highly optional suggestions and such :)
Co-authored-by: David Wierichs <[email protected]>
Co-authored-by: David Wierichs <[email protected]>
…into lattice-surgery
daniela-angulo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really cool demo. Nothing major in the comments. Just styling and a question (for my own benefit). Thanks!
| Introducing Lattice Surgery | ||
| =========================== | ||
|
|
||
| Lattice surgery is a way to fault-tolerantly perform operations on two-dimensional quantum computers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't particularly like the adverb version of fault-tolerant, but if you feel strongly about it, it is cool.
|
|
||
| Lattice surgery is a way to fault-tolerantly perform operations on two-dimensional quantum computers | ||
| with local physical connectivity. Its introduction improved spatial overheads in topological quantum | ||
| error correction codes such as surface codes by replacing continuous code operations |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| error correction codes such as surface codes by replacing continuous code operations | |
| error correction codes, such as surface codes, by replacing continuous code operations |
| enable parity measurements of arbitrary Pauli operators, which unlock universal fault | ||
| tolerant quantum computing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| enable parity measurements of arbitrary Pauli operators, which unlock universal fault | |
| tolerant quantum computing. | |
| enable parity measurements of arbitrary Pauli operators, which unlock universal fault-tolerant quantum computing. |
| Surface code quantum computing | ||
| ------------------------------ | ||
|
|
||
| Topological quantum error correction codes like the surface code [#surfacecode]_ protect quantum information stored in logical qubits by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Topological quantum error correction codes like the surface code [#surfacecode]_ protect quantum information stored in logical qubits by | |
| Topological quantum error correction codes, like the surface code [#surfacecode]_, protect quantum information stored in logical qubits by |
| on the four data qubits of the corners. Similarly, Z stabilizers are measured on white surfaces. | ||
| These stabilizer measurements are not performed directly on the data qubits, but via another kind of qubit that sits at the center of each square surface | ||
| as well as the center of each arch (shown below). | ||
| These extra qubits are sometimes called measurement qubits or syndrome qubits and the measurement is performed by entangling the data qubits with the syndrome qubit and measuring it (see Fig. 1 in [#surfacecode]_). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
at first, we are using syndrome qubits in plural, but then the last sentences uses it in singular which seems less general. But I don't know, just asking.
| The commutation can be seen from the fact | ||
| that the logical operator only ever overlaps with an even multiple of X or Z operators, and thus commutes with any other stabilizer. | ||
|
|
||
| We also note that logical :math:`Y_L` measurement is a topic on its own. In principle, one could measure :math:`Y_L` by simultaneously measuring the logical |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| We also note that logical :math:`Y_L` measurement is a topic on its own. In principle, one could measure :math:`Y_L` by simultaneously measuring the logical | |
| We also note that the logical :math:`Y_L` measurement is a topic on its own. In principle, one could measure :math:`Y_L` by simultaneously measuring the logical |
| we need to assign it to one of the two logical :math:`Z_L` operators, | ||
| on top of the product of the sign of the original two :math:`Z_L` operators we originally started from. | ||
|
|
||
| Measuring :math:`Z_L \otimes Z_L` works in the same fashion, but with reversed roles: We connect the Z edges with each other, initialize in :math:`|+\rangle` to merge and measure in :math:`X` to split again: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Measuring :math:`Z_L \otimes Z_L` works in the same fashion, but with reversed roles: We connect the Z edges with each other, initialize in :math:`|+\rangle` to merge and measure in :math:`X` to split again: | |
| Measuring :math:`Z_L \otimes Z_L` works in the same fashion, but with reversed roles: We connect the Z edges with each other, initialize in :math:`|+\rangle` to merge, and measure in :math:`X` to split again: |
|
|
||
| At this point we can measure arbitrary :math:`X_L` and :math:`Z_L` Pauli product measurements. The last missing ingredient for universality is measuring :math:`Y_L` operators. | ||
|
|
||
| Introducing discontinuous operations on the surface code does not exclude that we can still use the continuous transformations of the code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Introducing discontinuous operations on the surface code does not exclude that we can still use the continuous transformations of the code. | |
| Introducing discontinuous operations on the surface code does not exclude the usage of continuous transformations of the code. |
| :width: 70% | ||
| :target: javascript:void(0) | ||
|
|
||
| Here we show an extended single qubit patch and three example re-orientations of the type of edges. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Here we show an extended single qubit patch and three example re-orientations of the type of edges. | |
| Here we show an extended single-qubit patch and three example re-orientations of the type of edges. |
| :target: javascript:void(0) | ||
|
|
||
| Here we show an extended single qubit patch and three example re-orientations of the type of edges. | ||
| The smaller images are guides to the eye to indicate the settings, with X edges as solid lines and Z edges as dotted lines (i.e. the same as the logical measurements moved to the edges). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| The smaller images are guides to the eye to indicate the settings, with X edges as solid lines and Z edges as dotted lines (i.e. the same as the logical measurements moved to the edges). | |
| The smaller images are guides to the eye to indicate the settings, with X edges as solid lines and Z edges as dashed lines (i.e. the same as the logical measurements moved to the edges). |
design brief