qiskit-documentation/docs/api/qiskit/0.42/qiskit.algorithms.state_fid...

99 lines
4.9 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: ComputeUncompute
description: API reference for qiskit.algorithms.state_fidelities.ComputeUncompute
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit.algorithms.state_fidelities.ComputeUncompute
---
# ComputeUncompute
<Class id="qiskit.algorithms.state_fidelities.ComputeUncompute" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.23/qiskit/algorithms/state_fidelities/compute_uncompute.py" signature="ComputeUncompute(sampler, options=None)" modifiers="class">
Bases: [`qiskit.algorithms.state_fidelities.base_state_fidelity.BaseStateFidelity`](qiskit.algorithms.state_fidelities.BaseStateFidelity "qiskit.algorithms.state_fidelities.base_state_fidelity.BaseStateFidelity")
This class leverages the sampler primitive to calculate the state fidelity of two quantum circuits following the compute-uncompute method (see \[1] for further reference). The fidelity can be defined as the state overlap.
$$
|\langle\psi(x)|\phi(y)\rangle|^2
$$
where $x$ and $y$ are optional parametrizations of the states $\psi$ and $\phi$ prepared by the circuits `circuit_1` and `circuit_2`, respectively.
**Reference:** \[1] Havlíček, V., Córcoles, A. D., Temme, K., Harrow, A. W., Kandala, A., Chow, J. M., & Gambetta, J. M. (2019). Supervised learning with quantum-enhanced feature spaces. Nature, 567(7747), 209-212. [arXiv:1804.11326v2 \[quant-ph\]](https://arxiv.org/pdf/1804.11326.pdf)
**Parameters**
* **sampler** ([*BaseSampler*](qiskit.primitives.BaseSampler "qiskit.primitives.BaseSampler")) Sampler primitive instance.
* **options** ([*Options*](qiskit.providers.Options "qiskit.providers.Options") *| None*) Primitive backend runtime options used for circuit execution. The order of priority is: options in `run` method > fidelitys default options > primitives default setting. Higher priority setting overrides lower priority setting.
**Raises**
**ValueError** If the sampler is not an instance of `BaseSampler`.
## Methods
### create\_fidelity\_circuit
<Function id="qiskit.algorithms.state_fidelities.ComputeUncompute.create_fidelity_circuit" signature="ComputeUncompute.create_fidelity_circuit(circuit_1, circuit_2)">
Combines `circuit_1` and `circuit_2` to create the fidelity circuit following the compute-uncompute method.
**Parameters**
* **circuit\_1** ([`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit")) (Parametrized) quantum circuit.
* **circuit\_2** ([`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit")) (Parametrized) quantum circuit.
**Return type**
[`QuantumCircuit`](qiskit.circuit.QuantumCircuit "qiskit.circuit.quantumcircuit.QuantumCircuit")
**Returns**
The fidelity quantum circuit corresponding to circuit\_1 and circuit\_2.
</Function>
### run
<Function id="qiskit.algorithms.state_fidelities.ComputeUncompute.run" signature="ComputeUncompute.run(circuits_1, circuits_2, values_1=None, values_2=None, **options)">
Runs asynchronously the state overlap (fidelity) calculation between two (parametrized) circuits (first and second) for a specific set of parameter values (first and second). This calculation depends on the particular fidelity method implementation.
**Parameters**
* **circuits\_1** (Parametrized) quantum circuits preparing $|\psi\rangle$.
* **circuits\_2** (Parametrized) quantum circuits preparing $|\phi\rangle$.
* **values\_1** Numerical parameters to be bound to the first set of circuits.
* **values\_2** Numerical parameters to be bound to the second set of circuits.
* **options** Primitive backend runtime options used for circuit execution. The order of priority is: options in `run` method > fidelitys default options > primitives default setting. Higher priority setting overrides lower priority setting.
**Returns**
Primitive job for the fidelity calculation. The jobs result is an instance of `StateFidelityResult`.
</Function>
### update\_default\_options
<Function id="qiskit.algorithms.state_fidelities.ComputeUncompute.update_default_options" signature="ComputeUncompute.update_default_options(**options)">
Update the fidelitys default options setting.
**Parameters**
**\*\*options** The fields to update the default options.
</Function>
## Attributes
### options
<Attribute id="qiskit.algorithms.state_fidelities.ComputeUncompute.options">
Return the union of estimator options setting and fidelity default options, where, if the same field is set in both, the fidelitys default options override the primitives default setting.
**Return type**
[`Options`](qiskit.providers.Options "qiskit.providers.options.Options")
**Returns**
The fidelity default + estimator options.
</Attribute>
</Class>