SAS中文论坛

标题: 线性规划之合金原料配比问题 [打印本页]

作者: shiyiming    时间: 2011-8-16 21:05
标题: 线性规划之合金原料配比问题
From sxlion's blog on saslist

前言:虽然这是个比较简单的线性规划问题,但是怎么把问题转化为SAS代码,中间需要一定的小技巧,特叙此例。 问题: Metalco公司希望得到一种新的合金,其中锡40%、锌35%、铅25%。原料合金的成分如下表: 合金 原料代号 成    分 价格 锡含量 / % 锌含量 / % 铅含量 / % 美元/磅 1 60 10 30 77 2 25 15 60 70 3 45 45 10 88 4 20 50 30 84 5 50 40 10 94 工厂怎样从这几种合金原料选择来制得需要的合金,要求生产成本最小。 分析: 显然,这是个线性规划问题。 首先分析下目标,目标是生产成本最小,也就是生产单位重量(磅)的新合金用到的原料合金总价格最低。 然后根据问题来建立线性规划模型: 设生产x6=1磅新合金需要的五种金属重量为x1、x2、x3、x4和x5磅,目标函数为: MIN  P=77*x1+70*x2+88*x3+84*x4+94*x5 约束条件为: 0.60*x1+0.25*x2+0.45*x3+0.20*x4+0.50*x5=0.40*x6 0.10*x1+0.15*x2+0.45*x3+0.50*x4+0.40*x5=0.35*x6 0.30*x1+0.60*x2+0.10*x3+0.30*x4+0.10*x5=0.25*x6 x1+x2+x3+x4+x5=x6=1 x1、x2、x3、x4、x5大于等于0 约束条件4可能比较隐蔽,通过分析目标即可理解。转化为SAS代码即为: data ex; input _ROW_$ x1-x6 _TYPE_$ _RHS_; cards; object 77 70 88 84 94 0 MIN . proc1 0.60 0.25 0.45 0.20 0.50 -0.40 EQ 0 proc2 0.10 0.15 0.45 0.50 0.40 -0.35 EQ 0 proc3 0.30 0.60 0.10 0.30 0.10 -0.25 EQ 0 proc4 1 . . . . . GE 0 proc5 . 1 . . . . GE 0 proc6 . . 1 . . . GE 0 proc7 . . . 1 . . GE 0 proc8 . . . . 1 . GE 0 proc9 1 1 1 1 1 0 EQ 1 ; proc lp data=ex; var x1-x6; run; 在output得到结果: The LP Procedure Constraint Summary Constraint S/S Dual Row Name Type Col Rhs Activity Activity 1 object OBJECTVE . 0 82.434783 . 2 proc1 EQ . 0 0 0.7391304 3 proc2 EQ . 0 0 17.26087 [...]




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2