qiskit-documentation/docs/api/qiskit-ibm-runtime/dev/qiskit_ibm_runtime.options....

82 lines
4.1 KiB
Plaintext

---
title: TwirlingOptions
description: API reference for qiskit_ibm_runtime.options.TwirlingOptions
in_page_toc_min_heading_level: 1
python_api_type: class
python_api_name: qiskit_ibm_runtime.options.TwirlingOptions
---
# TwirlingOptions
<Class id="qiskit_ibm_runtime.options.TwirlingOptions" isDedicatedPage={true} github="https://github.com/Qiskit/qiskit-ibm-runtime/tree/main/qiskit_ibm_runtime/options/twirling_options.py#L28-L99" signature="TwirlingOptions(*args, **kwargs)" modifiers="class">
Twirling options.
## Attributes
### enable\_gates
<Attribute id="qiskit_ibm_runtime.options.TwirlingOptions.enable_gates" attributeTypeHint="UnsetType | bool" attributeValue="Unset">
Whether to apply 2-qubit Clifford gate twirling. Default: False.
</Attribute>
### enable\_measure
<Attribute id="qiskit_ibm_runtime.options.TwirlingOptions.enable_measure" attributeTypeHint="UnsetType | bool" attributeValue="Unset">
Whether to enable twirling of measurements.
Twirling will only be applied to those measurement registers not involved within a conditional logic. Default: True for Estimator, false for Sampler.
</Attribute>
### num\_randomizations
<Attribute id="qiskit_ibm_runtime.options.TwirlingOptions.num_randomizations" attributeTypeHint="UnsetType | int | Literal['auto']" attributeValue="Unset">
The number of random samples to use when twirling or peforming sampled mitigation.
If `num_randomizations` is “auto”, for every pub executed `shots` times:
> * If `shots_per_randomization` is also “auto”, `shots_per_randomization` is set first as described below, then `num_randomizations` is set as `ceil(shots/shots_per_randomization)`, where `ceil` is the ceiling function.
> * Otherwise, the value is set to `ceil(shots/shots_per_randomization)`.
>
> Default: “auto”.
<Admonition title="Note" type="note">
The `shots` value specified in a PUB or in the `run()` method is considered part of the primitive execution interface and therefore is always obeyed. `default_shots`, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of `num_randomizations` and `shots_per_randomization` takes precedence over `default_shots`.
</Admonition>
</Attribute>
### shots\_per\_randomization
<Attribute id="qiskit_ibm_runtime.options.TwirlingOptions.shots_per_randomization" attributeTypeHint="UnsetType | int | Literal['auto']" attributeValue="Unset">
The number of shots to run for each random sample.
If “auto”, for every pub executed `shots` times:
> * If `num_randomizations` is also “auto”, the value is set to `64` for PEC mitigation or to `max(64, ceil(shots / 32))` in all other cases, where `ceil` is the ceiling function.
> * Otherwise, the value is set to `ceil(shots/num_randomizations)`.
>
> Default: “auto”.
<Admonition title="Note" type="note">
The `shots` value specified in a PUB or in the `run()` method is considered part of the primitive execution interface and therefore is always obeyed. `default_shots`, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of `num_randomizations` and `shots_per_randomization` takes precedence over `default_shots`.
</Admonition>
</Attribute>
### strategy
<Attribute id="qiskit_ibm_runtime.options.TwirlingOptions.strategy" attributeTypeHint="UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']" attributeValue="Unset">
Specify the strategy of twirling qubits in identified layers of 2-qubit twirled gates.
Allowed values are:
> * If `"active"` only the instruction qubits in each individual twirled layer will be twirled.
> * If `"active-circuit"` the union of all instruction qubits in the circuit will be twirled in each twirled layer.
> * If `"active-accum"` the union of instructions qubits in the circuit up to the current twirled layer will be twirled in each individual twirled layer.
> * If `"all"` all qubits in the input circuit will be twirled in each twirled layer.
>
> Default: “active-accum”.
</Attribute>
## Methods
</Class>