在YALMIP中,需要安装另一个半确定编程求解器,如MOSEK, SEDUMI或SDPT3。
请注意,LMI Lab在一般问题上通常很慢。当明确地声明控制特定结构时,LMI Lab是有效的,但是YALMIP不能利用这一特性,因此与直接在LMI Lab中建模问题相比,LMI Lab的运行速度要慢得多。因此,如果坚持使用LMI Lab, YALMIP将导致效率问题。
此外,LMI实验室不会向YALMIP返回任何错误或不可行性报告。因此,无论发生什么,YALMIP都将始终报告成功。
最后,LMI Lab在默认情况下具有非常低的精度公差,因此您得到的解决方案往往远不是最优的。
总而言之,不要将LMI Lab与YALMIP一起使用。
下面是YALMIP的官方原文:
LMILAB
Semidefinite programming solver
In YALMIP
LMILAB is invoked by using 'lmilab' as solver flag in sdpsettings
Comments
Summary: Please do not use LMI Lab with YALMIP. Install another semidefinite programming solver such as MOSEK, SEDUMI or SDPT3
Please note that LMI Lab often is terribly slow on general problems. LMI Lab is efficient when control specific structure is explicitly stated, but YALMIP cannot exploit this feature and LMI Lab will thus run much slower compared to when the problem is modeled directly in LMI Lab. Hence, if you insist on using LMI Lab, YALMIP will cause efficiency problems. Of course, a simple solution is to switch solver and use just about any other solver.
Another problem with the solver is that LMI Lab does not return duals.
Additionally, LMI Lab does not return any error or infeasibility reports to YALMIP. Hence, YALMIP will always report success, no matter what happens.
Finally, LMI Lab has a very low precision tolerance by default, so you often get solutions far from optimal.
To summarize, do not use LMI Lab together with YALMIP unless you really, really, have to. And then, if you do, you are on your own.