主要内容GyD.F4y2Ba

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

此示例示出了如何解决混合整数线性问题。虽然没有复杂的,示例性示出了使用基于问题的方法配制的问题的典型步骤。为表示本实施例的视频,请GyD.F4y2Ba解决使用优化建模混合整数线性规划问题GyD.F4y2Ba。GyD.F4y2Ba

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

问题描述GyD.F4y2Ba

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

此问题是由卡尔 - 亨里克·韦斯特贝里,本特比约克伦和Eskil Hultman采取“GyD.F4y2Ba混合整数规划的在瑞典钢铁厂中的应用GyD.F4y2Ba。“界面1977年2月Vol。7,第2页第2页。39-43,其摘要在于GyD.F4y2Bahttps://doi.org/10.1287/inte.7.2.39GyD.F4y2Ba。GyD.F4y2Ba

钢四锭可供购买。只有各铸锭一个是可用的。GyD.F4y2Ba

一世GyD.F4y2Ba N.GyD.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 N.GyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba N.GyD.F4y2Ba S.GyD.F4y2Ba %GyD.F4y2Ba CGyD.F4y2Ba 一种GyD.F4y2Ba R.GyD.F4y2Ba B.GyD.F4y2Ba O.GyD.F4y2Ba N.GyD.F4y2Ba %GyD.F4y2Ba M.GyD.F4y2Ba O.GyD.F4y2Ba L.GyD.F4y2Ba yGyD.F4y2Ba B.GyD.F4y2Ba D.GyD.F4y2Ba E.GyD.F4y2Ba N.GyD.F4y2Ba 你GyD.F4y2Ba M.GyD.F4y2Ba CGyD.F4y2Ba O.GyD.F4y2Ba S.GyD.F4y2Ba T.GyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba N.GyD.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 N.GyD.F4y2Ba %GyD.F4y2Ba M.GyD.F4y2Ba O.GyD.F4y2Ba L.GyD.F4y2Ba yGyD.F4y2Ba B.GyD.F4y2Ba D.GyD.F4y2Ba E.GyD.F4y2Ba N.GyD.F4y2Ba 你GyD.F4y2Ba M.GyD.F4y2Ba CGyD.F4y2Ba O.GyD.F4y2Ba S.GyD.F4y2Ba T.GyD.F4y2Ba T.GyD.F4y2Ba O.GyD.F4y2Ba N.GyD.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.F4y2Ba

要制定问题,首先决定控制变量。取变量GyD.F4y2Ba锭(1)= 1GyD.F4y2Ba意味着你购买元宝GyD.F4y2Ba1GyD.F4y2Ba, 和GyD.F4y2Ba锭(1)= 0GyD.F4y2Ba意味着你没有购买铸锭。同样,变量GyD.F4y2Ba锭(2)GyD.F4y2Ba通过GyD.F4y2Ba锭(4)GyD.F4y2Ba是二元变量,指示是否购买元宝GyD.F4y2Ba2GyD.F4y2Ba通过GyD.F4y2Ba4.GyD.F4y2Ba。GyD.F4y2Ba

变量GyD.F4y2Ba合金(1)GyD.F4y2Ba通过GyD.F4y2Ba合金(3)GyD.F4y2Ba是数量以吨合金GyD.F4y2Ba1GyD.F4y2Ba那GyD.F4y2Ba2GyD.F4y2Ba, 和GyD.F4y2Ba3.GyD.F4y2Ba您购买。GyD.F4y2Ba废料GyD.F4y2Ba是废钢您购买的数量。GyD.F4y2Ba

steelprob = optimproblem;锭= optimvar(GyD.F4y2Ba“元宝”GyD.F4y2Ba,4,GyD.F4y2Ba'类型'GyD.F4y2Ba那GyD.F4y2Ba'整数'GyD.F4y2Ba那GyD.F4y2Ba“下界”GyD.F4y2Ba,0,GyD.F4y2Ba“上界”GyD.F4y2Ba,1);合金= optimvar(GyD.F4y2Ba“合金”GyD.F4y2Ba,3,GyD.F4y2Ba“下界”GyD.F4y2Ba,0);废料= optimvar(GyD.F4y2Ba'废料'GyD.F4y2Ba那GyD.F4y2Ba“下界”GyD.F4y2Ba,0);GyD.F4y2Ba

创建与变量相关的成本表达式。GyD.F4y2Ba

weightIngots = [5,3,4,6];costIngots = weightIngots * [350330310280]。costAlloys = [500450400];costScrap = 100;成本= costIngots *锭+ costAlloys *合金+ costScrap *废料;GyD.F4y2Ba

包括成本作为问题的目标函数。GyD.F4y2Ba

steelprob.objective =成本;GyD.F4y2Ba

这个问题有三个等式约束。第一个条件是,总重量为25吨。计算钢的重量。GyD.F4y2Ba

Totalweight = Preceingot *锭+和(合金)+废料;GyD.F4y2Ba

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

carbonIngots = [5,4,5,3] / 100;carbonAlloys = [8,7,6] / 100;carbonScrap = 3/100;totalCarbon =(。* weightIngots carbonIngots)*锭+ carbonAlloys *合金+ carbonScrap *废料;GyD.F4y2Ba

第三约束是钼的重量为1.25吨。计算在钢中的钼的重量。GyD.F4y2Ba

molybIngots = [3,3,4,4] / 100;molybAlloys = [6,7,8] / 100;molybScrap =100分之9;totalMolyb =(。* weightIngots molybIngots)*锭+ molybAlloys *合金+ molybScrap *废料;GyD.F4y2Ba

包括问题的约束。GyD.F4y2Ba

steelprob.Constraints.conswt =总权重== 25;steelprob.Constraints.conscarb = totalCarbon == 1.25;steelprob.Constraints.consmolyb = totalMolyb == 1.25;GyD.F4y2Ba

解决问题GyD.F4y2Ba

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

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

查看解决方案。GyD.F4y2Ba

sol.ingotsGyD.F4y2Ba
ANS =.GyD.F4y2Ba4×1GyD.F4y2Ba1.0000 1.0000 0 1.0000GyD.F4y2Ba
sol.alloysGyD.F4y2Ba
ANS =.GyD.F4y2Ba3×1GyD.F4y2Ba7.2500 0 0.2500GyD.F4y2Ba
sol.scrapGyD.F4y2Ba
ANS = 3.5000.GyD.F4y2Ba
FVALGyD.F4y2Ba
FVAL = 8.4950e + 03GyD.F4y2Ba

最佳购买费用为8,495美元。买锭子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.F4y2Ba