[大谦MATLAB,dqmatlab点com]
【例9】某厂拟购进甲、乙两类机床生产新产品。已知甲、乙机床的进价分别为2万元和3万元;安装占地面积分别为4m2和2m2;投产后的收益分别为300元/日和200元/日。厂方目前仅有资金14万元,安装面积18m2。为使收益最大,厂方应购进甲、乙机床各多少台?
解:设应购进甲、乙机床的台数分别为x1和x2,工厂的收益为Z,整数规划的模型为:
\[\left\{ \begin{matrix} \begin{matrix} \operatorname{max}{z}=300{x}_{1}+200{x}_{2} \\ 2{x}_{1}+3{x}_{2}\leq14 \end{matrix} \\ 4{x}_{1}+2{x}_{2}\leq18 \\ {x}_{1},{x}_{2}\geq0 \\ {x}_{1},{x}_{2}为整数 \end{matrix} \right.\]
在命令窗口中输入下面的命令行:
code.matlab
>> f=[-300;-200];
>> ic=[1 2];
>> A=[2 3;4 2];
>> b=[14;18];
>> Aeq=[];
>> beq=[];
>> lb=zeros(2,1);
>> ub=[Inf;Inf];
>> x=intlinprog(f,ic,A,b,Aeq,beq,lb,ub)
LP: Optimal objective value is -1475.000000.
Cut Generation: Applied 1 Gomory cut.
Lower bound is -1400.000000.
Relative gap is 0.00%.
Optimal solution found.
Intlinprog stopped at the root node because the objective value is within a gap tolerance of the optimal
value, options.AbsoluteGapTolerance = 0(the default value). The intcon variables are
integer within tolerance, options.IntegerTolerance = 1e-05(the default value).
x =
4.0000
1.0000
所以,问题的最优解为:
x1=4, x2=1
此时最大收益为max z=1400元/日。即购入甲、乙两种机床各4台和1台,共投入11万元,占地面积为18m2,最大收益为1400元/日。