Skip to main content
IBM Quantum Platform

CutWire

class CutWire(label=None)

GitHub

Bases: Gate

Uma instrução para indicar o local de corte de um fio.

Crie instruções em CutWire.


Atributos

Parâmetros

label (str | None)

base_class

Obtém a classe base dessa instrução. É garantido que isso esteja na árvore de herança de self.

A "classe base" de uma instrução é a classe mais baixa em sua árvore de herança com a qual o objeto deve ser considerado totalmente compatível para aplicativos de circuito. Isso normalmente significa que a subclasse é definida apenas para oferecer algum tipo de conveniência ao programador em relação à classe base, e a classe base é a classe "verdadeira" em uma perspectiva comportamental. Em particular, você não deve substituir base_class se estiver definindo uma versão personalizada de uma instrução que será implementada de forma diferente pelo hardware, como uma estratégia de medição alternativa ou uma versão de uma porta parametrizada com um conjunto específico de parâmetros para distingui-la em um Target da porta parametrizada completa.

Isso geralmente é exatamente equivalente a type(obj), exceto no caso de instâncias únicas de instruções de biblioteca padrão. Essas instâncias singleton são subclasses especiais de sua classe base, e essa propriedade retornará essa base. Por exemplo:

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

Em geral, não se deve confiar na classe precisa de uma instrução; em um determinado circuito, espera-se que Instruction.name seja um discriminador mais adequado na maioria das situações.

condition

A condição clássica da instrução.

Descontinuado desde a versão 1.3.0

A propriedade qiskit.circuit.instruction.Instruction.condition está obsoleta desde o qiskit 1.3.0. Ele será removido em 2.0.0.

condition_bits

Obter Clbits em condições.

Descontinuado desde a versão 1.3.0

A propriedade qiskit.circuit.instruction.Instruction.condition_bits está obsoleta desde o qiskit 1.3.0. Ele será removido em 2.0.0.

decompositions

Obtenha as decomposições da instrução no site SessionEquivalenceLibrary.

definition

Definição de retorno em termos de outras portas básicas.

duration

Obtenha a duração.

Descontinuado desde a versão 1.3.0

A propriedade qiskit.circuit.instruction.Instruction.duration está obsoleta desde o qiskit 1.3.0. Ele será removido no Qiskit 2.0.0.

label

Etiqueta de instruções de devolução

mutable

Essa instância é uma instância única mutável ou não.

Se esse atributo for False , a instância do portão será um singleton compartilhado e não será mutável.

name

Retorna o nome.

num_clbits

Retorna o número de clbits.

num_qubits

Retorna o número de qubits.

params

Os parâmetros do site Instruction. O ideal é que sejam ângulos de portão.

unit

Obtenha a unidade de tempo da duração.

Descontinuado desde a versão 1.3.0

A propriedade qiskit.circuit.instruction.Instruction.unit está obsoleta desde o qiskit 1.3.0. Ele será removido no Qiskit 2.0.0.


Métodos

add_decomposition

add_decomposition(decomposition)

Adicione uma decomposição da instrução ao site SessionEquivalenceLibrary.

assemble

assemble()

Montar um QasmQobjInstruction

Descontinuado desde a versão 1.2

O método qiskit.circuit.instruction.Instruction.assemble() está obsoleto desde o qiskit 1.2. Ele será removido na versão 2.0. A classe Qobj e a funcionalidade relacionada fazem parte do fluxo de trabalho obsoleto do site BackendV1 e não são mais necessárias para o site BackendV2. Se um fluxo de trabalho do usuário exigir Qobj, ele provavelmente depende de uma funcionalidade obsoleta e deve ser atualizado para usar BackendV2.

broadcast_arguments

broadcast_arguments(qargs, cargs)

Validação e manipulação dos argumentos e seu relacionamento.

Por exemplo, cx([q[0],q[1]], q[2]) significa cx(q[0], q[2]); cx(q[1], q[2]). Esse método produz os argumentos no agrupamento correto. No exemplo dado:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

As regras gerais de transmissão são:

  • Se len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Se len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • Se len(qargs) >= 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

Parâmetros

  • qargs (list) – Lista de argumentos de bits quânticos.
  • cargs (list) – Lista de argumentos clássicos de bits.

Tipo de retorno

Iterable[tuple[list, list]]

Retorna

Uma tupla com argumentos únicos.

Aumentos

CircuitError - Se a entrada não for válida. Por exemplo, o número de argumentos não corresponde à expectativa da porta.

c_if

c_if(classical, val)

Defina uma condição de igualdade clássica nessa instrução entre o registro ou cbit classical e o valor val.

Nota

Esse é um método setter, não um método aditivo. Chamar essa opção várias vezes substituirá silenciosamente qualquer condição definida anteriormente; ela não se acumula.

Descontinuado desde a versão 1.3.0

O método qiskit.circuit.instruction.Instruction.c_if() está obsoleto desde o qiskit 1.3.0. Ele será removido em 2.0.0.

control

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

Retorna a versão controlada de si mesmo.

Implementado como uma porta controlada (ref. ControlledGate) ou como uma operação anotada (ref. AnnotatedOperation).

Parâmetros

  • num_ctrl_qubits (int) – número de controles a serem adicionados ao gate (padrão: 1)
  • label (str | None) – etiqueta de portão opcional. Ignorado se implementado como uma operação anotada.
  • ctrl_state (int | str | None) – o estado de controle em decimal ou como uma cadeia de bits (por exemplo, '111'). Se for None, use 2**num_ctrl_qubits-1.
  • annotated (bool | None) – indica se a porta controlada é implementada como uma porta anotada. Se for None, isso será definido como False se a porta controlada puder ser construída diretamente e, caso contrário, será definido como True. Isso permite adiar o processo de construção caso a síntese da porta controlada exija mais informações (por exemplo, valores de parâmetros não vinculados).

Retorna

Versão controlada da operação fornecida.

Aumentos

QiskitError - modo não reconhecido ou ctrl_state inválido

copy

copy(name=None)

Cópia da instrução.

Parâmetros

name (str) – nome a ser dado ao circuito copiado; se for None , o nome permanecerá o mesmo.

Retorna

uma cópia da instrução atual, com o nome atualizado, caso tenha sido fornecido

Tipo de retorno

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

Inverta essa instrução.

Se annotated for False, a instrução inversa será implementada como uma nova instrução com a definição recursivamente invertida.

Se a anotação for verdadeira, a instrução inversa será implementada como AnnotatedOperation e corresponderá à instrução dada anotada com o "modificador inverso".

As instruções especiais herdadas de Instruction podem implementar seu próprio inverso (por exemplo, T e Tdg, Barrier, etc.) Em particular, eles podem escolher como lidar com o argumento annotated , o que pode incluir ignorá-lo e sempre retornar uma classe de porta concreta se o inverso for definido como uma porta padrão.

Parâmetros

annotated (bool) – se definido como True, a porta inversa de saída será retornada como AnnotatedOperation.

Retorna

A operação inversa.

Aumentos

CircuitError - se a instrução não for composta e não tiver sido implementado um inverso para ela.

is_parameterized

is_parameterized()

Retorna se o site Instruction contém parâmetros de tempo de compilação.

power

power(exponent, annotated=False)

Eleve esse portão ao poder de exponent.

Implementado como uma porta unitária (ref. UnitaryGate) ou como uma operação anotada (ref. AnnotatedOperation). No caso de várias portas padrão, como RXGate, quando a potência de uma porta pode ser expressa em termos de outra porta padrão, isso é retornado diretamente.

Parâmetros

  • exponent (float) – o poder de elevar o portão para
  • annotated (bool) – indica se o power gate pode ser implementado como uma operação anotada. No caso de várias portas padrão, como RXGate, esse argumento é ignorado quando a potência de uma porta pode ser expressa em termos de outra porta padrão.

Retorna

Uma operação que implementa gate^exponent

Aumentos

CircuitError - Se a porta não for unitária

repeat

repeat(n)

Cria uma instrução com self repetida :math`n` vezes.

Se essa operação tiver uma condicional, a instrução de saída terá a mesma condicional e as operações internas repetidas serão incondicionais; as instruções em uma definição composta não podem ser condicionadas a registros no modelo de dados do Qiskit. Isso significa que não é válido aplicar uma instrução repetida a um clbit no qual ela grava e lê em sua condição.

Parâmetros

n (int) – Número de vezes para repetir a instrução

Retorna

Contendo a definição.

Tipo de retorno

qiskit.circuit.Instruction

Aumentos

CircuitError - Se n < 1.

reverse_ops

reverse_ops()

Para uma instrução composta, inverta a ordem das subinstruções.

Isso é feito por meio da inversão recursiva de todas as subinstruções. Ele não inverte nenhuma porta.

Retorna

uma nova instrução com

subinstruções invertidas.

Tipo de retorno

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

Comparação suave entre portões. Seus nomes, número de qubits e números de bits clássicos devem corresponder. O número de parâmetros deve corresponder. Cada parâmetro é comparado. Se a pessoa for um ParameterExpression, isso não será levado em conta.

Parâmetros

other (instruction) – outras instruções.

Retorna

são iguais a si mesmo e ao outro até as expressões de parâmetro.

Tipo de retorno

bool

to_matrix

to_matrix()

Retorna um Numpy.array para a matriz unitária da porta.

Retorna

se a subclasse Gate tiver uma definição de matriz.

Tipo de retorno

np.ndarray

Aumentos

CircuitError - Se uma subclasse do Gate não implementar esse método, será gerada uma exceção quando esse método da classe base for chamado.

to_mutable

to_mutable()

Retorna uma cópia mutável desse portão.

Esse método retornará uma nova cópia mutável dessa instância de porta. Se uma instância singleton estiver sendo usada, essa será uma nova instância exclusiva que poderá ser alterada. Se a instância já for mutável, será uma cópia profunda dessa instância.

validate_parameter

validate_parameter(parameter)

Os parâmetros do gate devem ser int, float ou ParameterExpression

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