MCFF优化器:Monte Carlo Force Field参数优化器

MCFF优化器使用Monte Carlo方法来找到给定培训集的最佳拟合力字段。它基于纸张 E.Iype等。 al。 在以下部分中,描述了MCFF优化器的输入和输出。

在建立培训集和优化MCFF的Reaxff Force字段上的一个实施例 研讨会页面.

输入文件

除了FF优化程序中指定的文件外,还必须在执行REAXFF程序的目录中存在以下文件。

  • IOPT. - 文件包含单个文本行,其中4个。这将指示Reaxff执行Monte-Carlo Force-Field Optimation。

MCFFOPT_WATER示例在示例/ REAXFF目录中演示了MCFFOPTimizer的使用。但请注意,此示例不是物理上有意义的。例如,允许许多原子力场参数在非常宽的范围内变化,这对于所有元件是相同的。在实践中,您将想要单独设置每个元素的范围。

控制参数

以下控制参数与MCFFOpTimizer有关。每个参数的默认值在括号中给出。

  • 麦克布特 - MC迭代的数量(10000)。由于Monte-Carlo方法没有任何会聚概念,因此MCFFIT迭代后停止优化。
  • 麦克巴 - 接受概率计算中的初始MC Beta参数 (p = exp( - \ beta \ delta e)\) (0.0)。这里, \(\ delta e \) 到目前为止,当前和最佳步骤之间的误差功能是差异。如果当前步骤是最好的,则始终被接受。否则,使用上面的公式计算接收概率,并且使用来自(0,1)范围的随机数来计算。 Beta的最佳值取决于误差函数的值。如果不存在或设置为0,它将在第一步之后计算 \(\ beta_0 = \ sqrt {\ frac {n_ {par}} {2}} \ frac {1} {e_0})\), 在哪里 \(n_ {par} \)\(e_0 \) 是可变参数的数量和初始错误函数值。
  • McDbet. - 模拟退火:在每个步骤(0.0)时,通过此值增加Beta参数。正MCDBET值意味着采取增加误差函数的步骤的概率随着时间的推移而降低。这具有与降低经典分子蒙特卡罗方法中的温度相同的效果。
  • McBSCA. - 模拟退火:在每个步骤(1.0)下通过该值划分测试参数。 MCBSCA的值小于1.0的效果与正MCDBET类似。如果MCBSCA设置为0,则将在第一步之后计算 \(\ frac {\ beta_n} {\ beta__ {n + 1}} = \ sqrt [n_ {step}] {\ frac {5} {e_0}} \), 在哪里 \(n_ {步} \)\(e_0 \) 是步骤数和初始错误函数值。
  • McACPF. - 在每个步骤(0.2)下变化的概率。为避免采取非常大的步骤,只有一些变量在每个步骤中变化(随机选择)。
  • MCRXDD. - 将FFIEL_MIN和FFIEND_MAX之间的参数范围划分为(100)之间的间隔数。
  • McStep. - 以范围/ MCRXDD为单位的初始最大步骤大小,其中范围= fField_max和ffield_min值(1.0)之间的差异。
  • mcmxst. - 最大允许值最大步长(100);
  • MCSCPS. - 要缩放最大步长以满足验收公差(1.1);
  • MCTART. - 目标验收率百分比(30.0);
  • McMart. - 最大验收率,百分比(70.0);
  • 麦克米尼 - 如果不是0,则在这么多的迭代(0)之后最小化最佳的力场参数集。只有在前一次最小化以来的最佳集合以来时才执行优化。这里使用的最小化是无梯度的,因此不应过度使用。
  • repl - 每步尝试的副本数量(1)。在每个步骤中,完成复制蒙特卡罗步骤,选择具有最低误差的误差。

MCRXDD,MCSTEP,MCMXST和MCSCP之间的关系。当参数范围通过FFIEL_MAX和FFIEND_MIN文件给出时,每个参数的范围分为MCRXDD间隔。所采取的步骤是该范围内的均匀分布式随机值 (( - \ delta x,\ delta x)\), 在哪里 \(\ delta x = mcstep *(xmax-xmin)/ mcrxdd \)。这里,xmax和xmin分别是来自ffise_max和ffise_min的此参数的值。当参数范围通过参数文件给出时 \(\ delta x = mcstep * delta \), 在哪里 三角洲 对应Params文件中的第一个实数。在执行优化时,程序会跟踪平均接受率,并通过MCSCPS因子向上或向下调整MCStep,以保持靠近MCTART的接受率。如果接受速率太低,则降低步长以允许搜索较小的参数空间。 MCSTEP值永远不会大于MCMXST。

应该注意的是,MC步长(以及因此本节中讨论的所有参数)的值适用于相同程度的所有力字段参数,这意味着选择最小和最大参数值非常重要很小心。这里的拇指规则是该范围应尽可能小,只能覆盖物理上有意义的值。

结果

MCFFOpTimizer的主要结果保存在以下文件中:

  • ffield_best - 强制字段文件对应于最低错误值
  • ffice_last - 最近接受的力量提交
  • McFfOptimizer.log - 迭代摘要,包括错误函数值,更改和有界强制场参数的数量,每个步骤都接受和拒绝步骤的累积次数。还有当前的MC参数,如 \(\ beta \) 显示值和验收率,以及以秒为单位的经过时间。
  • FORT.99 - 最新步骤的错误功能细分
  • FORT.90 - 如果在控制文件中设置Fort90,则具有与当前最佳参数集对应的优化几何形状的Geo文件

运行时控制

力场优化的进度可以通过改变参数来控制 我停下 文件存在于计算目录中。每10个迭代读取该文件。参数如下所述:

  • stopkey - 用1替换0以停止计算
  • β - 当前 \(\ beta \) 对应的价值 麦克巴 control parameter
  • 命令 - 之一:无,步行,JopWwalk,最小化,Jumpmini:
  • 没有 - 程序中没有变化
  • 步行 - 切换到Monte-Carlo步骤(默认值);
  • 最小化 - 切换到最新接受的力场的无梯度最小化;
  • Jovingwalk - 到目前为止,采取最佳力场,并从那里开始蒙特卡罗程序;
  • jumpmini - 到目前为止取得最好的力场,并尽量减少它。
  • scalefactor - 更改对应的当前步长大小 McStep. control parameter
  • ActiveParameterFraction - 在每个步骤中设置力场参数的分数(McACPF.)
  • 三角洲beta - 改变当前值 McDbet. control parameter
  • betascaling - 改变当前价值 McBSCA. control parameter
  • Scaleparspace - 更改当前值 MCSCPS. control parameter