Skip to main content
IBM Quantum Platform

Stinespring

class qiskit.quantum_info.Stinespring(data, input_dims=None, output_dims=None)

GitHub

Bases: QuantumChannel

Representación Stinespring de un canal cuántico.

La representación Stinespring de un canal cuántico E\mathcal{E} es una matriz rectangular AA tal que la evolución de a DensityMatrix ρ\rho viene dada por

E(ρ)=Tr2[AρA]\mathcal{E}(ρ) = \text{Tr}_2\left[A ρ A^\dagger\right]

donde Tr2\text{Tr}_2 es el partial_trace() sobre el subsistema 2.

Un mapa de operador general G\mathcal{G} también puede escribirse utilizando la representación generalizada de Stinespring que viene dada por dos matrices AA, BB tales que

G(ρ)=Tr2[AρB]\mathcal{G}(ρ) = \text{Tr}_2\left[A ρ B^\dagger\right]

Para más información, véase la referencia [1].

Referencias

  1. C.J. Madera, J.D. Biamonte, D.G. Cory, Tensor networks and graphical calculus for open quantum systems, Quant. Inf. Ventaja 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]

Inicializar un operador Stinespring de canal cuántico.

Parámetros

Eleva

QiskitError – si los datos de entrada no se pueden inicializar como una lista de matrices de Kraus.

Información adicional:

Si las dimensiones de entrada o salida son Ninguna, se determinarán automáticamente a partir de los datos de entrada. Esto puede fallar para el operador Stinespring si la dimensión de salida no puede determinarse automáticamente.


Atributos

atol

Valor predeterminado: 1e-08

data

dim

Devuelve una tupla (forma_entrada, forma_salida).

num_qubits

Devuelve el número de qubits si es un operador N-qubit o Ninguno en caso contrario.

qargs

Devuelve los qargs para el operador.

rtol

Valor predeterminado: 1e-05

settings

Devuelve los ajustes.


Métodos

adjoint

adjoint()

GitHub

Devuelve el canal cuántico adjunto.

Nota

Esto equivale a la matriz conjugada hermitiana en la representación SuperOp es decir, para un canal E\mathcal{E}, el SuperOp del canal adjunto E\mathcal{{E}}^\dagger es SE=SES_{\mathcal{E}^\dagger} = S_{\mathcal{E}}^\dagger.

Tipo de retorno

Uno mismo

compose

compose(other, qargs=None, front=False)

GitHub

Devuelve la composición del operador con otro Stinespring.

Parámetros

  • other (Stinespring) – un objeto Stinespring.
  • qargs (list or None) – una lista de posiciones de subsistemas a las que aplicar otras. Si se aplica «None» a todos los subsistemas (valor predeterminado: None).
  • front (bool) – Si es True compone usando el operador derecho de multiplicación, en lugar del izquierdo [por defecto: Falso].

Devuelve

El Stinespring compuesto.

Tipo de retorno

Stinespring

Eleva

QiskitError - si otro no puede convertirse en operador o tiene dimensiones incompatibles para los subsistemas especificados.

Nota

La composición (&) se define por defecto como multiplicación matricial izquierda para los operadores matriciales, mientras que @ (equivalente a dot()) se define como multiplicación matricial derecha. Es decir, que A & B == A.compose(B) es equivalente a B @ A == B.dot(A) cuando A y B son del mismo tipo.

Si se configura el parámetro front=True kwarg, la multiplicación de matrices a la derecha es equivalente al método dot() método A.dot(B) == A.compose(B, front=True).

conjugate

conjugate()

GitHub

Devuelve el canal cuántico conjugado.

Nota

Esto equivale a la matriz conjugada compleja en la representación SuperOp es decir, para un canal E\mathcal{E}, el SuperOp del canal conjugado E\overline{{\mathcal{{E}}}} es SE=SES_{\overline{\mathcal{E}^\dagger}} = \overline{S_{\mathcal{E}}}.

copy

copy()

GitHub

Realiza una copia en profundidad del operador actual.

dot

dot(other, qargs=None)

GitHub

Devuelve el operador multiplicado por la derecha self * other.

Parámetros

  • other (Operator) – un objeto operador.
  • qargs (list or None) – una lista de posiciones de subsistemas a las que aplicar otras. Si se aplica «None» a todos los subsistemas (valor predeterminado: None).

Devuelve

La matriz derecha multiplicada Operador.

Tipo de retorno

Operador

Nota

El producto punto puede obtenerse utilizando el operador binario @ . Por tanto, a.dot(b) es equivalente a a @ b.

expand

expand(other)

GitHub

Devuelve el producto tensorial de orden inverso con otro Stinespring.

Parámetros

other (Stinespring) – un objeto Stinespring.

Devuelve

el producto tensorial bab \otimes a, donde aa

es el actual Stinespring, y bb es el otro Stinespring.

Tipo de retorno

Stinespring

input_dims

input_dims(qargs=None)

GitHub

Devuelve tupla de dimensión de entrada para subsistemas especificados.

is_cp

is_cp(atol=None, rtol=None)

GitHub

Prueba si la matriz de Choi es completamente positiva (CP)

Parámetros

Tipo de retorno

bool

is_cptp

is_cptp(atol=None, rtol=None)

GitHub

Devuelve True si preserva la traza completamente positiva.

is_tp

is_tp(atol=None, rtol=None)

GitHub

Comprobar si un canal conserva la traza (TP)

Parámetros

Tipo de retorno

bool

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Devuelve True si QuantumChannel es un canal unitario.

Parámetros

Tipo de retorno

bool

output_dims

output_dims(qargs=None)

GitHub

Devuelve tupla de dimensión de salida para subsistemas especificados.

power

power(n)

GitHub

Devuelve la potencia del canal cuántico.

Parámetros

n (float) – el exponente de la potencia.

Devuelve

el canal En\mathcal{{E}} ^n.

Tipo de retorno

SuperOp

Eleva

QiskitError - si las dimensiones de entrada y salida de SuperOp no son iguales.

Nota

Para exponentes no positivos o no enteros, la potencia se define como la potencia matricial de la representación SuperOp es decir, para un canal E\mathcal{{E}}, la SuperOp del canal potenciado En\mathcal{{E}}^n es SEn=SEnS_{{\mathcal{{E}}^n}} = S_{{\mathcal{{E}}}}^n.

reshape

reshape(input_dims=None, output_dims=None, num_qubits=None)

GitHub

Devuelve una copia superficial con las dimensiones de los subsistemas de entrada y salida remodeladas.

Parámetros

  • input_dims (None or tuple) – nuevas dimensiones de entrada del subsistema. Si es Ninguno, se conservarán las atenuaciones de entrada originales [Por defecto: Ninguno].
  • output_dims (None or tuple) – nuevas dimensiones de salida del subsistema. Si es Ninguno, se conservarán las atenuaciones de salida originales. [Predeterminado: Ninguno].
  • num_qubits (None or int) – remodelar a un operador N-qubit [Por defecto: Ninguno].

Devuelve

devuelve self con las dimensiones de entrada y salida reformadas.

Tipo de retorno

BaseOperator

Eleva

QiskitError - si el tamaño combinado de todas las dimensiones de entrada del subsistema o las dimensiones de salida del subsistema no es constante.

tensor

tensor(other)

GitHub

Devuelve el producto tensorial con otro Stinespring.

Parámetros

other (Stinespring) – un objeto Stinespring.

Devuelve

el producto tensorial aba \otimes b, donde aa

es el actual Stinespring, y bb es el otro Stinespring.

Tipo de retorno

Stinespring

Nota

El producto tensorial puede obtenerse utilizando el operador binario ^ . Por tanto, a.tensor(b) es equivalente a a ^ b.

to_instruction

to_instruction()

GitHub

Convertir a una instrucción de circuito Kraus o UnitaryGate.

Si el canal es unitario se añadirá como una puerta unitaria, en caso contrario se añadirá como una instrucción del simulador kraus.

Devuelve

Una instrucción kraus para el canal.

Tipo de retorno

qiskit.circuit.Instruction

Eleva

QiskitError - si los datos de entrada no son un canal cuántico CPTP de N qubits.

to_operator

to_operator()

GitHub

Intenta convertir el canal a una representación unitaria Operador.

Tipo de retorno

Operador

transpose

transpose()

GitHub

Devuelve el canal cuántico transpuesto.

Nota

Esto equivale a la transpuesta de la matriz en la SuperOp representación; es decir, para un canal E\mathcal{E}, la matriz SuperOp del canal transpuesto ET\mathcal{{E}}^T es SET=SETS_{\mathcal{E}^T} = S_{\mathcal{E}}^T.

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