YALMIP工具箱 混合整数规划
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
YALMIP工具箱混合整数规划
定义变量:
sqdvar()实型
intvar()整型
binvar()0-1型
设定目标函数:
f=目标函数
设定限定条件:
F=set(限定条件)
多个限定条件用加号相连:
F=set(限定条件)+set(限定条件1)+set(限定条件2)……
求解:solvesdp(F,f)
这里解得是F条件下目标函数f的最小值,要求最大值f前面加个负号求解之后查看数值:
double(f)double(变量)
有个例子:
已知非线性整数规划为:
Max z=x1^2+x2^2+3*x3^2+4*x4^2+2*x5^2-8*x1-2*x2-3*x3-x4-2*x5 s.t.
0<=xi<=99(i=1,2, (5)
x1+x2+x3+x4+x5<=400
x1+2*x2+2*x3+x4+6*x5<=800
2*x1+x2+6*x3<=800
x3+x4+5*x5<=200
在matlab中输入x=intvar(1,5);
f=[1 1 3 4 2]*(x'.^2)-[8 2 3 1 2]*x';F=set(0<=x<=99);
F=F+set([1 1 1 1 1]*x'<=400)+set([1 2 2 1 6]*x'<=800)+set(2*x(1)+x(2)+6*x(3)<=800);
F=F+set(x(3)+x(4)+5*x(5)<=200);solvesdp(F,-f)
double(f) 80199
double(x) 53 99 99 99 0
intvar(m,n):生成整数型变量;
sdpvar(m,n):生产变量;
solvesdp(F,f):求解最优解(最小值),其中F为约束条件(用set连接),f为目标函数
double:显示求解的答案