pychemiq.Optimizer#

Module Contents#

Functions#

pychemiq.Optimizer.vqe_solver(method='NELDER-MEAD', ansatz=None, pauli=None, init_para=None, chemiq=None, Learning_rate=0.1, Xatol=0.0001, Fatol=0.0001, MaxFCalls=200, MaxIter=200)#

该类为VQE求解器,在参数中需要指定经典优化器方法、拟设、分子的泡利哈密顿量、初始参数、chemiq类。

Parameters:
  • method (str) – 指定经典优化器方法。目前pyChemiQ支持的方法有NELDER-MEAD、POWELL、COBYLA、L-BFGS-B、SLSQP和Gradient-Descent。若不指定,默认使用NELDER-MEAD优化器。

  • ansatz (AbstractAnsatz) – 指定拟设类。详见pychemiq.Circuit.Ansatz。

  • pauli (PauliOperator) – 指定分子的泡利哈密顿量。泡利算符类。详见pychemiq.PauliOperator。

  • init_para (list[float]) – 指定初始参数。

  • chemiq (ChemiQ) – 指定chemiq类。详见pychemiq.ChemiQ。

  • Learning_rate (float) – 指定学习率。选择与梯度相关的优化器方法需要此参数。默认为0.1。

  • Xatol (float) – 变量的收敛阈值。默认为0.0001。

  • Fatol (float) – 函数值的收敛阈值。默认为0.0001。

  • MaxFCalls (int) – 函数最大可调用次数。默认为200。

  • MaxIter (int) – 最大优化迭代次数。默认为200。

Returns:

QOptimizationResult类。详见 pyqpanda.QOptimizationResult

Note

优化器的更多示例以及调用外部的scipy.optimize库来实现经典优化等方式,请参见进阶教程中的 优化器教程