mindquantum.algorithm.library.qudit_symmetric_decoding

查看源文件
mindquantum.algorithm.library.qudit_symmetric_decoding(qubit: np.ndarray, n_qubits: int = 1)[源代码]

对称性解码,将qubit对称态或矩阵解码成qudit态或矩阵。

输入的qubit状态或矩阵必须保持qudit-qubit映射所需的对称性。例如,在qutrit(d=3)到双比特的映射中:

|0000|0|001+|0010+|100d1|1|0011+|00101+|1100d1|2|1111|d1

这种对称性要求在同一对称子空间内的状态必须具有相等的振幅。例如,状态 |01|10 属于同一对称子空间,必须具有相等的振幅。

参数:
  • qubit (np.ndarray) - 需要解码的qubit对称态或矩阵,qubit态或矩阵需满足对称性。

  • n_qubits (int) - qubit对称态或矩阵的量子比特数。默认值:1

返回:

np.ndarray,对称性解码后的qudit态或矩阵。

异常:
  • ValueError - 如果输入的qubit状态或矩阵不保持所需的对称性。

样例:

>>> import numpy as np
>>> from mindquantum.algorithm.library.qudit_mapping import qudit_symmetric_decoding
>>> # A symmetric qubit state where amplitudes in |01⟩ and |10⟩ are equal
>>> qubit = np.array([1., 2., 2., 3.])
>>> qubit /= np.linalg.norm(qubit)
>>> print(qubit)
[0.23570226 0.47140452 0.47140452 0.70710678]
>>> print(qudit_symmetric_decoding(qubit))
[0.23570226+0.j 0.66666667+0.j 0.70710678+0.j]