paddle_quantum.state.common
常见的量子态的实现。
- to_state(data, num_qubits=None, backend=None, dtype=None)
根据给定的输入,生成对应的量子态。
- 参数:
data (Union[paddle.Tensor, np.ndarray, QCompute.QEnv]) – 量子态的数学解析形式。
num_qubits (int, optional) – 量子态所包含的量子比特数。默认为
None
,会自动从 data 中推导出来。backend (paddle_quantum.Backend, optional) – 指定量子态的后端实现形式。默认为
None
,使用全局的默认后端。dtype (str, optional) – 量子态的数据类型。默认为
None
,使用全局的默认数据类型。
- 返回:
生成的量子态。
- 返回类型:
paddle_quantum.State
- zero_state(num_qubits, backend=None, dtype=None)
生成零态。
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
backend (paddle_quantum.Backend, optional) – 指定量子态的后端实现形式。默认为 None,使用全局的默认后端。
dtype (str, optional) – 量子态的数据类型。默认为 None,使用全局的默认数据类型。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已实现的后端。
- 返回:
所生成的零态。
- 返回类型:
paddle_quantum.State
- computational_basis(num_qubits, index, backend, dtype=None)
生成计算基态
,其中 的第 个元素为 1,其余元素为 0。- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
index (int) – 计算基态
的下标 。backend (paddle_quantum.Backend, optional) – 指定量子态的后端实现形式。默认为
None
,使用全局的默认后端。dtype (str, optional) – 量子态的数据类型。默认为
None
,使用全局的默认数据类型。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已实现的后端。
- 返回:
所生成的计算基态。
- 返回类型:
paddle_quantum.State
- bell_state(num_qubits, backend=None)
生成贝尔态。
其数学表达形式为:
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
backend (paddle_quantum.Backend, optional) – 指定量子态的后端实现形式。默认为
None
,使用全局的默认后端。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已实现的后端。
- 返回:
生成的贝尔态。
- 返回类型:
paddle_quantum.State
- bell_diagonal_state(prob)
生成对角贝尔态。
其数学表达形式为:
- 参数:
prob – 各个贝尔态的概率。
- Type:
List[float]
- 抛出:
Exception – 当后端为态矢量时,所输入量子态应该为纯态。
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的量子态。
- random_state(num_qubits, is_real=False, rank=None)
生成一个随机的量子态。
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
is_real (bool, optional) – 是否为实数。默认为
False
,表示为复数。rank (int, optional) – 密度矩阵的秩。默认为
None
,表示使用满秩。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
随机生成的一个量子态。
- 返回类型:
paddle_quantum.State
- w_state(num_qubits)
生成一个 W-state。
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 W-state。
- 返回类型:
paddle_quantum.State
- ghz_state(num_qubits)
生成一个 GHZ-state。
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
- 抛出:
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 GHZ-state。
- 返回类型:
paddle_quantum.State
- completely_mixed_computational(num_qubits)
生成一个完全混合态。
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
- 抛出:
Exception – 当后端为态矢量时,所输入量子态应该为纯态。
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 GHZ-state。
- 返回类型:
paddle_quantum.State
- r_state(prob)
生成一个 R-state。
其数学表达形式为:
- 参数:
prob (float) – 控制生成 R-state 的参数,它应该在
区间内。- 抛出:
Exception – 当后端为态矢量时,所输入量子态应该为纯态。
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 R-state。
- 返回类型:
paddle_quantum.State
- s_state(prob)
生成一个 S-state。
其数学表达形式为:
- 参数:
prob (float) – 控制生成 S-state 的参数,它应该在
区间内。- 抛出:
Exception – 当后端为态矢量时,所输入量子态应该为纯态。
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 S-state。
- 返回类型:
paddle_quantum.State
- isotropic_state(num_qubits, prob)
生成 isotropic state。
其数学表达形式为:
- 参数:
num_qubits (int) – 量子态所包含的量子比特数。
prob (float) – 控制生成 isotropic state 的参数,它应该在
区间内。
- 抛出:
Exception – 当后端为态矢量时,所输入量子态应该为纯态。
NotImplementedError – 所指定的后端必须为量桨已经实现的后端。
- 返回:
生成的 isotropic state。
- 返回类型:
paddle_quantum.State