工件加工问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B题工件加工问题
第十三组
执笔人:侯慧慧
B 题:工件加工问题
摘要
本题目要求中十四个工件都在同一台机床上加工,分别求出在给定的三个条件下的最优加工工序,且一些工件的加工必须在某些工件的加工之后进行。故考虑设0-1变量,建立线性规划模型求解。构造0-1矩阵
其中,A 表示第一号工件,B 表示第二号工件,L L ,N 表示第十四号工件;1i A =表示第一号工件的加工次序为i ,1j B =表示第二号工件的加工次序为j ,L L ,1k N =表示第十四号工件的加工次序为k 。
问题1构造目标函数:
其中,i Y 表示第i 次加工的工件的加工时间。根据题目条件列出约束条件,用Lingo 编程,求解得最佳加工工序为:
问题2构造目标函数:14
2345i i Min Z ==+∑,同样根据题目条件列出约束条件,
用Lingo 编程,求解得最佳加工工序为:
问题3构造目标函数:
也根据题目条件列出约束条件,用Lingo 编程,求解得最佳加工工序为: 关键词:0-1变量 线性规划 最优解
一、问题的重述
现有14件工件等待在一台机床上加工,某些工件的加工必须安排在另一些工件完工以后才能开始,第j 号工件的加工时间j t 及先期必须完工的工件号i 由
两个阶段),试设计一个满足条件的加工顺序,使各个加工工件的完工时间之和最小。
(2)若第j 号工件紧接着第i 号工件完工后开工,机床需要花费的准备时间是ij t ,
试设计一个满足条件的加工顺序,使机床花费的总时间最小。
(3)假定工件的完工时间(包括等待与加工两个阶段)超过一确定时间u ,则需支付一定的补偿费用,其数值等于超过的时间与费用率之积(各工件的补偿率j w 见下表):
1 2 3 4 5 6 7 8 9 10 11 12 13 14
12 10 15 16 10 11 10 8 5 4 10 10 8 12
100,0,ij u t ==安排一个加工顺序,使得总补偿费最小。
二、基本假设与符号说明
2.1基本假设
(1)假设机床在加工过程中不会出现损坏的情况,一切运转正常;
(2)不考虑到其他因素,如每个工件的装卸时间和刀具及夹具更换的时间;
(3)每个工件都一次性加工成功,不会出现返工的情况。
2.2符号说明
k
t '——第()1,2,,14k k =L 个加工的工件的加工时间 k T ——第()1,2,,14k k =L 个加工的工件的完成时间
T ——14个工件的完工时间之和
i Z ——第i 次加工的工件的准备时间()1,2,,14i =L
i Y ——第i 次加工的工件的加工时间()1,2,,14i =L
A ——第一号工件
B ——第二号工件
N ——第十四号工件
1i A =——第一号工件的加工次序为i
1j B =——第二号工件的加工次序为j
1k N =——第十四号工件的加工次序为k
W ——各个加工工件的等待时间之和
i X ——第i 次加工的工件的编号()1,2,,14i =L
i y ——第i 号工件的超时数,
i z ——第i 号工件的加工次序,
i x ——第i 号工件的完工时间(包括等待和加工两个阶段)。()1,2,,14i =L
三、模型的建立
3.1问题一
模型一
观察题目表格中的数据,每个工件都有自己的加工时间,而又规定:每个工件的完工时间既包括等待阶段,又包括加工阶段,因此,每个工件的完工时间应是前面所有已经加工过的工件的加工时间之和与自身加工时间的总和,设
第()1,2,,14k k =L 个加工的工件的加工时间为k
t ',完工时间为k T ,则有 设14个工件的完工时间之和为T ,整理得
1411
234567891011121314141312111098765432k
k T T t t t t t t t t t t t t t t ==''''''''''''''=+++++++++++++∑(
1)
显然,当数列{}()1,2,,14k
t k '=L 是一个递增序列时,T 的值最小。下面是简单的证明过程:
不妨假设12
t t ''<,()3,4,14k t k '=L 保持不变,若在(1)式中交换12,t t ''的位置,即有
则 ()()12
2112
14130T T t t t t t t '''''-=-+-''=-<
模型二
题中所给的14个工件都有各自的加工时间,且某些工件还必须安排在另一些工件完工以后才能开始。问题要求给出满足条件的加工顺序,使各个工件的完工时间之和最小,这与排课问题很相似,故可以考虑建立线性规划模型求最优值。
构造0-1矩阵
其中,A 表示第一号工件,B 表示第二号工件,L L ,N 表示第十四号工件;1i A =表示第一号工件的加工次序为i ,1j B =表示第二号工件的加工次序
为j ,L L ,1k N =表示第十四号工件的加工次序为k 。
约束条件的限制:
①每个工件都只需加工一次,所以0-1矩阵中每行的元素之和为1,即 ②每次只能加工一个工件,所以0-1矩阵中每列的元素之和为1,即
上述约束条件①和②就保证了不同工件间的加工次序不同。
③前期工件条件的限制:根据题目给出的数据,构造优先关系矩阵: 其中,以(),A C 为例,表明C 是A 的前期工件,则工件A 的加工次序大于工件C 的加工次序,即:
因为要求以加工顺序,使得所有工件的完工时间之和最小,所以有
目标函数 ()()1314112123111231314
1413122i i i i Min Y Y Y Y Y Y Y Y Y Y Y Y Y ==⎛⎫⎛⎫=++++++++ ⎪ ⎪⎝⎭⎝⎭=+++++∑∑L L
其中,i Y 表示第i 次加工的工件的加工时间。
模型三
由题目中一些工件加工的先后关系,考虑用数据结构中的DAG 图表示各个工件之间的关系,使用拓扑排序的算法求出所有合理的排序序列,然后根据等待加工工件的等待时间之和最小来确定最优的加工顺序。即用下面公式来求出各个加工工件的等待时间之和。
其中,第一个加工工件的等待时间为0,W 表示各个加工工件的等待时间之和,i t '表示第i 个加工的工件的加工时间。
3.2问题二
引入0-1变量(),,,,1,2,,14i i i i A B C N i =L L ,其中,1i A =表示第一号工件的加工次序为i ,1i B =表示第二号工件的加工次序为i ,L ,1i N =表示第十四号工件的加工次序为i 。
十四个工件的加工时间之和为345,设i Z 表示第i 次加工的工件的准备时间()1,2,,14i =L ,要使机床花费的时间最少,建立目标函数: