Skip to main content
IBM Quantum Platform

AnnotatedOperation

class qiskit.circuit.AnnotatedOperation(base_op, modifiers)

GitHub

Bases: Operation

Operação anotada.

Crie um novo AnnotatedOperation.

Uma "operação anotada" permite adicionar uma lista de modificadores à operação "básica". Por enquanto, os únicos modificadores suportados são dos tipos InverseModifier, ControlModifier e PowerModifier.

Uma operação anotada pode ser vista como uma extensão de ControlledGate (que também permite adicionar controle à operação de base). No entanto, uma diferença importante é que a definição do circuito de uma operação anotada não é construída quando a operação é declarada e, em vez disso, ocorre durante a transpilação, especificamente durante a HighLevelSynthesis passagem do transpilador.

Uma operação anotada também pode ser vista como um objeto de "nível superior" ou "mais abstrato" que pode ser adicionado a um circuito quântico. Isso permite escrever passes de otimização do transpilador que fazem uso dessa representação de nível superior, por exemplo, removendo uma porta que é imediatamente seguida por seu inverso.

Parâmetros

  • base_op (Operation) – operação de base que está sendo modificada
  • modifiers (Modifier | list[Modifier]) – lista ordenada de modificadores. Os modificadores suportados incluem InverseModifier, ControlModifier e PowerModifier.

Exemplos:

op1 = AnnotatedOperation(SGate(), [InverseModifier(), ControlModifier(2)])

op2_inner = AnnotatedGate(SGate(), InverseModifier())
op2 = AnnotatedGate(op2_inner, ControlModifier(2))

Tanto o op1 quanto o op2 são semanticamente equivalentes a um SGate() que é primeiro invertido e depois controlado por 2 qubits.


Atributos

name

Identificador de cadeia de caracteres exclusivo para o tipo de operação.

num_clbits

Número de bits clássicos.

num_qubits

Número de qubits.

params

Os parâmetros da operação básica subjacente.

base_op

A operação base à qual os modificadores desta operação anotada se aplicam.

modifiers

Sequência ordenada dos modificadores a serem aplicados a base_op. Os modificadores são aplicados na ordem do menor índice para o maior índice.


Métodos

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

GitHub

Retorna a versão controlada de si mesmo.

Implementado como AnnotatedOperation, independentemente do valor de annotated.

Parâmetros

  • num_ctrl_qubits (int) – Número de controles a serem adicionados. Padroniza para 1.
  • label (str | None) – Ignorado.
  • ctrl_state (int |str | None) – O estado de controle da porta, especificado como um número inteiro ou uma sequência de bits (por exemplo "110"). Se None, o padrão é o estado 2**num_ctrl_qubits - 1todos-uns.
  • annotated (bool | None) – Ignorado.

Retorna

Uma versão controlada da operação dada.

Tipo de retorno

AnnotatedOperation

copy

copy()

GitHub

Retorna uma cópia do arquivo AnnotatedOperation.

Tipo de retorno

AnnotatedOperation

inverse

inverse(annotated=True)

GitHub

Retorna a versão inversa de si mesmo.

Implementado como uma operação anotada, consulte AnnotatedOperation.

Parâmetros

annotated (bool) – ignorado (utilizado para manter a consistência com outros métodos inversos)

Retorna

Versão inversa da operação fornecida.

power

power(exponent, annotated=False)

GitHub

Eleve esse portão ao poder de exponent.

Implementado como uma operação anotada, consulte AnnotatedOperation.

Parâmetros

  • exponent (float) – o poder de elevar o portão para
  • annotated (bool) – ignorado (utilizado para manter a consistência com outros métodos de potência)

Retorna

Uma operação que implementa gate^exponent

to_matrix

to_matrix()

GitHub

Retorna uma representação de matriz (permitindo a construção do Operator).

validate_parameter

validate_parameter(parameter)

GitHub

Validar um parâmetro para a operação básica subjacente.

Parâmetros

parameter (ParameterExpression |float)

Tipo de retorno

ParameterExpression | flutuação

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