SAS之OPTMODEL简介(二)

浏览: 1792

前面介绍了约束逻辑回归(CLP)相关的一些简单的小知识,希望能对大家认识运筹学有点帮助,另外如果大家仔细看了SAS的OPTMODEL过程的话就会发现,它的语法实在是很独特,连BASE的语法都不再一样了,例如“for {j in 1.._NVAR_} do”,那两个小数点是什么鬼?在寻常 的SAS Base模块里根本看不到这样的语法,而在这里却表示“to” 的含义,而“_NVAR_”则表示“count(变量)”,还有其他的一些独特的语法标识都跟我们常见的SAS语法不一样,所以如果后面碰到这样类似的语法,不用惊讶,接受就好了。

那么接下来介绍OPTMODEL过程步的线性规划(LP)。

  

Linear programming(LP)线性规划


线性规划(LP)属于约束逻辑规划(CLP)其中一类,其与非线性规划的区别在于约束条件和目标函数都是线性的,即未知项的次数都为一次,约束条件可以是等式或者不等式。线性规划在运筹学中运用非常广泛,很多其他类型的优化问题都可以拆分成线性规划来进行求解,在解决收入极大化或者成本极小化的过程中发挥着重要作用。

线性规划的一般标准形式如下所示:我们也可以通过矩阵语言的形式来描述线性规划:

接下来我以一个交通运输问题来对函数进行规划求解。

考虑这么一个产销组合如下所示:

产地:底特律、匹兹堡

销地:波士顿、纽约

产品产量和销量都已在表中明示,中间数字表示从产地到销地的单位产量成本,现在希望规划一个最优的产量组合从底特律和匹兹堡分别销往波士顿和纽约,使得总成本最低。

根据上述问题,我们将其转化为运筹学中的线性规划问题:

SAS代码如下所示:

运行程序之后,我们可以得到如下结果:


运行时间在log中如下所示:

NOTE: “PROCEDURE OPTMODEL”所用时间(总处理时间):      实际时间          2.90 秒

      CPU 时间          1.64 秒

上述结果分为三部分:Problem Summary:主要描述了模型目标以及约束条件的描述;Performance Information:模的执行模式和线程为单机器、单线程;Solution Summary:主要描述了模型的类型、算法、目标函数名称、模型结果状态、优化目标值;

以及最后print出来的满足约束条件的最优变量矩阵X。

从模型结果来看,模型问题为线性规划(LP)问题,采用的算法为对偶单纯形法(Dual Simplex),并达到最优化(Optimal),且最终得到最优结果为6500,即为满足条件的最低成本。

产销运输组合为:从底特律到波士顿产量为150,底特律到纽约的产量为50,匹兹堡到波士顿产量为0,匹兹堡到纽约产量为100。

关于LP的算法,后面我会单独写一篇文章来展示对偶单纯形法这一算法的实现逻辑,并且只用常见的data步 和一些过程步比如IML矩阵语言来实现,这样可以更深刻的理解这一算法原理。

线性规划在SAS/OR模块有很详细的资料,除了SAS的OPTMODEL过程步之外,还有专门的LP过程步,所以如果大家有兴趣的话可以去专门了解一下这两个过程步。

未完待续。。。。。。。



公众号:mingfeng07数据搬运工

个人微信:xiaopengpeng07

欢迎加我个人微信一起来愉快的玩耍啦! 

推荐 2
本文由 mingfeng07 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册