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
返回当前算符列表的副本。