CliffordUnitarySynthesis
class qiskit.transpiler.passes.synthesis.clifford_unitary_synth_plugin.CliffordUnitarySynthesis
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).