chi
class qiskit.quantum_info.Chi(data, input_dims=None, output_dims=None)
Bases: QuantumChannel
Representação da matriz Chi com base em Pauli de um canal quântico.
A representação da matriz Chi de um canal quântico de -qubit é uma matriz de modo que a evolução de a DensityMatrix é dada por
em que é a base de Pauli do -qubit em ordem lexicográfica. Ela está relacionada à Choi representação por uma mudança de base da matriz de Choi para a base de Pauli. O na definição acima é um fator de normalização que surge do escalonamento da base de Pauli para torná-la ortonormal.
Consulte a referência [1] para obter mais detalhes.
Referências
- 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]
Inicialize um operador de matriz Chi de canal quântico.
Parâmetros
- data (QuantumCircuit |circuit.instruction.Instruction | BaseOperator | np.ndarray) – dados para inicializar o superoperador.
- input_dims (int |tuple | None) – as dimensões do subsistema de entrada.
- output_dims (int |tuple | None) – as dimensões do subsistema de saída.
Aumentos
QiskitError - se os dados de entrada não forem um canal N-qubit ou não puderem ser inicializados como uma matriz Chi.
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 da matriz Chi só é válida para canais 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()
Retorna o canal quântico adjunto.
Isso é equivalente ao conjugado hermitiano da matriz na representação SuperOp ou seja, para um canal , o SuperOp do canal adjunto é .
compose
compose(other, qargs=None, front=False)
Retorna a composição do operador com outro Chi.
Parâmetros
- other (Chi) – um objeto Chi.
- 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 Chi composto.
Tipo de retorno
Aumentos
QiskitError - se outro não puder ser convertido em um operador ou tiver dimensões incompatíveis para os subsistemas especificados.
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()
Retorna o canal quântico conjugado.
Isso é equivalente ao complexo conjugado da matriz na representação SuperOp ou seja, para um canal , o SuperOp do canal conjugado é .
copy
dot
dot(other, qargs=None)
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
O produto escalar pode ser obtido usando o operador binário @ . Portanto, a.dot(b) é equivalente a a @ b.
expand
expand(other)
Retorna o produto tensorial de ordem inversa com outro Chi.
Parâmetros
other (Chi) – um objeto Chi.
Retorna
o produto tensorial , onde
é o Chi atual, e é o outro Chi.
Tipo de retorno
input_dims
input_dims(qargs=None)
Retorna uma tupla de dimensão de entrada para os subsistemas especificados.
is_cp
is_cp(atol=None, rtol=None)
Teste se a matriz de Choi é completamente positiva (CP)
Parâmetros
Tipo de retorno
is_cptp
is_cptp(atol=None, rtol=None)
Retorna True se houver preservação de traço completamente positiva (CPTP).
Parâmetros
Tipo de retorno
is_tp
is_tp(atol=None, rtol=None)
Teste se um canal está preservando o traço (TP)
Parâmetros
Tipo de retorno
is_unitary
is_unitary(atol=None, rtol=None)
Retornará True se QuantumChannel for um canal unitário.
Parâmetros
Tipo de retorno
output_dims
output_dims(qargs=None)
Retorna uma tupla de dimensão de saída para os subsistemas especificados.
power
power(n)
Retorna a potência do canal quântico.
Parâmetros
n (float) – o expoente de potência.
Retorna
o canal .
Tipo de retorno
Aumentos
QiskitError - se as dimensões de entrada e saída do site SuperOp não forem iguais.
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 , o SuperOp do canal alimentado é .
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
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), as dimensões de entrada originais serão preservadas [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)
Retorna o produto tensorial com outro Chi.
Parâmetros
other (Chi) – um objeto Chi.
Retorna
o produto tensorial , onde
é o Chi atual, e é o outro Chi.
Tipo de retorno
O produto tensor pode ser obtido usando o operador binário ^ . Portanto, a.tensor(b) é equivalente a a ^ b.
to_instruction
to_instruction()
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
Aumentos
QiskitError - se os dados de entrada não forem um canal quântico CPTP de N qubits.