工件加工的排序优化问答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关键词:0-1 变量、lingo、排序问题
-1-
1. 问题重述
计划排序问题中的车间作业问题,研究 n 个工件在 m 台机器上有序的加工问题,每 个工件都有完工的日期(DD,Due date),加工的时间(PT,Processing time)和工件 的价值(VAL,Value if job is selected).车间作业计划研究一个工厂生产工序的计 划和安排,需要计划与合理安排各个工件在这些机器上加工的先后次序,即拟订加工工 序,通过各个工件在各种机器上加工次序的合理安排,使得完成这批工件加工任务所需 的总时间最省(注:总时间即为各个零件的加工时间和加工其他零件时它们等待时间之 和)或要求整个选择加工的工件价值最大。
4.5
7
2.5
1.7
8
3.3
2.5
9
1.7
4.5
10
2.5
2.5
11
3.6
3.8
12
4.7
1.9
表2
为该工厂安排工件加工的次序,使得完成这批工件加工任务所需的总时间最省。建
立数学模型并给出相应的算法。
(三)如果这 12 种工件都要求先在车床上加工,然后再在钻床上加工,最后再在铣床 上加工,每种机器一次只能加工一种工件,这 12 种工件加工所需时间如表 3 所示:
对此数学模型用 lingo 编程,运行程序即得完成这批工件的总价值以及相应的总时间和 加工顺序,程序见附录-程序二 5.2. 对于问题二 问题二要求完成任务使总时间最少,根据题意总时间为加工时间加上等待时间,所以有 如下式子
12
∑ 完成这批工件加工任务所需的总时间最少 minW = sj
j =1
其中 sj 最优排列下第 j 种工件在完成钻工序的总时间
目标函数:
12
min Z= ∑ti
i=1
约束条件:
i
∑ ti = bj
j =1
12
12
∑ ∑ yij =1, yij = 1
i =1
j =1
12
∑ bj = yijai
i =1
对此数学模型用 lingo 编程,运行程序即得完成这批工件的总时间和加工顺序,程序见 附件-程序一
-5-
e ∑e 12
2)设 P 为工件的总价值, j 在最优排列下第 j 种工件的价值,那么有: max P = j j =1
i
12
∑ ∑ ti = bj nj = yijmi
j =1
i =1
12
12
12
∑ ∑ ∑ bj = yijai , yij = 1 , yij = 1
i =1
i =1
j =1
对此数学模型用 lingo 编程,运行程序即得完成这批工件的最少总时间和加工顺序,程 序见附件-程序三。 5.3. 对于问题三 这是在问题一二上的推广,我们仍然按照第一问推广到第二问的方法,将第二问推广到 第三问,设 uj 最优排列下第 j 种工件在完成铣床序的总时间
mi 为 i 工件的钻床加工时间,根据前面第一问可知还有如下约束
12
12
12
∑ ∑ ∑ bj = yijai , yij = 1, yij = 1
i =1
i =1
j =1
因此问题二的数学模型可以表述为 目标函数:
12
minW = ∑ sj
j ຫໍສະໝຸດ Baidu1
约束条件:
{ sj =
ti + nj ti ≥ sj − 1 sj − 1 + nj ti ≤ sj − 1 s1 = t1 + n1
工件 1 2 3 4 5 6 7 8 9 10 11 12
车床加工时间(h) 2.8 3.2 1.2 4 2.7 0.9 2.5 3.3 1.7 2.5 3.6 4.7
钻床加工时间(h) 4 1.3 1.8 2.2 3 4.5 1.7 2.5 4.5 2.5 0.9 1.9
表3
铣床加工时间(h) 3 1 2.5 1.3 1.8 2 3.6 0.8 1 1.1 1.3 0.7
4.2. 工件在转换工序时所需的运输时间为零。 4.3. 机器加工完一种工件后,能及时另外一种零件。 4.4. 工件和机器在加工过程中不发生意外。
5. 模型的建立与求解
5.1. 对于问题一
12
1)设 ti 为 i 工件实际完工时间,所以完成这批工件的总时间为 Z= ∑ti
i=1
而加工 i 工件在最优排列下所用的总时间 ti =b i−1 +b i =b i−2 +b i−1 +b i =b1 +b 2 +…+ bi
3. 符号说明
yij
为 0/1 变量
ai
为 i 工件的车床加工时间
bj
在最优排列下第 j 次在车床加工的时间
mi
为 i 工件的钻床加工时间
nj
在最优排列下第 j 次在钻床加工的时间
qi
为 i 工件的铣床加工时间
rj
在最优排列下第 j 次在铣床加工的时间
di
第 i 种工件在车床的完工时间
fj
在最优排列下第 j 种工件在车床工件的完工时间
sj
在最优排列下第 j 种工件在完成钻床序的总时间
uj
在最优排列下第 j 种工件在完成铣床序的总时间
ti
为 i 工件在从最优排列下车床加工所用的总时间
W
完成这批工件加工任务所需的总时间
P
工件总价值
-4-
4. 模型假设
4.1. 不考虑的完工时间和工件的价值,安排工件加工的次序,使得完成这批工件加工 任务所需的总时间最省。
i
∑ 即 ti = bj
j =1
12
∑ 共 12 工件,第 i 工件加工顺序在 1 到 12 之间,即 yij =1。
i =1
12
∑ 加工顺序为 j 是,一定有一个工件 i,即 yij = 1。
j =1
12
∑ 最优排列下第 j 次加工的时间 bj = yijai
i =1
因此: 问题 1)的数学模型为
{ sj =
ti + nj ti ≥ sj − 1 sj − 1 + nj ti ≤ sj − 1 s1 = t1 + n1
i
∑ ti 为 i 工件在从最优排列下车床加工所用的总时间 ti = bj
j =1
-6-
1
∑ ni 为 i 工件在从最优排列下车床加工所用的总时间 nj = yijmi
n =1
综上所述可得问题 2)的数学模型为 目标函数:
12
max P = ∑e j j =1
约束条件:
12
12
∑ ∑ yij ≤ 1, yij ≤ 1
i =1
j =1
12
12
∑ ∑ bj = yijai , ej = yijci
i =1
i =1
12
∑ fj = yijdi , ti ≤ f j (i=j)
i =1
问题二:在问题一第一问的基础上,将加工次数增为两次,因为工件必须先经过车 床加工,才能进行钻床的加工,所以只要求出工件车床的加工顺序就是整个加工顺序。 因此仍然可以用一个 12×12 的 0-1 变量来解决此问题,然后用 lingo 编程解出此变量。
问题三四:在问题一二基础上进一步推广,因此我们运用前面方法将模型符号化, 然后归纳出一般的式子得到第三四问的解。
为该工厂安排工件加工的次序,使得完成这批工件加工任务所需的总时间最省。建 立数学模型并给出相应的算法。
(四)对于上述问题你做出的数学模型和相应的算法给出评价。并将模型推广到 n 个工 件在 m 台机器上加工的一般的工件排序问题,给出你的想法和解决问题的思路。
-3-
2. 问题分析
问题一:第一问,题目只要求完成这批工件加工任务所需的总时间最省,不考虑完 工时间和工件价值,为此引入一个 12×12 的 0-1 变量,下标分别表示工件序号和加工 顺序序号。如:y(1,7)=1 表示工件 1 加工顺序为 7。利用约束条件和目标函数求出此变 量,就能得到题目要求的工件加工次序。第二问,题目要求考虑完工时间并使利润最大, 在第一问的基础上将目标函数中的总时间改为总利润,并加上完工时间的约束,将 0-1 变量解出,就能得到需要加工的工件序号和顺序。
摘要
众所周知,对于一个加工企业而言,如何在最短时间内完成加工任务,是一个企业 提高竞争力和利润的关键。本文就是一篇关于工件加工的排序优化问题,即在给定的数 据和做出符合实际生产的条件下,合理的安排工件的加工顺序,使加工的效率或所获得 的利润等指标达到最大值。如:问题一第一问问在所有工件必须且只需加工一次,如何 合理安排加工顺序,使得完成这批工件加工任务所需的总时间最省;第二问问如何安排 加工顺序能使加工零件的总价值最大。 因为工件加工只有顺序和加工与否,所以我们 引入了一个 0-1 变量表示加工工件的顺序和工件的种类,运用 lingo 编程求出该变量, 即可得到在不同情况下加工顺序。然后对结果进行分析,因为计算出的结果唯一的(实 际可能不唯一,如,第一题第二问)。这是因为当前一个工件的完工时间大于排序后后 一个工件的累计加工时间时,两者互换加工顺序均可行。问题二三四是在问题一上的推 广,因此我们运用前面方法将模型符号化,再归纳出 i 种工件,每种工件需要 j 部机床 的情况,在解决方法上只需要在 lingo 程序中的工件顺序集里加入相应的属性,便解出 0-1 变量,然后转换成顺序,问题就解决了。
(二)如果这 12 种工件都要求先在车床上加工,然后再在钻床上加工(即工件在钻床 加工之前必须先在车床上加工过),每种机器一次只能加工一种工件,这 12 种工件加 工所需时间如表 2 所示:
-2-
工件
车床加工时间(h)
钻床加工时间(h)
1
2.8
4
2
3.2
1.3
3
1.2
1.8
4
4
2.2
5
2.7
3
6
0.9
12
12
∑ ∑ 因为不要求每一种工件都加工,所以 yij ≤ 1, yij ≤ 1
i =1
j =1
12
12
∑ ∑ 因为第二问是在第一问的基础上,因此需要满足第一问的约束 bj = yijai , ej = yijci
i =1
i =1
12
∑ 完工时间约束 fj = yijdi
i =1
为 i 工件在从最优排列下加工所用的总时间需要小于完工时间,故 ti ≤ f j (i=j)。
有一个工厂现在有 12 种工件(编号为工件 1,工件 2,…,工件 12)需要在车床, 钻床,铣床几种不同的设备上加工。考虑下面的工件加工的排序问题:
(一)这 12 种工件都要求在车床上加工,车床一次只能加工一种工件,这 12 种工件加 工所需时间,每个工件的完工时间和每个工件的价值如表 1 所示:
i =1
12
在最优排列下第 j 次在钻床加工的时间 nj = ∑ yijmi ····································(3) i =1
12
∑ 在最优排列下第 j 次在铣床加工的时间 rj = yijqi ···································(4)
我们的参赛报名号为:
参赛队员 (签名) :
队员 1:***
队员 2:***
队员 3:***
湖南工学院数学建模竞赛 编号专用页
参赛队伍的参赛号码:(请各个参赛队提前填写好): 竞赛统一编号(由竞赛组委会送至评委团前编号):
竞赛评阅编号(由竞赛评委团评阅前进行编号):
湖南工学院数学建模竞赛 工件加工的排序优化问题
工件 1 2 3 4 5 6 7 8 9 10 11 12
加工时间(h) 2.8 3.2 1.2 4 2.7 0.9 2.5 3.3 1.7 2.5 3.6 4.7
完工时间(h) 9
7.5 15 23 10 22 17 33 7 18 25 11
表1
工件价值 8 4 16 3 7 20 17 11 7 12 5 18
湖南工学院数学建模竞赛 承诺书
我们仔细阅读了第 7 届湖南工学院数学建模竞赛的竞赛规则。 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网 上咨询等)与本队以外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的 资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参 考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规 则的行为,我们愿意承担由此引起的一切后果。
12
∑ 那么最少的总时间 min W = uj ·························································· (1)
j =1
12
∑ 在最优排列下第 j 次在车床加工的时间 bj = yijai ·································· (2)
1、不考虑工件的完工时间和工件的价值,为该工厂安排工件加工的次序,使得完成这 批工件加工任务所需的总时间最省。建立数学模型并给出相应的算法。
2、由于工件必须在它们要求的时间内完工,按照表 1 的数据,为该工厂安排选择加工 工件的种类及加工的次序,使得整个选择加工的工件价值最大。建立数学模型并给出相 应的算法。
相关文档
最新文档