paddle_quantum.locc.locc_ansatz
LOCC的电路的功能实现。
- class LoccAnsatz(party)
基类:
paddle_quantum.ansatz.circuit.Circuit
继承
Circuit
类,目的是建立在 LOCC 任务上的电路模板。- 参数:
party (LoccParty) – 参与方。
- append(operator)
增加一个 Operator 类。
- 参数:
operator (Union[Iterable, paddle_quantum.Operator]) – 一个(附带名字的)Operator 类。
- insert(index, operator)
在指定位置插入一个 Operator 类。
- 参数:
index (int) – 插入的位置。
operator (Operator) – 一个 Operator。
- h(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 Hadamard 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- s(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 S 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- t(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 T 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- x(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 X 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- y(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 Y 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- z(qubits_idx='full', num_qubits=None, depth=1)
添加单量子比特 Z 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- p(qubits_idx='full', num_qubits=None, depth=1, param=None, param_sharing=False)
添加单量子比特 P 门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- rx(qubits_idx='full', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 x 轴的单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- ry(qubits_idx='full', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 y 轴的单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- rz(qubits_idx='full', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 z 轴的单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- u3(qubits_idx='full', num_qubits=None, depth=1, param=None, param_sharing=False)
添加单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, int, str], optional) – 作用在的量子比特的编号,默认为
'full'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- cnot(qubits_idx='cycle', num_qubits=None, depth=1)
添加 CNOT 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- cx(qubits_idx='cycle', num_qubits=None, depth=1)
同 cnot。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- cy(qubits_idx='cycle', num_qubits=None, depth=1)
添加受控 Y 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- cz(qubits_idx='cycle', num_qubits=None, depth=1)
添加受控 Z 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- swap(qubits_idx='cycle', num_qubits=None, depth=1)
添加 SWAP 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- cp(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加受控 P 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- crx(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 x 轴的受控单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- cry(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 y 轴的受控单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- crz(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加关于 z 轴的受控单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- cu(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加受控单量子比特旋转门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- rxx(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加 RXX 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- ryy(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加 RYY 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- rzz(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加 RZZ 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- ms(qubits_idx='cycle', num_qubits=None, depth=1)
添加 Mølmer-Sørensen (MS) 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- cswap(qubits_idx='cycle', num_qubits=None, depth=1)
添加 CSWAP (Fredkin) 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- ccx(qubits_idx='cycle', num_qubits=None, depth=1)
添加 CCX 门。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- universal_two_qubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加两量子比特通用门,该通用门需要 15 个参数。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- universal_three_qubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)
添加三量子比特通用门,该通用门需要 81 个参数。
- 参数:
qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为
'cycle'
。num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为
None
。param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为
False
。
- oracle(oracle, qubits_idx, num_qubits=None, depth=1)
添加一个 oracle 门。
- 参数:
oracle (paddle.tensor) – 要实现的 oracle。
qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。
num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。
- control_oracle(oracle, qubits_idx, num_qubits=None, depth=1)
添加一个受控 oracle 门。
- 参数:
oracle (paddle.tensor) – 要实现的 oracle。
qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。
num_qubits (int, optional) – 总的量子比特个数,默认为
None
。depth (int, optional) – 层数,默认为
1
。