Skip to main content
IBM Quantum Platform

PTM

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

GitHub

Bases: QuantumChannel

Representação da matriz de transferência de Pauli (PTM) de um canal quântico.

A representação PTM de um canal quântico nn -qubit E\mathcal{E} é um nn -qubit SuperOp RR definida com relação à vetorização na base de Pauli em vez da vetorização de coluna. Os elementos do PTM RR são dados por

Ri,j=12nTr[PiE(Pj)]R_{i,j} = \frac{1}{2^n} \text{Tr}\left[P_i \mathcal{E}(P_j) \right]

em que [P0,P1,...,P4n1][P_0, P_1, ..., P_{4^{n}-1}] é a base de Pauli do nn -qubit em ordem lexicográfica.

A evolução de a DensityMatrix ρ\rho com relação ao PTM é dada por

E(ρ) ⁣P=SPρ ⁣P|\mathcal{E}(\rho)\rangle\!\rangle_P = S_P |\rho\rangle\!\rangle_P

onde A ⁣P|A\rangle\!\rangle_P denota a vetorização na base de Pauli iA ⁣P=12nTr[PiA]\langle i | A\rangle\!\rangle_P = \sqrt{\frac{1}{2^n}} \text{Tr}[P_i A].

Consulte a referência [1] para obter mais detalhes.

Referências

  1. C.J. Madeira, J.D. Biamonte, D.G. Cory, Tensor networks and graphical calculus for open quantum systems (Redes de tensores e cálculo gráfico para sistemas quânticos abertos ), Quant. Inf. Comp. 15, 0579-0811 (2015). arXiv:1111.6950 [quant-ph]

Inicializar um operador de canal quântico PTM.

Parâmetros

Aumentos

QiskitError - se os dados de entrada não forem um canal N-qubit ou não puderem ser inicializados como um PTM.

Informações adicionais:

Se as dimensões de entrada ou saída forem Nenhuma, elas serão determinadas automaticamente a partir dos dados de entrada. A representação PTM só é válida para canais de N qubit.


Atributos

atol

Valor Padrão: 1e-08

data

Dados de retorno.

dim

Retorna uma tupla (input_shape, output_shape).

num_qubits

Retorna o número de qubits se for um operador N-qubit ou None caso contrário.

qargs

Retorna os qargs do operador.

rtol

Valor Padrão: 1e-05

settings

Configurações de retorno.


Métodos

adjoint

adjoint()

GitHub

Retorna o canal quântico adjunto.

Nota

Isso é equivalente ao conjugado hermitiano da matriz na representação SuperOp ou seja, para um canal E\mathcal{E}, o SuperOp do canal adjunto E\mathcal{{E}}^\dagger é SE=SES_{\mathcal{E}^\dagger} = S_{\mathcal{E}}^\dagger.

compose

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

GitHub

Retorna a composição do operador com outro PTM.

Parâmetros

  • other (PTM) – um objeto PTM.
  • qargs (list or None) – uma lista de posições do subsistema às quais aplicar outras. Se None for aplicado a todos os subsistemas (padrão: None).
  • front (bool) – Se True, compor usando o operador multiplicação à direita, em vez de multiplicação à esquerda [, padrão: False].

Retorna

O PTM composto.

Tipo de retorno

PTM

Aumentos

QiskitError - se outro não puder ser convertido em um operador ou tiver dimensões incompatíveis para os subsistemas especificados.

Nota

Por padrão, a composição (&) é definida como multiplicação de matriz à esquerda para operadores de matriz, enquanto @ (equivalente a dot()) é definida como multiplicação de matriz à direita. Ou seja, A & B == A.compose(B) é equivalente a B @ A == B.dot(A) quando A e B são do mesmo tipo.

A configuração do kwarg front=True muda isso para multiplicação de matriz à direita e é equivalente ao método dot() método A.dot(B) == A.compose(B, front=True).

conjugate

conjugate()

GitHub

Retorna o canal quântico conjugado.

Nota

Isso é equivalente ao complexo conjugado da matriz na representação SuperOp ou seja, para um canal E\mathcal{E}, o SuperOp do canal conjugado E\overline{{\mathcal{{E}}}} é SE=SES_{\overline{\mathcal{E}^\dagger}} = \overline{S_{\mathcal{E}}}.

copy

copy()

GitHub

Faça uma cópia profunda do operador atual.

dot

dot(other, qargs=None)

GitHub

Retorna o operador multiplicado à direita self * other.

Parâmetros

  • other (Operator) – um objeto operador.
  • qargs (list or None) – uma lista de posições do subsistema às quais aplicar outras. Se None for aplicado a todos os subsistemas (padrão: None).

Retorna

A matriz correta multiplicou o Operator.

Tipo de retorno

Operador

Nota

O produto escalar pode ser obtido usando o operador binário @ . Portanto, a.dot(b) é equivalente a a @ b.

expand

expand(other)

GitHub

Retorna o produto tensor de ordem inversa com outro PTM.

Parâmetros

other (PTM) – um objeto PTM.

Retorna

o produto tensorial bab \otimes a, onde aa

é o PTM atual, e bb é o outro PTM.

Tipo de retorno

PTM

input_dims

input_dims(qargs=None)

GitHub

Retorna uma tupla de dimensão de entrada para os subsistemas especificados.

is_cp

is_cp(atol=None, rtol=None)

GitHub

Teste se a matriz de Choi é completamente positiva (CP)

Parâmetros

Tipo de retorno

bool

is_cptp

is_cptp(atol=None, rtol=None)

GitHub

Retorna True se houver preservação de traço completamente positiva (CPTP).

Parâmetros

Tipo de retorno

bool

is_tp

is_tp(atol=None, rtol=None)

GitHub

Teste se um canal está preservando o traço (TP)

Parâmetros

Tipo de retorno

bool

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Retornará True se QuantumChannel for um canal unitário.

Parâmetros

Tipo de retorno

bool

output_dims

output_dims(qargs=None)

GitHub

Retorna uma tupla de dimensão de saída para os subsistemas especificados.

power

power(n)

GitHub

Retorna a potência do canal quântico.

Parâmetros

n (float) – o expoente de potência.

Retorna

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

Tipo de retorno

SuperOp

Aumentos

QiskitError - se as dimensões de entrada e saída do site SuperOp não forem iguais.

Nota

Para expoentes não positivos ou não inteiros, a potência é definida como a potência da matriz da SuperOp representação, ou seja, para um canal E\mathcal{{E}}, o SuperOp do canal alimentado En\mathcal{{E}}^n é SEn=SEnS_{{\mathcal{{E}}^n}} = S_{{\mathcal{{E}}}}^n.

reshape

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

GitHub

Retorna uma cópia superficial com dimensões reformuladas do subsistema de entrada e saída.

Parâmetros

  • input_dims (None or tuple) – novas dimensões de entrada do subsistema. Se for None (Nenhum), os dims de entrada originais serão preservados [Padrão: Nenhum].
  • output_dims (None or tuple) – novas dimensões de saída do subsistema. Se for None (Nenhum), os dims de saída originais serão preservados [Padrão: Nenhum].
  • num_qubits (None or int) – remodelar para um operador N-qubit [Padrão: Nenhum].

Retorna

retorna self com dimensões de entrada e saída remodeladas.

Tipo de retorno

BaseOperator

Aumentos

QiskitError - se o tamanho combinado de todas as dimensões de entrada do subsistema ou de saída do subsistema não for constante.

tensor

tensor(other)

GitHub

Retorna o produto tensorial com outro PTM.

Parâmetros

other (PTM) – um objeto PTM.

Retorna

o produto tensorial aba \otimes b, onde aa

é o PTM atual, e bb é o outro PTM.

Tipo de retorno

PTM

Nota

O produto tensor pode ser obtido usando o operador binário ^ . Portanto, a.tensor(b) é equivalente a a ^ b.

to_instruction

to_instruction()

GitHub

Converta para uma instrução de circuito Kraus ou UnitaryGate.

Se o canal for unitário, ele será adicionado como uma porta unitária; caso contrário, será adicionado como uma instrução do simulador kraus.

Retorna

Uma instrução kraus para o canal.

Tipo de retorno

qiskit.circuit.Instruction

Aumentos

QiskitError - se os dados de entrada não forem um canal quântico CPTP de N qubits.

to_operator

to_operator()

GitHub

Tente converter o canal em um operador de representação unitária.

Tipo de retorno

Operador

transpose

transpose()

GitHub

Retorna o canal quântico de transposição.

Nota

Isso equivale à transposição da matriz na SuperOp representação, ou seja, para um canal E\mathcal{E}, a transposição SuperOp do canal ET\mathcal{{E}}^T é SET=SETS_{\mathcal{E}^T} = S_{\mathcal{E}}^T.

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