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
|
Qottmann
left a comment
There was a problem hiding this comment.
Very nice demo and overview of the qLDPC landscape, @obliviateandsurrender !
My main concerns are about being able to understanding the topics in a self-consistent way. Because the demo is covering a wide range of topics, it naturally cannot go into full details. I think sometimes some examples could do wonders though, so suggested to add some here and there.
Qottmann
left a comment
There was a problem hiding this comment.
I'm a big fan of this demo, thanks so much @obliviateandsurrender !
Went over the demo again and left some comments and remaining questions.
I'm a bit confused about the part where you first introduce the CSS code, which kinda looks like a hypergraph product code (but I guess its not?)
would be good to clarify if and how they are related and make clear the distinctions
Once addressed, I think this is good for publication
| # inherently fault-tolerant. For example a transversal :math:`T^\dagger` gate in the | ||
| # :math:`[[15, 1, 3]]` quantum `Reed-Muller code <https://errorcorrectionzoo.org/c/stab_15_1_3>`_ | ||
| # corresponds to applying the :class:`~.pennylane.T` gate on all physical qubits, i.e., | ||
| # :math:`T^\dagger_L = T^{\otimes 15}`. |
There was a problem hiding this comment.
why the dagger only on the left hand side?
There was a problem hiding this comment.
|
I think one crucial point to show / highlight is how the QLDPC codes we construct assume a non-local connectivity. Somehow visualizing this with a graph would be a super nice addition imo (could be done just with an image, or with code) |
daniela-angulo
left a comment
There was a problem hiding this comment.
Great demo!
The structure flows really well.
I left comments.
Qottmann
left a comment
There was a problem hiding this comment.
great demo @obliviateandsurrender !
just some small things left to polish, otherwise seems good to go as my major concerns are all lifted :)
| moving beyond strict nearest-neighbor constraints becomes crucial. Quantum low-density parity-check | ||
| (qLDPC) codes are particularly well-suited for this, as they can leverage high-connectivity between | ||
| qubits to drastically reduce qubit overheads, making them preferred codes of choice for the | ||
| photonic and neutral-atom platforms that offer such qubit connectivity. In this demo, we will cover |
There was a problem hiding this comment.
this still sounds like it is not feasible for superconducting platforms, but thats not the case, they just have to do some extra work
There was a problem hiding this comment.
Changing it to hardware platforms to keep it neutral then.
daniela-angulo
left a comment
There was a problem hiding this comment.
Just a few comments to polish minor things.
This is great work! very informative demo.
| to have the following desirable properties: | ||
|
|
||
| 1. A high encoding rate :math:`R = k / n`. | ||
| 2. Local and low-weight parity checks (= measurements for error detection). |
There was a problem hiding this comment.
is this equal sign a typo?
| # For a CSS code on :math:`n` qubits with :math:`m_1` X-checks and :math:`m_2` Z-checks, each | ||
| # set is naturally represented as a classical parity-check matrix, :math:`H_X` and :math:`H_Z` | ||
| # respectively. Each defines a bipartite Tanner graph where check nodes connect to the qubit | ||
| # nodes they act on. Since both graphs share the same :math:`n` qubit nodes, they combine into |
There was a problem hiding this comment.
| # nodes they act on. Since both graphs share the same :math:`n` qubit nodes, they combine into | |
| # nodes they act on. Since both graphs share the same :math:`n` qubit nodes, they are combined into |
| # logical qubits with distance :math:`d=\min(d_1,d_2,d_1^T,d_2^T)`. This means that | ||
| # the HGP codes achieve a constant encoding rate :math:`R=\Theta(1)`, but their distance | ||
| # grows only as :math:`d=\mathcal{O}(\sqrt{n})`, matching the surface code scaling. Note | ||
| # that, the distance computed here is the classical distance, which is not the same as |
There was a problem hiding this comment.
| # that, the distance computed here is the classical distance, which is not the same as | |
| # that the distance computed here is the classical distance, which is not the same as |
| # | ||
| # To build truly scalable quantum computation devices, we need to at least achieve a linear | ||
| # distance scaling, i.e., :math:`d=\Theta(n)`. In recent years, there has been some progress | ||
| # in towards this goal, primarily through a series of breakthroughs, some of which are: |
There was a problem hiding this comment.
| # in towards this goal, primarily through a series of breakthroughs, some of which are: | |
| # towards this goal, primarily through a series of breakthroughs, some of which are: |
| # like detectives passing *messages* back and forth. A variable node sends a confidence level | ||
| # message, *"I am 84% sure that I have an error"*. The check node looks at the notes from all | ||
| # connected qubits, applies the parity rule, and replies *"Based on the group's evidence, adjust | ||
| # your confidence to 96%"*. Mathematically, these notes are Log-Likelihood Ratios (LLRs), |
There was a problem hiding this comment.
| # your confidence to 96%"*. Mathematically, these notes are Log-Likelihood Ratios (LLRs), | |
| # your confidence to 96%"*. Mathematically, these messages are Log-Likelihood Ratios (LLRs), |
| ###################################################################### | ||
| # In particular, even though the decoder did not perfectly undo the error, | ||
| # the logical state of the qubit is perfectly preserved because any residual | ||
| # that is a stabilizer acts as identity on the codespace. |
There was a problem hiding this comment.
| # that is a stabilizer acts as identity on the codespace. | |
| # that is a stabilizer acts as the identity on the codespace. |
| # for a given code by testing if (i) it preserves its *codespace*, i.e., the subspace | ||
| # stabilized by all stabilizer generators, and (ii) maps logical operators to valid | ||
| # logical operators. For example, we can check whether the :class:`~.pennylane.SWAP` gate is | ||
| # transversal for the previously constructed Toric code by first verifying the condition (i). |
There was a problem hiding this comment.
| # transversal for the previously constructed Toric code by first verifying the condition (i). | |
| # transversal for the previously constructed Toric code by first verifying condition (i). |
Title: Quantum low-density parity-check (qLDPC) codes for quantum error correction
Summary: Explain the motivation, construction and decoding of various types of qLDPC codes.
Relevant references: [Will add]
Possible Drawbacks: N/A
Related GitHub Issues:
If you are writing a demonstration, please answer these questions to facilitate the marketing process.
GOALS — Why are we working on this now?
Eg. Promote a new PL feature or show a PL implementation of a recent paper.
AUDIENCE — Who is this for?
Eg. Chemistry researchers, PL educators, and beginners in quantum computing.
KEYWORDS — What words should be included in the marketing post?
Which of the following types of documentation is most similar to your file?
(more details here)