单件作业排序问题的基于lingo软件解法(含代码)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

海南大学

《数学模型》课程设计

题目:单件作业排序问题的基于lingo软件解法班级:信息与计算科学

姓名:体贴的瑾色

学号:

指导教师:舒兴明

日期:2017.05

单件作业排序问题的基于lingo软件解法

摘要

关键词:单件工件加工排序 lingo

本文针对一个8*5的单件作业排序问题,通过规定加工顺序,后将不满足这个顺序的工件‘拆分’为不同的工件,然后将问题变成了更为简单的流水作业排序问题。通过引入0-1变量,约束本来同属与一个工件的‘工件’加工顺序建立一个数学规划模型,利用lingo 软件进行模型的求解,得到了使得所有工件都加工完成所需时间最少的排序。最后针对模型做了一个中肯的评价,并将模型推广到m n的单件作业排序问题。

解决*

一、问题分析

该问题是一个单件作业排序问题,这是一般的工件排序问题,也是最复杂的工件排序问题,即每一个工件都有自己独特的加工路线,工件没有一定的流向,这类排序问题暂时还没有一种很好的解决方案。而与之区别的一种工件排序问题是流水作业排序问题,最大的不同就是流水作业排序中在不同的工件在多个机床上的加工顺序是一致的情况下也能够找到最优解或者近似最优解,这类问题往往能得到比较好的解决。本问题对工件在不同机床上加工的顺序做了限制,而且一个工件可能多次在同一个机床上加工,使得问题比较复杂,而如果我们规定工件在机床上加工的顺序只能为A-B-C-D-E,且若某个工件不满足这个顺序就将其看为多个符合顺序的工件组合。比如问题中的工件1加工顺序为A-B-A-C-D-E,在第三道工序不满足规定的顺序,那么就将其拆分为加工顺序为A-B—C-D-E和A-B-C-D-E的两个工件1.1和1.2,其中工件1.2必须在工件1.1全部加工完成后才可以进行加工,并且工件1.1的CDE三道工序加工时间都为0,工件1.2的工序B加工时间为0。如此该问题就变成了一个20个工件在5个机床上加工的流水作业排序问题。变换后的加工时间表为(为了方便处理,将变换后的零件仍然以自然数编号,单位为h):

这样只要决定了每个工件在每个机床的初始时刻,顺序一旦确定,每个工件在每

个机床的加工终止时刻都完全确定,也就能决定最后八批货物的最后交货时间了。

二、符号说明

1,2,...,20i = 表示20个工件;

1,2,...,5j = 表示5个机床;

(,)x i j 表示第i 个工件在第j 个机床的初始加工时间;

(,)t i j 表示第i 个工件在第j 个机床的所需加工时间;

1(,)0i k y i k i k ⎧=⎨⎩工件在工件前加工,i

tt 表示所有工件都加工完成后的时间

(默认最先加工的工件初试加工时间为0)。

三、模型假设

(1)、一个工件不能同时在不同的机床上加工。

(2)、一个工件的一个工序完成后立刻完成下一个工序,中间没有时间延误。

(3)、一个机床开始一道工序后必须一直工作知道这个工序完成。

(4)、一个机床同时只能进行一道工序。

四、模型建立

目标函数:min tt

{}max (,5)(,5),1,2,...,20tt x i t i i =+=

等价于: (,5)(,5),1,2,...,20tt x i t i i ≥+=

因为加工时间不可能小于每个机床运行的最小时间,所以由加工时间表知:

69;tt ≤

每个工件的加工顺序约束:

(,)(,)(,1),1,2,...,20,1,2,3,4x i j t i j x i j i j +≤+==

不同工件的加工顺序约束(M是充分大的整数,本题取200):

(,)(,)(,)(1(,)),1,2,..,20,(,)(,)(,)(,),

x i j t i j x k j M y i k i i k x k j t k j x i j My i k +≤+-⎧=<⎨+≤+⎩ 原属同一个工件的顺序约束:

x(1,2)+t(1,2)<=x(2,1);x(11,5)+t(11,5)<=x(12,1);

x(3,2)+t(3,2)<=x(4,1);

x(12,4)+t(12,4)<=x(13,3);x(4,5)+t(4,5)<=x(5,3);

x(13,3)+t(13,3)<=x x(5,3)+t(5,3)<=x(6,1);

x(7,5)+t(7,5)<=x(8,2);

x(8,2)+t(8,2)<=x(9,1);

(14,2);x(14,2)+t(14,2)<=x(15,1);x(18,5)+t(18,5)<=x(19,1); x(19,4)+t(19,4)<=x(20,1); 变量约束:

(,)0,1,2,,20,1,2,3,4,5x i j i j ≥==L

y(i,k){0,1},1,2,...,20,i i k ∈=<

(,)(,)1y i k y k i +=

y(1,2)=1;

y(11,12)=1;y(3,4)=1;

y(12,13)=1;y(4,5)=1;

y(13,14)=1;y(5,6)=1;

y(14,15)=1;y(7,8)=1;

y(18,19)=1;y(8,9)=1;y(19,20)=1;

五、问题解决

求解模型后得到最优解:

69tt h =

结果分析:

由该图知道顺序应该为:

11->10->3->18->4->1->12->7->5->2->13->17->8->19->16->14->6->9->20->15

而回到题目那么顺序应该为(每个工件均按照其加工流程加工):

5(E)->4(ABCE)->2(B)->8(ABE)->2(ADE)->1(AB)->5(ABD)->3(ACDE) ->2(C)->1(ACDE)->5(C)->7(ABCDE)->3(B)->8(ACD)->6(ABCDE)->5 (B)->2(AB)->3(AB)->8(A)->5(A)

去除了加工时间为0的工序后每个工件的每个步骤的开始时刻和结束时刻为:

相关文档
最新文档