此示例示出了如何解决混合整数线性问题。虽然没有复杂的,示例性示出了在配制使用的语法的问题的典型步骤GÿdF4y2BaintlinprogGÿdF4y2Ba
。GÿdF4y2Ba
对于基于问题的方法解决这个问题,请参阅GÿdF4y2Ba混合整数线性规划基础:基于问题GÿdF4y2Ba。GÿdF4y2Ba
要混合使用各种化学成分的钢材,以获得25吨钢材具有特定的化学成分。结果应具有5%的碳和5%的钼(重量),这意味着25吨* 5%2 = 1.25吨碳和1.25吨钼。我们的目标是尽量减少混合钢的成本。GÿdF4y2Ba
此问题是由卡尔 - 亨里克·韦斯特贝里,本特比约克伦和Eskil Hultman采取“GÿdF4y2Ba混合整数规划的在瑞典钢铁厂中的应用GÿdF4y2Ba《接口》,1977年2月,第7卷,第2期,第39-43页,其摘要载于GÿdF4y2Bahttps://doi.org/10.1287/inte.7.2.39GÿdF4y2Ba。GÿdF4y2Ba
钢四锭可供购买。只有各铸锭一个是可用的。GÿdF4y2Ba
有三种等级的合金钢和一种等级的废钢可供购买。合金钢和废钢可以少量购买。GÿdF4y2Ba
要制定问题,首先决定控制变量。取变量GÿdF4y2BaX(1)= 1GÿdF4y2Ba
意味着你购买元宝GÿdF4y2Ba1GÿdF4y2Ba,GÿdF4y2BaX(1)= 0GÿdF4y2Ba
意思是你不买锭。同样,变量GÿdF4y2BaX(2)GÿdF4y2Ba
通过GÿdF4y2BaX(4)GÿdF4y2Ba
是二元变量,指示是否购买元宝GÿdF4y2Ba2GÿdF4y2Ba通过GÿdF4y2Ba4GÿdF4y2Ba。GÿdF4y2Ba
变量GÿdF4y2Bax (5)GÿdF4y2Ba
通过GÿdF4y2Bax (7)GÿdF4y2Ba
是数量以吨合金GÿdF4y2Ba1GÿdF4y2Ba,GÿdF4y2Ba2GÿdF4y2Ba,GÿdF4y2Ba3GÿdF4y2Ba您购买的,并GÿdF4y2Bax (8)GÿdF4y2Ba
是废钢您购买的数量。GÿdF4y2Ba
通过用于指定输入制定的问题GÿdF4y2BaintlinprogGÿdF4y2Ba
。相关GÿdF4y2BaintlinprogGÿdF4y2Ba
句法:GÿdF4y2Ba
[X,FVAL] = intlinprog(F,INTCON,A,B,AEQ,BEQ,LB,UB)GÿdF4y2Ba
创建输入GÿdF4y2BaintlinprogGÿdF4y2Ba
从第一(GÿdF4y2BaFGÿdF4y2Ba
)通过最后(GÿdF4y2BaUBGÿdF4y2Ba
)。GÿdF4y2Ba
FGÿdF4y2Ba
是成本系数的矢量。代表锭的成本系数是钢锭重量倍,每吨的成本。GÿdF4y2Ba
F = [350 * 5330 * 3310 * 4280 * 6,500,450,400,100];GÿdF4y2Ba
整数变量是前四个。GÿdF4y2Ba
INTCON = 1:4;GÿdF4y2Ba
小费:GÿdF4y2Ba要指定二元变量,设置的变量是在整数GÿdF4y2BaINTCONGÿdF4y2Ba
,并给他们一个较低的束缚GÿdF4y2Ba0GÿdF4y2Ba
和上界的GÿdF4y2Ba1GÿdF4y2Ba
。GÿdF4y2Ba
问题没有线性不等式约束,所以GÿdF4y2Ba一个GÿdF4y2Ba
和GÿdF4y2BabGÿdF4y2Ba
为空矩阵(GÿdF4y2Ba[]GÿdF4y2Ba
)。GÿdF4y2Ba
一个= [];b = [];GÿdF4y2Ba
这个问题有三个等式约束。第一,总重量为25吨。GÿdF4y2Ba
5 * x (1) + 3 * x (2) + 4 * x (3) + 6 * x (4) + (5) + x (6) + x (7) + (8) = 25GÿdF4y2Ba
第二个约束是,碳的重量为25吨,或1.25吨5%。GÿdF4y2Ba
5 * 0.05 * X(1)+ 3 * 0.04 * X(2)+ 4 * 0.05 * X(3)+ 6 * 0.03 * X(4)GÿdF4y2Ba
+ 0.08 * X(5)+ 0.07 * X(6)+ 0.06 * X(7)+ 0.03 * X(8)= 1.25GÿdF4y2Ba
第三个限制是钼的重量是1.25吨。GÿdF4y2Ba
5 * 0.03 * X(1)+ 3 * 0.03 * X(2)+ 4 * 0.04 * X(3)+ 6 * 0.04 * X(4)GÿdF4y2Ba
+ 0.06 * 0.07 x (5) + * x (6) + 0.08 * (7) x (8) = 1.25 + 0.09 *GÿdF4y2Ba
指定的限制,这是AEQ * X =以矩阵形式BEQ。GÿdF4y2Ba
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);GÿdF4y2Ba
每个变量由零界的下面。的整数变量被一个上界。GÿdF4y2Ba
磅=零(8,1);UB =酮(8,1);UB(5:端)= Inf文件;GÿdF4y2Ba非整数变量没有上限GÿdF4y2Ba
现在,你把所有的投入,让解决。GÿdF4y2Ba
[X,FVAL] = intlinprog(F,INTCON,A,B,AEQ,BEQ,LB,UB);GÿdF4y2Ba
LP:最优目标值为8125.600000。切代:应用3 MIR削减。下界为8495.000000。相对差距是0.00%。最佳的解决方案中。Intlinprog停在根节点因为客观值是最佳值的间隙的容限内,options.AbsoluteGapTolerance = 0(缺省值)。将INTCON变量是容差范围内的整数,options.IntegerTolerance = 1E-05(默认值)。GÿdF4y2Ba
查看解决方案。GÿdF4y2Ba
X,FVALGÿdF4y2Ba
X =GÿdF4y2Ba8×1GÿdF4y2Ba0 0.2500 3.5000GÿdF4y2Ba
FVAL = 8.4950e + 03GÿdF4y2Ba
最理想的购买价格是8,495美元。买锭GÿdF4y2Ba1GÿdF4y2Ba,GÿdF4y2Ba2GÿdF4y2Ba,GÿdF4y2Ba4GÿdF4y2Ba, 但不是GÿdF4y2Ba3GÿdF4y2Ba,购买7.25吨合金GÿdF4y2Ba1GÿdF4y2Ba, 0.25吨合金GÿdF4y2Ba3GÿdF4y2Ba和3.5吨废钢。GÿdF4y2Ba
组GÿdF4y2BaINTCON = []GÿdF4y2Ba
看到解决问题,而不整数约束的作用。解决的方法是不同的,是不现实的,因为你不能购买元宝的一小部分。GÿdF4y2Ba