paddle_quantum.locc.locc_net
LOCCNet的功能实现。
- class LoccNet(state, qubits_idx)
基类:
paddle.fluid.dygraph.layers.Layer用于设计 LOCC 协议,并进行训练或验证。
- set_init_state(state, qubits_idx)
初始化 LoccNet 的 LoccState。
- 参数:
state (paddle_quantum.State) – 输入的量子态的矩阵形式。
qubits_idx (Iterable) – 输入的量子态对应的量子比特的编号,其形式为
(party_id, qubit_id)的tuple,或者由其组成的list。
- 抛出:
ValueError – 参与方的 ID 应为
str或int。
- partial_state(state, qubits_idx, is_desired=True)
得到指定的量子比特的量子态。
- 参数:
- 抛出:
ValueError – 参与方的 ID 应为
str或int。ValueError –
state应为LoccState或者由其组成的list。
- 返回:
得到部分量子态后的 LOCC 态。
- 返回类型:
- reset_state(status, state, which_qubits)
将指定的量子比特重置为输入的量子态。
- 参数:
- 抛出:
ValueError – 参与方的 ID 应为
str或int。ValueError –
state应为LoccState或者由其组成的list。
- 返回:
重置部分量子比特后的 LOCC 态。
- 返回类型:
- add_new_party(qubits_number, party_name=None)
添加一个新的 LOCC 的参与方。
- 参数:
qubits_number (int) – 该参与方的量子比特个数。
party_name (str, optional) – 该参与方的名字,默认为
None。
备注
可以使用字符串或者数字对参与方进行索引。如果想使用字符串索引,需要每次指定
party_name; 如果想使用数字索引,则不需要指定party_name,其索引数字会从 0 开始依次增长。- 抛出:
ValueError –
party_name应为str。- 返回:
该参与方的 ID。
- 返回类型:
Union[int, str]
- create_ansatz(party_id)
创建一个新的本地电路模板。
- 参数:
party_id (Union[int, str]) – 参与方的 ID。
- 抛出:
ValueError – 参与方的 ID 应为
str或int。- 返回:
创建的本地电路模板。
- 返回类型:
- measure(status, which_qubits, results_desired, theta=None)
对 LOCC 态进行 0-1 测量或含参测量。
- 参数:
- 抛出:
ValueError –
results_desired应为str或者由其组成的list。ValueError – 参与方的 ID 应为
str或int。ValueError –
status应为LoccState或者由其组成的list。
- 返回:
测量后的 LOCC 态。
- 返回类型:
- get_num_qubits()
得到该 LoccNet 的量子比特个数。
- 返回:
该 LoccNet 的量子比特个数。
- 返回类型:
int