Skip to main content
IBM Quantum Platform

PauliProductMeasurement

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

GitHub

Bases: Instruction

Instrucciones para la medición de productos Pauli.

Una medición de producto de Pauli es una operación fundamental en la computación cuántica tolerante a fallos. Matemáticamente, corresponde a una medición proyectiva conjunta en múltiples qubits, donde la observable medida es un producto tensorial de operadores de Pauli. El resultado de esta medición es un único valor propio, ya sea +1+1 o 1-1, que indica el estado propio del producto de Pauli.

Referencias:

[1] Daniel Litinski. «Un juego de códigos superficiales: computación cuántica a gran escala con cirugía de red» arXiv:1808.02892

Parámetros

  • pauli (qiskit.quantum_info.Pauli) – Un producto tensorial de operadores de Pauli que definen la medición, por ejemplo Pauli("XY") o Pauli("-XYIZ"). El operador identidad de Pauli no está permitido. El Pauli puede incluir una fase de 1-1, pero no ii ni i-i.
  • label (str | None) – Etiqueta opcional para la puerta que se muestra en las visualizaciones de circuitos. De forma predeterminada, la etiqueta está configurada en PPM(<pauli label>).
Nota

Aunque los "I" términos de Pauli están totalmente compatibles, se recomienda eliminar "I"los términos de Pauli al crear una PauliProductMeasurement instrucción, ya que esto no cambia la medición real, sino que especifica la instrucción sobre un conjunto más pequeño de qubits.

Aumentos

CircuitError – Si el operador de Pauli es el operador de identidad, tiene dimensión 0 o una fase compleja.

Parámetros


Atributos

base_class

Obtener la clase base de esta instrucción. Esto está garantizado en el árbol de herencia de self.

La «clase base» de una instrucción es la clase más baja en su árbol de herencia con la que el objeto debe considerarse totalmente compatible para todas las aplicaciones de circuitos. Esto suele significar que la subclase se define únicamente para ofrecer cierta comodidad al programador con respecto a la clase base, y que la clase base es la clase «verdadera» desde el punto de vista del comportamiento. En particular, no debe anular base_class si está definiendo una versión personalizada de una instrucción que se implementará de manera diferente por el hardware, como una estrategia de medición alternativa o una versión de una puerta parametrizada con un conjunto particular de parámetros con el fin de distinguirla en un Target de la puerta parametrizada completa.

Esto suele ser exactamente equivalente a type(obj), excepto en el caso de instancias únicas de instrucciones de la biblioteca estándar. Estas instancias únicas son subclases especiales de su clase base, y esta propiedad devolverá esa base. Por ejemplo:

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

En general, no se debe confiar en la clase precisa de una instrucción; dentro de un circuito determinado, se espera que Instruction.name sea un discriminador más adecuado en la mayoría de las situaciones.

decompositions

Obtenga las descomposiciones de la instrucción del « SessionEquivalenceLibrary » (Manual de instrucciones de la CPU de 32 bits de Intel).

definition

Devuelve la definición en términos de otras puertas básicas.

label

Etiqueta con instrucciones de devolución

mutable

¿Es esta instancia una instancia única mutable o no?

Si este atributo es False la instancia de puerta es un singleton compartido y no es mutable.

name

Devuelve el nombre.

num_clbits

Devuelve el número de clbits.

num_qubits

Devuelve el número de qubits.

params

Los parámetros de este Instruction. Lo ideal sería que fueran ángulos de puerta.


Métodos

add_decomposition

add_decomposition(decomposition)

GitHub

Añadir una descomposición de la instrucción al « SessionEquivalenceLibrary ».

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

Validación de los argumentos.

Parámetros

  • qargs (List) – Lista de argumentos de bits cuánticos.
  • cargs (List) – Lista de argumentos clásicos de bits.

Cesiones

Tuple(List, List) – Una tupla con argumentos únicos.

Aumentos

CircuitError – Si la entrada no es válida. Por ejemplo, el número de argumentos no coincide con lo esperado por la puerta.

copy

copy(name=None)

GitHub

Copia de las instrucciones.

Parámetros

name (str) – nombre que se le dará al circuito copiado; si None entonces el nombre permanece igual.

Devuelve

una copia de las instrucciones actuales, con el nombre actualizado si se ha facilitado

Tipo de retorno

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

Evita llamar inverse en una instrucción PauliProductMeasurement.

is_parameterized

is_parameterized()

GitHub

Devuelve si Instruction contiene parámetros de tiempo de compilación.

pauli

pauli()

GitHub

Devuelve el producto de Pauli implementado por esta medición.

Este es un accesor público que reconstruye y devuelve el producto tensorial Pauli de operadores de Pauli subyacente a esta instrucción, incluida su fase global de +1 o -1.

Devuelve

El producto de Pauli medido mediante esta instrucción.

Tipo de retorno

Pauli

repeat

repeat(n)

GitHub

Crea una instrucción que self se repite nn veces.

Parámetros

n (int) – Número de veces que se repetirá la instrucción

Devuelve

Contiene la definición.

Tipo de retorno

qiskit.circuit.Instruction

Aumentos

CircuitError – Si n < 1.

reverse_ops

reverse_ops()

GitHub

Para una instrucción compuesta, invierta el orden de las subinstrucciones.

Esto se hace invirtiendo recursivamente todas las subinstrucciones. No invierte ninguna puerta.

Devuelve

una nueva instrucción con

subinstrucciones invertidas.

Tipo de retorno

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

Comparación suave entre puertas. Sus nombres, número de qubits y números de bits clásicos deben coincidir. El número de parámetros debe coincidir. Se comparan todos los parámetros. Si uno es un « ParameterExpression », entonces no se tiene en cuenta.

Parámetros

other (instruction) – otras instrucciones.

Devuelve

¿Son iguales uno mismo y los demás en cuanto a expresiones de parámetros?

Tipo de retorno

bool

to_mutable

to_mutable()

GitHub

Devuelve una copia mutable de esta puerta.

Este método devolverá una nueva copia mutable de esta instancia de puerta. Si se utiliza una instancia única, esta será una nueva instancia única que se puede modificar. Si la instancia ya es mutable, será una copia profunda de esa instancia.

validate_parameter

validate_parameter(parameter)

GitHub

El parámetro de instrucción no tiene validación ni normalización.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.