2024年6月15日发(作者:)

0-1规划问题

1.问题描述:

0-1规划是整数规划的一种特殊形式。在这种形式下,决策变量只能取0或1两个值,

例如,项目投资、产品的选择、设备的选购、雇员的聘用、投标单位的选取、学生的录取、

股票的选择等,凡是涉及选取或不选取时,都可以用0-1表示,1表示选中,0表示未选

中。

训练内容:

现有一集装箱,拟运输下列物品A1~A5。A1、A2由于体积庞大,集装箱只能装其中

之一;A4、A5由于重量大,也只能装一件;A1是食品,不能与化工产品A4放一起;A2

与A5是配套产品,必须一起运输。A1的运费是1500元,A2的运费是2000元,A3的

运费是1300元,A4的运费是2300元,A5的运费是2800元。问集装箱应如何装箱才能

使运费收入达到最大。

训练要求:

建立数学模型

编程求解

编制实训报告

2.算法描述:

设A1~A5是否装运的控制变量是x1~x5,xi=0表示物品A i不装,xi=1表示物品A

i装箱运输,则目标函数为fv(i)=1500*x1+2000*x2+1300*x3+2300*x4+2800*x5,

约束条件为:

x1+x2<=1 (两者取一)

x4+x5<=1 (两者取一)

x2==x5 (两者同时装或同时不装)

x1~=x4 (两者排斥)

x1,x2,x3,x4,x5为0 ,1元素

3.程序源代码:

function f=ly()

i=1;

for x1=0:1

for x2=0:1

for x3=0:1

for x4=0:1

for x5=0:1

if x1+x2<=1 & x4+x5<=1 & x2==x5 & x1~=x4

fv(i)=1500*x1+2000*x2+1300*x3+2300*x4+2800*x5

ff(i,:)=[x1,x2,x3,x4,x5];

i=i+1;

end

end

end

end

end

end

[maxval,k]=max(fv);

ff(k,:)

maxval

4.程序结果说明:

结果是x =0 0 1 1 0

也就是说运送A3,A4 运费收入最大为3600。

5.小结:

对于这种规划问题,要先搞清楚目标函数,约束条件分别是什么,然后才可以算出在

此约束条件下的最优值。同时要注意这些变量的取值只能是0或1,在程序中也要给予约

束。