补充—整数规划例题

1.将非线性0-1问题转成线性0-1问题

  • 例题1
    在这里插入图片描述

先做变量替换,把y=x(1)x(2),有如下关系:

x(1) + x(2) - 1 ≤ y ≤ x(1)
x(1) + x(2) - 1 ≤ y ≤ x(2)

从而有线性0-1规划为:

max z = x(1) + y - x(3)
s.t.:
     -2x(1) + 3x(2) + x(3)3,
      x(1) + x(2) - 1 ≤ y ≤  x(1),
      x(1) + x(2) - 1 ≤ y ≤  x(2),
      x(j) = 01, j = 1:3
      y = 01 
     

2.指派问题

  • 例题2
    一车队有8辆车 这8辆车存放在不同的地点,队长要 要派其中5辆到5个不同的工地去运货。各车从存放 处调到装货地点所需费用列于表2 5,问应选用哪5辆车调 到何处去运货,才能使各车从所在地点调到装货地点所需的总费用最少?
    在这里插入图片描述
    记c(i)(j)表示第 j 号车调到装货地点 i 所需的费用。引入0-1变量:
    x(i)(j) = 1表示第 j 号车调到装货地点 i ,反之x(i)(j) = 0表示第 j 号车没有被调到装货地点 i。
    建立0-1整数规划模型:
    在这里插入图片描述
% 将二维决策变量Xij(i=1:5,j=1:8)变为一维决策变量yk(k=1:40)
clc,clear
c = [30,25,18,32,27,19,22,26
     29,31,19,18,21,20,30,19
     28,29,30,19,19,22,23,26
     29,30,19,24,25,19,18,21
     21,20,18,17,16,14,16,18];
c=c(:);
a=zeros(8,40); % 840列的零矩阵
intcon=1:40; % 一维决策变量中k的取值
for j=1:8 % 对行操作
    a(j,(j-1)*5+1:j*5) = 1;
end
b=ones(8,1); % 81列的为1矩阵
Aeq=zeros(5,40);
for i=1:5 % 对列操作
    Aeq(i,i:5:40) = 1;
end
beq=ones(5,1);
lb=zeros(40,1);
ub=ones(40,1);
[x,y] = intlinprog(c,intcon,a,b,Aeq,beq,lb,ub);
x = reshape(x,[5,8]),y % reshape是输出58列矩阵

输出为

x =

     0     0     1     0     0     0     0     0
     0     0     0     1     0     0     0     0
     0     0     0     0     1     0     0     0
     0     0     0     0     0     0     1     0
     0     0     0     0     0     1     0     0

最低总费用为 y = 87
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白只对大佬的文章感兴趣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值