mindquantum.simulator.mqchem.SequentialUCCAnsatz

查看源文件
class mindquantum.simulator.mqchem.SequentialUCCAnsatz(n_qubits=None, n_electrons=None)[源代码]

顺序幺正耦合簇(Sequential UCC)ansatz。

SequentialUCCAnsatz 通过顺序追加 FermionOperator 来构建UCC线路,不会像常规费米子算符那样合并重复激发项,因此适合多层或Trotter化场景中“同一激发项重复出现但参数不同”的构造方式。

说明

该ansatz内部使用 UCCExcitationGate 构建线路。 生成的线路应与 MQChemSimulator 配合使用,不适用于标准态矢量 Simulator

参数:
  • n_qubits (int) - 模拟中的量子比特(自旋轨道)数量,要求大于等于 1。默认值: None

  • n_electrons (int) - 电子数,要求大于等于 0 且不大于 n_qubits。默认值: None

样例:

>>> from mindquantum.simulator import mqchem
>>> from mindquantum.core.operators import FermionOperator
>>> ansatz = mqchem.SequentialUCCAnsatz()
>>> ansatz.append(FermionOperator("3^ 1", "a"))
>>> ansatz.append(FermionOperator("4^ 2", "b"))
>>> ansatz.append(FermionOperator("3^ 1", "c"))
>>> print(len(ansatz.circuit))
3
>>> print(ansatz.circuit.params_name)
['a', 'b', 'c']
append(operator)[源代码]

在ansatz末尾追加一个激发算符,并立即更新内部线路。

参数:
  • operator (FermionOperator) - 待追加的费米子激发算符。该算符会先进行规范化与合法性检查: 必须是单项、非恒等项、且单项内不允许重复轨道索引;若设置了 n_qubits,算符作用索引不得越界。

property circuit

返回当前ansatz构建得到的量子线路。

property operators

返回当前算符列表的副本。

remove(index)[源代码]

删除并返回给定索引处的算符,同时重建内部线路。

参数:
  • index (int) - 需要删除的算符索引。

返回:

FermionOperator,删除算符的副本。