YALMIP工具箱 混合整数规划

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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:显示求解的答案

相关文档
最新文档