Skip to main content
IBM Quantum Platform

CliffordUnitarySynthesis

class qiskit.transpiler.passes.synthesis.clifford_unitary_synth_plugin.CliffordUnitarySynthesis

GitHub

Bases : UnitarySynthesisPlugin

Un plugin de synthèse unitaire de Clifford.

Le plugin est invoqué par la passe UnitarySynthesis transpiler pass lorsque le paramètre method est fixé à "clifford".

Le plugin vérifie si l'unité donnée peut être représentée par un Clifford, auquel cas il renvoie un circuit implémentant cette unité et constitué uniquement de portes de Clifford.

En outre, le paramètre plugin_config de UnitarySynthesis peut être utilisé pour transmettre les paramètres suivants spécifiques au plugin :

  • min_qubits : le nombre minimal de qubits à prendre en compte (la valeur par défaut est 1).
  • max_qubits : le nombre maximum de qubits à prendre en compte (la valeur par défaut est 3).

Attributs

max_qubits

min_qubits

supported_bases

supports_basis_gates

supports_coupling_map

supports_gate_errors

supports_gate_errors_by_qubit

Retourne si le plugin supporte la prise en charge de gate_errors_by_qubit

Elle diffère de supports_gate_errors/gate_errors par l'utilisation d'une vue différente des mêmes données. Au lieu d'une clé par nom de porte, cette clé est une clé par qubit et utilise des instances pour représenter les portes (au lieu des noms de portes) Gate pour représenter les portes (au lieu des noms de portes).

gate_errors_by_qubit sera un dictionnaire sous la forme de {(qubits,): [Gate, error]}. Par exemple :

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

Notez que ce dictionnaire peut ne pas être complet ou être vide, car il dépend du fait que le backend cible signale les erreurs de porte sur chaque porte pour chaque qubit. Les taux d'erreur de porte indiqués à l'adresse gate_errors sont fournis par l'objet du dispositif cible Backend et la signification exacte peut varier en fonction du backend.

La valeur par défaut est False

supports_gate_lengths

supports_gate_lengths_by_qubit

Retourne si le plugin supporte la prise en charge de gate_lengths_by_qubit

Elle diffère de supports_gate_lengths/gate_lengths par l'utilisation d'une vue différente des mêmes données. Au lieu d'une clé par nom de porte, il s'agit d'une clé par qubit et les instances sont utilisées pour représenter les portes (au lieu des noms de portes) Gate pour représenter les portes (au lieu des noms de portes)

gate_lengths_by_qubit sera un dictionnaire sous la forme de {(qubits,): [Gate, length]}. Par exemple :

{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}

où la valeur length est exprimée en secondes.

Notez que ce dictionnaire peut ne pas être complet ou être vide, car il dépend de la façon dont le backend cible indique les longueurs de porte pour chaque porte et chaque qubit.

La valeur par défaut est False

supports_natural_direction

supports_pulse_optimize

supports_target

Si le plugin prend en charge l'option target

target sera un objet Target représentant l'appareil cible pour la sortie de la passe de synthèse.

Par défaut, il s'agit de False puisque l'interface du plugin est antérieure à la classe Target . Si un plugin renvoie True pour cet attribut, on s'attend à ce que le plugin utilise le paramètre Target au lieu des valeurs transmises si l'un des paramètres supports_gate_lengths, supports_gate_errors, supports_coupling_map, et supports_basis_gates est défini (bien que, dans l'idéal, tous ces paramètres devraient contenir des informations en double).


Méthodes

run

run(unitary, **options)

GitHub

Exécute le plugin CliffordUnitarySynthesis sur l'unité donnée.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.