Skip to main content
IBM Quantum Platform

CliffordUnitarySynthesis

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

GitHub

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).


Metodi

run

run(unitary, **options)

GitHub

Esegue il plugin CliffordUnitarySynthesis sull'unità data.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.