matlab 整数规划工具箱,Matlab中的YALMIP工具箱 混合整数规划

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:显示求解的答案

intvar,sdpvar,生成的变量可以像矩阵一样使用,如例题显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值