Skip to main content
IBM Quantum Platform

CliffordUnitarySynthesis

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

GitHub

Bases: UnitarySynthesisPlugin

Um plug-in de síntese unitária de Clifford.

O plug-in é chamado pela passagem UnitarySynthesis transpiler pass quando o parâmetro method é definido como "clifford".

O plug-in verifica se a unidade fornecida pode ser representada por um Clifford e, nesse caso, retorna um circuito que implementa essa unidade e consiste apenas em portas Clifford.

Além disso, o parâmetro plugin_config de UnitarySynthesis pode ser usado para passar os seguintes parâmetros específicos do plug-in:

  • min_qubits: o número mínimo de qubits a ser considerado (o valor padrão é 1).
  • max_qubits: o número máximo de qubits a ser considerado (o valor padrão é 3).

Atributos

max_qubits

min_qubits

supported_bases

supports_basis_gates

supports_coupling_map

supports_gate_errors

supports_gate_errors_by_qubit

Retorna se o plug-in é compatível com o uso de gate_errors_by_qubit

Isso difere de supports_gate_errors/gate_errors por usar uma visão diferente dos mesmos dados. Em vez de ser codificado pelo nome da porta, ele é codificado por qubit e usa Gate para representar as portas (em vez dos nomes das portas).

gate_errors_by_qubit será um dicionário na forma de {(qubits,): [Gate, error]}. Por exemplo:

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

Observe que esse dicionário pode não estar completo ou pode estar vazio, pois depende de o backend de destino relatar erros de porta em cada porta para cada qubit. As taxas de erro de porta informadas em gate_errors são fornecidas pelo objeto Backend do dispositivo de destino e o significado exato pode ser diferente dependendo do backend.

O padrão é False

supports_gate_lengths

supports_gate_lengths_by_qubit

Retorna se o plug-in é compatível com o uso de gate_lengths_by_qubit

Isso difere de supports_gate_lengths/gate_lengths por usar uma visão diferente dos mesmos dados. Em vez de ser codificado pelo nome da porta, ele é codificado por qubit e usa Gate para representar as portas (em vez dos nomes das portas)

gate_lengths_by_qubit será um dicionário na forma de {(qubits,): [Gate, length]}. Por exemplo:

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

em que o valor length está em unidades de segundos.

Observe que esse dicionário pode não estar completo ou pode estar vazio, pois depende de o backend de destino informar os comprimentos de porta em cada porta para cada qubit.

O padrão é False

supports_natural_direction

supports_pulse_optimize

supports_target

Se o plug-in é compatível com target como uma opção

target será um objeto Target representando o dispositivo de destino para a saída da passagem de síntese.

Por padrão, isso será False , pois a interface do plug-in é anterior à classe Target classe. Se um plug-in retornar True para esse atributo, espera-se que o plug-in use o parâmetro Target em vez dos valores passados se algum dos parâmetros supports_gate_lengths, supports_gate_errors, supports_coupling_map e supports_basis_gates estiver definido (embora o ideal seja que todos esses parâmetros contenham informações duplicadas).


Métodos

run

run(unitary, **options)

GitHub

Execute o plug-in CliffordUnitarySynthesis na unidade fornecida.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.