主要内容GyD.F4y2Ba

混合整数线性规划基础:基于求解器GyD.F4y2Ba

此示例示出了如何解决混合整数线性问题。虽然没有复杂的,示例性示出了在配制使用的语法的问题的典型步骤GyD.F4y2Baintlinprog.GyD.F4y2Ba。GyD.F4y2Ba

对于基于问题的方法来解决这个问题,请参阅GyD.F4y2Ba混合整数线性规划基础:基于问题GyD.F4y2Ba。GyD.F4y2Ba

问题描述GyD.F4y2Ba

您希望用各种化学组成融合钢材,以获得25吨钢,具有特定的化学成分。结果应具有5%的碳和5%的钼(重量),这意味着25吨* 5%2 = 1.25吨碳和1.25吨钼。我们的目标是尽量减少混合钢的成本。GyD.F4y2Ba

这个问题来自Carl-Henrik Westerberg,Bengt Bjorklund和Eskil Hultman,“GyD.F4y2Ba混合整数规划在瑞典钢厂中的应用GyD.F4y2Ba《界面》1977年2月第7卷第2期39-43页,其摘要载于GyD.F4y2Bahttps://doi.org/10.1287/inte.7.2.39GyD.F4y2Ba。GyD.F4y2Ba

购买四锭可供购买。只有每个铸锭中的一个。GyD.F4y2Ba

一世GyD.F4y2Ba NGyD.F4y2Ba GGyD.F4y2Ba O.GyD.F4y2Ba T.GyD.F4y2Ba W.GyD.F4y2Ba E.GyD.F4y2Ba 一世GyD.F4y2Ba GGyD.F4y2Ba HGyD.F4y2Ba T.GyD.F4y2Ba 一世GyD.F4y2Ba NGyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba NGyD.F4y2Ba S.GyD.F4y2Ba %GyD.F4y2Ba CGyD.F4y2Ba 一种GyD.F4y2Ba R.GyD.F4y2Ba B.GyD.F4y2Ba O.GyD.F4y2Ba NGyD.F4y2Ba %GyD.F4y2Ba mGyD.F4y2Ba O.GyD.F4y2Ba L.GyD.F4y2Ba yGyD.F4y2Ba B.GyD.F4y2Ba D.GyD.F4y2Ba E.GyD.F4y2Ba NGyD.F4y2Ba 你GyD.F4y2Ba mGyD.F4y2Ba CGyD.F4y2Ba O.GyD.F4y2Ba S.GyD.F4y2Ba T.GyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba NGyD.F4y2Ba 1GyD.F4y2Ba 5.GyD.F4y2Ba 5.GyD.F4y2Ba 3.GyD.F4y2Ba $GyD.F4y2Ba 3.GyD.F4y2Ba 5.GyD.F4y2Ba 0.GyD.F4y2Ba 2GyD.F4y2Ba 3.GyD.F4y2Ba 4.GyD.F4y2Ba 3.GyD.F4y2Ba $GyD.F4y2Ba 3.GyD.F4y2Ba 3.GyD.F4y2Ba 0.GyD.F4y2Ba 3.GyD.F4y2Ba 4.GyD.F4y2Ba 5.GyD.F4y2Ba 4.GyD.F4y2Ba $GyD.F4y2Ba 3.GyD.F4y2Ba 1GyD.F4y2Ba 0.GyD.F4y2Ba 4.GyD.F4y2Ba 6.GyD.F4y2Ba 3.GyD.F4y2Ba 4.GyD.F4y2Ba $GyD.F4y2Ba 2GyD.F4y2Ba 8.GyD.F4y2Ba 0.GyD.F4y2Ba

可供购买的合金钢有三种等级和一种等级的废钢。合金和废钢可以少量购买。GyD.F4y2Ba

一种GyD.F4y2Ba L.GyD.F4y2Ba L.GyD.F4y2Ba O.GyD.F4y2Ba yGyD.F4y2Ba %GyD.F4y2Ba CGyD.F4y2Ba 一种GyD.F4y2Ba R.GyD.F4y2Ba B.GyD.F4y2Ba O.GyD.F4y2Ba NGyD.F4y2Ba %GyD.F4y2Ba mGyD.F4y2Ba O.GyD.F4y2Ba L.GyD.F4y2Ba yGyD.F4y2Ba B.GyD.F4y2Ba D.GyD.F4y2Ba E.GyD.F4y2Ba NGyD.F4y2Ba 你GyD.F4y2Ba mGyD.F4y2Ba CGyD.F4y2Ba O.GyD.F4y2Ba S.GyD.F4y2Ba T.GyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba NGyD.F4y2Ba 1GyD.F4y2Ba 8.GyD.F4y2Ba 6.GyD.F4y2Ba $GyD.F4y2Ba 5.GyD.F4y2Ba 0.GyD.F4y2Ba 0.GyD.F4y2Ba 2GyD.F4y2Ba 7.GyD.F4y2Ba 7.GyD.F4y2Ba $GyD.F4y2Ba 4.GyD.F4y2Ba 5.GyD.F4y2Ba 0.GyD.F4y2Ba 3.GyD.F4y2Ba 6.GyD.F4y2Ba 8.GyD.F4y2Ba $GyD.F4y2Ba 4.GyD.F4y2Ba 0.GyD.F4y2Ba 0.GyD.F4y2Ba S.GyD.F4y2Ba CGyD.F4y2Ba R.GyD.F4y2Ba 一种GyD.F4y2Ba P.GyD.F4y2Ba 3.GyD.F4y2Ba 9.GyD.F4y2Ba $GyD.F4y2Ba 1GyD.F4y2Ba 0.GyD.F4y2Ba 0.GyD.F4y2Ba

要制定问题,首先确定控制变量。拿变量GyD.F4y2Bax(1)= 1GyD.F4y2Ba意味着你购买锭GyD.F4y2Ba1GyD.F4y2Ba,GyD.F4y2Bax(1)= 0GyD.F4y2Ba意思是你不要买铸锭。同样,变量GyD.F4y2Bax(2)GyD.F4y2Ba通过GyD.F4y2Bax(4)GyD.F4y2Ba二进制变量是否指示您是否购买锭GyD.F4y2Ba2GyD.F4y2Ba通过GyD.F4y2Ba4.GyD.F4y2Ba。GyD.F4y2Ba

变量GyD.F4y2Bax (5)GyD.F4y2Ba通过GyD.F4y2Bax (7)GyD.F4y2Ba是吨合金的数量GyD.F4y2Ba1GyD.F4y2Ba那GyD.F4y2Ba2GyD.F4y2Ba,GyD.F4y2Ba3.GyD.F4y2Ba你购买,和GyD.F4y2Bax (8)GyD.F4y2Ba是您购买的废钢的数量。GyD.F4y2Ba

MATLAB®配方GyD.F4y2Ba

通过指定输入来制定问题GyD.F4y2Baintlinprog.GyD.F4y2Ba。相关GyD.F4y2Baintlinprog.GyD.F4y2Ba语法是:GyD.F4y2Ba

[x,fval] = intlinprog(f,intcon,a,b,aeq,beq,lb,Ub)GyD.F4y2Ba

创建输入GyD.F4y2Baintlinprog.GyD.F4y2Ba从第一个(GyD.F4y2BaFGyD.F4y2Ba)通过最后一次(GyD.F4y2BaUB.GyD.F4y2Ba)。GyD.F4y2Ba

FGyD.F4y2Ba是成本系数的矢量。表示铸锭成本的系数是铸锭重量/每吨成本。GyD.F4y2Ba

F = [350 * 5330 * 3310 * 4280 * 6,500,450,400,100];GyD.F4y2Ba

整数变量是前四个。GyD.F4y2Ba

INTCON = 1:4;GyD.F4y2Ba

提示:GyD.F4y2Ba要指定二进制变量,请将变量设置为整数GyD.F4y2BaIntcon.GyD.F4y2Ba,并给他们一个下限GyD.F4y2Ba0.GyD.F4y2Ba和一个上限GyD.F4y2Ba1GyD.F4y2Ba。GyD.F4y2Ba

问题没有线性不等式约束,所以GyD.F4y2Ba一种GyD.F4y2Ba和GyD.F4y2BaB.GyD.F4y2Ba为空矩阵(GyD.F4y2Ba[]GyD.F4y2Ba)。GyD.F4y2Ba

一个= [];b = [];GyD.F4y2Ba

问题有三个平等约束。首先是总重量为25吨。GyD.F4y2Ba

5 * x (1) + 3 * x (2) + 4 * x (3) + 6 * x (4) + (5) + x (6) + x (7) + (8) = 25GyD.F4y2Ba

第二个约束是碳的重量为25吨的5%,或1.25吨。GyD.F4y2Ba

5 * 0.05 * x(1)+ 3 * 0.04 * x(2)+ 4 * 0.05 * x(3)+ 6 * 0.03 * x(4)GyD.F4y2Ba

+ 0.08 * x(5)+ 0.07 * x(6)+ 0.06 * x(7)+ 0.03 * x(8)= 1.25GyD.F4y2Ba

第三个限制是钼的重量为1.25吨。GyD.F4y2Ba

5 * 0.03 * x(1)+ 3 * 0.03 * x(2)+ 4 * 0.04 * x(3)+ 6 * 0.04 * x(4)GyD.F4y2Ba

+ 0.06 * 0.07 x (5) + * x (6) + 0.08 * (7) x (8) = 1.25 + 0.09 *GyD.F4y2Ba

指定由矩阵形式的AEQ * x = BEQ的约束。GyD.F4y2Ba

Aeq =[5, 3、4、6,1,1,1,1;5 * 0.05, 3 * 0.04, 4 * 0.05, 6 * 0.03, 0.08, 0.07, 0.06, 0.03;5 * 0.03, 3 * 0.03, 4 * 0.04, 6 * 0.04, 0.06, 0.07, 0.08, 0.09);说真的= (25;1.25;1.25);GyD.F4y2Ba

每个变量均按零界限为零。整数变量以上界限为一个。GyD.F4y2Ba

lb =零(8,1);UB =α(8,1);UB(5:结束)= INF;GyD.F4y2Ba%非整型变量没有上限GyD.F4y2Ba

解决问题GyD.F4y2Ba

现在,你把所有的投入,让解决。GyD.F4y2Ba

[x,fval] = intlinprog(f,intcon,a,b,aeq,beq,lb,Ub);GyD.F4y2Ba
LP:最佳目标值为8125.600000。切割生成:应用3 miR切割。下限为8495.000000。相对间隙为0.00%。找到最佳解决方案。intlinprog在根节点处停止,因为目标值在最佳值的间隙容忍度范围内,options.absolutegolerance = 0(默认值)。INTCON变量在公差中是整数,Options.integertolerance = 1E-05(默认值)。GyD.F4y2Ba

查看解决方案。GyD.F4y2Ba

x,fval.GyD.F4y2Ba
X =GyD.F4y2Ba8×1GyD.F4y2Ba1.0000 1.0000 0 1.0000 7.2500 0 0.2500 3.5000GyD.F4y2Ba
fval = 8.4950e + 03GyD.F4y2Ba

最优购买价格为8495美元。买锭GyD.F4y2Ba1GyD.F4y2Ba那GyD.F4y2Ba2GyD.F4y2Ba,GyD.F4y2Ba4.GyD.F4y2Ba, 但不是GyD.F4y2Ba3.GyD.F4y2Ba,并购买7.25吨合金GyD.F4y2Ba1GyD.F4y2Ba, 0.25吨合金GyD.F4y2Ba3.GyD.F4y2Ba和3.5吨废钢。GyD.F4y2Ba

放GyD.F4y2BaIntcon = []GyD.F4y2Ba要查看解决问题的效果,而无需整数约束。解决方案是不同的,并且是不可立论的,因为你不能购买一小部分铸锭。GyD.F4y2Ba

相关的话题GyD.F4y2Ba