Skip to main content
IBM Quantum Platform

TranslateParameterizedGates

class qiskit.transpiler.passes.TranslateParameterizedGates(*args, **kwargs)

GitHub

Bases: TransformationPass

Traduzir portas parametrizadas para um conjunto de bases suportado.

Quando é encontrada uma instrução parametrizada que não está na lista supported_gates , a instrução é decomposta em um nível e os sub-blocos parametrizados são decompostos recursivamente. A recursão é interrompida quando todas as portas parametrizadas estiverem em supported_gates, ou se uma porta não tiver definição e uma tradução para a base for tentada (isso pode acontecer, por exemplo, para o UGate se ele não estiver na lista de portas especificada).

Exemplo

O circuito seguinte, aninhado de forma múltipla:

from qiskit.circuit import QuantumCircuit, ParameterVector
from qiskit.transpiler.passes import TranslateParameterizedGates

x = ParameterVector("x", 4)
block1 = QuantumCircuit(1)
block1.rx(x[0], 0)

sub_block = QuantumCircuit(2)
sub_block.cx(0, 1)
sub_block.rz(x[2], 0)

block2 = QuantumCircuit(2)
block2.ry(x[1], 0)
block2.append(sub_block.to_gate(), [0, 1])

block3 = QuantumCircuit(3)
block3.ccx(0, 1, 2)

circuit = QuantumCircuit(3)
circuit.append(block1.to_gate(), [1])
circuit.append(block2.to_gate(), [0, 1])
circuit.append(block3.to_gate(), [0, 1, 2])
circuit.cry(x[3], 0, 2)

supported_gates = ["rx", "ry", "rz", "cp", "crx", "cry", "crz"]
unrolled = TranslateParameterizedGates(supported_gates)(circuit)

é decomposto em:

     ┌──────────┐     ┌──────────┐┌─────────────┐
q_0:Ry(x[1]) ├──■──┤ Rz(x[2]) ├┤0            ├─────■──────
     ├──────────┤┌─┴─┐└──────────┘│             │     │
q_1:Rx(x[0]) ├┤ X ├────────────┤1 circuit-92 ├─────┼──────
     └──────────┘└───┘            │             │┌────┴─────┐
q_2: ─────────────────────────────┤2            ├┤ Ry(x[3])
                                  └─────────────┘└──────────┘

Parâmetros

  • supported_gates – Uma lista de portas de base compatíveis, especificadas como string. Se None, é necessário fornecer target um.
  • equivalence_library - A biblioteca de equivalência para traduzir as portas. O padrão é a biblioteca de equivalência de todas as portas padrão do Qiskit.
  • alvo - Um Target contendo as operações suportadas. Se None, supported_gates deve ser definido. Observe que esse argumento tem precedência sobre supported_gates, se ambos estiverem definidos.

Aumentos

ValueError - Se nenhum dos endereços supported_gates e target for aprovado.


Atributos

is_analysis_pass

Verificar se o passe é um passe de análise.

Se a passagem for um AnalysisPass,, isso significa que a passagem pode analisar o DAG e escrever os resultados dessa análise no conjunto de propriedades. As modificações no DAG não são permitidas por esse tipo de passe.

is_transformation_pass

Verificar se o passe é um passe de transformação.

Se a passagem for um TransformationPass,, isso significa que a passagem pode manipular o DAG, mas não pode modificar o conjunto de propriedades (mas pode ser lido).


Métodos

execute

execute(passmanager_ir, state, callback=None)

GitHub

Executar a tarefa de otimização para a entrada Qiskit IR.

Parâmetros

  • passmanager_ir (Any) – Qiskit IR para otimizar.
  • state (PassManagerState) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passes.
  • callback (Callable | None) – Uma função de retorno de chamada que é chamada a cada execução da tarefa de otimização.

Retorna

Qiskit IR otimizado e estado do fluxo de trabalho.

Tipo de retorno

tupla [ Any, PassManagerState ]

name

name()

GitHub

Nome do passe.

Tipo de retorno

str

run

run(dag)

GitHub

Execute a passagem do transpilador.

Parâmetros

dag (DAGCircuit) – O circuito DAG no qual as portas parametrizadas devem ser desenroladas.

Retorna

Um DAG em que as portas parametrizadas foram desenroladas.

Aumentos

QiskitError - Se o circuito não puder ser desenrolado.

Tipo de retorno

DAGCircuit

update_status

update_status(state, run_state)

GitHub

Atualizar o status do fluxo de trabalho.

Parâmetros

  • state (PassManagerState) – Passar o estado do gerenciador para atualizar.
  • run_state (RunState) – Status de conclusão da tarefa atual.

Retorna

Estado do gerenciador de passes atualizado.

Tipo de retorno

PassManagerState

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