AnyLogic与OptTek公司业界领先的OptQuest仿真优化引擎相集成,通过仿真建模进一步增强分析和决策能力。
OptQuest具有优化器独有的复杂分析技术和强大算法。商业、军事和政府组织在垂直领域使用它们,从而可以在解决仿真问题时自动发现最佳参数。
AnyLogic 8.5的最新版本包含了最新的OptQuest优化器。继续阅读并向OptTek优化专家Ben Thengvall博士学习如何使用OptQuest快速确定仿真模型的最佳参数。
如果没有已知的边界,启发式方法就不能保证它能找到仿真优化问题的最佳解决方案,除非它列举了所有的可能性。然而,由于时间和计算资源的限制,这种探索所有可能性的方法通常不切实际。OptQuest旨在以最少的仿真评估次数,找到复杂问题的最佳解决方案或较优的解决方案。
OptQuest用户通常会问的一个问题是:“我需要运行多少次仿真试验才能找到最佳或较优的解决方案?”这个问题没有简单的答案,因为答案取决于诸多因素 。如下列出了会直接影响搜索性能的相关因素(OptQuest将快速找到最佳解决方案)。下文将对每一因素进行解释:
决策变量数量
为找到较优的解决方案,决策变量的数量极大地影响了OptQuest执行仿真试验的次数。 OptQuest对可在任何给定问题中使用的决策变量的数量没有物理限制。但是问题中存在的决策变量数量越多,则相应的需要执行更多的仿真试验才能找到最佳解决方案。如果问题中给定了决策变量的数量,其所需的最小仿真试验次数的一般准则如下:
有时,可以减少变量的数量,从而将搜索重点放在更重要的决策变量上,而不是使用大量变量进行优化。可通过变量灵敏度分析、分段优化或选择预配置参数的规则集来促进这种减少。
初始值
可以将建议的启动解决方案传递给OptQuest以启动搜索过程。 如果提供了建议的解决方案,则OptQuest将首先对其进行评估,之后将其作为优化搜索的开端。好的启动解决方案可以显著提高针对大型问题的整体优化性能,因为OptQuest不必花费额外的时间在众多方案中寻找。
决策变量边界
通过为决策变量选择有意义的边界,可以显著提高性能。 例如,假设三个决策变量(X,Y和Z)的范围为:
如果这些边界是有效的,但是分析人员知道对于当前研究而言,较小的范围值是有意义的,则应使用更多的限制性边界,例如:
这些更严格的边界可以更有效地搜索决策变量的最佳值,因为它们减少了OptQuest必须考虑的可能值。
目标的复杂性
复杂目标具有高度非线性的外观,具有许多局部最小值和最大值,或者在一个或多个点上是不连续的。
OptQuest旨在为所有类型的目标(尤其是复杂目标)找到全局最优解。但是,对于更复杂的目标,通常需要运行更多次的仿真才能找到高质量的解决方案。
目标数量
几乎所有实际问题都有一个以上的目标。通常,至少有两个目标值得关注,一个是成本,第二个是性能。这两个目标几乎总是逆相关或相互竞争,决策者需要评估成本和性能之间的各种最佳折衷方案。
优化多个目标时,需要进行更多的仿真试验。 OptQuest将花费一些时间将搜索重点放在每个目标上,然后将着重于填补帕累托边界(Pareto frontier)上的空白。通常,在解决多目标问题时,将上表1中建议的仿真试验次数乘以5。例如,对于少于10个决策变量的问题,建议允许OptQuest至少进行500次仿真试验。
OptQuest允许任意数量的目标,但通常最好同时优化两个目标,因为这样可以更直接地解释结果。 如果有两个以上相关目标,则建议的方法是选择两个最重要的目标首先对其进行优化。之后将已经优化的目标添加为约束,使其限制在其最佳值的较高百分比之内,并在选择了另一个目标的情况下再次运行优化。
约束
约束可通过定义决策变量之间的关系来限制决策变量(模型参数)的值;约束还可以限制输出变量的值(性能指标)。
如果仅使用决策变量定义线性约束,则OptQuest可以在运行仿真之前消除约束不可行的决策变量值。因此,通过在决策变量上定义约束来限制优化通常可以提高搜索性能。
如果约束包含性能度量,则必须运行仿真以确定建议的解决方案是否满足约束。
每个仿真试验的重复次数
OptQuest运行优化时,它将运行仿真以评估每组决策变量(模型参数)值。因此,优化结果的质量取决于仿真试验(迭代)的次数和每个仿真试验的重复次数。
在设定的时间段内,每个仿真试验的重复次数与可以完成的仿真试验的次数成反比; 随着一个试验次数的增加,另一个试验次数减少。减少重复次数将增加在给定时间内执行的仿真试验的数量。
OptQuest可以运行的仿真试验越多,可以评估的值就越多,并且OptQuest更有可能找到接近最佳解决方案的方案。因此,需要在通过更多的重复试验保证统计精度与通过更多仿真试验保证解决方案质量之间权衡取舍。
仿真精度
有两个会影响仿真精度的因素:
为了确保足够的精度,必须将每个仿真的重复次数设置为获得对所优化目标函数的可靠估计所必需的最小次数;这个最小值通常是通过经验测试得出的。
噪声还会影响OptQuest结果的准确性。
图1左侧的目标有大量噪声,这些噪声是由用来对问题的不确定性建模的概率分布引起的。 对于这些类型的目标,OptQuest可能难以识别最小值或最大值。通过观察从一组值“反弹”到完全不同的值集的最佳解决方案,可以检测到噪声函数。为了解决此问题,请增加每个仿真的重复次数。在图1的右侧,由于模型假设中的相对确定性,目标看起来很平滑。 在这种情况下,OptQuest应该迅速收敛到最佳解决方案。
如需深入了解OptQuest在AnyLogic中的使用,可以在AnyLogic帮助中找到相关资料 。
您可以在我们的案例研究、论文和会议视频中找到使用OptQuest的示例,以及来自OptTek的有关OptQuest的更多信息:


