混合整数线性编程基础:基于问题

此示例示出了如何解决混合整数线性规划。的例子是不复杂的,但它表明在配制问题对于基于问题的方法的典型步骤。为表示本实施例的视频,请解决使用优化建模混合整数线性规划问题

对于基于求解的方法解决这个问题,请参阅混合整数线性编程基础:求解基于

问题描述

要混合使用各种化学成分的钢材,以获得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)是数量以吨合金123您购买。废料在吨废钢您购买的数量。

创建优化问题和变数。

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。购买锭124, 但不是3和买7.25吨合金1,0.25吨合金的3和3.5吨废钢。

相关话题