Create `qml.PauliError`
See original GitHub issueFeature details
As requested in #971, we would like to add a channel for Pauli errors.
See the following references:
See the addition of a Reset error as an example.
Implementation
List of tasks for completion:
A.
- Add a new
qml.PauliErrorclass topennylane/ops/channel.pythat inherits fromChanneland defines the Kraus operators. - Add an entry to the
doc/introduction/operations.rstfile for the new operation - Add tests for the new channel in the
tests/ops/test_channel_ops.pyfile.
B.
- Add support for
qml.PauliErrorin thedefault.mixeddevice by adding it to the list of supported operations. - Add tests for checking the Kraus operators of the channel and for applying the new channel using
default.mixed.
How important would you say this feature is?
1: Not important. Would be nice to have.
Additional information
No response
Issue Analytics
- State:
- Created 2 years ago
- Comments:9 (9 by maintainers)
Top Results From Across the Web
qml.PauliError — PennyLane 0.27.0 documentation
Pauli operator error channel for an arbitrary number of qubits. This channel is modelled by the following Kraus matrices: K0=√ ...
Read more >QML module not found error - qt creator
The project uses qmake. I have tried using qmlplugindump.exe to generate a qmltypes file for my main qml view container file, but qmlplugindump....
Read more >Information-Theoretic Bounds on Quantum Advantage in ...
We study the performance of classical and quantum machine learning (ML) models in predicting outcomes of physical experiments.
Read more >PennyLane
Improved quantum natural gradient Use qml.metric_tensor function to compute the full ... qml.Barrier - qml.QubitDensityMatrix - qml.PauliError - qml.
Read more >QuantumNAT: Quantum Noise-Aware Training with ...
Pauli error. • Readout error ... Benchmarks. • Different gate set design spaces ... Provide tutorials, videos and example projects of QML and...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found

@MoritzWillmann sure! I’m not working on it.
Hi @MoritzWillmann, awesome, I’ll have a go at addressing them. 🙂 Note that in general we have some flexibility here.
What I had in mind there is that we could specify a Pauli string, the wires the error acts on and the corresponding probability , e.g., “XYZ”,
wires=[0,1,2]andp=0.1for example.In such a case, with probability
0.1we’ll apply the followingand with a probability of
0.9the state is reserved.One step further, we could define 3 lists:
For example,
qml.PauliError(["XX","YY","ZZ"],[ [0,1], [1,2], [2,0]],[0.1, 0.2, 0.3]), such that0.1we’ll applywith probability
0.2we’ll applywith probability
0.3we’ll apply the followingand with a probability 0.4 the state is preserved.
Constructing the Kraus matrices will likely be computationally heavy when we have many wires.
We could then express your example as:
qml.PauliError("X", [0], p)which has the same syntax as a bitflip essentially or;qml.PauliError("XI", [0,1], p), provided that we allow identities in the Pauli string.Not quite sure about this one, what would “choose which Pauli Error channel is applied” mean?