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.
É 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.
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
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