yalmip找不到最优解
时间: 2023-08-29 14:05:01 浏览: 232
引用\[1\]:在编程求解目标函数时,出现NAN一般有以下几个原因。首先,原始数据可能出现问题。其次,可能缺少约束,因为yalmip中语言逻辑与数学逻辑并不完全对等。最后,决策变量不可以传递,不可以赋值,如果将决策变量赋值给了double型值,则由于matlab中double的优先原则,会先将赋值等式中的决策变量进行value操作,再将其赋予double。\[1\]
引用\[2\]:MATLAB是一种商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。而IBM CPLEX ILOG是IBM公司开发的优化引擎,可用于求解大规模数学规划问题。通过在MATLAB中调用CPLEX工具箱,就能方便地利用MATLAB平台进行模型的求解,并为模型文件提供了求解、分析、操作及写入/读出的方法。同时通过引入Yalmip工具箱,能够大大简化程序格式,提高程序可读性。\[2\]
引用\[3\]:机组组合问题要求基于已知的系统数据,求解计划时间内机组决策变量的最优组合,使得系统总成本达到最小。该问题的决策变量由两类,一类是各时段机组的启停状态,为整数变量,0表示关停,1表示启动;另一类是各时段机组的出力,为连续变量。机组组合问题属于规划问题,即要在决策变量的可行解空间里找到一组最优解,使得目标函数尽可能取得极值。对于混合整数规划,常用的方法有分支定界法,benders分解等。CPLEX提供了快速的MIP求解方法,对于数学模型已知的问题,只需要按照程序规范在MATLAB中编写程序化模型,调用CPLEX求解器,即可进行求解。\[3\]
根据您提供的信息,出现NAN的原因可能是由于数据问题、缺少约束或决策变量赋值错误。为了解决机组组合问题,可以使用MATLAB和CPLEX工具箱进行求解。通过编写程序化模型并调用CPLEX求解器,可以在决策变量的可行解空间中找到最优解,使得系统总成本达到最小。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [利用matlab中yalmip的Cplex求解器时出现NAN几种原因](https://blog.csdn.net/weixin_47365903/article/details/120894285)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [基于MATLAB/yalmip/cplex 的机组最优组合](https://blog.csdn.net/lyzslq/article/details/124911686)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文