Yalmip最优化求解器+matlab | 教程(一)
2024-08-12
大部分内容来自:
https://www.bilibili.com/video/BV16y4y167dn
概念
首先,理清一个概念:
yalmip是一个matlab的工具包,是一种“语言”。通过yalmip描述模型,然后再调用其他的求解器(如gurobi和cplex进行求解)。
由于不同的求解器具有不同的专用语言,因此先用yalmip进行语言编译,再调用求求解器进行求解,具有极大的优势。
yalmip描述模型
1.定义决策变量
例如:
x=sdpvar(10,1)%定义实数变量
intvar %定义整型变量
binvar %定义0-1二进制变量
2.定义约束
Constraints=[约束1,约束2,约束3]
%也可以用分号进行分隔,无论使用哪个,符号要统一
3.定义目标函数
Objective= 目标函数 %默认去最小值
4.设置求解器属性
options=sdpsettings(‘field’,value,‘field’,value,…)
options=sdpsettings(‘verbose’,1,‘solver’,‘gurobi’)
verbose-冗余度
对应后面的0/1:1-显示结果详细;0-不详细,单纯显示结果
5.求解问题
sol=solvesdp(Constraints,Objective,options)
%使用solvesdp()或者optimize()都可以
且其中,三个属性都可以为空
6.分析结果
if sol.problem==0
solution=value(x)
else
disp(‘求解出错’)
end