NoiseLearnerOptions
class NoiseLearnerOptions(_VERSION=2, max_execution_time=Unset, environment=<factory>, simulator=<factory>, max_layers_to_learn=Unset, shots_per_randomization=Unset, num_randomizations=Unset, layer_pair_depths=Unset, twirling_strategy=Unset, experimental=Unset)
Basen: OptionsV2
Optionen für NoiseLearner.
Die Gesamtzahl der einzelnen Schaltungen, die zum Erlernen des Rauschens einer einzelnen Schicht eingesetzt werden, hängt ausschließlich von layer_pair_depths und ab num_randomizations. Wenn zum Beispiel layer_pair_depths sechs Tiefen enthält und num_randomizations auf 32 gesetzt ist, führt die Rauschlernstufe insgesamt 6 * 9 einzigartige Schaltungen pro Schicht aus, jede mit 32 Zufälligkeiten (bei shots_per_randomization jeder).
Die obige Zahl 9 ist die Anzahl der einzelnen Schaltungen, die implementiert werden müssen, um das Rauschen für alle Zwei-Qubit-Subsysteme in der gegebenen Schicht durch lokale Messungen zu lernen. Um das Rauschen für ein einziges dieser Teilsysteme zu lernen, müssen alle 16 Zwei-Qubit-Paulis dieses Teilsystems gemessen werden. Wenn man die Kommutierungsbeziehungen nutzt, um mehr als eine dieser Paulis (z. B. XI, IX und XX) mit einer einzigen Schaltung zu messen, ist es möglich, alle diese 16 Paulis zu messen, indem man nur 9 Schaltungen implementiert. Die optimale Parallelisierung dieser Messaufgaben ermöglicht dann die Messung der 16 Paulis für alle Zwei-Qubit-Subsysteme der Schicht mit nur 9 Schaltungen. Weitere Einzelheiten in Ref. [1].
Referenzen
- E. van den Berg, Z. Minev, A. Kandala, K. Temme, Probabilistic error cancellation with sparse Pauli-Lindblad models on noisy quantum processors, Nature Physics Band 19, Seiten 1116-1121 (2023). arXiv:2201.09866 [quant-ph]
Attribute
Parameter
- _VERSION (int)
- max_execution_time (UnsetType | int)
- environment (EnvironmentOptions | Dict)
- simulator (SimulatorOptions | Dict)
- max_layers_to_learn (UnsetType | int | None)
- shots_per_randomization (UnsetType | int)
- num_randomizations (UnsetType | int)
- layer_pair_depths (UnsetType | list[int])
- twirling_strategy (UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all'])
- experimental (UnsetType | dict)
environment
Typ: EnvironmentOptions | Dict
Standardwert: FieldInfo(annotation=NoneType, required=False, default_factory=EnvironmentOptions)
experimental
Typ: UnsetType | dict
Standardwert: Unset
Experimentelle Optionen.
Diese Optionen können ohne Vorankündigung geändert werden, und die Stabilität wird nicht garantiert.
layer_pair_depths
Typ: UnsetType | list[int]
Standardwert: Unset
Die Schaltungstiefe (gemessen in Anzahl der Paare), die in den Lernexperimenten verwendet werden soll.
Wir verwenden Paare als Einheit, weil wir die order-2 Natur unserer Verschränkungsgatter bei der Implementierung des Rauschlernens ausnutzen. Ein Wert von 3 entspricht beispielsweise 6 Wiederholungen der betreffenden Schicht. Voreinstellung: (0, 1, 2, 4, 16, 32).
max_execution_time
Typ: UnsetType | int
Standardwert: Unset
max_layers_to_learn
Typ: UnsetType | int | None
Standardwert: Unset
Die maximale Anzahl der zu lernenden Schichten.
Der Wert None zeigt an, dass es keinen Grenzwert gibt. Wenn mehr einzelne Schichten vorhanden sind, werden einige Schichten nicht gelernt oder abgeschwächt. Die gelernten Schichten werden nach der Anzahl ihres Auftretens priorisiert und bei gleichmäßig auftretenden Schichten zusätzlich nach der Anzahl der Zwei-Qubit-Gatter in der Schicht sortiert. Voreinstellung: 4.
num_randomizations
Typ: UnsetType | int
Standardwert: Unset
Die Anzahl der Zufallsschaltungen, die pro Lernkreiskonfiguration verwendet werden sollen.
Eine Konfiguration ist eine Messbasis und eine Tiefeneinstellung. Wenn Ihr Experiment beispielsweise sechs Tiefen hat, führt die Einstellung dieses Wertes auf 32 dazu, dass insgesamt 32 * 9 * 6 Schaltungen ausgeführt werden müssen (wobei 9 die Anzahl der Schaltungen ist, die implementiert werden müssen, um alle erforderlichen Observablen zu messen, siehe den Hinweis im Docstring für NoiseLearnerOptions für Details zum Modus), bei shots_per_randomization jeder.
shots_per_randomization
Typ: UnsetType | int
Standardwert: Unset
Die Gesamtzahl der Schüsse, die pro zufälligem Lernkreis verwendet werden sollen.
Eine Lernschaltung ist eine Zufallsschaltung mit einer bestimmten Lerntiefe und einer bestimmten Messbasis, die auf einer Hardware ausgeführt wird. Voreinstellung: 128.
simulator
Typ: SimulatorOptions | Dict
Standardwert: FieldInfo(annotation=NoneType, required=False, default_factory=SimulatorOptions)
twirling_strategy
Typ: UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']
Standardwert: Unset
Die Twirling-Strategie in den identifizierten Schichten von Zwei-Qubit-Twirling-Gates.
Zulässige Werte:
"active": In jeder einzelnen verwirbelten Schicht werden nur die Befehlsqubits verwirbelt.
"active-circuit": in jeder einzelnen gezwirbelten Schicht, die Vereinigung aller Anweisungenqubits in der Schaltung verwirbelt werden.
"active-accum"in jeder einzelnen gewirbelten Schicht, die Vereinigung der Instruktionsqubitsim Kreislauf bis zur aktuell gezwirbelten Schicht gezwirbelt werden.
"all": In jeder einzelnen verwirbelten Schicht werden alle Qubits im Eingangskreis verwirbelt.
Barrieren und Verzögerungsanweisungen werden bei der Bestimmung, ob ein Qubit aktiv ist, ignoriert.
Voreinstellung: "aktiv-accum".