CN117215275B - 一种基于遗传编程的柔性车间大规模动态双效调度方法 - Google Patents
一种基于遗传编程的柔性车间大规模动态双效调度方法 Download PDFInfo
- Publication number
- CN117215275B CN117215275B CN202311477049.1A CN202311477049A CN117215275B CN 117215275 B CN117215275 B CN 117215275B CN 202311477049 A CN202311477049 A CN 202311477049A CN 117215275 B CN117215275 B CN 117215275B
- Authority
- CN
- China
- Prior art keywords
- individuals
- individual
- chromosome
- population
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000002068 genetic effect Effects 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 31
- 238000005265 energy consumption Methods 0.000 claims abstract description 28
- 210000000349 chromosome Anatomy 0.000 claims description 91
- 230000035772 mutation Effects 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000005094 computer simulation Methods 0.000 claims description 14
- 238000004422 calculation algorithm Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000002372 labelling Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 11
- 238000004519 manufacturing process Methods 0.000 abstract description 4
- 230000008859 change Effects 0.000 abstract description 3
- 230000008878 coupling Effects 0.000 abstract description 3
- 238000010168 coupling process Methods 0.000 abstract description 3
- 238000005859 coupling reaction Methods 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- General Factory Administration (AREA)
Abstract
本发明涉及生产调度技术领域,具体涉及一种基于遗传编程的柔性车间大规模动态双效调度方法。本发明在遗传编程实现过程中,除了工序的加工时间、缓冲区等待时间等与工件、机器和AGV相关的特征,终端集还加入了加工时间与转运时间的占比、加工能耗与转运能耗的占比的特征,能够将车间环境特征更全面地应用到调度规则设计中,从而自动地设计更契合和精准的调度规则。在加工过程和搬运过程的强耦合的情况下,将路由规则、机器调度规则和AGV任务分配规则同时进化得到双效调度规则,克服了收敛速度慢,难以快速相应变化,调度规则不适配的缺点,能快速产生更高效、节能的排产方案。
Description
技术领域
本发明涉及生产调度技术领域,具体涉及一种基于遗传编程的柔性车间大规模动态双效调度方法。
背景技术
随着技术的发展,车间中的加工机器人已经突破的资源的刚性约束,具备了加工更多种类工序的能力。柔性车间调度问题可以分为两个子问题,路由问题和调度问题:路由子问题指安排每个工序到给定的加工机器上;而调度子问题指给分配到所有加工机器上的工序进行排序以获得一个具有满意目标函数的可行调度。
自动导引小车已经广泛应用于物流运输领域,为了节省人力成本,提高转运效率,自动导引小车也同样将在制造车间中广泛应用。通常,由于加工环节和搬运环节相互关联耦合,自动导引小车的搬运时间一般无法忽略且搬运方案对车间生产率影响很大,柔性车间的双效调度问题由此产生。
车间环境可分为静态环境和动态环境。在静态车间环境下,车间中待调度的资源都是已知并且不变的,包括工件和加工机器的数量等,仅在车间初始状态时生成一个调度方案。而动态环境中需要根据变化的车间环境实时生成新的调度方案,比如工件随时到来等。动态车间环境更符合实际生产情况,也带来了更大的挑战。不断变化的环境对算法的快速性提出了更高的要求。
鉴于上述需求,响应速度快的启发式调度规则,能够实时针对环境变化生成新的调度方案,更适用于动态调度。而且调度规则简单易行,其在现实中车间调度中应用广泛。并且,由于在复杂的车间环境中调度规则很难直接手动设计,因此迫切需要一种实用的自动规则设计方法来为更具有一般性的动态作业车间调度问题设计有效规则。
发明内容
有鉴于此,本发明提供了一种基于遗传编程的柔性车间大规模动态双效调度方法,能够解决现有技术未考虑针对加工机器人和自动导引小车联合动态车间调度的自动规则设计的技术问题,针对动态调度中需要对车间环境变化进行快速响应的需求,如新订单随机到来等,设计了能够快速构造调度方案的启发式调度规则,并且所设计的规则简单易行,能够实现在实际车间调度中广泛应用。针对调度规则与加工机器人和自动导引小车的数量比例、平均加工时间和平均搬运时间的比例等因素均有关系,而且受到不同的车间环境、不同的优化目标等的影响,复杂的车间环境中调度规则很难直接手动设计,往往需要制定相应的调度规则。因此,采用了基于遗传编程算法的调度规则的自动化设计,对不同的柔性车间进行规则自动化定制。
为了解决上述技术问题,本发明是这样实现的:
一种基于遗传编程的柔性车间大规模动态双效调度方法,该方法的步骤包括:
步骤S1:获取训练算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化,构建使得订单完工时间最短和能耗最小的多目标函数;
步骤S2:设置遗传编程算法参数,构建规则树形式的个体并初始化染色体种群;设置当前迭代次数num为0;
步骤S3:根据步骤S1构建的多目标函数,通过动态仿真评估染色体种群中个体的适应度值;
步骤S4:采用非支配等级和拥挤度排序方法从染色体种群中选择父代个体,父代个体组成的群体记为优选父代种群,将优选父代种群中非支配等级最高的个体放入存档集合;对所述优选父代种群进行交叉、变异操作,得到当前染色体种群;
步骤S5:判断所述当前迭代次数num是否达到设定值NUM;若是,则结束本次运行,进入步骤S6;若否,当前迭代次数num置为num加1,将所述当前染色体种群作为染色体种群,进入步骤S3;
步骤S6:获取测试算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;
步骤S7:采用存档集合中的个体所代表的调度规则分别进行动态仿真,并分别得到对应的调度方案及其适应度值;
步骤S8:比较得到的调度方案的适应度值,获得非支配个体集合;
步骤S9:根据需求偏好选择合适的调度方案并执行,完成双效调度;
优选地,所述步骤S1中,加工机器人信息包括:加工机器人数量、加工机器人工艺加工能力、加工机器人定点位置;自动导引小车信息包括:自动导引小车数量、自动导引小车运行速度、自动导引小车初始位置;待加工工件信息包括:待加工工件的数量、待加工工件的工序数量、每道工序的可用加工机器人及其加工时长;
优选地,所述步骤S1中,构建的多目标函数为:
其中,为车间订单完工时间,/>为车间总能耗;
优选地,所述步骤S2,遗传编程算法参数包括染色体种群规模、交叉概率、变异概率、迭代次数、规则树的深度;
优选地,所述步骤S2,构建规则树形式的个体,每个个体代表一个调度规则,所述规则树为一个用终端集和功能集构成的优先级函数,其中,所述终端集反映车间状态的特征作为规则树的叶节点,终端集反映车间状态的特征包括剩余工序数、工序的加工时间、工件等待AGV到达的时间,所述功能集作为函数符号,包括{+,−,×,=,max,min,if},所述函数符号将所述车间特征关联起来,作为规则树的内部节点,以生成一个规则树;
优选地,所述步骤S2,染色体种群包括个染色体,每个染色体为一个规则树,所述染色体种群的生成方法为full法和grow法,所述两种生成方法分别生成一半数量的染色体种群,所述full法中,会构造出一棵完全树,叶子节点均在最大深度层,所述叶子节点从终端集中随机选择,其余节点均从终端集中选择;所述grow法不要求构造出一棵完全树,所有节点均能够从终端集和功能集中随机选取,并通过概率来选择终端符号作为叶节点和函数符号作为内部节点来递归地构建规则树,从而产生具有不同深度和结构的个体;
优选地,所述步骤S3,通过动态仿真评估染色体种群中个体的适应度值的方法包括:
步骤S31:对个体所代表的规则树进行解码,得到用于工序加工顺序的优先级函数,所述解码过程为分层解码,规则树中每层的表达式为同一级别,从规则树的最下层的叶子节点开始解码,将与本叶子节点直接相连的功能集作为运算符,并将此运算符所连接的下一层所有叶子节点由本运算符构成运算表达式,并将所述运算表达式看作一个新的叶子节点进行上述同样的计算,直到将整棵规则树解码为一个表达式,即优先级函数;
步骤S32:根据上述得到的优先级函数,将车间中与各个工序相关的对应数值带入优先级函数中计算,分别得到各个工序的优先级;
步骤S33:根据得到的优先级,为各个工序依次分配最符合目标函数的加工机器人和自动导引小车,从而得到所有订单的调度方案,并计算调度方案的订单完工时间和能耗这两个目标的适应度值;
优选地,所述步骤S4,采用非支配等级和拥挤度从染色体种群中选择父代个体的方法步骤包括:
步骤S41:若当代染色体集合为第一代染色体,则直接将第一代染色体种群作为优选父代种群,跳过下述步骤,否则,将当代染色体Pt及上一代染色体构成染色体集合Qt;
步骤S42:根据上述染色体集合Qt中个体的订单完工时间和能耗这两个目标的适应度值,得到每个个体的帕累托支配个体集P以及支配自己的个体集S,所述的帕累托支配个体是指在最小化问题中,个体A的某目标适应度值小于等于个体B的对应目标适应度值,且个体A的另一目标适应度值小于个体B的对应目标适应度值,则个体A支配个体B,个体B即为个体A的帕累托支配个体;
步骤S43:设定非支配等级为rank,设置rank初值为0;
步骤S44:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合,所述非支配个体集合中的个体的非支配等级rank均被置为rank加1;
步骤S45:删除上述的非支配等级rank的值最小的个体,并根据所述个体的P集合,更新P集合中个体的S集合,即删除S集合中的所述非支配等级rank的值最小的个体;判断染色体集合中是否还存在未标记等级的个体,若有,转到步骤S44,否则非支配等级标记完毕,将非支配等级最高的个体存入存档集合,即非支配等级rank的值最小的个体存入存档集合,转到步骤S46;
步骤S46:将非支配等级rank的值最小的前n个等级中所包含的个体放入优选父代种群中,保证前n-1个等级中的个体不足规定的种群数量,前n个等级中的个体超过了规定的种群数量,对第n个等级中的个体进行拥挤度排序,所述的拥挤度排序是指根据所述两个目标的适应度值,将第n个等级的所有个体放入两个目标函数值构成的二维坐标系平面中,找到每个个体在二维坐标系平面中的左右两个与其相距最近的个体,所述的两个与其相距最近的个体称为本个体的邻居,并计算这两个邻居的曼哈顿距离记为本个体的拥挤度,其中,若缺少邻居则将本个体的拥挤度设置为无穷大,根据拥挤度从大到小,将个体进行排序,得到拥挤度排序;根据拥挤度排序序列删除最后的m个个体,使得删除操作后的前n个等级的个体总数为规定的种群数量;
优选地,所述步骤S4,对所述优选父代种群进行交叉操作的方法为:选择两个未被选择过的个体,根据交叉概率决定是否执行交叉操作,若执行交叉操作,则随机选中个体中规则树的一个结点,将以此结点为根节点的子树进行交换,得到两个新的个体,重复上述步骤,直到所有个体都被执行交叉操作;
优选地,所述步骤S4,对所述优选父代种群进行变异操作的方法为:对所述经过交叉操作后的优选父代种群进行变异操作:个体根据变异概率决定是否执行变异操作,若执行变异操作,则随机选中个体中规则树的一个结点,并随机选择其他个体的一个结点为根节点的子树来替换所述个体的子树,从而得到一个新的个体,对染色体种群中所有个体均执行上述操作,得到当代染色体种群;
优选地,所述步骤S8,获得非支配个体集合的方法为:
步骤S81:根据步骤S7中的存档集合中个体的调度方案及其适应度值,计算每个的帕累托支配个体集P以及支配自己的个体集S;
步骤S82:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合;
优选地,所述步骤S9,包括:
根据需求偏好选择合适的调度方案,所述需求偏好指对订单完工时间和能量消耗这两个目标的权衡,选择需要的调度方案并执行。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如上所述的基于遗传编程的柔性车间大规模动态双效调度方法。
有益效果
本发明公开了一种基于遗传编程的柔性车间大规模动态双效调度方法,能够解决调度规则的自动化设计和动态调度中的针对环境变化实时生成新的调度方案的问题。本发明在遗传编程实现过程中,除了工序的加工时间、缓冲区等待时间等与工件、机器和AGV相关的特征,终端集还加入了加工时间与转运时间的占比、加工能耗与转运能耗的占比的特征,能够将车间环境特征更全面地应用到调度规则设计中,从而生成更契合和精准的调度规则。在加工过程和搬运过程的强耦合的情况下,将路由规则、机器调度规则和AGV任务分配规则同时进化得到双效调度规则,克服了收敛速度慢,难以快速相应变化,调度规则不适配的缺点,能快速产生更高效、节能的排产方案。
附图说明
图1示出了本公开的基于遗传编程的柔性车间大规模动态双效调度方法的流程图;
图2示出了本公开的基于遗传编程的柔性车间大规模动态双效调度方法的车间示意图;
图3示出了本公开的规则树示意图;
图4示出了本公开的动态仿真评估过程示意图;
图5示出了本公开的基于非支配等级和拥挤度选择优选父代示意图;
图6示出了本公开的两个目标函数值构成的二维坐标系平面示意图;
图7示出了本公开的染色体交叉操作图;
图8示出了本公开的染色体变异操作图。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
如图1所示,本发明一种基于遗传编程的柔性车间大规模动态双效调度方法,包括以下步骤:
步骤S1:如图2所示,获取训练算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化,如图3所示;构建使得订单完工时间最短和能耗最小的多目标函数;
步骤S2:设置遗传编程算法参数,构建规则树形式的个体并初始化染色体种群;设置当前迭代次数num为0;
步骤S3:如图4所示,根据步骤S1构建的多目标函数,通过动态仿真评估个体的适应度值;
步骤S4:如图5所示,采用非支配等级和拥挤度排序方法从染色体种群中选择父代个体,父代个体组成的群体记为优选父代种群,将优选父代种群中非支配等级最高的个体放入存档集合;如图7、图8所示,对所述优选父代种群进行交叉、变异操作,得到当前染色体种群;
步骤S5:判断所述当前迭代次数num是否达到设定值NUM;若是,则结束本次运行,进入步骤S6;若否,当前迭代次数num置为num加1,将所述当前染色体种群作为染色体种群,进入步骤S3;
步骤S6:获取测试算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;
步骤S7:采用存档集合中的个体所代表的调度规则分别进行动态仿真评估,并分别得到对应的调度方案及其适应度值。
步骤S8:比较得到的调度方案的适应度值,并获得非支配个体集合;
步骤S9:根据需求偏好选择合适的调度方案并执行;
所述步骤S1中,加工机器人信息包括:加工机器人数量、加工机器人工艺加工能力、加工机器人定点位置;自动导引小车信息包括:自动导引小车数量、自动导引小车运行速度、自动导引小车初始位置;待加工工件信息包括:待加工工件的数量、待加工工件的工序数量、每道工序的可用加工机器人及其加工时长;
所述步骤S1中,构建的使得订单完工时间最短和能耗最小的多目标函数为:
其中,为车间订单完工时间,/>为车间总能耗;
所述步骤S2,遗传编程算法参数包括染色体种群规模、交叉概率、变异概率、迭代次数、规则树的深度;
所述步骤S2,构建规则树形式的个体,每个个体代表一个调度规则,所述规则树为一个用终端集和功能集构成的优先级函数,其中,所述终端集反映车间状态的特征作为规则树的叶节点,终端集反映车间状态的特征包括剩余工序数、工序的加工时间、工件等待AGV到达的时间,所述功能集作为函数符号,包括{+,−,×,=,max,min,if},所述函数符号将所述车间特征关联起来,作为规则树的内部节点,以生成一个规则树;
所述步骤S2,染色体种群包括个染色体,每个染色体为一个规则树,所述染色体种群的生成方法为full法和grow法,所述两种生成方法分别生成一半数量的染色体种群。所述full法中,会构造出一棵完全树,叶子节点均在最大深度层,所述叶子节点从终端集中随机选择,其余节点均从终端集中选择;所述grow法不要求构造出一棵完全树,所有节点均可从终端集和功能集中随机,并通过概率来选择终端符号作为叶节点和函数符号作为内部节点来递归地构建规则树,从而产生具有不同深度和结构的个体;
所述步骤S3,通过动态仿真评估染色体种群中个体的适应度值的方法包括:
步骤S31:对个体所代表的规则树进行解码,得到用于工序加工顺序的优先级函数,所述解码过程为分层解码,规则树中每层的表达式为同一级别,从规则树的最下层的叶子节点开始解码,将与本叶子节点直接相连的功能集作为运算符,并将此运算符所连接的下一层所有叶子节点由本运算符构成运算表达式,并将所述运算表达式看作一个新的叶子节点进行上述同样的计算,直到将整棵规则树解码为一个表达式,即优先级函数;
步骤S32:根据上述得到的优先级函数,将车间中与各个工序相关的对应数值带入优先级函数中计算,分别得到各个工序的优先级;
步骤S33:根据得到的优先级顺序,为各个工序依次分配最符合目标函数的加工机器人和自动导引小车,从而得到所有订单的调度方案,并计算调度方案的对于订单完工时间和能耗这两个目标的适应度值;
所述步骤S4,采用非支配等级和拥挤度从染色体种群中选择父代个体的方法步骤包括:
步骤S41:若当代染色体集合为第一代染色体,则直接将第一代染色体种群作为优选父代种群,跳过下述步骤,否则,将当代染色体Pt及上一代染色体构成染色体集合Qt;
步骤S42:根据上述染色体集合Qt中个体的订单完工时间和能耗这两个目标的适应度值,得到每个个体的帕累托支配个体集P以及支配自己的个体集S,所述的帕累托支配个体是指在最小化问题中,个体A的某目标适应度值小于等于个体B的对应目标适应度值,且个体A的另一目标适应度值小于个体B的对应目标适应度值,则个体A支配个体B,个体B即为个体A的帕累托支配个体;
步骤S43:设定非支配等级为rank,设置rank初值为0;
步骤S44:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合,所述非支配个体集合中的个体的非支配等级rank均被置为rank加1;
步骤S45:删除上述的非支配等级rank的值最小的个体,并根据所述个体的P集合,更新P集合中个体的S集合,即删除S集合中的所述非支配等级rank的值最小的个体;判断染色体集合中是否还存在未标记等级的个体,若有,转到步骤S44,否则非支配等级标记完毕,将非支配等级最高的个体存入存档集合,即非支配等级rank的值最小的个体存入存档集合,转到步骤S46;
步骤S46:将非支配等级rank的值最小的前n个等级中所包含的个体放入优选父代种群中,保证前n-1个等级中的个体不足规定的种群数量,前n个等级中的个体超过了规定的种群数量,对第n个等级中的个体进行拥挤度排序,如图6所示,所述的拥挤度排序是指根据所述两个目标的适应度值,将第n个等级的所有个体放入两个目标函数值构成的二维坐标系平面中,找到每个个体在二维坐标系平面中的左右两个与其相距最近的个体,所述的两个与其相距最近的个体称为本个体的邻居,并计算这两个邻居的曼哈顿距离记为本个体的拥挤度,其中,若缺少邻居则将本个体的拥挤度设置为无穷大,根据拥挤度从大到小,将个体进行排序,得到拥挤度排序;根据拥挤度排序序列删除最后的m个个体,使得删除操作后的前n个等级的个体总数为规定的种群数量;
所述步骤S4,对所述优选父代种群进行交叉操作的方法为:如图7所示,选择两个未被选择过的个体,根据交叉概率决定是否执行交叉操作,若执行交叉操作,则随机选中个体中规则树的一个结点,将以此结点为根节点的子树进行交换,如图7中虚线部分所示,得到两个新的个体,重复上述步骤,直到所有个体都被执行交叉操作;
所述步骤S4,对所述优选父代种群进行变异操作的方法为:如图8所示,对所述经过交叉操作后的优选父代种群进行变异操作:个体根据变异概率决定是否执行变异操作,若执行变异操作,则随机选中个体中规则树的一个结点,并随机选择其他个体的一个结点为根节点的子树来替换所述个体的子树,如图8中虚线部分所示,从而得到一个新的个体,对染色体种群中所有个体均执行上述操作,得到当代染色体种群;
所述步骤S8,获得非支配个体集合的方法为:
步骤S81:根据步骤S7中的存档集合中个体的调度方案及其适应度值,计算每个的帕累托支配个体集P以及支配自己的个体集S;
步骤S82:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合;
所述步骤S9,包括:
根据需求偏好选择合适的调度方案,所述需求偏好指对订单完工时间和能量消耗这两个目标的权衡,选择需要的调度方案并执行。
实施例
如图2,为了便于说明问题,对车间车间算例进行了简化,具体实施过程如下:
步骤S1:获取训练算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息:加工机器人数量3,具体信息如表1所示,其中工艺加工能力为1的表示具备此种工艺的加工能力,能耗速度为加工机器人在工作过程中每秒钟消耗的能量,自动导引小车数量为2,具体信息如表2所示,其中运行速度的单位为米每秒,能耗速度为每秒钟消耗的能量,工件数量为4,具体信息如表3所示,其中所有订单均于时刻0出现;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;构建使得订单完工时间最短和能耗最小的多目标函数为:
其中,为车间订单完工时间,/>为车间总能耗;
表1 加工机器人信息
表2 自动导引小车信息
表3 工件信息
步骤S2:设置遗传编程算法参数,设置染色体种群规模为30、交叉概率为0.95、变异概率为0.05、迭代次数为50,规则树的深度为3,规则树的形式如图3所示,初始化染色体种群,采用full法和grow法分别随机产生一半的染色体;设置当前迭代次数num为0;
步骤S3:如图4所示,根据步骤S1构建的多目标函数,通过动态仿真评估个体的适应度值;
通过动态仿真评估染色体种群中个体的适应度值的方法包括:
步骤S31:对个体所代表的规则树进行解码,得到用于工序加工顺序的优先级函数,所述解码过程为分层解码,规则树中每层的表达式为同一级别,从规则树的最下层的叶子节点开始解码,将与本叶子节点直接相连的功能集作为运算符,并将此运算符所连接的下一层所有叶子节点由本运算符构成运算表达式,并将所述运算表达式看作一个新的叶子节点进行上述同样的计算,直到将整棵规则树解码为一个表达式,即优先级函数,图3所示的规则树解码的优先级函数即为:(剩余工序数量-工序加工时间)+自动导引小车空载时间;
步骤S32:根据上述得到的优先级函数,将车间中与各个工序相关的对应数值带入优先级函数中计算,分别得到各个工序的优先级;
步骤S33:根据得到的优先级顺序,为各个工序依次分配最符合目标函数的加工机器人和自动导引小车,从而得到所有订单的调度方案,并计算调度方案的对于订单完工时间和能耗这两个目标的适应度值,例如其中初始染色体种群所有个体的两个目标的适应度值如表4所示;
表4初始染色体种群的目标适应度值
步骤S4:如图5所示,采用非支配等级和拥挤度排序方法从染色体种群中选择父代个体,父代个体组成的群体记为优选父代种群,将优选父代种群中非支配等级最高的个体放入存档集合;如图7、图8所示,对所述优选父代种群进行交叉、变异操作,得到当前染色体种群;
所述步骤S4,采用非支配等级和拥挤度排序方法从染色体种群中选择父代个体包括:
步骤S41:若当代染色体集合为第一代染色体,则直接将第一代染色体种群作为优选父代种群,跳过下述步骤,否则,将当代染色体Pt及上一代染色体构成染色体集合Qt,则染色体集合Qt的数量为60;
步骤S42:根据上述染色体集合Qt中个体的订单完工时间和能耗这两个目标的适应度值,得到每个个体的帕累托支配个体集P以及支配自己的个体集S,例如表4中个体1的帕累托支配个体集P包括个体29和个体30,个体1支配自己的个体集S为空;
步骤S43:设定非支配等级为rank,设置rank初值为0;
步骤S44:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合,表4中所示的个体中,没有被支配的个体包括个体1、个体2和个体3,所述非支配个体集合中的个体的非支配等级rank均被置为rank加1;
步骤S45:删除上述的非支配等级rank的值最小的个体,即个体1、个体2和个体3,并根据所述个体的P集合,更新P集合中个体的S集合,即删除S集合中的所述非支配等级rank的值最小的个体;判断染色体集合中是否还存在未标记等级的个体,若有,转到步骤S44,否则非支配等级标记完毕,将非支配等级最高的个体存入存档集合,即非支配等级rank的值最小的个体存入存档集合,例如初始染色体集合中存入存档集合的个体为个体1、个体2和个体3,转到步骤S46;
步骤S46:将非支配等级rank的值最小的前n个等级中所包含的个体放入优选父代种群中,保证前n-1个等级中的个体不足规定的种群数量,前n个等级中的个体超过了规定的种群数量,例如在第二次迭代中,非支配等级中前3个等级的个体数量为28,非支配等级中前4个等级的个体数量为34,则对第4个等级中的个体进行拥挤度排序,如图6所示,根据拥挤度从大到小,将个体进行排序,得到拥挤度排序;根据拥挤度排序序列删除最后的4个个体,使得删除操作后的前n个等级的个体总数为规定的种群数量30;
所述步骤S4,对所述优选父代种群进行交叉操作的方法为:如图7所示,选择两个未被选择过的个体,根据交叉概率决定是否执行交叉操作,若执行交叉操作,则随机选中个体中规则树的一个结点,将以此结点为根节点的子树进行交换,需要交换的子树如图7中虚线部分所示,得到两个新的个体,重复上述步骤,直到所有个体都被执行交叉操作;
所述步骤S4,对所述优选父代种群进行变异操作的方法为:如图8所示,对所述经过交叉操作后的优选父代种群进行变异操作:个体根据变异概率决定是否执行变异操作,若执行变异操作,则随机选中个体中规则树的一个结点,并随机选择其他个体的一个结点为根节点的子树来替换所述个体的子树,需要替换的子树如图8中虚线部分所示,从而得到一个新的个体,对染色体种群中所有个体均执行上述操作,得到当代染色体种群;
步骤S5:判断所述当前迭代次数num是否达到设定值NUM;若是,则结束本次运行,进入步骤S6;若否,当前迭代次数num置为num加1,将所述当前染色体种群作为染色体种群,进入步骤S3;
步骤S6:获取测试算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息:设置加工机器人数量4,具体信息如表5所示,其中工艺加工能力为1的表示具备此种工艺的加工能力,能耗速度为加工机器人在工作过程中每秒钟消耗的能量,自动导引小车数量为3,具体信息如表6所示,其中运行速度的单位为米每秒,能耗速度为每秒钟消耗的能量,工件数量为6,具体信息如表7所示,其中动态订单5和6分别于时间100和200时刻出现,其余订单均于时刻0出现;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;
表5 加工机器人信息
表6 自动导引小车信息
表7 工件信息
步骤S7:采用存档集合中的71个个体所代表的调度规则分别进行动态仿真评估,并分别得到对应的调度方案及其适应度值,结果如表8所示;
表8 存档集合个体的动态仿真结果
步骤S8:比较得到的调度方案的适应度值,并获得非支配个体集合;
所述步骤S8中获得非支配个体集合的方法为:
步骤S81:根据步骤S7中的存档集合中个体的调度方案及其适应度值,计算每个的帕累托支配个体集P以及支配自己的个体集S;
步骤S82:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合,得到的非支配个体集合为:个体6(612,2103),个体27(657,2032),个体43(662,2018),个体60(630,2028),个体70(621,2089),其中括号中的两个数值分别为订单完工时间和车间总能耗;
步骤S9:根据需求偏好选择合适的调度方案并执行;若需求偏好为希望车间完工时间最短,则选择上述个体6(612,2103)所代表的调度规则和调度方案并执行,若需求偏好为希望车间总能耗最小,则选择上述个体43(662,2018)所代表的调度规则和调度方案并执行选择合适的调度方案,若需求偏好为订单完工时间和能量消耗这两个目标均适中,则选择上述个体60(630,2028)所代表的调度规则和调度方案并执行;
本发明实施例还提供了一种计算机可读存储介质,所述的计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于遗传编程的柔性车间大规模动态双效调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
以上的具体实施例仅描述了本发明的设计原理,该描述中的部件形状,名称可以不同,不受限制。所以,本发明领域的技术人员可以对前述实施例记载的技术方案进行修改或等同替换;而这些修改和替换未脱离本发明创造宗旨和技术方案,均应属于本发明的保护范围。
Claims (9)
1.一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于该方法的步骤包括:
步骤S1:获取训练算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化,构建使得订单完工时间最短和能耗最小的多目标函数;
步骤S2:设置遗传编程算法参数,构建规则树形式的个体并初始化染色体种群,并设置当前迭代次数为0;
步骤S3:根据步骤S1构建的多目标函数,通过动态仿真评估染色体种群中个体的适应度值;
步骤S4:采用非支配等级和拥挤度排序方法从染色体种群中选择父代个体,父代个体组成的群体记为优选父代种群,将优选父代种群中非支配等级最高的个体放入存档集合;对优选父代种群进行交叉和变异操作,得到当前染色体种群;
步骤S5:判断当前迭代次数是否达到设定值NUM,若是,则进入步骤S6;若否,当前迭代次数加1,将所述当前染色体种群作为染色体种群,进入步骤S3;
步骤S6:获取测试算例中的柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息;基于柔性车间的加工机器人信息、自动导引小车信息和待加工工件信息对柔性车间的参数进行初始化;
步骤S7:采用步骤S4中存档集合中的个体所代表的调度规则分别进行动态仿真,并分别得到对应的调度方案及其适应度值;
步骤S8:比较得到的调度方案的适应度值,获得非支配个体集合;
步骤S9:根据需求选择合适的调度方案并执行,完成双效调度;
所述步骤S1中,加工机器人信息包括:加工机器人数量、加工机器人工艺加工能力、加工机器人定点位置;
自动导引小车信息包括:自动导引小车数量、自动导引小车运行速度、自动导引小车初始位置;
待加工工件信息包括:待加工工件的数量、待加工工件的工序数量、每道工序的可用加工机器人及其加工时长;
构建的多目标函数为:
minF=[Cmax,Etotal]T
其中,Cmax为车间订单完工时间,Etotal为车间总能耗。
2.根据权利要求1所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S2中,遗传编程算法参数包括染色体种群规模、交叉概率、变异概率、迭代次数、规则树的深度;
构建规则树形式的个体,每个个体代表一个调度规则,所述规则树为一个用终端集和功能集构成的优先级函数,其中,所述终端集反映车间状态的特征作为规则树的叶节点,终端集反映车间状态的特征包括剩余工序数、工序的加工时间、工件等待AGV到达的时间,所述功能集作为函数符号,包括{+,-,×,=,max,min,if},所述函数符号将所述车间特征关联起来,作为规则树的内部节点,以生成一个规则树;
染色体种群包括N个染色体,每个染色体为一个规则树,所述染色体种群的生成方法为full法和grow法,所述两种生成方法分别生成一半数量的染色体种群,所述full法中,会构造出一棵完全树,叶子节点均在最大深度层,所述叶子节点从终端集中随机选择,其余节点均从终端集中选择;所述grow法不要求构造出一棵完全树,所有节点均能够从终端集和功能集中随机选取,并通过概率来选择终端符号作为叶节点和函数符号作为内部节点来递归地构建规则树,从而产生具有不同深度和结构的个体。
3.根据权利要求1所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S3,通过动态仿真评估染色体种群中个体的适应度值的方法包括:
步骤S31:对个体所代表的规则树进行解码,得到用于工序加工顺序的优先级函数,所述解码过程为分层解码,规则树中每层的表达式为同一级别,从规则树的最下层的叶子节点开始解码,将与本叶子节点直接相连的功能集作为运算符,并将此运算符所连接的下一层所有叶子节点由本运算符构成运算表达式,并将所述运算表达式看作一个新的叶子节点进行上述同样的计算,直到将整棵规则树解码为一个表达式,即优先级函数;
步骤S32:根据上述得到的优先级函数,将车间中与各个工序相关的对应数值带入优先级函数中计算,分别得到各个工序的优先级;
步骤S33:根据得到的优先级,为各个工序依次分配最符合目标函数的加工机器人和自动导引小车,从而得到所有订单的调度方案,并计算调度方案的订单完工时间和能耗这两个目标的适应度值。
4.根据权利要求1所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S4中,采用非支配等级和拥挤度从染色体种群中选择父代个体的方法步骤包括:
步骤S41:若当代染色体集合为第一代染色体,则直接将第一代染色体种群作为优选父代种群,否则,将当代染色体Pt及上一代染色体构成染色体集合Qt;
步骤S42:根据上述染色体集合Qt中个体的订单完工时间和能耗这两个目标的适应度值,得到每个个体的帕累托支配个体集P以及支配自己的个体集S,所述的帕累托支配个体是指在最小化问题中,个体A的某目标适应度值小于等于个体B的对应目标适应度值,且个体A的另一目标适应度值小于个体B的对应目标适应度值,则个体A支配个体B,个体B即为个体A的帕累托支配个体;
步骤S43:设定非支配等级为rank,设置rank初值为0;
步骤S44:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合,所述非支配个体集合中的个体的非支配等级rank均被加1;
步骤S45:删除上述的非支配等级rank的值最小的个体,并根据所述个体的P集合,更新P集合中个体的S集合,即删除S集合中的所述非支配等级rank的值最小的个体;判断染色体集合中是否还存在未标记等级的个体,若有,转到步骤S44,否则非支配等级标记完毕,将非支配等级最高的个体存入存档集合,即非支配等级rank的值最小的个体存入存档集合,转到步骤S46;
步骤S46:将非支配等级rank的值最小的前n个等级中所包含的个体放入优选父代种群中,保证前n-1个等级中的个体不足规定的种群数量,前n个等级中的个体超过了规定的种群数量,对第n个等级中的个体进行拥挤度排序,所述的拥挤度排序是指根据所述两个目标的适应度值,将第n个等级的所有个体放入两个目标函数值构成的二维坐标系平面中,找到每个个体在二维坐标系平面中的左右两个与其相距最近的个体,所述的两个与其相距最近的个体称为本个体的邻居,并计算这两个邻居的曼哈顿距离记为本个体的拥挤度,其中,若缺少邻居则将本个体的拥挤度设置为无穷大,根据拥挤度从大到小,将个体进行排序,得到拥挤度排序;根据拥挤度排序序列删除最后的m个个体,使得删除操作后的前n个等级的个体总数为规定的种群数量。
5.根据权利要求1所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S4中,对所述优选父代种群进行交叉操作的方法为:
选择两个未被选择过的个体,根据交叉概率决定是否执行交叉操作,若执行交叉操作,则随机选中个体中规则树的一个结点,将以此结点为根节点的子树进行交换,得到两个新的个体,重复上述步骤,直到所有个体都被执行交叉操作。
6.根据权利要求5所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S4中,对所述优选父代种群进行变异操作的方法为:
对经过交叉操作后的优选父代种群进行变异操作:个体根据变异概率决定是否执行变异操作,若执行变异操作,则随机选中个体中规则树的一个结点,并随机选择其他个体的一个结点为根节点的子树来替换所述个体的子树,从而得到一个新的个体,对染色体种群中所有个体均执行上述操作,得到当代染色体种群。
7.根据权利要求6所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S8中,获得非支配个体集合的方法为:
步骤S81:根据步骤S7中的存档集合中个体的调度方案及其适应度值,计算每个的帕累托支配个体集P以及支配自己的个体集S;
步骤S82:根据每个个体的帕累托支配解集,找到所有没有被支配的个体,即集合S为空的个体,构成非支配个体集合。
8.根据权利要求1所述的一种基于遗传编程的柔性车间大规模动态双效调度方法,其特征在于:
所述步骤S9中,根据需求选择合适的调度方案,所述需求指对订单完工时间和能量消耗这两个目标的权衡,选择需要的调度方案并执行。
9.一种计算机可读存储介质,其特征在于:
计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如权利要求1-8任一所述的基于遗传编程的柔性车间大规模动态双效调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477049.1A CN117215275B (zh) | 2023-11-08 | 2023-11-08 | 一种基于遗传编程的柔性车间大规模动态双效调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311477049.1A CN117215275B (zh) | 2023-11-08 | 2023-11-08 | 一种基于遗传编程的柔性车间大规模动态双效调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117215275A CN117215275A (zh) | 2023-12-12 |
CN117215275B true CN117215275B (zh) | 2024-02-13 |
Family
ID=89051484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311477049.1A Active CN117215275B (zh) | 2023-11-08 | 2023-11-08 | 一种基于遗传编程的柔性车间大规模动态双效调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215275B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250583A (zh) * | 2016-07-15 | 2016-12-21 | 西安电子科技大学 | 基于双种群基因表达式编程的动态车间调度规则优化方法 |
CN111242503A (zh) * | 2020-01-21 | 2020-06-05 | 南京航空航天大学 | 一种基于两层遗传算法的多目标柔性作业车间调度方法 |
CN113805545A (zh) * | 2021-09-14 | 2021-12-17 | 大连理工大学 | 一种考虑批处理的柔性流水车间组合调度规则生成方法 |
CN115392616A (zh) * | 2022-05-06 | 2022-11-25 | 盐城工学院 | 一种知识挖掘结合遗传算法的多目标离散车间调度方法 |
-
2023
- 2023-11-08 CN CN202311477049.1A patent/CN117215275B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250583A (zh) * | 2016-07-15 | 2016-12-21 | 西安电子科技大学 | 基于双种群基因表达式编程的动态车间调度规则优化方法 |
CN111242503A (zh) * | 2020-01-21 | 2020-06-05 | 南京航空航天大学 | 一种基于两层遗传算法的多目标柔性作业车间调度方法 |
CN113805545A (zh) * | 2021-09-14 | 2021-12-17 | 大连理工大学 | 一种考虑批处理的柔性流水车间组合调度规则生成方法 |
CN115392616A (zh) * | 2022-05-06 | 2022-11-25 | 盐城工学院 | 一种知识挖掘结合遗传算法的多目标离散车间调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117215275A (zh) | 2023-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110632907B (zh) | 一种分布式装配式置换流水车间调度优化方法及系统 | |
Mishra et al. | Assembly sequence optimization using a flower pollination algorithm-based approach | |
CN111966050A (zh) | 基于ammas-ga嵌套算法的双资源模具作业车间调度优化方法 | |
CN110598920A (zh) | 用于铸造并行车间主生产计划的多目标优化方法及系统 | |
CN112561194B (zh) | 一种混合流水车间生产与物流集成调度方法及系统 | |
CN113792924A (zh) | 一种基于Deep Q-network深度强化学习的单件作业车间调度方法 | |
CN107451747B (zh) | 基于自适应非支配遗传算法的车间调度系统及其工作方法 | |
CN108460463B (zh) | 基于改进遗传算法的高端装备流水线生产调度方法 | |
CN110802601B (zh) | 一种基于果蝇优化算法的机器人路径规划方法 | |
CN113341889B (zh) | 带装配阶段和能耗的分布式阻塞流水车间调度方法及系统 | |
Zhang et al. | Drilling path optimization by optimal foraging algorithm | |
CN112327621B (zh) | 一种基于蚁群算法的柔性生产线自适应控制系统及方法 | |
CN115730799A (zh) | 一种柔性装配作业车间生产任务调度方法、系统及设备 | |
CN115169798A (zh) | 一种带准备时间分布式柔性作业车间调度方法及系统 | |
CN117314078B (zh) | 基于Petri网和神经网络的柔性制造系统的无死锁调度方法 | |
CN117215275B (zh) | 一种基于遗传编程的柔性车间大规模动态双效调度方法 | |
Nabovati et al. | Multi-objective invasive weeds optimisation algorithm for solving simultaneous scheduling of machines and multi-mode automated guided vehicles | |
CN113792494B (zh) | 基于迁徙鸟群算法和交叉融合的多目标柔性作业车间调度方法 | |
CN115700647A (zh) | 一种基于禁忌搜索遗传算法的车间柔性作业调度方法 | |
CN114676987A (zh) | 一种基于超启发式算法的智能柔性作业车间主动调度方法 | |
CN113792927A (zh) | 基于遗传算法的航空航天柔性产品工序优化方法 | |
CN116468137A (zh) | 一种分布式工艺规划与车间调度集成优化方法 | |
CN110716522B (zh) | 基于任意时间a*启发式搜索的制造企业车间调度优化方法 | |
CN112632777A (zh) | 面向家电产品装配线的ⅱ型双边装配线平衡方法及系统 | |
Bi et al. | Multiple factors collaborative optimisation of intelligent storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |