Skip to main content
IBM Quantum Platform

CircuitInstruction

class qiskit.circuit.CircuitInstruction(operation, qubits=None, clbits=None)

Bases: object

Uma única instrução em um QuantumCircuit, composta pelo operation e por vários operandos.

Nota

É possível que haja alguma confusão nos nomes dessa classe, Instruction, e Operatione o atributo desta classe operation. Nossa terminologia preferida é por analogia às linguagens de montagem, em que uma "instrução" é composta por uma "operação" e seus "operandos".

Historicamente, Instruction ela surgiu primeiro e, originalmente, continha os qubits sobre os quais atuava e quaisquer parâmetros; portanto, era uma verdadeira “instrução”. Com o passar do tempo, QuantumCircuit passou a ser responsável pelo rastreamento de qubits e clbits, e a classe passou a ser mais adequadamente descrita como uma “operação”. Mudar o nome de um objeto tão fundamental representaria uma quebra de API muito desagradável para os usuários; por isso, decidimos mantê-lo como está.

Essa classe foi criada para fornecer um objeto de contexto de “instrução” formal em QuantumCircuit.data, que há muito tempo era composto por tuplas criadas ad hoc. Com isso, e com o lançamento da Operation interface para adicionar objetos mais complexos aos circuitos, aproveitamos a oportunidade para corrigir a nomenclatura histórica. Por enquanto, isso leva a uma situação um tanto confusa em CircuitInstruction.operation que costuma ser uma Instruction instância de (Instruction implementa a Operation interface ), mas, à medida que a Operation interface for ganhando mais uso, espera-se que essa confusão diminua.

Aviso

Essa é uma classe interna leve e a verificação de erros é mínima; você deve respeitar as dicas de tipo ao usá-la. É responsabilidade do usuário garantir que as mutações diretas do objeto não invalidem os tipos nem as restrições impostas a ele pelo seu contexto. Normalmente, isso significa, por exemplo, que qubits deve ser uma sequência de itens distintos, sem duplicatas.


Atributos

clbits

Uma sequência de bits clássicos para os quais essa operação lê ou grava.

label

matrix

name

Retorna o nome da instrução correspondente à operação para esse nó

operation

A operação lógica da qual essa instrução representa uma execução.

params

qubits

Uma sequência dos qubits aos quais a operação é aplicada.


Métodos

copy

copy()

Retorna uma cópia superficial.

Retorna

A cópia superficial.

Tipo de retorno

CircuitInstruction

from_standard

static from_standard(standard, qubits, params, label=None)

is_control_flow

is_control_flow()

A instrução Operation contida nessa instrução é uma operação de fluxo de controle (ou seja, uma instância de ControlFlowOp)?

is_controlled_gate

is_controlled_gate()

O Operation contido nesta instrução é uma subclasse de ControlledGate?

is_directive

is_directive()

O Operation contido nesse nó é uma diretriz?

is_parameterized

is_parameterized()

Essa instrução contém algum parâmetro ParameterExpression parâmetros?

is_standard_gate

is_standard_gate()

O Operation contido nesta instrução é um portão padrão Qiskit?

replace

replace(operation=None, qubits=None, clbits=None, params=None)

Cria uma cópia superficial com os campos fornecidos substituídos.

Retorna

Uma nova instância com os campos fornecidos substituídos.

Tipo de retorno

CircuitInstruction

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