欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Yalmip工具箱(3)——错误类型

Yalmip工具箱(3)——错误类型

2025/4/15 13:31:46 来源:https://blog.csdn.net/m0_49842530/article/details/147099018  浏览:    关键词:Yalmip工具箱(3)——错误类型

在yalmip中,不可避免地我们会遇到求解出问题的情况,理解和处理错误信息是至关重要的环节。在这里我们查看yalmip的所有错误类型(详细见 yalmiperror.m 函数)

函数概述

yalmiperror函数的主要作用是根据YALMIP产生的错误代码,创建对应的文本描述。通过这种方式,用户能够更加直观地了解在使用SOLVESDP等函数时出现问题的原因。

函数调用格式

  1. s = YALMIPERROR(ID):输入错误代码ID,函数返回对应的文本描述,这是获取单个错误信息的常见方式。
  2. yalmiperror():如果不输入任何参数,函数会循环展示从-1224所有错误代码及其对应的描述,方便用户全面了解可能出现的错误类型。

输入参数详解

  • errorcode:必需参数,代表YALMIP生成的错误代码,不同的代码对应不同类型的错误。
  • solver:可选参数,用于指定相关的求解器。如果未输入或输入格式不正确,函数会进行相应处理。若未输入,该参数将被设置为空字符串;若输入了,函数会对其中的+符号进行替换处理。
  • flag:可选参数,默认值为0。它主要影响错误信息中是否包含超链接,超链接指向的页面有助于用户学习如何调试相应的错误。当flag为非零值时,错误信息中不会包含这些超链接。

错误代码与对应信息解析

求解器许可证相关错误

  • -12Solver license cannot be located (求解器名称),表示求解器许可证无法定位,可能是许可证路径设置错误或许可证文件丢失。
  • -11Solver license expired (求解器名称),明确指出求解器许可证已过期,需要更新许可证。

模型数据错误

  • -10:当flag为0时,NaN in model data (<a href="yalmip.github.io/naninmodel">learn to debug</a>) (求解器名称),提示模型数据中存在NaN值,并提供了调试指南链接;当flag为非0时,NaN in model data (求解器名称),仅告知模型数据中有NaN值。

求解器相关错误

  • -9Specified solver not recognized (求解器名称),说明指定的求解器未被识别,可能是求解器名称拼写错误或该求解器未正确安装配置。
  • -8Problem does not satisfy geometric programming rules,表明问题不满足几何规划规则,需要检查模型的构建是否符合几何规划的要求。
  • -7Solver does not return error codes (求解器名称),意味着求解器无法返回错误代码,这给调试带来了一定困难,需要进一步排查求解器的运行状态。
  • -6Search space not bounded (求解器名称),提示搜索空间无界,可能导致求解过程无法收敛,需要调整模型的约束条件来界定搜索空间。
  • -5License problems in solver (求解器名称),表示求解器存在许可证问题,与许可证无法定位或过期不同,这里可能涉及许可证的其他问题,如许可证不兼容等。
  • -4Solver not applicable (求解器名称),说明该求解器不适用于当前问题,需要更换合适的求解器。
  • -3Solver not found (求解器名称),表示找不到指定的求解器,可能是求解器未安装或安装路径未正确设置。
  • -2No suitable solver,即没有找到合适的求解器,可能需要检查模型的类型以及已安装求解器的适用范围,以确定合适的求解器。

求解状态相关错误

  • 0Successfully solved (求解器名称),这是最理想的状态,表示问题已成功求解。
  • 1:当flag为0时,Infeasible problem (<a href="yalmip.github.io/debugginginfeasible">learn to debug</a>) (求解器名称),表明问题不可行,并提供调试不可行问题的链接;当flag为非0时,Infeasible problem (求解器名称),仅告知问题不可行。
  • 2:类似地,当flag为0时,Unbounded objective function (<a href="yalmip.github.io/debuggingunbounded">learn to debug</a>) (求解器名称),表示目标函数无界并提供调试链接;当flag为非0时,Unbounded objective function (求解器名称)
  • 3Maximum iterations or time limit exceeded (求解器名称),说明求解过程达到了最大迭代次数或时间限制,可能需要调整迭代参数或优化算法。
  • 4:当flag为0时,Numerical problems (<a href="yalmip.github.io/inside/debuggingnumerics">learn to debug</a>) (求解器名称),提示存在数值问题并提供调试数值问题的链接;当flag为非0时,Numerical problems (求解器名称)
  • 5:当flag为0时,Lack of progress (<a href="yalmip.github.io/inside/debuggingnumerics">learn to debug</a>) (求解器名称),表示求解过程缺乏进展并提供调试链接;当flag为非0时,Lack of progress (求解器名称)
  • 6Initial solution infeasible (求解器名称),说明初始解不可行,需要重新选择初始解或调整模型。
  • 7YALMIP called solver with incorrect input (求解器名称),意味着YALMIP向求解器传递了不正确的输入,需要检查输入参数的设置。
  • 8Feasibility cannot be determined (求解器名称),表示无法确定问题的可行性,可能需要进一步分析模型和约束条件。
  • 9Unknown problem (<a href="yalmip.github.io/inside/debug">learn to debug</a>) (求解器名称),对于未知问题,提供了通用的调试链接。
  • 10bigM failed, increase sp.Mfactor (求解器名称),提示bigM方法失败,需要增加sp.Mfactor参数值。
  • 11Other identified error (求解器名称),表示识别出了其他类型的错误,但具体信息未明确,需要进一步排查。
  • 12:当flag为0时,Either infeasible or unbounded (<a href="yalmip.github.io/infeasibleorunbounded">learn to debug</a>) (求解器名称),说明问题可能不可行或无界并提供调试链接;当flag为非0时,Either infeasible or unbounded (求解器名称)
  • 13YALMIP cannot determine status in solver (求解器名称),表明YALMIP无法确定求解器的状态,需要检查求解器与YALMIP的交互情况。
  • 14Model creation failed (<a href="yalmip.github.io/inside/debuggingcreationfailed">learn to debug</a>) (求解器名称),提示模型创建失败并提供相关调试链接。
  • 15:当flag为0时,Infeasible or unbounded problem (<a href="yalmip.github.io/infeasibleorunbounded">learn to debug</a>) (求解器名称);当flag为非0时,Infeasible or unbounded problem (求解器名称),与12类似,再次强调问题可能不可行或无界。
  • 16User terminated (求解器名称),表示用户手动终止了求解过程。
  • 17Presolve recovery failed (求解器名称),说明预求解恢复失败,可能需要调整预求解的参数或方法。
  • 18Missing non - negativity bounds in GP formulation (求解器名称),在几何规划公式中缺少非负性边界,需要检查和补充相关边界条件。
  • 19Convexity requirements not met (求解器名称),表示模型不满足凸性要求,需要重新构建模型以满足凸优化的条件。
  • 20Solver complains about bad data (<a href="yalmip.github.io/inside/debuggingnumerics">learn to debug</a>) (求解器名称),求解器抱怨数据质量不佳并提供调试链接。
  • 21Failed to initialize bisection space (probably infeasible) (求解器名称),初始化二分空间失败,很可能是问题本身不可行。
  • 22Ill - posed problem according to solver (求解器名称),求解器认为问题不适定,需要重新审视问题的定义和模型的构建。
  • 23Unsupported mixed cone (求解器名称),表示不支持混合锥,需要调整模型中涉及的锥类型。
  • 24Infeasible in presolve (求解器名称),在预求解阶段就发现问题不可行,需要对模型进行全面检查。

通过对yalmiperror函数的深入了解,我们在使用YALMIP进行优化建模时,能够更高效地诊断和解决遇到的各种问题,从而提升优化算法的开发和应用效率。无论是许可证问题、模型数据错误还是求解过程中的各种异常情况,都可以借助这个函数提供的详细信息找到解决问题的方向。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词