QPanda3  0.1.0
Supported by OriginQ
Loading...
Searching...
No Matches
PTM

Prev Tutorial: Chi
Next Tutorial: Hellinger Distance


Introduction

Pauli Transfer Matrix (PTM) representation of a Quantum Channel.

The PTM representation of an n-qubit quantum channel \(\mathcal{E}\) is an n-qubit SuperOp \(\mathcal{R}\) defined with respect to vectorization in the Pauli basis instead of column-vectorization. The elements of the PTM

\[ \mathcal{R} \]

are given by

\[ R_{i, j}=\frac{1}{2^{n}} \operatorname{Tr}\left[P_{i} \mathcal{E}\left(P_{j}\right)\right] \]

where

\[ \left[P_{0}, P_{1}, \ldots, P_{4^{n}-1}\right] \]

is the \(\mathcal{n}\) -qubit Pauli basis in lexicographic order.

Evolution of a DensityMatrix \(\rho\)

ρ with respect to the PTM is given by

\[ \left.|\mathcal{E}(\rho)\rangle_{P}=S_{P}|\rho\rangle\right\rangle_{P} \]

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

In QPanda3 Quantum Information

Constructing a PTM object

Here is API doc

From Choi

Generate another PTM object from a Choi object

Please refer to Choi

Output

ptm: {
{
{(3,0)},{(0,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(-1,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(-1,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(0,0)},{(-1,0)},
}
}

From Chi

Generate another PTM object from a Chi object

Please refer to Chi

Output

ptm: {
{
{(3,0)},{(0,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(-1,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(-1,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(0,0)},{(-1,0)},
}
}

From SuperOp

Generate another PTM object from a SuperOp object

Please refer to SuperOp

Output

ptm: {
{
{(3,0)},{(0,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(-1,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(-1,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(0,0)},{(-1,0)},
}
}

From Kraus

Generate another PTM object from a Kraus object

Please refer to Kraus

Output

ptm: {
{
{(3,0)},{(0,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(-1,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(-1,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(0,0)},{(-1,0)},
}
}

From PTM

Generate another PTM object from a PTM object

Output

ptm2: {
{
{(3,0)},{(0,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(-1,0)},{(0,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(-1,0)},{(0,0)},
}
{
{(0,0)},{(0,0)},{(0,0)},{(-1,0)},
}
}

Obtain internal data

Input and output dim

Obtain the input dimension input_dim and output dimension output_dim of the quantum channel

Here is API doc for PTM.get_input_dim

Here is API doc for PTM.get_output_dim

Output

input_dim: 2
output_dim: 2

Evolution of quantum states

Here is API doc for PTM.evolve

DensityMatrix

Evolution of a DensityMatrix object, and the evolution result is returned as a DensityMatrix object

The dimension of the density matrix is obtained by the member method dim() and should be equal to the input dimension of the PTM object

Please refer to DensityMatrix.

Output

res: {
{
{(1.30728,0)},{(-0.383385,0.177724)},
}
{
{(-0.383385,-0.177724)},{(1.69272,0)},
}
}

StateVector

Evolution of the StateVector object is performed, and the result is returned as a DensityMatrix object

The dimension of the StateVector object is obtained by the member method dim() and should be equal to the input dimension of the PTM object

Please refer to DensityMatrix

Please refer to StateVector

Output

res: {
{
{(1,0)},{(0,0)},
}
{
{(0,0)},{(2,0)},
}
}

Boolean function

Equal

Determine whether the internal data of two PTM objects are equal

Here is API doc

Output

True