paddle_quantum.gate.custom

自定义量子门和受控量子门的功能实现。

class Oracle(oracle, qubits_idx, num_qubits=None, depth=1, gate_info=None)

基类:paddle_quantum.gate.base.Gate

一个 oracle 门。

参数:
  • oracle (paddle.Tensor) – 要实现的 oracle。

  • qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

  • depth (int, optional) – 层数,默认为 1

  • gate_info (dict, optional) – 量子门的信息,用于信息追溯或者画图。

class ControlOracle(oracle, qubits_idx, num_qubits=None, depth=1, gate_info=None)

基类:paddle_quantum.gate.base.Gate

一个受控 oracle 门。

参数:
  • oracle (paddle.Tensor) – 要实现的 oracle。

  • qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

  • depth (int, optional) – 层数,默认为 1

  • gate_info (dict, optional) – 量子门的信息,用于信息追溯或者画图。

class ParamOracle(generator, param=None, depth=1, num_acted_param=1, param_sharing=False, qubits_idx=None, gate_info=None, num_qubits=None)

基类:paddle_quantum.gate.base.Gate

一个参数化的 oracle 门。

参数:
  • oracle (Callable[[Tensor],Tensor]) – 用于产生 oracle 的函数。

  • param (Union[Tensor,float,List[float]]) – 输入参数,默认为 None i.e. 随机。

  • qubits_idx (Union[Iterable[Iterable[int]], Iterable[int], int]) – 作用在的量子比特的编号。

  • depth (int, optional) – 层数,默认为 1

  • num_acted_param (int, optional) – 单次操作需要的参数数量。

  • param_sharing (bool) – 所有操作是否共享相同的一组参数。

  • gate_info (dict, optional) – 量子门的信息,用于信息追溯或者画图。

  • num_qubits (int) – 量子比特总数,默认为 None