论文部分内容阅读
[摘 要] 笔者以角钢下料为题,在EXCEL下调用LINGO函数构建模型并求解,在针对多原材料多零件条件下的一维下料方面取得了较好的效果,突破了EXCEL的规划求解局限。
[关键词] 规划 局限
在实际生产生活中,经常会遇到将原材料通过切割、剪裁等手段加工成所需的大小零件的情况。如果对如何下料事先缺乏周密考虑,将会产生较多的边角废料,使材料利用率不高,利用Microsoft Excel的“规划求解”工具能够对很多小型规划进行求解。但是由于该“规划求解”工具是由第三方提供,其极限迭代次数仅为32767次,在运算一些大型规划时,难免会产生力不从心的感觉。而且,受EXCEL提供的函数在描述较大型的数学模型时没有较好的函数可以应用,常常需要逐个对约束条件进行列举描述。
采用美国LINDO公司开发的LINGO软件则没有这方面的限制。LINGO是一种最优化问题的建模语言,包括许多有用的函数供使用者监理优化模型时调用,并提供与其他数据文件的接口,能方便地输入、求解和分析数学规划的问题。
LINGO除了可用于求解线性规划及二次规划外,还可用于非线性规划求解、一些线性和非线性方程(组)的求解等。其最大特色在于它允许优化模型中的决策变量为整数(即整数规划),而且执行速度快。
在实际生产生活中,将EXCEL易用性与LINGO专业性结合起来,以EXCEL作为人机界面,通过后台调用LINGO数学模型对问题进行求解可达到较满意的效果。
笔者以角钢下料为题,采用@ole函数在EXCEL下调用LINGO函数构建模型并求解,在针对多原材料多零件条件下的一维下料方面取得了较好的效果。
其LINGO模型运行步骤如下:
首先,获取单一规格下精确的零件需求数量与长度。
其次,获取市场上该规格所有原材料的长度。
再次,拟定可以接受的余料率(推荐经验数据为0.05至0.08之间,即可接受的下料备选方案材料利用率至少在92%以上。因为LINGO在计算整数非线性规划时速度较慢,如果放任其搜索全局最优解,则会由于整个求解过程耗时过长而失去该模型在实际工作中的指导意义。笔者在实证分析阶段,曾用十五个小时得到一个全局最优解,而这一个全局最优解的材料利用率仅比用七秒钟得到的一个局部最优解的材料利率提高不到一个百分点)。
确定各项参数后,即由本研究提供的EXCEL界面进行数据输入,输入完成,调用LINGO脚本文件,LINGO會自动交互式询问可以接受的余料率是多少,输入余料率的具体界面如图1所示:
图1 交互式输入余料率
之后,EXCEL通过@OLE函数将数据汇入LINGO模型进行求解。求解所得结果,分两部分进行输出,一部分再次经过@OLE函数在EXCEL界面中直接生成采购清单交采购部门,另一部分经分析处理后生成下料清单交生产车间指导生产。
为了本研究能更好地结合企业实际,提出如下几点假设及限制条件。
假设条件:
在铁塔生产企业中已经普及了三维铁塔放样软件或者该塔型已经通过了实际放样试装,已经生成了精确的零件需求数量与长度。
刀头切口的量很小,或在零件长度中已作为多余量已考虑。
已经建立了基本的管理制度,有较完善的进出库手续,有余料退库制度,原材料采用动态管理模式,能够作到日清月结。
排料人员清楚地知道市场所能提供原材料的类型与长度。
市场供应非常充分,不同长度的同规格原材料必定可以满足要求。
排料人员对于余料率有良好的预期。
限制条件:
对任一零件必须在数量上满足零件的需求数。
在任一原材料上所排出各零件的长度与数量的乘积小于该原材料的长度。
在任一原材料上的余料都不能大于最小的零件长度。
指定下界:计划用料总长度不可能小于所有零件长度与相应数量的乘积(理论最优值)。
指定上界:计划用料总长度不应大于所有零件长度与相应数量的乘积(理论最优值)乘以一加排料人员指定余料率。
参数定义
i:为第i种下料方式,在本文中i值设为3。
j:为第j种零件,零件数(j=1,2,3……num),共计num个零件。
k:为第k种原材料。
x(k,i):采用第i种下料方式时,第k种原材料的消耗量。
r(k,i,j):采用第i种下料方式时,第k种原材料,取得j零件的数量。
length(j): 第j种零件的长度数。
Num (j):第j种零件的数量数。
C(k):第k种原材料的长度。
Wasterate:由排料人员确定的余料率。
Rate:该规格型号下总材料利用率。
整数非线性规划模型是以用材总米数最少为目标函数,其目标函数式与约束式如下:
Min
参考文献:
[1]《节约,从运筹学开始》 科学时代杂志社2009.9 方大治.
[关键词] 规划 局限
在实际生产生活中,经常会遇到将原材料通过切割、剪裁等手段加工成所需的大小零件的情况。如果对如何下料事先缺乏周密考虑,将会产生较多的边角废料,使材料利用率不高,利用Microsoft Excel的“规划求解”工具能够对很多小型规划进行求解。但是由于该“规划求解”工具是由第三方提供,其极限迭代次数仅为32767次,在运算一些大型规划时,难免会产生力不从心的感觉。而且,受EXCEL提供的函数在描述较大型的数学模型时没有较好的函数可以应用,常常需要逐个对约束条件进行列举描述。
采用美国LINDO公司开发的LINGO软件则没有这方面的限制。LINGO是一种最优化问题的建模语言,包括许多有用的函数供使用者监理优化模型时调用,并提供与其他数据文件的接口,能方便地输入、求解和分析数学规划的问题。
LINGO除了可用于求解线性规划及二次规划外,还可用于非线性规划求解、一些线性和非线性方程(组)的求解等。其最大特色在于它允许优化模型中的决策变量为整数(即整数规划),而且执行速度快。
在实际生产生活中,将EXCEL易用性与LINGO专业性结合起来,以EXCEL作为人机界面,通过后台调用LINGO数学模型对问题进行求解可达到较满意的效果。
笔者以角钢下料为题,采用@ole函数在EXCEL下调用LINGO函数构建模型并求解,在针对多原材料多零件条件下的一维下料方面取得了较好的效果。
其LINGO模型运行步骤如下:
首先,获取单一规格下精确的零件需求数量与长度。
其次,获取市场上该规格所有原材料的长度。
再次,拟定可以接受的余料率(推荐经验数据为0.05至0.08之间,即可接受的下料备选方案材料利用率至少在92%以上。因为LINGO在计算整数非线性规划时速度较慢,如果放任其搜索全局最优解,则会由于整个求解过程耗时过长而失去该模型在实际工作中的指导意义。笔者在实证分析阶段,曾用十五个小时得到一个全局最优解,而这一个全局最优解的材料利用率仅比用七秒钟得到的一个局部最优解的材料利率提高不到一个百分点)。
确定各项参数后,即由本研究提供的EXCEL界面进行数据输入,输入完成,调用LINGO脚本文件,LINGO會自动交互式询问可以接受的余料率是多少,输入余料率的具体界面如图1所示:
图1 交互式输入余料率
之后,EXCEL通过@OLE函数将数据汇入LINGO模型进行求解。求解所得结果,分两部分进行输出,一部分再次经过@OLE函数在EXCEL界面中直接生成采购清单交采购部门,另一部分经分析处理后生成下料清单交生产车间指导生产。
为了本研究能更好地结合企业实际,提出如下几点假设及限制条件。
假设条件:
在铁塔生产企业中已经普及了三维铁塔放样软件或者该塔型已经通过了实际放样试装,已经生成了精确的零件需求数量与长度。
刀头切口的量很小,或在零件长度中已作为多余量已考虑。
已经建立了基本的管理制度,有较完善的进出库手续,有余料退库制度,原材料采用动态管理模式,能够作到日清月结。
排料人员清楚地知道市场所能提供原材料的类型与长度。
市场供应非常充分,不同长度的同规格原材料必定可以满足要求。
排料人员对于余料率有良好的预期。
限制条件:
对任一零件必须在数量上满足零件的需求数。
在任一原材料上所排出各零件的长度与数量的乘积小于该原材料的长度。
在任一原材料上的余料都不能大于最小的零件长度。
指定下界:计划用料总长度不可能小于所有零件长度与相应数量的乘积(理论最优值)。
指定上界:计划用料总长度不应大于所有零件长度与相应数量的乘积(理论最优值)乘以一加排料人员指定余料率。
参数定义
i:为第i种下料方式,在本文中i值设为3。
j:为第j种零件,零件数(j=1,2,3……num),共计num个零件。
k:为第k种原材料。
x(k,i):采用第i种下料方式时,第k种原材料的消耗量。
r(k,i,j):采用第i种下料方式时,第k种原材料,取得j零件的数量。
length(j): 第j种零件的长度数。
Num (j):第j种零件的数量数。
C(k):第k种原材料的长度。
Wasterate:由排料人员确定的余料率。
Rate:该规格型号下总材料利用率。
整数非线性规划模型是以用材总米数最少为目标函数,其目标函数式与约束式如下:
Min
参考文献:
[1]《节约,从运筹学开始》 科学时代杂志社2009.9 方大治.