matlab求解整数规划、0-1规划

matlab求解整数规划、0-1规划

R2014以前无法求解整数规划,2014之后用bintprog求解0-1规划

线性规划在2016版本中暂时还可用linprog求解

注:代码中标注的pXXXtaskX指的是西安交大采用的第二版数学实验教材的习题或例题。

求解0-1规划

%p180task1
clear,clc;
f=[10 12 15 11 16 13];
A=[40 60 80 50 90 70];
b=300;
Aeq=[1 1 1 1 1 1];
beq=3;
intcon=[1,2,3,4,5,6];
x=intlinprog(f,intcon,A,b,Aeq,beq,zeros(6,1),ones(6,1))

intlinprog中
intcon是指定哪几个变量需要是整数,这里六个变量都需要,所以是intcon=1:6
0-1规划,下限为0,上限为1即可

求解整数规划

% P172task2
clc,clear

Aeq=[1 0 0 1 0 0 1 0 0;
    0 1 0 0 1 0 0 1 0;
    0 0 1 0 0 1 0 0 1];
beq=[300;400;500];
f=[7 8 8 8 7 8 7 9 8];
A=[0.6 0.5 0.5 0 0 0 0 0 0;
    0 0 0 0.4 0.7 0.5 0 0 0;
    0 0 0 0 0 0 0.8 0.6 0.6];
b=[700;800;900];
ub=[];
lb=zeros(9,1);
intcon=[1:9];
[x,fval]=intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)
%todo 这解好像不对

把0-1规划的上下限改变就成了整数规划了。

或者说0-1规划是整数规划在整数规划中的特例,即上下限分别为0,1

  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值