首页 / 专利库 / 商业 / 工厂交货 / 一种分布式阻塞型流水线调度的混合群智能优化方法

一种分布式阻塞型流线调度的混合群智能优化方法

阅读:197发布:2020-05-13

专利汇可以提供一种分布式阻塞型流线调度的混合群智能优化方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种分布式阻塞型流 水 线调度的混合群智能优化方法,包括:对多个工厂和多个 工件 进行协同初始化生成多个第一工厂工件加工序列;计算每个第一工厂工件加工序列的自适应参数,根据自适应参数进行调整生成多个第二工厂工件加工序列;通过工厂内和工厂间局部搜索调整生成多个第三工厂工件加工序列;选择部分第三工厂工件加工序列进行重生成机制,对多个第三工厂工件加工序列进行更新以确定出当前最优工厂工件加工序列;返回第二步进行 迭代 更新当前最优工厂工件加工序列,直至满足预设迭代终止条件输出最优工厂工件加工序列。该方法通过自适应搜索与局部搜索结合,使种群中的个体可以自我调整搜索范围,平衡了 算法 的粗搜索与细搜索能 力 。,下面是一种分布式阻塞型流线调度的混合群智能优化方法专利的具体信息内容。

1.一种分布式阻塞型流线调度的混合群智能优化方法,其特征在于,包括以下步骤:
S1,获取多个工厂和多个工件,对所述多个工厂和所述多个工件进行协同初始化操作生成多个第一工厂工件加工序列;
S2,计算每一个第一工厂工件加工序列的自适应参数,并根据所述自适应参数对所述多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列;
S3,通过工厂内局部搜索和工厂间局部搜索对所述多个第二工厂工件加工序列进行调整生成多个第三工厂工件加工序列;
S4,在所述多个第三工厂工件加工序列中选择部分第三工厂工件加工序列进行重生成机制,并对所述多个第三工厂工件加工序列进行更新以确定出当前最优工厂工件加工序列;
S5,返回步骤S2进行迭代,通过对步骤S2-S4进行迭代来更新所述当前最优工厂工件加工序列,直至满足预设迭代终止条件输出最优工厂工件加工序列。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个工厂和所述多个工件进行协同初始化操作生成多个第一工厂工件加工序列,包括:
通过启发式规则排序和随机排序结合的方式进行初始化生成工件优先级序列;
根据工厂分配策略将所述工件优先级序列中的工件分配至所述多个工厂;
通过变邻域搜索调整所述多个工厂的工件加工序列,以得到所述多个第一工厂工件加工序列,所述变邻域搜索包括交换邻域搜索和插入邻域搜索。
3.根据权利要求2所述的方法,其特征在于,
所述随机排序为随机生成一个包含全部工件的不重复序列;
所述启发式规则排序为基于减小工件在工厂的机器上加工产生的阻塞和空闲时间和工件交货时间的因素生成工件加工序列。
4.根据权利要求2所述的方法,其特征在于,所述根据工厂分配策略将所述工件优先级序列中的工件分配至所述多个工厂,包括:
将所述工件优先级序列σ的前f个工件分别分配至每个工厂,并放置于每个工厂的工件序列的第一位,f为工厂数目;
所述工件优先级序列σ中剩余的每一个工件,按照每一个工件在所述工件优先级序列σ中的先后顺序,按照如下规则进行分配:记录每一个工厂工件序列的最后一个工件从工厂中的第一台机器上离开的时间,选择时间最小的那个工厂,将当前工件分配至该工厂,并放置于该工厂工件序列的最后一个位置
5.根据权利要求1所述的方法,其特征在于,所述自适应参数ux的计算公式为:
其中,ux为工厂工件加工序列x的自适应参数,n为工件总数量,f为工厂数目,TTbest,TTworst,TTx分别为所有工厂工件加工序列中最好的工厂工件加工序列的总拖期、最差工厂工件加工序列的总拖期、工厂工件加工序列x的总拖期,λmin,λmax为设定的最小、最大调整比例,介于0和1之间。
6.根据权利要求1所述的方法,其特征在于,所述自适应参数越小,则所述自适应参数对应的工厂工件加工序列的调整步长越小,调整范围越小。
7.根据权利要求1所述的方法,其特征在于,所述根据所述自适应参数对所述多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列,具体步骤为:
(1)令
(2)从工厂工件加工序列x的工厂中随机取出共计ux个工件,按照移除顺序置于集合σremove中,ux为工厂工件加工序列x的自适应参数;
(3)选择σremove中的一个工件job,将工件job插入所有工厂的所有可能节点,选择使得目标函数的增量最小的工厂和节点,将工件job插入该节点,从σremove中移除工件job;
(4)重复步骤(3)直至集合σremove为空集;
(5)将所述多个第一工厂工件加工序列调整成所述多个第二工厂工件加工序列。
8.根据权利要求1所述的方法,其特征在于,所述工厂内局部搜索为变邻域搜索;
所述工厂间局部搜索包括:
(1)令 选择工件拖期之和值最大的工厂作为关键工厂,在所述关键工厂中随机选择nleh个工件,放置于集合U中,其中,nlen为工厂间局部搜索深度;
(2)从所述关键工厂中移除U中存放的第一个工件,计算所述关键工厂移除后与移除前的工厂拖期变化量δ1;
(3)将(2)中移除的工件插入其它工厂中,并计算插入后与插入前的工厂拖期变化量δ2;
(4)若δ1+δ2<0,则将该工件插入该最佳位置,并从集合U中移除该工件;
(5)重复步骤(2)、(3)、(4)直至集合
(6)将所述多个第二工厂工件加工序列优化为所述多个第三工厂工件加工序列。
9.根据权利要求1所述的方法,其特征在于,所述S4,具体包括:
(1)根据所述多个第三工厂工件加工序列确定出所述多个第三工厂工件加工序列中连续GEN代没有改进的所述部分第三工厂工件加工序列,执行重生成操作,GEN为个体重生成参数,令F={1,2,...,f};
(2)随机从F中选择两个工厂f1,f2,记工件数量大的工厂为f1,在f1中随机选择一个位置k,交换工厂f1,f2中位置k之后的工件序列,若位置k超出工厂f2的工件总量,则将f1中位置k后的工件按其顺序插入f2中;
(3)从F中移除工厂f1,f2,重复步骤(2)直到F中的元素小于2;
(4)确定出所述当前最优工厂工件加工序列。

说明书全文

一种分布式阻塞型流线调度的混合群智能优化方法

技术领域

[0001] 本发明涉及流水线调度技术领域,特别涉及一种分布式阻塞型流水线调度的混合群智能优化方法。

背景技术

[0002] 制造业是国民经济的基础,随着现代科学技术的不断发展,降低生产成本、缩短生产周期、减少资源消耗、改善产品质量成为企业在激烈的市场竞争中取得主动地位的关键。生产制造不仅仅影响着企业的经济效益,更对国民的生活水平甚至国家的综合实都有着巨大的影响。生产调度是对生产制造过程进行计划制定与优化,从而最大程度地利用生产资源、提高生产质量,是整个生产制造过程的核心环节。一个高效合理的生产调度方案,是实现降低成本、增加效益的关键。因此,对于生产调度的研究,不仅具有较深远的理论意义,而且具有更大的现实价值。
[0003] 在全球化的大背景下,随着公司之间的合作生产以及企业之间的兼并收购日益普遍,分布式生产制造已经成为一种常见的生产模式。在此基础上,分布式生产调度问题考虑多个工厂、车间或生产线的协作生产,针对工件的分配与工件的排序两个方面的问题,进行分析与优化。关于分布式生产调度的研究目前大多围绕着流水线调度、作业车间调度、装配调度和柔性调度在分布式环境下的扩充来进行展开,而随着生产环境与产品工艺的不断多样化,加入切合实际情况的工艺约束也成为了研究人员关注的重点,由此衍生出的分布式阻塞流水线调度就是目前国际学术与工业界研究的热问题。一般的流水线调度问题需要保证机器之间的缓冲区是无限的,但在实际生产环境中,由于空间上的限制、工艺以及成本的要求等原因,机器之间并不允许存在缓冲区,因此一个工件在当前机器上运行完后准备下一次的操作,如果下一台正在被使用,则此机器就被阻塞在当前机器上而无法进行下一次的操作,直到下一台机器被释放。这样工件的阻塞就会增加等待时间和生产周期,最终导致生产效率的大大降低。典型的例子如制造过程、工业废物处理过程等。因此,对于无缓冲区(阻塞)条件下分布式流水线调度问题的研究具有重要的应用价值。
[0004] 关于阻塞流水线调度有着许多性能指标,其中研究最多的指标是最大完工时间(makespan),但随着现代生产系统的进步以及用户生活方式的变化,对于拖期(tardiness)目标的研究变得越来越重要,这是因为当企业无法在规定时间内完成产品的生产并提供给用户的时候,企业的用户数量与经济效益会急剧下降。合约的违反、现有客户的流失以及被损毁的名誉都将给企业的未来发展带来不可估量的伤害与打击。因此,在现代企业生产方式、市场经济以及用户习惯等因素的共同作用下,制定合理的调度方案,解决阻塞流水线调度的拖期最小化问题,是一项迫切且具有挑战性的重要工作。
[0005] 近几十年来,很多专家对阻塞流水线调度问题的求解算法进行了大量研究。这些算法大概可以分为两大类:启发式算法和智能优化算法。启发式算法又称为构造式算法,是基于某种特定规则构造问题的一个优良解,其优点是速度快且稳定,对于简单问题可以在短时间内得到较好的效果。常见算法有EDD(最早交货时间法)、FPD(加工时间与交货时间平衡法)、NEH等。智能优化算法一般以启发式算法得到的解作为初始解,在算法的关键参数的控制下通过邻域函数产生若干邻域解,按接受准则(确定性、概率性或混沌方式)更新当前状态,而后依据关键参数修改准则调整关键参数。如此重复上述搜索步骤直到满足算法的收敛准则,最终得到问题的优化结果。它具有适用范围广,解的质量高等优点。常见算法有禁忌搜索算法、遗传算法、GRASP、贪婪迭代算法等。目前,大多数算法局限于研究传统阻塞流水线调度问题,而将其扩展到分布式环境下进行分析的寥寥无几。可以预计,随着分布式生产的普及,分布式阻塞型流水线调度将是未来生产制造领域一个极具吸引力的研究方向。
[0006] 但是传统阻塞流水线调度具有约束性、动态性、大规模性等复杂特征,加上分布式环境下不仅需要考虑工件的排序,还需要对工厂的分配进行优化,这使得问题的难度急剧增加。现有的调度算法由于自身的缺陷很难在实际中得到广泛的应用。例如启发式算法优化能力有限、禁忌搜索算法收敛速度慢、贪婪迭代算法易陷入局部极小等,另外大部分算法还具有时间复杂度高、空间复杂度大,鲁棒性差等问题。

发明内容

[0007] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0008] 为此,本发明的一个目的在于提出一种分布式阻塞型流水线调度的混合群智能优化方法,该方法通过自适应搜索与局部搜索结合,使种群中的个体可以自我调整搜索范围,平衡了算法的粗搜索与细搜索能力。
[0009] 为达到上述目的,本发明实施例提出了一种分布式阻塞型流水线调度的混合群智能优化方法,包括:
[0010] S1,获取多个工厂和多个工件,对所述多个工厂和所述多个工件进行协同初始化操作生成多个第一工厂工件加工序列;
[0011] S2,计算每一个第一工厂工件加工序列的自适应参数,并根据所述自适应参数对所述多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列;
[0012] S3,通过工厂内局部搜索和工厂间局部搜索对所述多个第二工厂工件加工序列进行调整生成多个第三工厂工件加工序列;
[0013] S4,在所述多个第三工厂工件加工序列中选择部分第三工厂工件加工序列进行重生成机制,并对所述多个第三工厂工件加工序列进行更新以确定出当前最优工厂工件加工序列;
[0014] S5,返回步骤S2进行迭代,通过对步骤S2-S4进行迭代来更新所述当前最优工厂工件加工序列,直至满足预设迭代终止条件输出最优工厂工件加工序列。
[0015] 本发明实施例的一种分布式阻塞型流水线调度的混合群智能优化方法,根据分布式特性,设计了合理的工厂分配准则,提高了初始个体的质量,为种群进化提供了一个好的起点;自适应参数能根据个体在种群中的位置,调整其搜索范围和前进步长,增强种群的进化质量与收敛速度;针对种群中的不同个体,采用不同的局部搜索策略(工厂间和工厂内),节约了计算量,避免了无效搜索;个体重生成机制能够增加种群的多样性,跳出局部极小,增强算法的全局收敛性。
[0016] 另外,根据本发明上述实施例的一种分布式阻塞型流水线调度的混合群智能优化方法还可以具有以下附加的技术特征:
[0017] 进一步地,在本发明的一个实施例中,所述对所述多个工厂和所述多个工件进行协同初始化操作生成多个第一工厂工件加工序列,包括:
[0018] 通过启发式规则排序和随机排序结合的方式进行初始化生成工件优先级序列;
[0019] 根据工厂分配策略将所述工件优先级序列中的工件分配至所述多个工厂;
[0020] 通过变邻域搜索调整所述多个工厂的工件加工序列,以得到所述多个第一工厂工件加工序列,所述变邻域搜索包括交换邻域搜索和插入邻域搜索。
[0021] 进一步地,在本发明的一个实施例中,所述随机排序为随机生成一个包含全部工件的不重复序列;
[0022] 所述启发式规则排序为基于减小工件在工厂的机器上加工产生的阻塞和空闲时间和工件交货时间的因素生成工件加工序列。
[0023] 进一步地,在本发明的一个实施例中,所述根据工厂分配策略将所述工件优先级序列中的工件分配至所述多个工厂,包括:
[0024] 将所述工件优先级序列σ的前f个工件分别分配至每个工厂,并放置于每个工厂的工件序列的第一位,f为工厂数目;
[0025] 所述工件优先级序列σ中剩余的每一个工件,按照每一个工件在所述工件优先级序列σ中的先后顺序,按照如下规则进行分配:记录每一个工厂工件序列的最后一个工件从工厂中的第一台机器上离开的时间,选择时间最小的那个工厂,将当前工件分配至该工厂,并放置于该工厂工件序列的最后一个位置。
[0026] 进一步地,在本发明的一个实施例中,所述自适应参数ux的计算公式为:
[0027]
[0028] 其中,ux为工厂工件加工序列x的自适应参数,n为工件总数量,f为工厂数目,TTbest,TTworst,TTx分别为所有工厂工件加工序列中最好的工厂工件加工序列的总拖期、最差工厂工件加工序列的总拖期、工厂工件加工序列x的总拖期,λmin,λmax为设定的最小、最大调整比例,介于0和1之间。
[0029] 进一步地,在本发明的一个实施例中,所述自适应参数越小,则所述自适应参数对应的工厂工件加工序列的调整步长越小,调整范围越小。
[0030] 进一步地,在本发明的一个实施例中,所述根据所述自适应参数对所述多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列,具体步骤为:
[0031] (1)令
[0032] (2)从工厂工件加工序列x的工厂中随机取出共计ux个工件,按照移除顺序置于集合σremove中,ux为工厂工件加工序列x的自适应参数;
[0033] (3)选择σremove中的一个工件job,将工件job插入所有工厂的所有可能节点,选择使得目标函数的增量最小的工厂和节点,将工件job插入该节点,从σremove中移除工件job;
[0034] (4)重复步骤(3)直至集合σremove为空集;
[0035] (5)将所述多个第一工厂工件加工序列调整成所述多个第二工厂工件加工序列。
[0036] 进一步地,在本发明的一个实施例中,所述工厂内局部搜索为变邻域搜索;
[0037] 所述工厂间局部搜索包括:
[0038] (1)令 选择工件拖期之和值最大的工厂作为关键工厂,在所述关键工厂中随机选择nlen个工件,放置于集合U中,其中,nlen为工厂间局部搜索深度;
[0039] (2)从所述关键工厂中移除U中存放的第一个工件,计算所述关键工厂移除后与移除前的工厂拖期变化量δ1;
[0040] (3)将(2)中移除的工件插入其它工厂中,并计算插入后与插入前的工厂拖期变化量δ2;
[0041] (4)若δ1+δ2<0,则将该工件插入该最佳位置,并从集合U中移除该工件;
[0042] (5)重复步骤(2)、(3)、(4)直至集合
[0043] (6)将所述多个第二工厂工件加工序列优化为所述多个第三工厂工件加工序列。
[0044] 进一步地,在本发明的一个实施例中,所述S4,具体包括:
[0045] (1)根据所述多个第三工厂工件加工序列确定出所述多个第三工厂工件加工序列中连续GEN代没有改进的所述部分第三工厂工件加工序列,执行重生成操作,GEN为个体重生成参数,令F={1,2,…,f};
[0046] (2)随机从F中选择两个工厂f1,f2,记工件数量大的工厂为f1,在f1中随机选择一个位置k,交换工厂f1,f2中位置k之后的工件序列,若位置k超出工厂f2的工件总量,则将f1中位置k后的工件按其顺序插入f2中;
[0047] (3)从F中移除工厂f1,f2,重复步骤(2)直到F中的元素小于2;
[0048] (4)确定出所述当前最优工厂工件加工序列。
[0049] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。附图说明
[0050] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0051] 图1为根据本发明一个实施例的一种分布式阻塞型流水线调度的混合群智能优化方法流程图
[0052] 图2为根据本发明一个实施例的一种分布式阻塞型流水线调度的混合群智能优化方法整体流程图;
[0053] 图3为根据本发明一个实施例的工厂工件加工顺序示意图;
[0054] 图4为根据本发明一个实施例的工件排序流程图;
[0055] 图5为根据本发明一个实施例的工厂局部搜索的伪代码示意图;
[0056] 图6为根据本发明一个实施例的个体重生成过程示意图;
[0057] 图7为根据本发明一个实施例的参数设置示意图;
[0058] 图8为根据本发明一个实施例的不同算法在各个测试算例下的RDI结果对比图。

具体实施方式

[0059] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0060] 下面参照附图描述根据本发明实施例提出的一种分布式阻塞型流水线调度的混合群智能优化方法。
[0061] 图1为根据本发明一个实施例的一种分布式阻塞型流水线调度的混合群智能优化方法流程图。
[0062] 如图1所示,该一种分布式阻塞型流水线调度的混合群智能优化方法包括以下步骤:
[0063] 在步骤S1中,获取多个工厂和多个工件,对多个工厂和多个工件进行协同初始化操作生成多个第一工厂工件加工序列。
[0064] 需要说明的是,第一工厂工件加工序列为多个,举例而言,有A、B、C三个工厂,1、2、3、4、5、6六个工件,通过协同初始化操作后,可以确定出多种加工方案,作为一种工厂工件加工序列,比如工厂A负责加工2、3工件,工厂B负责加工1、6工件,工厂C负责加工4、5工件;
作为一种工厂工件加工序列,再如工厂A负责加工1、3工件,工厂B负责加工2、4工件,工厂C负责加工5、6工件。由此,通过协同初始化可以得到多个工厂工件加工序列。
[0065] 如图2所示,本方法是针对分布式阻塞型流水线调度问题的一种混合群智能优化算法,简称HSIA(Hybrid Swarm Intelligence Optimization Algorithm),首先进行协同初始化,分为三部分,在协同初始化确立第一工厂工件加工序列采用编码与解码的方式。
[0066] A、编码与解码
[0067] 编码与解码是HSIA算法对实际问题进行优化的基础。受分布式特点影响,个体的编码方式采用整数向量编码,每个工厂使用一个整数向量来表示该工厂的工件加工顺序。这种编码方式的优点是每个个体包涵了工厂分配与工件排序两个信息,即每个个体本身便是一个合法的调度解。在解码时只需从每个工厂的第一个工件开始,逐一计算每个工件在机器上的完工时间,根据交货时间信息,便可以得到该个体的目标函数值(总拖期)。以10个工件,5台机器,3个工厂的情况为例,图3中的π1={2,3,5}表示工厂1的工件加工顺序为2→
3→5,π2={6,8,1}表示工厂2的工件加工顺序为6→8→1,π3={9,4,7,10}表示工厂3的工件加工顺序为9→4→7→10,该个体目标函数值(总拖期)为10个工件的拖期之和。
[0068] B、种群初始化
[0069] 在本发明的一个实施例中,对多个工厂和多个工件进行协同初始化操作生成多个第一工厂工件加工序列,包括:
[0070] 通过启发式规则排序和随机排序结合的方式进行初始化生成工件优先级序列;
[0071] 根据工厂分配策略将工件优先级序列中的工件分配至多个工厂;
[0072] 通过变邻域搜索调整多个工厂的工件加工序列,以得到多个第一工厂工件加工序列,变邻域搜索包括交换邻域搜索和插入邻域搜索。
[0073] 进一步地,随机排序为随机生成一个包含全部工件的不重复序列;启发式规则排序为基于减小工件在工厂的机器上加工产生的阻塞和空闲时间和工件交货时间的因素生成工件加工序列。
[0074] 进一步地,根据工厂分配策略将工件优先级序列中的工件分配至多个工厂,包括:
[0075] 将工件优先级序列σ的前f个工件分别分配至每个工厂,并放置于每个工厂的工件序列的第一位,f为工厂数目;
[0076] 工件优先级序列σ中剩余的每一个工件,按照每一个工件在工件优先级序列σ中的先后顺序,按照如下规则进行分配:记录每一个工厂工件序列的最后一个工件从工厂中的第一台机器上离开的时间,选择时间最小的那个工厂,将当前工件分配至该工厂,并放置于该工厂工件序列的最后一个位置。
[0077] 具体地,在种群初始化中,要得到一个初始个体需要经历三个步骤,一是工件排序,二是工厂分配,最后进行工厂内调整。
[0078] 1)工件排序策略
[0079] 为了在保证初始种群多样性和优良性,采用启发式规则排序和随机排序结合的方式进行初始化。随机排序即随机产生一个数量为总工件数n的不重复序列。启发式规则采用FPD(Fitting Processing times and Due dates)规则,该规则一方面考虑减小工件在机器上加工产生的阻塞和空闲时间,另一方面考虑优先加工那些交货时间比较紧的工件,通过平衡这两个指标,得到比较优良的工件优先级序列。具体步骤如图4所示,其中i表示机器序号,j表示工件序号,dj表示工件j的交货时间,pj,i表示工件j在机器i上的加工时间,参数ρ对两个指标进行平衡,根据相关文章的参数推荐,可以选择ρ=0.3。
[0080] 2)工厂分配策略
[0081] 由于分布式阻塞流水车间调度问题具有多条生产线,因此需要将第一步中产生的工件优先级序列σ合理地分配到每条生产线(工厂)中,从而最大程度地利用生产资源,提高生产效率。在进行工厂分配时,首先将σ的前f个工件(f为工厂数量)分别分配至每个工厂,并放置于该工厂的工件序列第一位。对于σ中剩余的每一个工件,按照其在σ中的先后顺序,将其按照如下规则进行分配:记录当前每一个工厂工件序列的最后一个工件从第一台机器上离开的时间,选择时间最小的那个工厂,将当前工件分配至该工厂,并放置于该工厂工件序列的最后一个位置。上述工厂分配策略可以极大地提高未分配工件的开工时间,从而尽早完成工件的加工,减小拖期。
[0082] 3)工厂内调整
[0083] 为了给算法提供一个好的搜索起点,利用变邻域搜索挖掘工厂内部工件序列的改进潜力,其中用到的两种邻域定义如下,执行过程中随机选择两种邻域的顺序。
[0084] a)交换邻域:对于某工厂的工件序列σ,选择一个位置k,交换工件σ(k)与σ所有其他位置的工件。选择该邻域中最好的个体,如果它优于当前个体,则用它替换当前个体。该步骤循环进行直到工厂内所有的工件均进行过测试。为了避免重复搜索相同的邻域,每次循环中随机选择工件位置。
[0085] b)插入邻域:对于某工厂的工件序列σ,选择一个位置k,移除该位置的工件σ(k),并将其插入σ的所有其他位置。选择该邻域中最好的个体,如果它优于当前个体,则用它替换当前个体。该步骤循环进行直到工厂内所有的工件均进行过测试。和交换邻域中相同,为了避免重复搜索相同的邻域,每次循环中随机选择工件位置。
[0086] 在步骤S2中,计算每一个第一工厂工件加工序列的自适应参数,并根据自适应参数对多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列。
[0087] 在对种群协同初始化后,进行种群中个体的自适应搜索。
[0088] 可以理解的是,计算自适应参数的对象为个体,在本实施例中,个体指的是每个工厂及对应的工件加工序列的集合,个体中包含多个工厂及对应的工件加工序列。
[0089] 进一步地,自适应参数ux的计算公式为:
[0090]
[0091] 其中,ux为工厂工件加工序列x的自适应参数,n为工件总数量,f为工厂数目,TTbest,TTworst,TTx分别为所有工厂工件加工序列中最好的工厂工件加工序列的总拖期、最差工厂工件加工序列的总拖期、工厂工件加工序列x的总拖期,λmin,λmax为设定的最小、最大调整比例,介于0和1之间。
[0092] 进一步地,根据自适应参数对多个第一工厂工件加工序列进行调整生成多个第二工厂工件加工序列,具体步骤为:
[0093] (1)令
[0094] (2)从工厂工件加工序列x的工厂中随机取出共计ux个工件,按照移除顺序置于集合σremove中;
[0095] (3)选择σremove中的一个工件job,将工件job插入所有工厂的所有可能节点,选择使得目标函数的增量最小的工厂和节点,将工件job插入该节点,从σremove中移除工件job;
[0096] (4)重复步骤(3)直至集合σremove为空集;
[0097] (5)将多个第一工厂工件加工序列调整成多个第二工厂工件加工序列。
[0098] 可以理解的是,在步骤(2)中,工厂工件加工序列x为多个第一工厂工件加工序列中的工厂工件加工序列。
[0099] 进一步地,自适应参数越小,则自适应参数对应的工厂工件加工序列的调整步长越小,调整范围越小。
[0100] 需要说明的是,通过协同初始化生成的第一工厂工件加工序列为多个,在计算自适应参数时,对每个第一工厂工件加工序列计算自适应参数,即对个体进行计算自适应参数,个体包含多个工厂及多个工厂的工件加工序列。
[0101] 具体地,自适应搜索环节主要是根据个体在种群中的位置计算自身的自适应参数u,并根据参数智能地调整它的前进步长,向解空间中的优势区域聚集。该环节的核心思路是,对于种群中的优势个体,由于其有更高概率更接近全局(局部)最优,因此需要减小它的前进步长,以避免调整范围过大从而错过最优解;对于种群中的劣势个体,由于其距离最优解较远,因此需要增大它的调整范围,从而实现迅速向优良个体靠拢,提高种群进化速度的目的。自适应搜索环节步骤如下:
[0102] 首先,对于种群中的个体x,计算该个体的自适应参数ux:
[0103]
[0104] 其中,n为总工件数量,f为工厂数目,TTbest,TTworst,TTx分别为种群中最好个体的总拖期、最差个体的总拖期,以及个体x的总拖期,λmin,λmax为设定的最小、最大调整比例,介于0和1之间。当个体x为种群中比较好的个体时,ux较小,此时该个体的调整步长也较小,搜索比较细腻;当个体x为较差个体时,ux比较大,相应的搜索范围也比较广。
[0105] 得到自适应参数ux后,个体x根据以下方式调整其位置,向优势区域靠拢:
[0106] (1)令
[0107] (2)从个体x的工厂中随机取出共计ux个工件,按照移除顺序将其置于集合σremove中;
[0108] (3)选择σremove中的一个工件job,将其插入所有工厂的所有可能节点,选择使得目标函数的增量最小的工厂和节点,将工件job插入该节点。从σremove中移除工件job;
[0109] (4)重复步骤(3)直至集合σremove为空集;
[0110] (5)将第一工厂工件加工序列调整成第二工厂工件加工序列。
[0111] 在步骤S3中,通过工厂内局部搜索和工厂间局部搜索对多个第二工厂工件加工序列进行调整生成多个第三工厂工件加工序列。
[0112] 进一步地,工厂内局部搜索为变邻域搜索;
[0113] 工厂间局部搜索包括:
[0114] (1)令 选择工件拖期之和值最大的工厂作为关键工厂,在关键工厂中随机选择nlen个工件,放置于集合U中,其中,nlen为工厂间局部搜索深度;
[0115] (2)从关键工厂中移除U中存放的第一个工件,计算关键工厂移除后与移除前的工厂拖期变化量δ1;
[0116] (3)将(2)中移除的工件插入其它工厂中,并计算插入后与插入前的工厂拖期变化量δ2;
[0117] (4)若δ1+δ2<0,则将该工件插入该最佳位置,并从集合U中移除该工件;
[0118] (5)重复步骤(2)、(3)、(4)直至集合
[0119] (6)将多个第二工厂工件加工序列优化为多个第三工厂工件加工序列。
[0120] 具体地,个体的自适应搜索环节将个体引导至其搜索范围内的一个新位置,为了充分挖掘该位置的潜力,需要对个体进行局部增强搜索以平衡算法的粗搜索与细搜索能力,提升种群的质量。
[0121] 受问题的分布式特点影响,局部搜索环节分为工厂内局部搜索与工厂间局部搜索,工厂内局部搜索与初始化环节的第三步(工厂内调整)相同,工厂间局部搜索的步骤如下:
[0122] 1)令 选择工件拖期之和最大的工厂作为关键工厂,在关键工厂中随机选择nlen个工件,放置于集合U中;
[0123] 2)从关键工厂中移除U中存放的第一个工件,计算移除后与移除前的工厂拖期变化量δ1;
[0124] 3)将2中移除的工件插入其他工厂中,并计算插入后与插入前的工厂拖期变化量δ2;
[0125] 4)若δ1+δ2<0,则说明找到了一个更好的邻域解。将该工件插入该最佳位置,并从集合U中移除该工件;
[0126] 5)重复步骤2、3、4直到集合
[0127] 6)如果新解更好,则以新解替换当前解,搜索结束。否则转步骤1。
[0128] 通过上述步骤将多个第二工厂工件加工序列进行了优化得到多个第三工厂工件加工序列。
[0129] 工厂间局部搜索与工厂内局部搜索分别从两个不同的方向对个体进行改进,前者更多地强调工件分配的重要性,它可以将被选择的工件调整至最佳工厂;后者更注重于在已有工件分配的基础上,挖掘工件排序的潜力,将每个工厂内部的工件序列调整到最好。但种群中有着多种多样的个体,有些个体的内部排序已经非常完善,需要的是为一些工件选择更好的工厂,因此进行太多的工厂内搜素的效果并不好,还会浪费宝贵的计算量。基于这种情况,对种群中的重生成个体,进行工厂内局部搜索,对于其他个体进行工厂间搜索,从而提高局部搜索环节的性能,避免无效搜索。局部搜索环节的伪代码如图5所示。
[0130] 在步骤S4中,在多个第三工厂工件加工序列中选择部分第三工厂工件加工序列进行重生成机制,并对多个第三工厂工件加工序列进行更新以确定出当前最优工厂工件加工序列。
[0131] 进一步地,步骤S4,具体包括:
[0132] (1)根据多个第三工厂工件加工序列确定出多个第三工厂工件加工序列中连续GEN代没有改进的部分第三工厂工件加工序列,执行重生成操作,GEN为个体重生成参数,令F={1,2,…,f};
[0133] (2)随机从F中选择两个工厂f1,f2,记工件数量大的工厂为f1,在f1中随机选择一个位置k,交换工厂f1,f2中位置k之后的工件序列,若位置k超出工厂f2的工件总量,则将f1中位置k后的工件按其顺序插入f2中;
[0134] (3)从F中移除工厂f1,f2,重复步骤(2)直到F中的元素小于2;
[0135] (4)确定出当前最优工厂工件加工序列。
[0136] 可以理解的是,在对工厂工件加工序列进行不断优化的过程中,部分工厂工件加工序列会停止优化,因此选择部分停止优化的工厂工件加工序列进行重生成,在重生成操作后的多个第三工厂工件加工序列中得到当前最优工厂工件加工序列。
[0137] 需要说明的是,这一步骤最终得到的工厂工件加工序列为当前最优的工厂工件加工序列,可以通过多次迭代确定出最优工厂工件加工序列。
[0138] 具体地,随着种群的不断进化,种群中的个体会出现陷入局部最优的情况,在这种情况下,由于它自身已是邻域中的最好个体,因此无法通过邻域搜索操作进一步改进,从而停止进化,浪费不必要的计算量。为了增强种群的全局寻优能力,避免早熟收敛,加入个体的重生成机制,对停止进化的个体进行重生成,使其跳出局部极小。重生成机制的步骤如下:
[0139] 1)选择种群中连续GEN代没有改进的个体x,对其执行重生成操作,令F={1,2,…,f};
[0140] 2)随机从F中选择两个工厂f1,f2,记工件数量较大的工厂为f1,在f1中随机选择一个位置k,交换工厂f1,f2中位置k之后的工件序列。若位置k超出工厂f2的工件总量,则将f1中位置k后的工件按其顺序插入f2中;
[0141] 3)从F中移除工厂f1,f2,重复步骤2直到F中的元素小于2;
[0142] 4)令个体x的重生成标记变量flag=1;
[0143] 以10个工件,3个工厂的算例为例,图6描述了种群中某个个体的重生成过程。
[0144] 步骤S5,返回步骤S2进行迭代,通过对步骤S2-S4进行迭代来更新当前最优工厂工件加工序列,直至满足预设迭代终止条件输出最优工厂工件加工序列。
[0145] 具体地,通过上述步骤S1-S4,生成当前最优的工厂工件加工序列,进一步地通过多轮迭代更新,直至生成的满足预设迭代终止条件的最优工厂工件加工序列。
[0146] 可以理解的是,将步骤S4进行重生成机制后的多个第三工厂工件加工序列作为步骤S1中生成的第一工厂工件加工序列输入步骤S2的自适应搜索操作,迭代步骤S2-S4,在满足预设迭代终止条件后输出最优工厂工件加工序列。
[0147] 需要说明的是,预设迭代终止条件可以根据实际情况进行设置,比如可以为迭代n轮后停止迭代,还可以为到达设定时间后停止迭代。
[0148] 如图2所示,在完成协同初始化、个体自适应搜索、局部增强搜索和非优个体生成后得到最优工厂工件加工序列,判断最优工厂工件加工序列是否满足迭代终止条件,若满足则终止迭代,输出该结果。若不满足,则返回个体自适应搜索步骤,重新进行优化更新得到最优工厂工件加工序列。
[0149] 本发明的方法通过自适应搜索与局部搜索两个环节的结合,使得种群中的个体具有自我调整搜索范围的特点,从而较好的平衡了算法的粗搜索与细搜索能力。另外,涉及的算法的个体重生成机制很好的避免了搜索陷入局部极小,极大地提高了算法的收敛性与鲁棒性。
[0150] 在完成上述算法后,通过测试算例来测试该算法的性能,为了检验HSIA在分布式阻塞型流水线调度问题中的性能,采用了分布式环境下的12组测试算例。其中工件数量n={20,50,100,200,500},机器数量m={5,10,20}。工件在机器上的加工时间均匀分布于[1,99]之间。每组算例产生10个例子,因此每一个工厂包含120个测试算例。工厂数目f={2,3,
4,5,6,7},因此共计720个测试算例。工件交货时间的产生采用Hasija和Rajendran提出的产生方法,即:
[0151]
[0152] 其中,dj为工件j的交货时间,u为在[0,1]之间均匀分布的随机变量,pj,i为工件j在机器i上的加工时间,ε为拖期因子,ε越大,工件j交货时间越大,反之则越小,取ε=0.5。
[0153] 在评估算法的性能时,利用相对偏差指数(Relative Deviation Index,RDI)来衡量运行结果的好坏,其定义如下:
[0154]
[0155] 其中,Methodh,s为算法h针对算例s得到的拖期值,Bests为所有对比算法针对算例s得到的结果中最好的结果,Worsts为所有对比算法针对算例s得到的结果中最差的结果。RDI指数越高,说明算法效果越差,距离最优解越远;反之则距离最优解近,效果好。
[0156] 在本发明的实施例中,HSIA算法有五个参数需要确定:种群规模PSize、最小调整比例λmin、最大调整比例λmax、工厂间局部搜索深度nlen以及个体重生成参数GEN。为了平衡算法的效果与计算量,选定的参数如图7所示。
[0157] 进一步地,HSIA采用C语言编程,仿真环境为Intel(R)core(TM)2Quad CPU Q9550@2.83GHz/4GB RAM,操作系统为windows 7 64位。算法终止准则统一设定为最大运行时间(10·m·n毫秒,其中m为测试集算例中的机器数量,n为测试集算例中的工件数量)。
[0158] 现有的文献资料表明贪婪迭代算法(Iterated Greedy,IG)是求解分布式阻塞型流水线调度问题的一种有效算法,为验证HSIA的有效性,分别测试了所有算例下HSIA与IG的结果,并分析比较了它们的性能。运行中,两种算法均在各算例上独立运行5次。如图8所示,列出了两种算法在各个测试算例下的RDI结果。通过仿真实验可以看出,HSIA在各个规模上的结果均优于IG算法,并且随着工件数量的增加,HSIA优于IG的程度也在不断提高,可见HSIA是求解分布式阻塞型流水线调度问题的有效方法,有着非常好的收敛性和鲁棒性。
[0159] 根据本发明实施例提出的一种分布式阻塞型流水线调度的混合群智能优化方法,根据分布式特性,设计了合理的工厂分配准则,提高了初始个体的质量,为种群进化提供了一个好的起点;自适应参数能根据个体在种群中的位置,调整其搜索范围和前进步长,增强种群的进化质量与收敛速度;针对种群中的不同个体,采用不同的局部搜索策略(工厂间和工厂内),节约了计算量,避免了无效搜索;个体重生成机制能够增加种群的多样性,跳出局部极小,增强算法的全局收敛性。
[0160] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0161] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0162] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈