主要内容gydF4y2Ba

混合整数线性规划基础知识:Solver-BasedgydF4y2Ba

这个例子展示了如何解决混合整数线性问题。虽然不复杂,制定中的示例显示了典型步骤使用的语法问题gydF4y2BaintlinproggydF4y2Ba。gydF4y2Ba

具体问题具体分析的方法这个问题,看到的gydF4y2Ba混合整数线性规划基础知识:具体问题具体分析gydF4y2Ba。gydF4y2Ba

问题描述gydF4y2Ba

你想混合钢与各种化学成分获得25吨钢材与特定的化学成分。结果应该按重量5%的碳和5%的钼,意思是25吨* 5% = 1.25吨碳和1.25吨钼。目标是最小化混合钢的成本。gydF4y2Ba

这个问题来自维斯特伯格Carl-Henrik,说比约克隆德,和Eskil Hultman”gydF4y2Ba应用混合整数规划的瑞典钢铁厂gydF4y2Ba”。1977年2月接口7卷,第二页39-43,抽象的gydF4y2Bahttps://doi.org/10.1287/inte.7.2.39gydF4y2Ba。gydF4y2Ba

四锭钢铁可供购买。只有一个锭是可用的。gydF4y2Ba

我gydF4y2Ba ngydF4y2Ba ggydF4y2Ba ogydF4y2Ba tgydF4y2Ba WgydF4y2Ba egydF4y2Ba 我gydF4y2Ba ggydF4y2Ba hgydF4y2Ba tgydF4y2Ba 我gydF4y2Ba ngydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 年代gydF4y2Ba %gydF4y2Ba CgydF4y2Ba 一个gydF4y2Ba rgydF4y2Ba bgydF4y2Ba ogydF4y2Ba ngydF4y2Ba %gydF4y2Ba 米gydF4y2Ba ogydF4y2Ba lgydF4y2Ba ygydF4y2Ba bgydF4y2Ba dgydF4y2Ba egydF4y2Ba ngydF4y2Ba ugydF4y2Ba 米gydF4y2Ba CgydF4y2Ba ogydF4y2Ba 年代gydF4y2Ba tgydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 1gydF4y2Ba 5gydF4y2Ba 5gydF4y2Ba 3gydF4y2Ba 美元gydF4y2Ba 3gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 3gydF4y2Ba 4gydF4y2Ba 3gydF4y2Ba 美元gydF4y2Ba 3gydF4y2Ba 3gydF4y2Ba 0gydF4y2Ba 3gydF4y2Ba 4gydF4y2Ba 5gydF4y2Ba 4gydF4y2Ba 美元gydF4y2Ba 3gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 4gydF4y2Ba 6gydF4y2Ba 3gydF4y2Ba 4gydF4y2Ba 美元gydF4y2Ba 2gydF4y2Ba 8gydF4y2Ba 0gydF4y2Ba

三个等级的合金钢和一个等级的废钢可供购买。废合金和钢可以购买部分。gydF4y2Ba

一个gydF4y2Ba lgydF4y2Ba lgydF4y2Ba ogydF4y2Ba ygydF4y2Ba %gydF4y2Ba CgydF4y2Ba 一个gydF4y2Ba rgydF4y2Ba bgydF4y2Ba ogydF4y2Ba ngydF4y2Ba %gydF4y2Ba 米gydF4y2Ba ogydF4y2Ba lgydF4y2Ba ygydF4y2Ba bgydF4y2Ba dgydF4y2Ba egydF4y2Ba ngydF4y2Ba ugydF4y2Ba 米gydF4y2Ba CgydF4y2Ba ogydF4y2Ba 年代gydF4y2Ba tgydF4y2Ba TgydF4y2Ba ogydF4y2Ba ngydF4y2Ba 1gydF4y2Ba 8gydF4y2Ba 6gydF4y2Ba 美元gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 2gydF4y2Ba 7gydF4y2Ba 7gydF4y2Ba 美元gydF4y2Ba 4gydF4y2Ba 5gydF4y2Ba 0gydF4y2Ba 3gydF4y2Ba 6gydF4y2Ba 8gydF4y2Ba 美元gydF4y2Ba 4gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba 年代gydF4y2Ba cgydF4y2Ba rgydF4y2Ba 一个gydF4y2Ba pgydF4y2Ba 3gydF4y2Ba 9gydF4y2Ba 美元gydF4y2Ba 1gydF4y2Ba 0gydF4y2Ba 0gydF4y2Ba

制定问题,首先确定控制变量。把变量gydF4y2Bax (1) = 1gydF4y2Ba的意思是你购买锭gydF4y2Ba1gydF4y2Ba,gydF4y2Bax (1) = 0gydF4y2Ba意味着你不购买锭。同样,变量gydF4y2Bax (2)gydF4y2Ba通过gydF4y2Bax (4)gydF4y2Ba是二进制变量指示你是否购买锭吗gydF4y2Ba2gydF4y2Ba通过gydF4y2Ba4gydF4y2Ba。gydF4y2Ba

变量gydF4y2Bax (5)gydF4y2Ba通过gydF4y2Bax (7)gydF4y2Ba吨合金数量吗gydF4y2Ba1gydF4y2Ba,gydF4y2Ba2gydF4y2Ba,gydF4y2Ba3gydF4y2Ba你购买,gydF4y2Bax (8)gydF4y2Ba是你购买的废钢量。gydF4y2Ba

MATLAB®配方gydF4y2Ba

通过指定的输入制定的问题gydF4y2BaintlinproggydF4y2Ba。相关的gydF4y2BaintlinproggydF4y2Ba语法是:gydF4y2Ba

[x, fval] = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托)gydF4y2Ba

创建输入gydF4y2BaintlinproggydF4y2Ba从第一个(gydF4y2BafgydF4y2Ba通过过去的)(gydF4y2Ba乌兰巴托gydF4y2Ba)。gydF4y2Ba

fgydF4y2Ba是成本的向量系数。系数代表锭的成本是钢锭重量乘以每吨成本。gydF4y2Ba

f = (350 * 5330 * 3310 * 4280 * 6500450400100);gydF4y2Ba

第一个四个整数变量。gydF4y2Ba

intcon = 1:4;gydF4y2Ba

提示:gydF4y2Ba指定二进制变量,将变量设置为整数gydF4y2BaintcongydF4y2Ba,并给他们一个下界gydF4y2Ba0gydF4y2Ba和一个上限的gydF4y2Ba1gydF4y2Ba。gydF4y2Ba

这个问题没有线性不等式约束,所以gydF4y2Ba一个gydF4y2Ba和gydF4y2BabgydF4y2Ba空矩阵(gydF4y2Ba[]gydF4y2Ba)。gydF4y2Ba

一个= [];b = [];gydF4y2Ba

有三个等式约束的问题。首先,总重量是25吨。gydF4y2Ba

5 * x (1) + 3 * x (2) + 4 * x (3) + 6 * x (4) + (5) + x (6) + x (7) + (8) = 25gydF4y2Ba

第二个约束是碳的重量是25吨的5%,或1.25吨。gydF4y2Ba

5 * 0.05 * (1)+ 3 * 0.04 * x (2) + 4 * 0.05 * x (3) + 6 * 0.03 * (4)gydF4y2Ba

+ 0.08 * 0.07 x (5) + * x (6) + 0.06 * (7) x (8) = 1.25 + 0.03 *gydF4y2Ba

第三个限制是钼的重量是1.25吨。gydF4y2Ba

5 * 0.03 * (1)+ 3 * 0.03 * x (2) + 4 * 0.04 * x (3) + 6 * 0.04 * (4)gydF4y2Ba

+ 0.06 * 0.07 x (5) + * x (6) + 0.08 * (7) x (8) = 1.25 + 0.09 *gydF4y2Ba

指定约束,Aeq * x = beq矩阵形式。gydF4y2Ba

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);gydF4y2Ba

每个变量有界低于零。上面的整数变量有界的。gydF4y2Ba

1磅= 0(8日);乌兰巴托= 1 (8,1);乌兰巴托(5:结束)=正;gydF4y2Ba%没有上限noninteger变量gydF4y2Ba

解决问题gydF4y2Ba

现在您已经输入,调用解算器。gydF4y2Ba

[x, fval] = intlinprog (f intcon A、b Aeq,说真的,磅,乌兰巴托);gydF4y2Ba
LP:最优的客观价值是8125.600000。减少生成:应用3米尔削减。下界是8495.000000。相对差距是0.00%。找到最优解。Intlinprog停在根节点,因为客观价值差距公差内的最优值,选择。AbsoluteGapTolerance = 0。在宽容intcon变量是整数,选项。IntegerTolerance = 1 e-05。gydF4y2Ba

查看解决方案。gydF4y2Ba

x, fvalgydF4y2Ba
x =gydF4y2Ba8×1gydF4y2Ba1.0000 - 1.0000 3.5000 1.0000 7.0000 0.5000 0gydF4y2Ba
fval = 8495gydF4y2Ba

最优采购成本8495美元。买锭gydF4y2Ba1gydF4y2Ba,gydF4y2Ba2gydF4y2Ba,gydF4y2Ba4gydF4y2Ba,但不gydF4y2Ba3gydF4y2Ba,买7.25吨合金gydF4y2Ba1gydF4y2Ba0.25吨合金gydF4y2Ba3gydF4y2Ba和3.5吨废钢。gydF4y2Ba

集gydF4y2Baintcon = []gydF4y2Ba看到解决问题的效果没有整数约束。解决方案是不同的,是不现实的,因为你无法购买一个锭的一小部分。gydF4y2Ba

相关的话题gydF4y2Ba