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 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 veio primeiro e originalmente continha os qubits em que operava e quaisquer parâmetros, portanto, era uma verdadeira "instrução". Com o passar do tempo, QuantumCircuit tornou-se responsável pelo rastreamento de qubits e clbits, e a classe passou a ser melhor descrita como uma "operação". Alterar o nome desse objeto central seria uma quebra de API muito desagradável para os usuários e, por isso, continuamos com ele.

Essa classe foi criada para fornecer um objeto de contexto de “instrução” formal no 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 anterior. Por enquanto, isso leva a uma situação um tanto confusa em que CircuitInstruction.operation é frequentemente uma Instruction instância de (Instruction implementa a Operation interface ), mas, à medida que a Operation interface ganhar 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.