正在加载图片...
工方案,使在最短的时间内完成全部加工作业。对于每一个工件来说,它要在不同的机床上进行加工作业, 而且加工作业还要按一定的顺序进行:对每一个机床来说,它要加工不同的工件,而且必须按照一定的顺 序进行。虽然我们无论如何都可以求出工件的加工方案,但是,如果安排不当就必然会出现瓶颈现象 机床等待加工的时间较长。这样就会使得完成全部工件加工的总时间较长。由于工件加工作业之间具有优 先关系,有些作业必须等到其他作业完成后才可进行,这使得工件排序问题变得更加复杂。指派到机床上 的加工作业必须服从优先关系。 2.问题 假设用4台机床加2123个工件。各个工件的机床加工顺序,以及工件i在机床j上的加工时间(i=1, 2,3:j=1,2,3,4)如表10.3所示(单位:小时)。 10.3工件加工顺序及时间表 机床1→ 机床2→ 机床3 工件1 工件2 2 462 934 248 工件3 我们要找出一种工件加工作业方案使得完成全部工件加工的总时间达到最小。 3.模型 模型10.1.4—1:工件排序模型 ORDER 4.集合 我们定义三个基本集合一— GONGJ(工件)、 JICHUANG(机床)和 SHUIAN(时间)。我们用这三个 基本集合产生两个派生集合。一个是LNKS,它是一个密集,是由集合 GONGJ与 JICHUANG相乘而得 利用 LINKS我们产生两个属性,属性A存储工件在每个机床上加工所用时间:属性Y是控制变量。另 个派生集合是 GONGSHI,它也是一个密集,是由集合 GONGJ和SHAN相乘而得。利用 GONGSH我 们产生一个属性x,它表示工件在各个机床上加工的开始时间和结束时间。 5.变量 模型里的决策变量是属性X。X(i,1)、X(i,3)、X(i,5)、X(i,7)表示工件i在4个机床上的 加工开始时间,X(i,2)、X(i,4)、X(i,6)、X(i,8)表示工件i在4个机床上的加工结束时间(i=1, 2,3);当j是奇数时,Ⅹ(1,j、X(2,j)、Ⅹ(3,j)表示机床(j+1)/2加工3个工件的开始时间; 当j是偶数时,Ⅹ(1,j)、X(2,j)、X(3,j)表示机床j/2加工3个工件的结束时间(j=1,2,…8) 所有的(i,j)就构成了工件的加工时间表。属性Y是控制变量,只取0/1两个值,用来控制机床加工 工件的顺序 6.数据 在此模型中,输入的数据是存放在文件工件排序xls里的‘加工时间’域上。具体内容见表104中的 数据部分。 将数据放在模型之外可以使得模型的调试变得很容易。如果加工时间有变化,只要改动表104中的数 据,模型不需做任何改动就可获得相应的解答 输入数据是用下面的公式完成: A=@OLE(\ingo\工件排序xls’,’加工时间’); 7.目标函数 这个模型的目标很简单,它就是求出加工完全部工件的总时间的最小值。可用下式给出 @for(GONGJ (i): W>=x(i, m+3)ta (i, m)): 这里,m表示最后一个机床。 8.约束 在这个模型里,我们有下面两类约束 (1)每个工件加工次序的约束 对于每个工件来说,加工次序必须得到满足。即工件i(i=1,2,3)在某个机床上的开始加工时间加工方案,使在最短的时间内完成全部加工作业。对于每一个工件来说,它要在不同的机床上进行加工作业, 而且加工作业还要按一定的顺序进行;对每一个机床来说,它要加工不同的工件,而且必须按照一定的顺 序进行。虽然我们无论如何都可以求出工件的加工方案,但是,如果安排不当就必然会出现瓶颈现象—— 机床等待加工的时间较长。这样就会使得完成全部工件加工的总时间较长。由于工件加工作业之间具有优 先关系,有些作业必须等到其他作业完成后才可进行,这使得工件排序问题变得更加复杂。指派到机床上 的加工作业必须服从优先关系。 2. 问题 假设用 4 台机床加 212 3 个工件。各个工件的机床加工顺序,以及工件 i 在机床 j 上的加工时间(i=1, 2,3;j=1,2,3,4)如表 10.3 所示(单位:小时)。 10.3 工件加工顺序及时间表 机床l→ 机床2→ 机床3→ 机床4 工件1 3 4 9 2 工件2 2 6 3 4 工件3 1 2 4 8 我们要找出一种工件加工作业方案使得完成全部工件加工的总时间达到最小。 3. 模型 模型 10.1.4—1:工件排序模型 ORDER 4. 集合 我们定义三个基本集合——GONGJ(工件)、JICHUANG(机床)和 SHUIAN(时间)。我们用这三个 基本集合产生两个派生集合。一个是 LINKS,它是一个密集,是由集合 GONGJ 与 JICHUANG 相乘而得。 利用 LINKS 我们产生两个属性,属性 A 存储工件在每个机床上加工所用时间;属性 Y 是控制变量。另一 个派生集合是 GONGSHI,它也是一个密集,是由集合 GONGJ 和 SHIJIAN 相乘而得。利用 GONGSHI 我 们产生一个属性 x,它表示工件在各个机床上加工的开始时间和结束时间。 5. 变量 模型里的决策变量是属性 X。X(i,1)、X(i,3)、X(i,5)、X(i,7)表示工件 i 在 4 个机床上的 加工开始时间,X(i,2)、X(i,4)、X(i,6)、X(i,8)表示工件 i 在 4 个机床上的加工结束时间(i=1, 2,3);当 j 是奇数时,X(1,j)、X(2,j)、X(3,j)表示机床(j+1)/2 加工 3 个工件的开始时间; 当 j 是偶数时,X(1,j)、X(2,j)、X(3,j)表示机床.j/2 加工 3 个工件的结束时间(j=1,2,…8)。 所有的 X(i,j)就构成了工件的加工时间表。属性 Y 是控制变量,只取 0/1 两个值,用来控制机床加工 工件的顺序。 6. 数据 在此模型中,输入的数据是存放在文件工件排序.xls 里的‘加工时间’域上。具体内容见表 10.4 中的 数据部分。 将数据放在模型之外可以使得模型的调试变得很容易。如果加工时间有变化,只要改动表 10.4 中的数 据,模型不需做任何改动就可获得相应的解答。 输入数据是用下面的公式完成: A=@OLE(’\lingo\工件排序.xls’,’加工时间’); 7. 目标函数 这个模型的目标很简单,它就是求出加工完全部工件的总时间的最小值。可用下式给出: min=W; @for(GONGJ(i):W>=x(i,m+3)+a(i,m)); 这里,m 表示最后一个机床。 8. 约束 在这个模型里,我们有下面两类约束: (1)每个工件加工次序的约束 对于每个工件来说,加工次序必须得到满足。即工件 i(i=l,2,3)在某个机床上的开始加工时间加
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有