1、第一期(2002年10月) 韶关学院学生数学建模论文集 No.1产品的零件安装程序设计柯文锋,赖金花,欧杰泉(1)2000级数学系与应用数学本科1班(2)2000级计算机系科学与技术本科1班(3)2000级数学系与计算机教育6班摘要:本文以零件的安装次序为着眼点,通过一些合理的假设,对具体的每一个问题,运用运筹学、图论及数据结构等的知识得到相应的数学规划模型,运用数学软件(Matlab、Maple等)进行求解,得出零件安装完需要的最少时间及相应的安装次序关键词: 整数规划;时间落差;回溯;递归调用1 问题的提出韶关市西郊某机械厂的零件安装部门要对零件生产部门生产出来的15个零件进行组装,最终成
2、为一个产品,并推出市场这15个零件分别用表示,一个熟练工人安装需要时间为 (单位:分钟)此产品的15个零件正等待工人来安装由于生产的工序要求工人在安装零件时,安装某些零件必须在另一些零件安装完成后才能进行安装,各零件需先前安装的零件如下表:先前安装的零件先前安装的零件(1)(此产品的零件由两个工人来安装时,完成任务的最少时间是多少?并为此两工人设计出安装方案如果工人足够多,那么完成产品的零件安装任务的最少时间又是如何?由于大部分产品都要求在零件安装时,不能有两个以上的工人同时一起组装该产品,只能由一个工人单独完成,在这种情况下,我们对以下问题进行讨论:(2)请为产品的组装过程设计一个满足要求的
3、安装次序,使各零件安装完的时间(包括等待安装时间)之和最少(3)假若第个零件紧接着第个零件完工后开工,且生产产品需要花费的准备时间满足:试设计一个满足条件的加工顺序,使机床花费的总时间最少(4)假定工件的完工时间(包括等待与加工两个阶段)超过一确定时限,则需支付一定的补偿费用,其数值等于超时间与费率的乘积(各工件的补偿费率见下表)1234567891011121314151210151610111085410108129试在及各的情况下安排一个加工顺序,使花费的总补偿费用最小2 符号约定 零件号为的零件 零件个数零件中的安装次序中为的零件号零件、的安装次序的一个布尔变量,为时表示在做零件之前,
4、必须先做零件零件的安装时间第个零件紧接着第个零件完工后开工,所需要的准备时间第个零件的安装时间(包括等待安装时间)第个零件的补偿费用模型的建立与求解3.1假设用圆圈表示要加工的零件,用箭头表示加工的次序要求,即指向的圆圈内的零件必须在箭尾圆圈内的零件所需的加工时间这样我们就可以构造出(如图一)的一个顶点带权的有向无环图这张图十分明显地表示了工艺加工次序约束由于原图有两个入口,一个出口及一个独立点,为了方便我们考虑及研究问题,增设了两个权值为0的顶点这样并不会影响或改变原图,则在工人足够多时,完成产品的零件安装任务的最少时间的问题就转化为求(如图二)从源点汇点的最长路(也叫关键路径)问题当工人只
5、有两个,从图中观察,我们知道如果由一个工人负责最长路径中的各零件那么剩下的四个零件就由第二个工人负责由最长路算法,得到有向图D中和的最长有向路为:我们也可以用拓扑排序及逆拓扑排序算法用C语言编程求出结果且两个工人安装的最少时间是123分钟,安装方案为:第一个工人安装:第二个工人安装:两个工人的工作时间分别为:123分钟和48分钟当第一个工人安装完时,第二个工人也同时安装完了,这样第二个工人就可以紧接着后连续对零件的安装,他们开始作业的时间是第二个工人在第一个工人开始作业分钟后进行连续的作业安装方案是多样,但是上一方案的优点是两个工人在固定时间落差的情况下开始连续的作业,故两个工人都无须在作业的
6、过程中等待当安装零件的工人足够时,安装的总时间是等于其中一个工人安装最长路径中的所有零件的时间(因为它是所有工人中唯一一个从零件安装开始到结束没有停息的工人的安装零件时间),即为123分钟3.2对于第二个问:若这n个零件由一个工人来安装,但是各零件的安装次序必须在满足题目表格中所给出的数据,求出令各零件安装完的时间(包括等待安装时间)之和最少的安装次序假设零件的安装先后次序为则零件的安装次序流程为假设在做零件之前,必须先做零件的这一个先后关系,可用一个布尔变量来表示,于是我们可设表示与的安装次序,当为时表示做零件之前,必须先做零件则零件安装的时间(包括等待安装时间)之和,记为故此问的整数规划模
7、型(I):具体到题目时,我们可以把题目给定的数据代入到上式中,然后用数学软件Maple等就可以求解出答案,还可以有Matlab或C语言,用回溯及函数的递归调用的算法,即可以很快求出答案,最少时间为1257分钟安装次序为:3.3对于第三个问:若由一个工人来安装这15个零件,要求满足这个工人完成此产品安装任务的时间最少的安装次序,这还包括了准备时间,设为由于题目已明确给出了故我们可以事先用软件编程计算求出所有的值,以便后面的运算假设安装次序为,则零件的安装次序流程为故完成产品安装任务的任务时间为故第二个问的整数规划模型(II):用数学软件lindo等可解出答案,不过由于运算量较大,建议用C语言或M
8、atlab等编程,用回溯及递归函数调用的算法,并限定一个上限,且对这个值也限定范围,可以大大缩短程序的运行时间求出最优解,最少时间为322分钟,安装次序为:3.4对于第四个问:若这15个零件由一个工人来安装,求出令各零件安装完的时间(包括等待安装时间)之和最少的安装次序假设零件的安装先后次序分别为则零件的安装次序流程为则第个零件的安装完的时间(包括等待安装时间),记为,即则第个零件的补偿费用,记为,即则各零件安装完的补偿费用总和,为于是我们可以得出第一个问的整数规划模型(III):用数学软件Maple等就可以很快求解出答案则若这15个零件由一个工人来安装,使各零件安装完的时间(包括等待安装时间
9、)之和最少的安装次序为:最少时间为1955分钟4模型的改进与推广原题所给出的零件数为15,当零件数为一任意常数,则模型(I,II,III)都不符合,故模型不能适应实际产品的安装,但我们可以很容易把模型推广到n个零件的情形,对于上模型的求解,不一定要用数学软件来算,为了缩短运算时间,建议使用C语言编程求解,并在编程时,应用观察法深入研究图(一),这样可以在编程中增设一些条件,把不可能的值排除,这样可以大大优化了程序,使得程序运行效率大大提高参考文献:1牛映武等运筹学M西安西安交通大学出版社1998,12谭永基等数学模型M上海复旦大学出版社1999,3 3严蔚敏等数据结构(C语言版)M北京清华大学
10、出版社2001,1The Procedure Design Of Accessory Fixing(Department of Mathematics, Shaoguan University, Kewenfeng 512005, China)Abstract: The text use the sequence of accessory Fixing as eyespot, through some texture suppose, for every last particular problem, Using the knowledge of operational research,
11、data construct etc. receive corresponding mathematics programming model, Using mathematics software (Matlab、Maple etc.) carry through answer, educe the least time of what accessory had fixing needed and corresponding accessory fixing sequence.Key words: integral programming, fall of time, retrospect, recursion transfer 编辑:黄兰香73