整数线性规划习题一

习题2.2
某市为方便小学生上学,拟在新建的8个居民小区 A 1 , A 2 , . . . , A 8 A_1,A_2,...,A_8 A1,A2,...,A8增设若干小学,备选校址有 B 1 , B 2 , . . . , B 6 B_1,B_2,...,B_6 B1,B2,...,B6,他们能够覆盖的居民小区如下表所示:

备选校址 B 1 B_1 B1 B 2 B_2 B2 B 3 B_3 B3 B 4 B_4 B4 B 5 B_5 B5 B 6 B_6 B6
覆盖的居民小区 A 1 , A 5 , A 7 A_1,A_5,A_7 A1,A5,A7 A 1 , A 2 , A 5 , A 8 A_1,A_2,A_5,A_8 A1,A2,A5,A8 A 1 , A 3 , A 5 A_1,A_3,A_5 A1,A3,A5 A 2 , A 4 , A 8 A_2,A_4,A_8 A2,A4,A8 A 3 , A 6 A_3,A_6 A3,A6 A 4 , A 6 , A 8 A_4,A_6,A_8 A4,A6,A8

试着建立一个数学模型,确定出最小个数的建校地址,使其能够覆盖所有的居民小区。
代码求解:

%% 本程序是针对数学建模书中习题2.2
clear,clc;
f=ones(6,1);
intcon=1:6;
a=[1 1 1 0 0 0
   0 1 0 1 0 0
   0 0 1 0 1 0
   0 0 0 1 0 1
   1 1 1 0 0 0
   0 0 0 0 1 1
   1 0 0 0 0 0
   0 1 0 1 0 1 ];
a=-a;
b=-ones(8,1);
aeq=[];
beq=[];
lb=zeros(6,1);
ub=ones(6,1);
x=intlinprog(f,intcon,a,b,aeq,beq,lb,ub)

求解结果

x =

     1
     0
     0
     1
     1
     0

最后求得结果为:选取备用校址为1,4,5。

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
对于整数线性规划问题2.6,我们可以使用分支定界法来求解。具体的步骤如下: 1. 将原问题转化为标准型,即将目标函数最大化转化为最小化,并将不等式约束转化为等式约束。 2. 构造初始子问题,即将所有变量均取整数值的线性规划问题。 3. 对子问题进行求解,如果得到最优解为整数,则该解同时也是原问题的最优解,直接输出并结束算法。 4. 如果得到最优解不是整数,则需要进行分支操作。选择某一个变量 x_i,将其拆分成两个变量 x_i1 和 x_i2,分别满足 x_i1 ≤ x_i ≤ x_i2,并将问题分成两个子问题: - 子问题1:在原问题的约束条件下,最小化目标函数,同时增加一个新的约束条件 x_i ≤ ⌊(x_i1 + x_i2)/2⌋。 - 子问题2:在原问题的约束条件下,最小化目标函数,同时增加一个新的约束条件 x_i ≥ ⌈(x_i1 + x_i2)/2⌉。 5. 对两个子问题分别进行求解,并记录下每个子问题的最优解。如果最优解为整数,则输出并结束算法。如果最优解不是整数,则选择下一个需要分支的变量,重复步骤4和步骤5。 6. 在所有可行的子问题中,选择目标函数值最小的作为当前子问题的最优解,并将其作为父问题的上界。 7. 如果当前子问题的最优解大于父问题的上界,则将该子问题舍弃。否则,将该子问题作为下一个需要求解的子问题,重复步骤3到步骤6,直到得到整数解或者所有子问题被舍弃。 以上就是解决整数线性规划问题2.6的分支定界算法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ρ爱上θ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值