主要内容

提升代理人孔解决方案或过程

代理人孔

当您具有线性约束和整数约束时,代理人孔无法找到任何可行的点或足够的独特可行点来创建代理人。在这些情况下,求解器退出退出标志 -2(没有找到可行的点)或3.(可行点太少)。有关退出标志的详细信息 -2, 看发现了不可行的点

退出旗帜3.可以以两种不同的方式发生:

  • 有太少的可行点来构建初始替代品。

  • 在替代重置后,有太少的可行点来构建替代品。

您可以通过使用使用的情况来查看哪种案例TrustogateOpplot.绘图功能。

选项= Optimoptions('trustogateopt''plotfcn''trustogateptplot');[SOL,FVAL,EXITFLAG] = TREROGATEOPT(参数,选项);

在每个代理重置后,代理人孔需要更可行的点来构建下一个代理人。当有整数约束时,代理人孔可以排出一组可行点,或者即使有些人留下而不能找到新的可行点

如果代理人孔已经执行了至少一个重置,然后它已成功搜索解决方案。在这种情况下,您可能会解决问题。

如果代理人孔无法创建初始代理人,或者如果代理人孔重置并希望尝试找到另一种解决方案,请执行以下步骤。

  1. 放松一些约束。

    • 将一些线性约束更改为非线性,这导致求解器不坚持严格的可行性。这可以给代理人孔在构建代理时使用的更可行点。

    • 通过选择更大的值来放松一些线性不等式约束B.向量。你可以放松一切B.通过添加标量,同时的值:

      B = B + 5;
  2. 同样,如果您的绑定约束导致问题太少,并且如果您的问题有意义,请放松范围。取较大的上限或更小的下限或两者。您可以通过添加或减去标量来放宽所有界限。

    UB = UB + 3;lb = lb  -  1;

发现了不可行的点

什么时候代理人孔找不到对界限,整数约束和线性约束可行的点,它返回退出标志 -2。在这种情况下,问题真正不可行。

但是,求解器也可以返回退出标志 -2当它无法定位对非线性不等式约束可行的点。即使存在可行点,这有时也会发生这种情况。要继续,请按照步骤进行操作融合到一个不可行的点

解决方案可能不是最佳的

通常,代理人孔在功能评估中运行时停止。这意味着代理人孔不会停止,因为它达到了最佳解决方案。但是,当发生代理复位时,当前解决方案通常在局部最佳状态附近。

您如何评估解决方案的质量?一般来说,这很难做到。以下是调查解决方案以帮助确定其本地质量的步骤。但是,没有保证一点是全局解决方案的程序。看您能证明解决方案是全球吗?

  • 如果问题没有整数约束,请查看附近的点。这样做,打电话Patternsearch.在返回的解决方案上。设定initialmeshsize.选项要使用的搜索步骤的大小。保持Patternsearch.从花太多时间,设置最大选择1USECOMPLETEPOLL.选择真的

    选项= Optimoptions('patternsearch'......'initialmeshsize',1e-3,......'maxtations',1,'USECOMPLETEPOLL',真的);

    如果您的问题具有非线性约束,首先将约束转换为表单Patternsearch.接受使用转换Trustogateopt表单和其他求解器表格之间的非线性约束

  • 如果问题没有整数约束,请尝试运行粉刺从解决方案开始。同样,如果您的问题有非线性约束,首先将约束转换为表单粉刺接受使用转换Trustogateopt表单和其他求解器表格之间的非线性约束。如果问题使用模拟或ode求解器,您可能需要设置更大的有限差分选项粉刺。看优化模拟或普通微分方程

  • 如果问题有整数约束,那么除了尝试运行之外几乎没有。代理人孔有关更多功能评估。使用CheckPoint文件更有效地执行此操作。看使用检查点文件。如果您没有使用检查点文件,还可以使用一组初始点使用首字母选项。

也可以看看

相关话题