Skip to content
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

PEC optimization: Macro Gate PEC #2297

Open
natestemen opened this issue Apr 16, 2024 · 0 comments
Open

PEC optimization: Macro Gate PEC #2297

natestemen opened this issue Apr 16, 2024 · 0 comments
Labels
feature-request A request for a feature, tool, or workflow in Mitiq. needs/agreed-design Needs a plan of action that is agreed upon to complete. pec Probabilistic error cancellation.

Comments

@natestemen
Copy link
Member

Motivation

Probabilistic Error Cancellation (PEC) is a promising error mitigation technique which promises an ubiased estimator of expectation values. Despite its popularity and relative success, it suffers from a large calibration overhead required in order to create representations of ideal gates $G$ in terms of implementable operations $\{O_i\}$.

$$G = \sum_{i}\eta_i O_i \tag{1}$$

The overhead required for PEC being proportional to $\gamma = \sum_i |\eta_i|$.

Reducing the calibration overhead for this technique will allow more people to use the technique on devices where their credits/$ are limited. The goal here is to make PEC easier, and less expensive to use.

Idea

Macro Gate PEC (MGPEC) is a technique introduced by @William324-Hsieh and colleagues in the paper Small Sampling Overhead Error Mitigation for Quantum Circuits1. The idea is to lower the sampling overhead of PEC by decomposing groups of gates instead of every individual gate as is typically done in PEC. An example is shown in Figure 6 of the original reference, duplicated here.

MGPEC example demonstrating the expansion of ZYX instead of X, Y, and Z seperately.

By grouping gates we are able to reduce the number of gates $G$ we need to build representations for, and hence reduce the total overhead $\gamma$.

Implementation

Currently, Mitiq requires that users build a sequence of OperationRepresentation objects with which to pass to mitiq.pec.execute_with_pec. The OperationRepresentation class is already equipped to be able to handle representing multiple gates in a single representation. Hence, what is needed to add this optimization to Mitiq is helper methods to take a circuit, and do the gate grouping. The paper puts forth two methods:

  1. Greedy merging algorithm
  2. Simulated annealing algorithm

Once a circuit is grouped, we will need to make sure we can call our utility functions such as represent_operation_with_global_depolarizing_noise from the mitiq.pec.representations module.


@William324-Hsieh: as the author of this technique, please correct me if I have anything incorrect here. As we continue to flush out what tools would be useful to build to implement this optimization, we might find that an RFC would be helpful. As it stands now I think it might not be needed since we are just working with representations.

Footnotes

  1. Publisher link: https://ieeexplore.ieee.org/document/10304329

@natestemen natestemen added pec Probabilistic error cancellation. feature-request A request for a feature, tool, or workflow in Mitiq. needs/agreed-design Needs a plan of action that is agreed upon to complete. labels Apr 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request A request for a feature, tool, or workflow in Mitiq. needs/agreed-design Needs a plan of action that is agreed upon to complete. pec Probabilistic error cancellation.
Projects
None yet
Development

No branches or pull requests

1 participant