Main Content

提升代理解决方案或过程

代理摊位

当您具有线性约束和整数约束时,代理可能无法找到任何可行的点或足够不同的可行点来创建替代物。在这些情况下,求解器带有出口标志的退出 -2(找不到可行的点)或3(太少的可行点)。有关出口标志的详细信息 -2, 看No Feasible Point Found

出口标志3可以以两种不同的方式发生:

  • There were too few feasible points to construct an initial surrogate.

  • 替代重置后,很少有可行的观点无法构建替代物。

You can see which case applies by using the替代品图功能。

options = optimoptions('surrogateopt',,,,'PlotFcn',,,,“代理”);[溶胶,fval exitflag] = surrogateopt(arguments,options);

After each surrogate reset,代理requires more feasible points to construct the next surrogate. When there are integer constraints,代理可以用尽可行的点,或者即使有些仍然存在,也无法找到新的可行点

如果代理has performed at least one reset, then it has successfully searched for a solution. In this case, you might have the solution to the problem.

如果代理无法创建初始替代,或者是否代理重置,您想尝试找到另一个解决方案,执行以下步骤。

  1. 放松一些约束。

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

    • 通过选择较大的值来放松一些线性不等式约束bvector. You can relax allb通过添加标量立即值:

      b= b + 5;
  2. 同样,如果您的界限限制导致问题的可行点太少,并且如果对您的问题有意义,请放松界限。采取较大的上限或较小的下限或两者兼而有之。您可以通过添加或减去标量立即放松所有界限。

    ub = ub + 3; lb = lb - 1;

No Feasible Point Found

When代理找不到关于边界,整数约束和线性约束的可行的点,它返回出口标志 -2。在这种情况下,问题确实是不可行的。

However, the solver can also return exit flag –2当它无法找到有关非线性不等式约束的可行的点时。即使存在可行的点,有时也会发生这种情况。要进行,请执行步骤Converged to an Infeasible Point

Solution Might Not Be Optimal

Usually,代理当它用完功能评估时,停止。这意味着代理不停止,因为它达到了最佳解决方案。但是,当发生替代重置时,当前溶液通常接近局部最佳。

您如何评估解决方案的质量?通常,这很难做到。以下是研究解决方案以帮助确定其本地质量的一些步骤。但是,没有程序可以保证一个要点是全球解决方案。看Can You Certify That a Solution Is Global?

  • 如果问题没有整数限制,请查看附近的点。为此,请致电patternsearch在返回的解决方案上。设置InitialMeshSize您要使用的搜索步骤大小的选项。保持patternsearch从花太多时间来设置最大值option to1USECOLLETETEPOLLoption totrue

    options = optimoptions(“模式搜索”,,,,...“初始测量”,1E-3,...“最大”,1,'UseCompletePoll',真的);

    如果您的问题具有非线性约束,请首先将约束转换为表格patternsearchaccepts using转换替代表格和其他求解器表格之间的非线性约束

  • 如果问题没有整数限制,请尝试运行Fminconstarting from the solution. Again, if your problem has nonlinear constraints, first convert the constraints to the form thatFminconaccepts using转换替代表格和其他求解器表格之间的非线性约束。如果问题使用模拟或ODE求解器,则可能需要为Fmincon。看优化仿真或普通微分方程

  • 如果问题有整数限制,那么除了尝试运行之外,几乎没有什么可做的代理有关更多功能评估。通过使用检查点文件最有效地执行此操作。看使用检查点文件。如果you did not use a checkpoint file, you can also give a set of initial points using the初始点option.

也可以看看

Related Topics