此示例示出了如何解决混合整数线性规划。的例子是不复杂的,但它表明在配制问题对于基于问题的方法的典型步骤。为表示本实施例的视频,请解决使用优化建模混合整数线性规划问题。
对于基于求解的方法解决这个问题,请参阅混合整数线性编程基础:求解基于。
要混合使用各种化学成分的钢材,以获得25吨钢材具有特定的化学成分。结果应具有5%的碳和5%的钼(重量),这意味着25吨* 5%2 = 1.25吨碳和1.25吨钼。我们的目标是尽量减少混合钢的成本。
此问题是由卡尔 - 亨里克·韦斯特贝里,本特比约克伦和Eskil Hultman采取“混合整数规划的在瑞典钢铁厂中的应用“。接口1977年2月卷。如图7所示,第2号第39-43,其抽象是在http://interfaces.journal.informs.org/content/7/2/39.abstract
。
钢四锭可供购买。只有各铸锭一个是可用的。
锭 | 在吨的重量 | %碳 | %钼 | 成本/吨 |
---|---|---|---|---|
1 | 五 |
五 |
3 |
$ 350 |
2 | 3 |
4 |
3 |
$ 330 |
3 | 4 |
五 |
4 |
$ 310 |
4 | 6 |
3 |
4 |
$ 280 |
三个等级合金钢可供购买,和废钢的一个档次。合金的废钢可以在分数金额购买。
合金 | %碳 | %钼 | 成本/吨 |
---|---|---|---|
1 | 8 |
6 |
$ 500强 |
2 | 7 |
7 |
$ 450 |
3 | 6 |
8 |
$ 400 |
废料 | 3 |
9 |
$ 100 |
要制定问题,首先决定控制变量。取变量锭(1)= 1
意味着你购买元宝1和锭(1)= 0
意味着你不购买元宝。同样,变量锭(2)
通过锭(4)
是二元变量,指示是否购买元宝2通过4。
变量合金(1)
通过合金(3)
是数量以吨合金1,2和3您购买。废料
在吨废钢您购买的数量。
创建优化问题和变数。
steelprob = optimproblem;锭= optimvar( '锭',4, '类型', '整数', '下界',0, 'UPPERBOUND',1);合金= optimvar( '合金',3 '下界',0);废料= optimvar( '废料', '下界',0);
创建与变量相关的成本表达式。
weightIngots = [5,3,4,6];costIngots = weightIngots * [350330310280]。costAlloys = [500450400];costScrap = 100;成本= costIngots *锭+ costAlloys *合金+ costScrap *废料;
包括成本作为问题的目标函数。
steelprob.Objective =成本;
有三个等式约束。第一个条件是,总重量为25吨。计算钢的重量。
总权重= weightIngots *锭+ SUM(合金)+废料;
第二个约束是,碳的重量为25吨,或1.25吨5%。计算在钢中的碳的重量。
carbonIngots = [5,4,5,3] / 100;carbonAlloys = [8,7,6] / 100;carbonScrap = 3/100;totalCarbon =(。* weightIngots carbonIngots)*锭+ carbonAlloys *合金+ carbonScrap *废料;
第三约束是钼的重量为1.25吨。计算在钢中的钼的重量。
molybIngots = [3,3,4,4] / 100;molybAlloys = [6,7,8] / 100;molybScrap =100分之9;totalMolyb =(。* weightIngots molybIngots)*锭+ molybAlloys *合金+ molybScrap *废料;
包括在问题的约束。
steelprob.Constraints.conswt =总权重== 25;steelprob.Constraints.conscarb = totalCarbon == 1.25;steelprob.Constraints.consmolyb = totalMolyb == 1.25;
现在,你把所有的投入,让解决。
[溶胶,FVAL] =解决(steelprob);
使用intlinprog解决问题。LP:最优目标值为8125.600000。切代:应用3 MIR削减。下界为8495.000000。相对差距是0.00%。最佳的解决方案中。Intlinprog停在根节点因为客观值是最佳值的间隙的容限内,options.AbsoluteGapTolerance = 0(缺省值)。将INTCON变量是容差范围内的整数,options.IntegerTolerance = 1E-05(默认值)。
查看解决方案。
sol.ingots sol.alloys sol.scrap FVAL
ANS = 1.0000 1.0000 0 1.0000 ANS = 7.2500 0 0.2500 ANS = 3.5000 FVAL = 8.4950e + 03
最佳的购买价格为$ 8,495。购买锭1,2和4, 但不是3和买7.25吨合金1,0.25吨合金的3和3.5吨废钢。