MATLAB平台下运筹学模型的仿真实验

2016-09-15 08:29
沈阳大学学报(自然科学版) 2016年4期
关键词:运筹学调用整数

孙 建 英

(青岛理工大学琴岛学院 基础部, 山东 青岛 266106)



MATLAB平台下运筹学模型的仿真实验

孙 建 英

(青岛理工大学琴岛学院 基础部, 山东 青岛266106)

在MATLAB 2014a平台下,利用优化工具箱中的intlinprog和linprog函数求解运筹学中的整数线性规划和目标规划模型.用两个实例进行仿真,能快速方便地得到最优解或者满意解.

整数线性规划; 目标规划; MATLAB; 运筹学

“运筹学应用分析、试验、量化的方法,对经济管理系统中人、财、物等有限资源进行统筹安排,为决策者提供有依据的最优方案,以实现最有效的管理.”[1]这是1984年版《中国企业管理百科全书》中对运筹学的释义.如果说运筹学应用的核心是辅助决策,那么建立数学模型,应用数学工具和数学方法求解就是运筹学方法的精髓.传统的运筹学教学着重于各类模型的建立和求解思想的介绍,费时费力,而学生收获甚微.如果将许多计算机软件,例如MATLAB,Lingo等,引入课堂,不但可以实现各类问题的快速求解,而且会极大地激发学生的学习兴趣,提高理论应用于实践的能力.本文针对整数线性规划和目标规划等模型,在MATLAB 2014a平台下进行实例仿真,可以快速地得到最优解或者满意解.

1 整数线性规划模型

1.1整数线性规划模型的标准形式

mincTX

1.2MATLAB求解

在MATLAB 2014a平台上,可以直接调用intlinprog函数,调用格式为:

[X,fval]=

intlinprog(f,intcon,A,b,Aeq,Beq,LB,UB).

返回的是决策变量X和相应的目标函数值.其中,f、b、Beq、LB和UB均为向量,A、Aeq均为矩阵,intcon表示整数决策变量的位置,调用时要对应好各个参数的位置,如果缺少的话,应该用[ ]补位.

1.3实例仿真

例1[2]一汽车厂生产小、中、大三种类型的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间的现有量如表1所示,试制定月生产计划,使工厂利润最大?

表1 每类车的耗材、耗时和利润

解设x1,x2,x3,分别表示小、中、大型汽车的数量,Z表示利润,则数学模型为:

maxZ=2x1+3x2+4x3,

MATLAB程序:

f=[-2;-3;-4];

A=[1.5,3,5;280,250,400];

b=[600;60 000];

intcon=[1:3];

LB=zeros(3,1);

UB=[];

[X,fval]=intlinprog(f,intcon,A,b,[],[],LB,UB).

运行结果为:

X=

64.000 0,

168.000 0,

0.

fval=

-632.

故生产小型汽车64辆,中型汽车168辆,最大利润为632万元.

2 目标规划模型

2.1目标规划模型的标准形式

2.2MATLAB求解

若选取数量级差别很大的正整数来标识不同的优先因子,就可以将目标规划转化为线性规划来求解,从而可以调用MATLAB中的linprog函数,调用格式为:

[X,fval]=

linprog(f,A,b,Aeq,Beq,LB,UB,X0,options)

X0是决策变量的初始值,options是控制规划过程的参数系列,其他参数意义不变.

2.3实例仿真

例2[3]某企业生产甲乙两种产品,需要用到A、B、C三种设备,关于产品的赢利与使用设备的工时及限制如表2所示.问该企业应如何安排生产,才能达到下列目标.

表2 产品的赢利与使用设备的工时及限制

(1) 力求利润指标不低于1 500元;

(2) 介于市场需求,甲乙两种产品的产量比尽量保持为1∶2;

(3) 设备A为贵重设备,严格禁止超时使用;

(4) 设备C可适当加班,但要控制;设备B既要求充分利用,又尽可能不加班.在重要性上,设备B是设备C的3倍.

MATLAB程序:

f=[002 00001001003301];

A=[2,2,0,0,0,0,0,0,0,0];

b=[12];

Aeq =[2003001-1000000;

2-1001-10000;

4000001-100;

050000001-1];

Beq=[1 50001615]′;

LB=zeros(1,10)′;

[X,fval]=linprog (f,A,b,Aeq,Beq,LB,[])

求解结果为:

X=

2.000 0

4.000 0

0

100.000 0

0

0

8.000 0

0

0

5.000 0

fval=29.000 0

故生产甲产品2件,乙产品4件,可以达到满意解.需要注意的是,对于目标规划问题,目标函数的大小没有具体的意义,值越小,表明各个目标的达成度越高.

3 结  语

运筹学中还有很多模型,例如运输调配、任务指派、最短路径及物流中心选址[4]等与现实生活联系比较紧密的模型,均可以利用MATLAB软件快速地实现最优化.与其他软件相比,入门容易,简单实用,这已成为科研工作者及时、准确做出决策的必不可缺的工具.

[1] 胡运权. 运筹学基础及应用[M]. 4版. 北京:高等教育出版社, 2005.

(HU Y Q. Fundamentals and applications of operations research [M]. 4thedition. Beijing:Higher Education Press, 2005.)

[2] 姜启源,谢金星,叶俊. 数学模型[M]. 4版. 北京:高等教育出版社, 2011.

(JIANGQY,XIEJX,YEJ.Mathematicalmodel[M]. 4thedition.Beijing:HigherEducationPress, 2011.)

[3] 司守奎,孙兆亮. 数学建模算法与应用[M]. 2版. 北京:国防工业出版社, 2015.

(SISK,SUNZL.Mathematicalmodelingalgorithmsandapplications[M]. 2ndedition.Beijing:NationalDefenseIndustryPress, 2015.)

[4] 封燕,高建瓴,粱志福. 城市物流中心选址问题研究[J]. 贵州大学学报(自然科学版), 2010,27(5):76-79.

(FENGY,GAOJL,LIANGZF.Positionselectingstrategyoflogisticdistributioncenter[J].JournalofGuizhouUniversity(NaturalScience), 2010,27(5):76-79.)

【责任编辑: 肖景魁】

Simulation Experiment of Operational Research Model on MATLAB Platform

SunJianying

(Qindao College, Qingdao Technological University, Qingdao 266106, China)

The intlinprog and lintprog function in MATLAB 2014a optimization Toolbox is introduced to solve integer linear programming and goal programming model. The simulation of two instances can quickly and easily get the optimal solution or satisfactory solution.

integer linear programming; goal programming; MATLAB; operations research

2015-03-28

山东科技资助项目(J15L157).

孙建英(1979-),女,山东烟台人,青岛理工大学琴岛学院副教授.

2095-5456(2016)04-0337-03

O 029

A

猜你喜欢
运筹学调用整数
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
一类整数递推数列的周期性
基于系统调用的恶意软件检测技术研究
运筹学课程教学改革问题研究
浅谈对运筹学专业教育的一些看法
利用RFC技术实现SAP系统接口通信
答案
求整数解的策略
占卜·庙算·军事运筹——谈军事运筹学的历史发展