MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版

MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版

1.基本概念
车间调度是指根据产品制造的合理需求分配加工车间顺序,从而达到合理利用产品制造资源、提高企业经济效益的目的。车间调度问题从数学上可以描述为有n个待加工的零件要在m台机器上加工。问题需要满足的条件包括每个零件的各道工序使用每台机器不多于1次,每个零件都按照一定的顺序进行加工。

车间调度问题实例2.0版:
划重点:
与1.0版的区别:加入了机器的休息时间。(每台机器每加工完一个工序都会休息一定时间)

实例问题描述:
现共有6个工件,在10台机器上加工,每个工件都要经过6道加工工序,每个工序可选择机器序号如表一所列。每道工序的加工时间如表二所列。加工结束后每台机器有各自固定的休息时间,每台机器的休息时间如表三所列。请合理分配工件在机器上的加工顺序(即指明每个工件的每个工序在什么时间在哪台机器上加工),使得总加工耗时最短(成本最小)。

表一:工序可选机器表
工序1 工序2 工序3 工序4 工序5 工序6
工件1 5 6 4 [2,9] [3,7] 5
工件2 4 [2,9] 8 [6,7] 5 [1,10]
工件3 3 [6,8] 7 [2,1] [4,10] 5
工件4 5 2 [4,7] 10 [2,5] [3,6]
工件5 [4,5] 5 [9,10] 6 2 [3,8]
工件6 [2,6] 4 [6,9] 7 8 [3,9]

表二:工件加工时间表
工序1 工序2 工序3 工序4 工序5 工序6
工件1 3 10 9 [5,4] [3,3] 10
工件2 6 [8,6] 4 [2,6] 3 [3,3]
工件3 4 [5,7] 7 [5,5] [9,11] 1
工件4 7 3 [4,6] 3 [1,7] [3,6]
工件5 [6,4] 10 [7,9] 8 5 [4,7]
工件6 [3,7] 10 [8,7] 9 4 [9,4]

表三:机器休息时间表
机器 1 2 3 4 5 6 7 8 9 10
休息时间 2 1 3 2 4 2 1 4 3 3

求解算法:蚁群算法
1.根据具体问题设置多只蚂蚁,分头并行搜索。
2.每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。
3.蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。
4.每只蚂蚁只能走合法路线,为此设置禁忌表来控制。
5.所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。
6.更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。
7.达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解。

MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版_第1张图片MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版_第2张图片MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版_第3张图片MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版_第4张图片

编程求解结果:
MATLAB蚁群算法求解车间调度问题代码实例(含甘特图)2.0版_第5张图片

下面进行程序代码运行演示!

你可能感兴趣的:(matlab,算法,甘特图)