CliffordUnitarySynthesis
class qiskit.transpiler.passes.synthesis.clifford_unitary_synth_plugin.CliffordUnitarySynthesis
Basi: UnitarySynthesisPlugin
Un plugin per la sintesi unitaria di Clifford.
Il plugin viene invocato dal passaggio UnitarySynthesis quando il parametro method è impostato su "clifford".
Il plugin verifica se l'unitario dato può essere rappresentato da un Clifford, nel qual caso restituisce un circuito che implementa questo unitario e che consiste solo di porte Clifford.
Inoltre, il parametro plugin_config di UnitarySynthesis può essere usato per passare i seguenti parametri specifici del plugin:
- min_qubits: il numero minimo di qubit da considerare (il valore predefinito è 1).
- max_qubit: il numero massimo di qubit da considerare (il valore predefinito è 3).
Attributi
max_qubits
min_qubits
supported_bases
supports_basis_gates
supports_coupling_map
supports_gate_errors
supports_gate_errors_by_qubit
Restituisce se il plugin supporta l'acquisizione di gate_errors_by_qubit
Si differenzia da supports_gate_errors/gate_errors per l'utilizzo di una visione diversa degli stessi dati. Invece di essere codificato in base al nome del gate, è codificato in base al qubit e utilizza le istanze per rappresentare i gate (invece dei nomi dei gate) Gate per rappresentare i gate (invece dei nomi dei gate).
gate_errors_by_qubit sarà un dizionario nella forma di {(qubits,): [Gate, error]}. Ad esempio:
{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}Si noti che questo dizionario potrebbe non essere completo o essere vuoto, poiché dipende dal backend di destinazione che riporta gli errori di gate su ogni gate per ogni qubit. I tassi di errore del gate riportati in gate_errors sono forniti dall'oggetto Backend del dispositivo di destinazione e il significato esatto potrebbe essere diverso a seconda del backend.
L'impostazione predefinita è False
supports_gate_lengths
supports_gate_lengths_by_qubit
Restituisce se il plugin supporta l'acquisizione di gate_lengths_by_qubit
Si differenzia da supports_gate_lengths/gate_lengths per l'utilizzo di una visione diversa degli stessi dati. Invece di essere codificato in base al nome del gate, è codificato in base al qubit e utilizza le istanze per rappresentare i gate (invece dei nomi dei gate) Gate per rappresentare i gate (invece dei nomi dei gate)
gate_lengths_by_qubit sarà un dizionario nella forma di {(qubits,): [Gate, length]}. Ad esempio:
{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}dove il valore length è in unità di secondi.
Si noti che questo dizionario potrebbe non essere completo o essere vuoto, poiché dipende dal backend di destinazione che riporta le lunghezze dei gate su ogni gate per ogni qubit.
L'impostazione predefinita è False
supports_natural_direction
supports_pulse_optimize
supports_target
Il plugin supporta o meno l'opzione target ?
target sarà un Target che rappresenta il dispositivo di destinazione per l'uscita del passaggio di sintesi.
Per impostazione predefinita, questo sarà False , poiché l'interfaccia del plugin è precedente alla classe Target della classe. Se un plugin restituisce True per questo attributo, si prevede che il plugin utilizzi il parametro Target invece dei valori passati se uno qualsiasi di supports_gate_lengths, supports_gate_errors, supports_coupling_map e supports_basis_gates è impostato (anche se idealmente tutti questi parametri dovrebbero contenere informazioni duplicate).