Skip to main content
IBM Quantum Platform

PauliProductMeasurement

class qiskit.circuit.library.PauliProductMeasurement(pauli, label=None)

GitHub

Bases: Instruction

Instruções de medição do produto Pauli.

A medição do produto de Pauli é uma operação fundamental na computação quântica tolerante a falhas. Matematicamente, corresponde a uma medição projetiva conjunta em múltiplos qubits, onde o observável medido é um produto tensorial de operadores de Pauli. O resultado dessa medição é um único valor próprio, seja +1+1 ou 1-1, indicando o estado próprio do produto de Pauli.

Referências

[1] Daniel Litinski. “Um jogo de códigos superficiais: computação quântica em grande escala com cirurgia de rede” arXiv:1808.02892

Parâmetros

  • pauli (qiskit.quantum_info.Pauli) – Um produto tensorial de operadores de Pauli que define a medição, por exemplo, Pauli("XY") ou Pauli("-XYIZ"). O operador identidade de Pauli não é permitido. O Pauli pode incluir uma fase de 1-1, mas não ii ou i-i.
  • label (str | None) – Uma etiqueta opcional para o portão exibir nas visualizações do circuito. Por padrão, o rótulo é definido como PPM(<pauli label>).
Nota

Embora os termos "I"envolvendo Paulis sejam totalmente suportados, recomenda-se remover "I"os termos do Pauli ao criar uma PauliProductMeasurement instrução, pois isso não altera a medição real, mas especifica a instrução sobre um conjunto menor de qubits.

Aumentos

CircuitError – Se o operador de Pauli for o operador de identidade, tiver dimensão 0 ou uma fase complexa.

Parâmetros


Atributos

base_class

Obter a classe base desta instrução. Isso está garantido 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 todas as aplicações de circuito. Isso normalmente significa que a subclasse é definida exclusivamente para oferecer algum tipo de conveniência ao programador em relação à classe base, e a classe base é a classe “verdadeira” do ponto de vista 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 maneira diferente pelo hardware, como uma estratégia de medição alternativa ou uma versão de um gate parametrizado com um conjunto específico de parâmetros com o objetivo de distingui-lo em um gate parametrizado Target completo.

Isso geralmente é equivalente a type(obj), exceto no caso de instâncias únicas de instruções da 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, você não deve confiar na classe precisa de uma instrução; dentro de um determinado circuito, espera-se que Instruction.name seja um discriminador mais adequado na maioria das situações.

decompositions

Obtenha as decomposições da instrução a partir do SessionEquivalenceLibrary.

definition

Definição de retorno em termos de outros portões básicos.

label

Etiqueta com instruções de devolução

mutable

Esta instância é uma instância única mutável ou não?

Se este atributo for verdadeiro, False a instância do gate é um singleton compartilhado e não é mutável.

name

Retorne o nome.

num_clbits

Retorne o número de clbits.

num_qubits

Retorne o número de qubits.

params

Os parâmetros deste Instruction. Idealmente, estes serão ângulos de porta.


Métodos

add_decomposition

add_decomposition(decomposition)

GitHub

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

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Validação dos argumentos.

Parâmetros

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

Lucros

Tuple(Lista, Lista) – 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 do gate.

copy

copy(name=None)

GitHub

Cópia da instrução.

Parâmetros

name (str) – nome a ser dado ao circuito copiado; se None então o nome permanece o mesmo.

Retorna

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

Tipo de retorno

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Impede a chamada inverse de uma instrução PauliProductMeasurement.

is_parameterized

is_parameterized()

GitHub

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

pauli

pauli()

GitHub

Retorne o produto de Pauli implementado por esta medição.

Este é um acessador público que reconstrói e retorna o Pauli correspondente ao produto tensorial subjacente dos operadores de Pauli desta instrução, incluindo sua fase global de +1 ou -1.

Retorna

O produto de Pauli medido por esta instrução.

Tipo de retorno

Pauli

repeat

repeat(n)

GitHub

Cria uma instrução com nnself repetido vezes.

Parâmetros

n (int) – Número de vezes que a instrução deve ser repetida

Retorna

Contendo a definição.

Tipo de retorno

qiskit.circuit.Instruction

Aumentos

CircuitError – Se n < 1.

reverse_ops

reverse_ops()

GitHub

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

Isso é feito revertendo recursivamente todas as subinstruções. Não inverte nenhum portão.

Retorna

uma nova instrução com

subinstruções invertidas.

Tipo de retorno

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Comparação suave entre portas. 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 for um ParameterExpression, então não é levado em consideração.

Parâmetros

other (instruction) – outras instruções.

Retorna

são iguais a si mesmos e aos outros até expressões de parâmetros.

Tipo de retorno

bool

to_mutable

to_mutable()

GitHub

Retorna uma cópia mutável deste gate.

Este método retornará uma nova cópia mutável desta instância de porta. Se uma instância singleton estiver sendo usada, esta será uma nova instância única que pode ser alterada. Se a instância já for mutável, será uma cópia profunda dessa instância.

validate_parameter

validate_parameter(parameter)

GitHub

O parâmetro de instrução não tem validação ou normalização.

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