R语言在几类优化问题中的应用

R语言在几类优化问题中的应用摘要:R语言以其免费、开源、灵活、扩展程序包丰富等优点,在工程及科研领域得到越来越广泛的应用。本文介绍了R语言的基本功能,并利用R语言的lpSolve、Rglpk、igraph扩展程序包来解决运筹学中的线性规划、整数规划、运输问题、最短路问题、最小生成树问题五类典型优化问题。Abstract:Rlanguageiswidelyusedinengineeringandscientificresearchwithitsadvantagesoffree,opensource,flexible,andrichpackage.ThispaperintroducesthebasicfunctionsofRlanguage,andusesextendedprogrampackageoflpSolve,Rglpkandigraphtosolvefourtypicaloptimizationproblemsinoperationsresearch,whicharelinearprogramming,integerprogramming,transportationproblem,shortestpathproblemandminimumspanningtreeproblem.关键词:R语言;优化问题;程序包Keywords:Rlanguage;optimizationproblems;programpackage:TP311.1文献标识码:A:1006-4311(2019)17-0238-030引言当前,在优化问题的科学计算中,使用较多的是商业软件如Matlab、Mathematica等,这类软件功能强大、应用方便,但也存在着价格昂贵、体积庞大等缺点。而R作为一款免费的开源软件,具有编程简单、体积小巧、数据分析功能强大、扩展性能好等特点,在很多应用场合可以替代商业软件。1R语言简介R语言是一种自由软件编程语言与操作环境,主要用于统计分析、绘图、数据挖掘等。最初是由新西兰奥克兰大学的RossIhaka和RobertGentleman开发,因此称为R,现在由“R开发核心团队”负责开发和维护[1]。R是一个统计分析的环境,由于很多统计方法在估计和求解的过程中都需要用到大量的优化算法,因此R环境中自带了一些优化求解的函数,比如optim和constrOptim。此外,由于R是开源工具,因此可以借助很多第三方R包甚至其他的开源项目来实现很多优化问题的求解[2]。用户可以根据自己的需求编写脚本、R包,即便是没有任何编程功底,仅仅想使用也可以在CRAN社区(ComprehensiveRArchiveNetwork)上找到相对应的R包[3]。2几类优化问题的求解示例由于R的基本库功能有限,优化问题的求解一般要使用扩展程序包,需要到R的CRAN社区下载程序包来扩展R的求解功能[4]。程序包的下载地址为:://cran.r-project.org。本文示例中所用到的程序包有lpSolve、Rglpk、igraph。2.1线性规划问题例1:有一砌块生产厂家生产两种砌块,其中一种是有颜色的。每生产有色砌块1m3,需要2h机器时间、3h人工和2mm3颜料,利润是150元/m3;每生产无色砌块1m3,需要1h机器时间和4h人工,利润是90元/m3。现共有10h机器时间、24h人工和8mm3颜料,问每一种砌块生产多少,厂家所得利润最大[5]。求解此问题,可设生产有色砌块x1m3,生产无色砌块x2m3,则此问题的优化模型为:可使用lpSolve程序包中的lp()函数进行求解,函数的语法可以参阅lpSolve文件。求解此问题的R代码为:目标函数z取得最大值即当有色砌块和无色砌块分别生产3.2m3和3.6m3时,厂家所得利润最大,最大值为804元。对于无可行解的线性规划问题,lp()函数也会给出提示。例如线性规划模型:程序会给出结果Error:nofeasiblesolutionfound,即认为模型有误,同时也说明线性规划问题无可行解。2.2整数规划问题例2:某商场对售货员的需求经过统计分析如表1所示。为了保证售货员休息时间,要求售货员每周工作5天,休息2天,且休息的2天是连续的,问应该如何安排售货员的休息时间,既能够满足工作需要,又使售貨员的人数最少[6]2.3运输问题例3:某食品公司有A1,A2,A3三个面包生产厂,每月产量分别为7t,4t,9t;有B1,B2,B3,B4四个销售公司,每月销量分别为3t,6t,5t,6t。从第i个面包生产厂到第j个销售公司的单位运价(百元/t)如表2所示,问:该公司应如何调运,在满足各销售点需求量的前提下,使总运费最少[7]?此问题为运输问题中的产销平衡问题。运输问题的本质也是一类线性规划问题,可以利用lpSolve包中的lp.transport()函数进行求解。求解此问题的R代码为:即A1向B1,B3分别调运2t,5t,A2向B1,B4分别调运1t,3t,A3向B2,B4分别调运6t,3t,此时总运费为85百元。需...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

文秘专家
机构认证
内容提供者

1

确认删除?