<sub id="bz1nl"></sub><sub id="bz1nl"></sub>
        <sub id="bz1nl"></sub>

        <sub id="bz1nl"></sub><sub id="bz1nl"></sub>

          2.793

          2018影响因子

          (CJCR)

          • 中文核心
          • EI
          • 中国科技核心
          • Scopus
          • CSCD
          • 英国科学文摘

          留言板

          尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

          姓名
          邮箱
          手机号码
          标题
          留言内容
          验证码

          基于问题性质的分布式低碳并行机调度算法研究

          潘子肖 雷德明

          潘子肖, 雷德明. 基于问题性质的分布式低碳并行机调度算法研究. 自动化学报, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          引用本文: 潘子肖, 雷德明. 基于问题性质的分布式低碳并行机调度算法研究. 自动化学报, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          Pan Zi-Xiao, Lei De-Ming. Research on property-based distributed low carbon parallel machines scheduling algorithm. Acta Automatica Sinica, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          Citation: Pan Zi-Xiao, Lei De-Ming. Research on property-based distributed low carbon parallel machines scheduling algorithm. Acta Automatica Sinica, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581

          基于问题性质的分布式低碳并行机调度算法研究


          DOI: 10.16383/j.aas.c180581
          详细信息
            作者简介:

            潘子肖??清华大学控制科学与工程博士研究生.主要研究方向为智能系统优化与调度. E-mail: pzxwhut@126.com

            通讯作者: 雷德明  武汉理工大学自动化学院教授.主要研究方向为智能系统优化与控制.本文通信作者. E-mail: deminglei11@163.com
          • 本文责任编委??伍洲
          • 基金项目:

            国家自然科学基金 61573264

          Research on Property-based Distributed Low Carbon Parallel Machines Scheduling Algorithm

          More Information
            Author Bio:

            PAN Zi-Xiao??Ph. D. candidate in control theory and control engineering at Tsinghua University. His research interest covers manufacturing systems intelligent optimization and scheduling

            Corresponding author: LEI De-Ming  Professor at the School of Automation, Wuhan University of Technology. His research interest covers intelligent system optimization and control. Corresponding author of this paper
          • Recommended by Associate Editor WU Zhou
          • Fund Project:

            National Natural Science Foundation of China 61573264

          图(3) / 表(7)
          计量
          • 文章访问数:  29
          • HTML全文浏览量:  10
          • PDF下载量:  7
          • 被引次数: 0
          出版历程
          • 收稿日期:  2018-08-31
          • 录用日期:  2018-11-09
          • 刊出日期:  2020-11-01

          基于问题性质的分布式低碳并行机调度算法研究

          doi: 10.16383/j.aas.c180581
            基金项目:

            国家自然科学基金 61573264

            作者简介:

            潘子肖??清华大学控制科学与工程博士研究生.主要研究方向为智能系统优化与调度. E-mail: pzxwhut@126.com

            通讯作者: 雷德明  武汉理工大学自动化学院教授.主要研究方向为智能系统优化与控制.本文通信作者. E-mail: deminglei11@163.com
          • 本文责任编委??伍洲

          摘要: 针对分布式低碳并行机调度问题(Distributed low carbon parallel machine scheduling problem, DLCPMSP), 由于该问题子问题众多, 为此, 首先将问题转换为扩展的低碳不相关并行机调度问题以降低子问题的数量; 然后提出了一种基于问题性质的非劣排序遗传算法-Ⅱ(Property-based non-dominated sorting genetic algorithm-Ⅱ, PNSGA-Ⅱ)以同时最优化总延迟时间和总能耗, 该算法运用针对问题特征的两种启发式算法初始化种群, 给出了问题的四种性质及证明, 提出了两种基于问题性质的局部搜索方法.运用大量实例进行了算法策略分析和对比实验, 结果分析表明, PNSGA-Ⅱ在求解DLCPMSP方面具有较强优势.

          本文责任编委??伍洲

          English Abstract

          潘子肖, 雷德明. 基于问题性质的分布式低碳并行机调度算法研究. 自动化学报, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          引用本文: 潘子肖, 雷德明. 基于问题性质的分布式低碳并行机调度算法研究. 自动化学报, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          Pan Zi-Xiao, Lei De-Ming. Research on property-based distributed low carbon parallel machines scheduling algorithm. Acta Automatica Sinica, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          Citation: Pan Zi-Xiao, Lei De-Ming. Research on property-based distributed low carbon parallel machines scheduling algorithm. Acta Automatica Sinica, 2020, 46(11): 2427-2438. doi: 10.16383/j.aas.c180581
          • 并行机调度问题(Parallel machine scheduling problem, PMSP)是制造过程中一类典型问题, 在云计算、半导体加工、汽车制造等行业具有广泛的应用背景[1]它通过对制造资源的合理分配与调度实现既定目标的最优化.传统PMSP多以总延迟时间等时间指标作为优化目标, 而很少考虑降低能耗或碳排放.随着制造企业的环保压力日益增大, 以及能源短缺、能源需求与供给之间的矛盾日益突出, 因而迫切需要研究低碳调度理论与方法, 在满足企业市场竞争需要的同时, 实现企业和社会的可持续发展[2].

            近些年, 低碳并行机调度研究取得了一些进展.文献[3]在能源成本和清理成本之和小于给定值条件下提出了几种启发式算法分别优化makespan和总完成时间. Wang等[4]给出了一种增广$\varepsilon $-约束算法、构造性启发式算法和非劣排序遗传算法-Ⅱ (Non-dominated sorting genetic algorithm-Ⅱ, NSGA-Ⅱ)以同时优化总能耗和makespan. Wu等[5]提出了一种混合差分进化算法以同时最小化makespan和总能耗. Zheng等[6]给出了一种改进的多目标果蝇优化算法. Liang等[7]运用一种蚁群优化算法解决了具有总延迟时间和总能耗加权和的PMSP. Li等[8]描述了低碳PMSP的模型并提出10种启发式算法. Che等[9]提出了一种节能并行机调度方法在给定发电成本下最小化最大完成时间.雷德明等[10]结合字典序的方法, 提出了一种改进的帝国竞争算法以优化总能耗和总延迟时间.

            随着经济全球化的发展, 企业为了快速地响应市场变化, 在服装[11]、渔具[12]、汽车[13]、食品和化学品加工[14]等行业中, 生产制造已从单一工厂向多工厂转换, 分布式生产调度研究引起了工业界和学术界的重视和关注[15-16].针对分布式PMSP, Chen[17]等分析了问题的复杂性, 并给出了一种快速算法以解决供应链调度问题.文献[18]给出两种双层分解算法解决了多工厂生产调度与计划. Behnamian等[19]运用一种启发式方法和改进的遗传算法(GA)以最小化makespan. Behnamian[20]提出了一种基于分解的混合变邻域禁忌搜索算法以同时优化部分工厂的总成本和其他工厂的总利润. Behnamian等[21]给出了一种结合了7种局部搜索的Monte Carlo启发式算法.

            如上所述, 低碳PMSP研究取得了一些进展, 现有研究从实际生产调度[5]中给出了加工速度与能耗呈负相关的结论, 并验证了总能耗与makespan之间的冲突关系, 但这些研究大都在单工厂环境下进行, 很少考虑多工厂环境下的低碳PMSP.另一方面, 分布式PMSP的相关研究工作较少, 主要应用GA和变邻域搜索等智能算法, 其他智能算法很少用来解决分布式PMSP, 而且所优化的目标以makespan、成本和利润等为主, 很少考虑总延迟时间, 也未同时优化总能耗和总延迟时间.随着低碳制造和分布式制造的不断实施和应用, 有必要开展分布式低碳调度包括分布式低碳并行机调度问题(DLCPMSP)的深入研究.

            NSGA-Ⅱ[22]是一种经典的多目标进化算法, 目前已广泛应用于路径规划[23-24]、选址[25-26]、调度[27-30]和参数优化[31-32]等工程领域, 显示出较强的搜索优势[33], 只是在NSGA-Ⅱ的应用和以上两类PMSP研究中, 较少关注问题性质与智能算法的结合, 问题性质的引入可避免无效搜索, 加强对最优解可能区域的高效搜索[34].目前, 基于问题性质的调度还未引起研究者的足够重视, 现有工作主要针对makespan[6, 35-37]展开研究, 而对总延迟时间和能耗等目标的研究相对较少, 同时基于问题性质的并行机调度研究进展也很少.

            针对以同时最小化总延迟时间和总能耗为目标的DLCPMSP, 考虑到该问题具有较多子问题, 首先通过直接将工件分配给机器的方式, 将该问题转换成扩展的低碳不相关并行机调度问题以减少子问题的数量; 然后, 运用针对问题特征的两种启发式算法初始化种群, 给出了问题的四种性质及相关证明, 提出了两种基于问题性质的局部搜索方法, 在此基础上, 设计一种基于问题性质的非劣排序遗传算法-Ⅱ (PNSGA-Ⅱ).运用大量实例进行仿真实验, 包括新策略对算法性能的影响实验和对比实验, 结果表明, 启发式算法和基于问题性质的局部搜索有效地改进了算法的搜索性能, 且算法在解决DLCPMSP方面具有较强的搜索优势.

            • 问题描述中所使用的的符号含义如下:

              $F$????工厂数, 工厂编号以$f$表示

              $W$????所有工厂的机器总数, 机器编号用$k$表示

              ${M_k}$????第$k$个机器

              ${m^f}$????工厂$f$的机器数

              $n$????工件数, 工件编号以$i$表示

              ${J_i}$????第$i$个工件

              ${D}$????加工速度的种类

              ${v_l}$????第$l$种加工速度

              ${p_{ikl}}$????工件${J_i}$在机器${M_k}$上以速度${v_l}$加工的时间

              ${EC_{kl}} $????机器${M_k}$以速度${v_l}$加工的单位时间能耗

              ${C_i}$????工件${J_i}$的完成时间

              ${d_i}$????工件${J_i}$的交货期

              ${T_i}$????工件${J_i}$的延迟时间, ${{T}_{i}}=\max \left\{ {{C}_{i}}-{{d}_{i}}, 0 \right\}$

              ${f_1}$????总延迟时间

              ${f_2}$????总能耗

              ${z_{ikl}}$????若工件${J_i}$在机器${M_k}$上以速度${v_l}$加工, 则$z_{ikl}$等于1, 否则为0

            • DLCPMSP描述如下:存在$F$个独立的工厂, 每个工厂$f$具有$m^f$台不相关并行机, 共有$W$台机器, 其中$\ W=\sum\nolimits_{f=1}^{F}{{{m}^{f}}}$, 机器$\ {{M}_{{{s}_{f}} + 1}}, {{M}_{{{s}_{f}} + 2}}, \cdots, {{M}_{{{s}_{f}} + {{m}^{f}}}}$位于工厂$f$, ${\ s_f=\sum\nolimits_{l=1}^{f-1}{{{m}^{l}}}}$, $f>1$, $s_1=0$.每台机器有$D$种加工速度, ${V=\left({{v}_{1}}, {{v}_{2}}, \cdots, {{v}_{D}} \right)}$.机器$M_k$以速度$v_l$加工时, 单位时间能耗为$EC_{kl}$.具有$n$个工件$\ {{J}_{1}}, {{J}_{2}}, \cdots, {{J}_{n}}$, 每个工件只需加工一次, 其加工机器可以是$W$台并行机中的任一台, 工件$J_i$的交货期为$d_i$, $p_{ikl}$表示工件$J_i$在机器$M_k$上以速度$v_l$加工的加工时间, 工件加工时间取决于其所在加工机器的性能和加工速度, 文献[5$-$6, 35]中给出假设, 同一工件在同一台机器上加工, 加工速度越大, 加工时间越短, 相应的能源消耗也越大, 即若$v_l < v_g$, 则${p_{ikl}>p_{ikg}}$, ${E{{C}_{kl}}\times {{p}_{ikl}} < E{{C}_{kg}}\times {{p}_{ikg}}}$.

              存在一些与工件和机器相关的约束, 包括每个工件可在任意一台机器上加工且同一时刻只能在一台机器上加工, 每台机器同一时间只能加工一个工件, 在零时刻所有工件和加工机器都可用, 加工一旦开始就不能中断, 准备时间忽略不计或包含在加工时间内.

              DLCPMSP是传统PMSP的扩展, 通常, PMSP由机器分配和调度组成, 而DLCPMSP则增加了工厂分配和速度选择两个子问题, 其中工厂分配子问题用来决定每个工件的加工工厂, 机器分配为工件在其所在工厂内分配合适的机器, 而速度选择子问题则确定机器加工工件时的速度.

              由于每个机器所属的工厂已经确定, 将工厂分配和机器分配合并为扩展后的机器分配子问题, 直接为工件分配机器, 而不是先确定工件的加工工厂, 再选择相应工厂内的加工机器, 这样可减少一个子问题, 从而降低子问题数量.

              整个问题的目的在于为每个工件分配合适的加工机器并选择机器相应的加工速度, 以及确定每台机器上工件的加工顺序以最小化如下两个目标.

              $$ \begin{align} &\min {{f}_{1}}=\sum\limits_{i=1}^{n}{{{T}_{i}}}\nonumber\\ &\min {{f}_{2}}=\sum\limits_{i=1}^{n}{\sum\limits_{k=1}^{W}{\sum\limits_{l=1}^{D}{{{p}_{ikl}}\times E{{C}_{kl}}\times {{z}_{ikl}}}}} \end{align} $$ (1)
            • 在搜索过程中结合问题性质, 引导智能算法优化, 能显著地提升算法的搜索能力. DLCPMSP具有总能耗和总延迟时间两个目标, 针对这两个目标, 给出了如下四种性质.

              性质1.??机器分配和速度选择保持不变的条件下, 若调整机器上工件的加工顺序, 则总延迟时间将发生改变, 而总能耗保持不变.

              性质2.??对于一台机器上的两个相邻工件, 在加工速度不变的条件下互换两者的加工顺序, 则在这两个工件之前和之后加工的工件的延迟时间保持不变.

              性质3.??同一台机器$M_k$上相邻两个工件$i$和$j$分别以速度$v_l$和$v_g$加工, 设工件$i$先加工, 且其开始加工时间为$t$, 1)若${T_i=0}$, ${T_j=0}$或${T_i>0}$, ${T_j=0}$, 则仅互换这两个工件, 不会引起它们的延迟时间之和降低; 2)若${T_i=0}$, ${T_j>0}$, 则当${{{d}_{i}}>\max \{{{d}_{j}}, t + {{p}_{jkg}}\}}$时, 只互换两个工件将导致两工件延迟时间之和降低; 3)若${T_i>0}$, ${T_j>0}$, 则当${ {{d}_{j}}>t + {{p}_{jkg}}}$且${{{d}_{j}} < t + {{p}_{ikl}}}$或${{{d}_{j}} < t + {{p}_{jkg}}}$且${{p_{ikl}}>{{p}_{jkg}}}$时, 只互换两个工件将引起它们的延迟时间之和下降.

              证明.??互换前工件$i$和$j$完成时间为$C_i$, $C_j$, 互换后为${C_{i}^{*}, C_{j}^{*}}$, ${C_{i}^{*}={{C}_{i}} + {{p}_{jkg}}}$, ${C_{j}^{*}={{C}_{j}}-{{p}_{ikl}}}$, 定义${T_{i}^{*}=\max \left\{ C_{i}^{*}-{{d}_{i}}, 0 \right\}}$, ${T_{j}^{*}=\max \left\{ C_{j}^{*}-{{d}_{j}}, 0 \right\}}$.

              1) 若${T_i=0}$, ${T_j=0}$, 则$T_i + T_j=0$, 互换后$ T_{i}^{*} + T_{j}^{*}=\max \left\{ {{C}_{i}}- {{d}_{i}} + {{p}_{jkg}}, 0 \right\} + \max \left\{ {{C}_{j}}-{{d}_{j}}-{{p}_{ikl}}, 0 \right\} \ge 0$, 即互换两工件后它们的延迟时间之和不会降低. ${T_i>0}$, ${T_j=0}$, 则$T_i + T_j=C_i-d_i$, 互换后$T_{i}^{*} + T_{j}^{*}=\max \left\{ {{C}_{i}}-{{d}_{i}} + {{p}_{jkg}}, 0 \right\} + \max \left\{ {{C}_{j}}-{{d}_{j}}-{{p}_{ikl}}, 0 \right\}={{C}_{i}}-{{d}_{i}} + {{p}_{jkg}}$.可见, 只互换两个工件, 会引起它们的延迟时间之和上升.

              2) 若${T_i=0}$, ${T_j>0}$, 则, $d_j < t + p_{ikl} + p_{jkg}$, $d_i>t + p_{ikl}$.

              若$d_i < t + p_{ikl} + p_{jkg}$, 则, $T_i^*=C_i^*-d_i=t + p_{ikl} + p_{jkg}-d_i$;

              若$d_i>t + p_{ikl} + p_{jkg}$, 则, $T_i^*=0$;

              若$d_j < t + p_{jkg}$, 则, $T_j^*=C_j^*-d_j=t + p_{jkg}-d_j$;

              若$d_j>t + p_{jkg}$, 则, $T_j^*=0$;

              当$d_i < t + p_{ikl} + p_{jkg}$, $d_j < t + p_{jkg}$, 互换后若两工件延迟时间之和下降, $T_i^* + T_j^* < T_i + T_j$, 即$t + p_{ikl} + p_{jkg}-d_i + t + p_{jkg}-d_j < t + p_{ikl} + p_{jkg}-d_j$, 则$d_i>t + p_{jkg}$.反之, 若$d_i>t + p_{jkg}$, 则互换后两工件延迟时间之和降低.

              当$d_i < t + p_{ikl} + p_{jkg}$, $d_j>t + p_{jkg}$, 互换后若两工件延迟时间之和下降, 即$t + p_{ikl} + p_{jkg}-d_i < t + p_{ikl} + p_{jkg}-d_j$, 则$d_i>d_j$.反之, 若$d_i>d_j$, 则互换后工件延迟时间之和降低.

              只要$d_i>t + p_{ikl} + p_{jkg}$, 无论$d_j < t + p_{jkg}$或$d_j>t + p_{jkg}$, 充要条件都成立.

              综上所述, 2)成立.

              3) 若${T_i>0}$, ${T_j>0}$, 则, $d_j < t + p_{ikl} + p_{jkg}$, $d_i < t + p_{ikl}$.

              若$d_j < t + p_{jkg}$, 则, $T_j^*=C_j^*-d_j=t + p_{jkg}-d_j$;

              若$d_j>t + p_{jkg}$, 则, $T_j^*=0$;

              当$d_j>t + p_{jkg}$, 互换后若两工件延迟时间之和下降, 即$T_i^* + T_j^* < T_i + T_j$, 也即$t + p_{ikl} + p_{jkg}-d_i < t + p_{ikl}-d_i + t + p_{ikl} + p_{jkg}-d_j$, 则$d_j < t + p_{ikl}$, 必要条件成立; 同理可证充分条件.

              当$d_j < t + p_{jkg}$, 互换后若两工件延迟时间之和下降, 即$t + p_{jkg} + p_{ikl}-d_i + t + p_{jkg}-d_j < t + p_{ikl}-d_i + t + p_{ikl} + p_{jkg}-d_j$, 则$p_{ikl}>p_{jkg}$, 必要条件成立; 同理可证充分条件.

              综上所述, 3)成立.

              性质4.??对每台机器上最后加工的工件, 若该工件能按时交货, 则在不引起延期交货的条件下, 可降低该机器加工该工件时的速度, 导致能耗减小, 而总延迟时间保持不变.

              以上四种性质也适合目标函数为总能耗和总延迟时间的其他分布式并行机调度问题.

            • 针对DLCPMSP, 结合问题特征构建两种启发式算法, 运用问题的四种性质, 提出基于问题性质的局部搜索方法, 以增强PNSGA-Ⅱ的局部搜索能力, 同时避免无效搜索, 提高搜索效率.

            • 文献[19]给出了一种矩阵编码方式, 矩阵的每一行对应一个工厂, 该方法结构复杂, 行与行之间彼此依赖, 相应的全局搜索方式设计复杂, 若应用该方法对DLCPMSP的解进行编码, 需要引入速度信息, 将导致算法设计更加复杂. Zheng等[6]针对低碳PMSP给出了一个由工件-速度对组成的编码方式, 但该方法结构也较复杂, 相应的交叉和变异设计也不简单.如前所述, DLCPMSP由扩展的机器分配、调度和速度选择三个子问题组成, 对于这类子问题众多的复杂问题, 应对各子问题独立编码, 这样可以对各子问题的编码串单独设计全局和局部搜索操作, 从而降低算法设计复杂性.

              给出了一种三串编码方式, 问题的解由机器分配串$\left[{{M}_{{{\theta }_{1}}}}, {{M}_{{{\theta }_{2}}}}, \cdots, {{M}_{{{\theta }_{n}}}} \right]$、调度串$\left[{{\pi }_{1}}, {{\pi }_{2}}, \cdots, {{\pi }_{n}} \right]$和速度选择串$\left[ {{v}_{{{r}_{1}}}}, {{v}_{{{r}_{2}}}}, \cdots, {{v}_{{{r}_{n}}}} \right]$组成, 其中${{M}_{{{\theta }_{i}}}}$表示为工件$J_i$分配的机器, $1\le {{\theta }_{i}}\le W$, ${{\pi }_{i}}\in \left\{ 1, 2, \cdots, n \right\}$, 对于任意$i\ne j$, ${{\pi }_{i}}\ne {{\pi }_{j}}$, ${{v}_{{{r}_{i}}}}$为机器${{M}_{{{\theta }_{i}}}}$的加工速度.

              解码过程描述如下:首先, 根据机器分配串和调度串, 确定每台并行机加工的工件; 然后, 根据调度串中工件的先后顺序确定每台机器上工件的加工顺序, 并依照工件加工顺序, 结合速度选择串确定工件的加工速度, 依次安排各工件的加工.

            • 通常, 种群初始化方法包括随机初始化和启发式初始化, PNSGA-Ⅱ的种群初始化结合了这两种初始化方法.

              种群初始化过程描述如下:

              步骤1. ??确定种群规模$N$, $k=1$;

              步骤2. ??生成一个随机整数$a$, 其中$a\in \left[1, n \right]$;

              步骤3. ??采用最小负荷最小能耗算法安排解$x_k$的前$a$个工件;

              步骤4. ??用最小负荷最小延迟算法安排解$x_k$的后$n-a$个工件;

              步骤5. ??若$k=N$, 则结束; 否则, $k=k + 1$并转到步骤2.

              由于调大机器加工速度, 对降低总延迟时间有利, 为此, 将速度$v_{r_i}$的$r_i$设置为$round\left(0.5D\right)$到$D$之间的值, 其中$round\left(x\right)$给出不小于$x$且最接近$x$的整数; 同时为了评估$t$时刻, 工件$J_i$在机器$M_k$上以速度$v_l$加工时按时交货的紧张程度, 定义指标

              $$ \begin{equation} e_{ikl}^{t}={{d}_{i}}-t-{{p}_{ikl}} \end{equation} $$ (2)

              $e_{ikl}^{t}\ge 0$时, $e_{ikl}^{t}$越小, 说明工件$J_i$的完成时间越接近交货期; $e_{ikl}^{t} < 0$时, $e_{ikl}^{t}$越小, 说明工件$J_i$的延迟时间越大, 进而直接影响总延迟时间.显然, $e_{ikl}^{t}$越小, 优先加工工件$J_i$的必要性越大, 根据以上问题性质, 提出了最小负荷最小延迟算法.

              最小负荷最小延迟算法具体描述如下:

              步骤1.??选取负荷最小的机器$M_k$, 若存在多台, 则随机选择一台;

              步骤2.??随机选择加工速度$v_l$, 其中$l$为区间$\left[round(0.5D), D\right]$内的随机整数;

              步骤3.??计算每个待加工工件在机器$M_k$上以速度$v_l$加工的指标$e_{ikl}^{t}$;

              步骤4.??从待加工工件中选择$e_{ikl}^{t}$最小的工件, 若存在多个, 则随机选取一个, 将该工件安排在机器$M_k$上加工, 并将机器$M_k$的加工速度设为$v_l$;

              步骤5.??判断是否还有工件未加工, 若有则返回步骤1;否则结束搜索.

              计算指标$e_{ikl}^{t}$时, 将机器$M_k$最早可用的时间定义为$t$, 所谓最早可用指完成当前工件的加工, 能开始新的工件加工的最早时间.由于降低机器加工速度, 有助于降低能耗, 应用最小负荷最小能耗算法时, 将机器速度$v_{r_i}$的$r_i$设置为区间$\left[1, round\left(0.5D\right)\right]$内的整数, 该算法的具体描述如下:

              步骤1.??选取负荷最小的机器$M_k$, 若存在多台, 则随机选择一台;

              步骤2.??随机选择加工速度$v_l$, 其中$l$为区间$\left[1, round\left(0.5D\right)\right]$内的随机整数;

              步骤3.??从待加工工件中选择$M_k$上加工能耗最小的工件, 若存在多个工件, 则随机选取一个, 并将机器$M_k$加工速度定为$v_l$;

              步骤4.??判断是否还有工件未加工, 若有, 则返回步骤1;否则结束搜索.

              两种启发式算法为工件的加工机器确定合适的加工速度, 并结合指标$e_{ikl}^{t}$和工件加工能耗把工件安排在负荷最小的机器上, 这样有助于获得总延迟时间和总能耗都比较小的初始解, 从而获得质量较高的初始种群.

            • 利用第2节描述的四种性质, 设计了两种局部搜索算法, 分别描述如下.

              第一种局部搜索侧重对总延迟时间的改善.针对解$x$, 按照性质3给出的互换条件可以降低两工件的延迟时间之和, 由性质2可知, 仅互换两相邻工件不会影响其前后工件的延迟时间, 这样导致新解$y$的总延迟时间减小即$f_1\left(y\right) < f_1\left(x\right)$, 由性质1可知, 单纯改变一个机器上工件的加工顺序, 总能耗不会发生变化即$f_2\left(y\right)=f_2\left(x\right)$, 从而使得新解$y$支配解$x$.

              第一种局部搜索的具体描述如下:从机器$M_1$开始, 依次对每台机器$M_k$, 从该机器的第一个工件开始, 确定相邻两个工件是否满足性质3给出的互换条件, 若满足, 则互换两个工件, 否则比较下一对工件, 依此进行, 直到找不到可比较的相邻工件为止.

              第二种局部搜索侧重对总能耗的改善, 针对解$x$, 根据性质4依次减小延迟时间为0的相关工件的加工速度, 并保证延迟时间始终为0, 变换后的解$y$的总能耗减小而总延迟时间没有变化, 新解$y$支配解$x$.

              第二种局部搜索的具体过程描述如下:机器$M_1$开始, 依次对每台机器$M_k$, 确定机器上的最后加工工件的延迟时间是否为零且加工速度能否降低, 若都是, 则在保证该工件延迟时间为零的条件下确定其最低加工速度, 并将机器的当前加工速度调为最低加工速度; 否则, 该工件的加工速度不变.

              两种局部搜索方法利用问题的性质有针对性改善其中一个目标, 整个搜索过程是确定性的, 无随机因素, 与两种启发式方法的区别也在此.

            • PNSGA-Ⅱ的具体步骤描述如下:

              步骤1.??设$gen=1$, 采用两种启发式算法初始化种群$P_{gen}$并产生种群$Q_{gen}$;

              步骤2.??采用二元锦标赛对种群$P_{gen}$进行复制;

              步骤3. ??根据交叉概率$p_c$依次对$P_{gen}$执行调度串、机器分配串和速度串的交叉;

              步骤4.??根据变异概率$p_m$对种群$P_{gen}$执行变异操作;

              步骤5. ??对种群$P_{gen}$中的每个个体依次执行第一种局部搜索和第二种局部搜索;

              步骤6. ??将种群$P_{gen}$和$Q_{gen}$合并, 对所有个体进行非劣排序并计算拥挤距离, 依据NSGA-Ⅱ的方式得到$P_{gen + 1}$和$Q_{gen + 1}$;

              步骤7.??判断是否满足终止条件, 若满足, 则结束搜索; 否则$gen=gen + 1$并跳回步骤2.

              关于交叉, 对机器分配串和速度选择串都采用均匀交叉, 对调度串则采用扩展顺序交叉(EOX)[38].

              机器分配串的均匀交叉描述如下:

              步骤1.??生成一个长度为$n\left[0, 1\right]$内的随机数串;

              步骤2.??从随机数串第1位开始, 依次对各位进行判定, 对于第$k$位随机数, 若该随机数大于0.5, 则子代1的第$k$位机器由父代1第$k$位机器赋值; 否则第$k$位机器与父代2同样位置上的机器相同;

              步骤3.??重复步骤1和步骤2产生子代2.

              速度选择串均匀交叉的过程和上述过程类似. EOX具体过程如下:

              步骤1.??从父代1中随机选择一个基因片段$phi$;

              步骤2.??删除父代2中与片段$phi$中相同的元素, 同时标出删除操作之前父代2中与片段$phi$第一个元素相同的元素的位置$l$;

              步骤3.??将片段$phi$插入父代2中的位置处$l$, 生成交叉后的新的调度串.

              针对机器分配串和速度分配串, 采用位变异, 随机选择变异基因, 然后对该基因重新赋值.例如, 从机器分配串中随机选择一个${{M}_{{{\theta }_{i}}}}$, 然后从工件$J_i$所有可能的加工机器中随机选择一台不同于${{M}_{{{\theta }_{i}}}}$的机器替代${{M}_{{{\theta }_{i}}}}$.针对调度串, 采用互换, 随机选择两个不同的工件后, 互换它们的位置.

              PNSGA-Ⅱ的二元锦标赛过程如下:随机选择一对个体, 若它们彼此支配, 则选择支配个体进行下一代, 若两种彼此不受支配, 则随机选择一个进入下一代.

              PNSGA-Ⅱ的步骤3中, 先对种群$P_{gen}$的所有个体按$p_c$执行调度串交叉, 然后再根据$p_c$选择个体进行分配串交叉, 最后根据$p_c$选择个体进行速度串交叉. 图 1给出了算法流程图.

              图  1  PNSGA-Ⅱ算法流程图

              Figure 1.  The flowchart of PNSGA-Ⅱ

            • 为了验证PNSGA-Ⅱ在求解DLCPMSP方面的搜索优势, 进行了大量计算实验, 这些实验运用MATLAB2015b编程实现并运行于具有16.0 GB RAM 2.80 GHz的计算机上.

            • 由于DLCPMSP相关研究很少, 缺乏现成的测试数据.借鉴文献[6]给出了DLCPMSP的一套测试实例集, 包括小、中、大三种规模, 小规模问题$n\in \left \{ 10, 20, 30 \right \}$, 工厂数$F=2$, 机器数$m^f\in\left[2, 3\right]$; 中规模问题$n\in \left \{ 40, 50, 60 \right\}$, $F\in\left\{2, 3, 4\right\}$, $m^f\in\left[2, 4\right]$; 大规模问题$n\in \left \{ 80, 100, 200\right \}$, $F\in\left\{2, 3, 4, 5\right\}$, $m_f\in\left[2, 5\right]$, 存在$F \times n$的组合24组, 共24个实例, $p_{ikl}\in\left[1, 100\right]$, $EC_{kl}\in\left[4, 16\right]$, $D=4$, ${{d}_{i}}=\left(1 + 3\alpha \right){\times \sum\nolimits_{k=1}^{W}{\sum\nolimits_{l=1}^{D}{{{p}_{ikl}}}}}/{\left(W\times D \right)}$, $\alpha$为区间$[0, 1]$内的随机数.

              采用如下三个指标评价算法的计算结果.

              距离指标$D{{I}_{R}}$[39]用来评价算法$l$所得的非劣解集${{\Omega }_{l}}$中的元素相对于参考集${{\Omega }^*}$的距离.

              $$\begin{equation} D{{I}_{R}}\left( {{\Omega }_{l}} \right)=\frac{1}{\left| {{\Omega }^{*}} \right|}\sum\limits_{y\in {{\Omega }^{*}}}{\min \left\{ {{\sigma }_{xy}}|x\in {{\Omega }_{l}} \right\}} \end{equation} $$ (3)

              其中$\sigma _{xy}$表示解$x$与参考集${{\Omega}^*}$中元素$y$在归一化目标空间内的欧氏距离, 参考集${{\Omega}^*}$由所有算法的非劣解集并集中的非劣解组成. $D{{I}_{R}}$越小说明算法$l$所得的非劣解集${{\Omega}_l}$相对于参考集${{\Omega}^*}$的距离越小, 算法的收敛性越好, 当${DI}_R\left({\Omega}_l\right)$为0时则算法$l$所得的非劣解集${{\Omega}_l}$包含了参考集${{\Omega}^*}$的所有解.

              指标$\rho$[40]用来评价非劣解集${{\Omega}_l}$为参考集${{\Omega}^*}$所提供非劣解的数目.

              $$ \begin{equation} \rho \left( {{\Omega }_{l}} \right)=\frac{{\left| \left\{ x\in {{\Omega }_{l}}\text{ }\!\!|\!\!\text{ }x\in {{\Omega }^{\text{*}}} \right\} \right|}}{{\left| {{\Omega }^{\text{*}}} \right|}} \end{equation} $$ (4)

              $\rho\left({\Omega}_l\right)$指标越大, 说明非劣解集${{\Omega}_l}$为参考集${{\Omega}^*}$提供的非劣解的数目越多, 对应算法越优.

              指标$SP$ (Spacing)[35]用来评价非劣解集的分布均匀性情况.

              $$ \begin{equation} SP\left( {{\Omega }_{l}} \right)=\sqrt{\frac{1}{\left| {{\Omega }_{l}} \right|}\sum\limits_{x\in {{\Omega }_{l}}}{\frac{{\left( dis{{t}_{x}}-\overline{dist} \right)}^{2}}{{\overline{dist}}}}} \end{equation} $$ (5)

              其中$dist_x$表示解$x$和其最近解之间的欧氏距离, $\overline{dist}$为${{\Omega}_l}$内所有解的平均距离. $SP$越小, 说明解的分布越均匀.

            • PNSGA-Ⅱ的参数包括种群规模$N$, 交叉概率$p_c$, 变异概率$p_m$.为了确定各个参数的值, 选用实例$2\times 50$, 设计了四水平的DOE实验, 表 1给出了每个水平的参数取值, 表 2为正交表, 每组参数独立运行10遍, 每次运行时间为$0.5\times n=25$ (s), 计算每种参数组合下的$D{{I}_{R}}$, 其中${{\Omega}^*}$由算法在每一种参数组合下产生的非劣解集合并后, 所得并集内的非劣解组成, 计算结果如表 2所示. 表 3给出了各参数对应的平均$D{{I}_{R}}$.各参数对算法性能的影响趋势如图 2所示.

              表 1  参数各水平取值

              Table 1.  Factor levels of parameters

              参数水平
              1234
              $p_c$0.800.850.9095
              $p_m$0.000.050.100.15
              $N$6090120150

              表 2  参数正交表及$DI_R$值

              Table 2.  Orthogonal array and $DI_R$ value

              No.Factor$DI_R$
              $p_c$$p_m$$N$
              111120.94
              212213.42
              31336.012
              41446.519
              521219.85
              622113.82
              72346.721
              82436.000
              931311.89
              103248.126
              1133110.68
              123426.536
              1341411.13
              144238.531
              154328.199
              1644114.84

              表 3  各参数平均$DI_R$

              Table 3.  Average $DI_R$ of factors

              水平$p_c$$p_m$$N$
              111.7215.9515.07
              211.6010.9712.00
              39.3087.9038.108
              410.688.4748.124
              Delta2.4158.0506.962
              排秩312

              图  2  均值主效应图

              Figure 2.  Principal effect plot of mean

              表 3图 2可以看出, PNSGA-Ⅱ的参数设置为$p_c=0.90$, $p_m=0.1$, $N=120$时算法性能最好, 故选择上述参数设置.

            • PNSGA-Ⅱ中, 引入了基于启发式算法的种群初始化和基于问题性质的局部搜索, 为了验证这两种新策略对算法的性能影响, 构造了PNSGA-Ⅱ的两种变体, 其中将随机初始化的PNSGA-Ⅱ定义为算法A1, 去掉基于问题性质的局部搜索的PNSGA-Ⅱ定义为算法A2, 相应的计算结果如表 4$\sim$6所示, 其中参考集${\Omega}^*$由6种算法的非劣解集的并集中的非劣解组成, 6种算法每次运行的终止条件为计算时间, 参考文献[41]并结合分布式并行机调度的性质, 设置当运行时间为$0.5\times n$ (s)时, 算法停止搜索, 每个算法关于每个实例运行10次, 其中"$-$"表示算法在规定时间内未能给出有效结果.配对样本均值检验的结果如表 7所示, "$t$-test(A, B)"表示一次配对$t$-test, 用来判断算法B是否给出了优于A的更好的样本均值, 假设显著水平为0.05, 如果相应的$p-$值小于0.05, 说明算法A优于算法B.

              表 4  种算法关于指标$DI_R$的对比

              Table 4.  Comparisons of six algorithms on metric $DI_R$

              实例PNSGA-ⅡA1A2NSGA-ⅡSPEA2TIPG
              $2\times 10$1.0095.9893.75313.501.14729.95
              $2\times 20$0.2816.3763.3887.7964.38853.21
              $2\times 30$0.2976.2723.3619.4655.24047.96
              $2\times 40$0.7305.5591.7146.0744.89468.06
              $3\times 40$0.0746.5830.6767.4326.26963.24
              $4\times 40$0.1389.1223.64011.819.68275.89
              $2\times 50$0.9339.6062.0458.02412.7372.65
              $3\times 50$0.5754.5342.1599.2299.56782.67
              $4\times 50$0.0457.0532.2438.3497.63983.56
              $2\times 60$1.3529.8570.8979.0369.90573.18
              $3\times 60$0.8665.1661.6086.8617.68573.38
              $4\times 60$0.2578.6100.9449.48510.0977.30
              $2\times 80$1.8518.6160.8719.53914.0483.09
              $3\times 80$0.9328.2990.97910.0811.3084.17
              $4\times 80$1.01714.530.59416.1818.0698.23
              $5\times 80$0.59112.020.51211.7714.9191.74
              $2\times 100$1.6115.9171.9966.71410.7376.21
              $3\times 100$0.2346.3281.2957.72911.8483.59
              $4\times 100$0.0837.4401.07911.5315.1388.09
              $5\times 100$1.29913.470.56513.4617.3488.42
              $2\times 200$1.66421.422.19828.4836.18$-$
              $3\times 200$2.80839.371.55945.6956.06$-$
              $4\times 200$0.64033.891.88638.9648.04$-$
              $5\times 200$0.29134.633.11836.6554.36$-$
              均值0.81612.111.79514.3316.5574.73

              表 5  6种算法关于指标$\rho $的结果对比

              Table 5.  Comparisons of six algorithms on metric $\rho $

              实例PNSGA-ⅡA1A2NSGA-ⅡSPEA2TIPG
              $2\times 10$0.4440.1110.0000.0000.5560.000
              $2\times 20$0.5830.0210.3330.0210.0830.000
              $2\times 30$0.9750.0250.0000.0000.0120.000
              $2\times 40$0.8470.0200.0530.0670.0200.000
              $3\times 40$0.9100.0100.0800.0000.0100.000
              $4\times 40$0.7100.0110.2900.0000.0000.000
              $2\times 50$0.7180.1370.0760.0460.0310.000
              $3\times 50$0.8720.0320.1060.0000.0000.000
              $4\times 50$0.8960.0150.1040.0000.0000.000
              $2\times 60$0.8400.0240.0800.0320.0320.000
              $3\times 60$0.8220.0590.1290.0000.0000.000
              $4\times 60$0.7930.0090.1980.0000.0090.000
              $2\times 80$0.5510.0590.3240.0740.0000.000
              $3\times 80$0.6320.0080.3610.0000.0080.000
              $4\times 80$0.6460.0150.3540.0000.0000.000
              $5\times 80$0.6480.0140.3520.0000.0000.000
              $2\times 100$0.7590.0360.0150.1970.0000.000
              $3\times 100$0.9120.0540.0390.0000.0000.000
              $4\times 100$0.8970.0150.0880.0040.0000.000
              $5\times 100$0.4800.0100.5200.0000.0000.000
              $2\times 200$0.8530.0410.0860.0240.000$-$
              $3\times 200$0.7650.0080.2120.0190.000$-$
              $4\times 200$0.8520.0040.1480.0000.000$-$
              $5\times 200$0.9260.0050.0740.0000.000$-$
              均值0.7640.0310.1680.0200.0320.000

              表 6  6种算法关于指标$SP$的结果对比

              Table 6.  Comparisons of six algorithms on metric $SP$

              实例PNSGA-ⅡA1A2NSGA-ⅡSPEA2TIPG
              $2\times 10$1.1273.2074.55414.682.7847.470
              $2\times 20$5.0677.4658.55411.716.24210.89
              $2\times 30$5.03613.7710.958.81614.2218.55
              $2\times 40$5.99111.068.5338.8438.17332.89
              $3\times 40$6.4778.19910.129.6246.82313.56
              $4\times 40$11.626.9397.77828.527.42313.82
              $2\times 50$10.946.34514.2613.6016.3221.35
              $3\times 50$7.4556.91713.6611.198.6419.448
              $4\times 50$8.0899.01427.5210.738.11424.12
              $2\times 60$6.58715.739.2648.06410.1714.75
              $3\times 60$9.44712.2717.7413.228.95713.86
              $4\times 60$20.6017.8110.1314.207.3109.080
              $2\times 80$13.9813.508.97710.196.92336.90
              $3\times 80$17.0216.838.46414.6710.7713.87
              $4\times 80$4.88117.2610.3417.977.76012.32
              $5\times 80$6.40112.1911.5417.1811.8419.29
              $2\times 100$11.7812.9217.6537.6838.74101.1
              $3\times 100$22.3819.9015.5014.3214.0015.60
              $4\times 100$10.3116.2712.0910.9320.6026.28
              $5\times 100$4.99710.2046.7512.727.56420.12
              $2\times 200$20.3722.1053.7216.0841.22$-$
              $3\times 200$8.38834.4018.1419.9825.37$-$
              $4\times 200$23.6836.7818.3723.0032.56$-$
              $5\times 200$24.1228.5920.1933.7411.76$-$
              均值11.1114.9916.0315.9013.9321.77

              表 7  配对样本$t$-test

              Table 7.  Paired-sample $t$-test

              $t$-test experiment$p-$值$\left(DI_R\right)$ $p-$值$\left(\rho \right)$$p-$值$\left(SP\right)$
              $t$-test (PNSGA-Ⅱ, A1)0.0000.0000.007
              $t$-test (PNSGA-Ⅱ, A2)0.0010.0000.048
              $t$-test (PNSGA-Ⅱ, NSGA-Ⅱ)0.0000.0000.005
              $t$-test (PNSGA-Ⅱ, SPEA2)0.0000.0000.148
              $t$-test (PNSGA-Ⅱ, TIPG)0.0000.0000.014

              可以发现, PNSGA-Ⅱ关于小、中、大三种规模的24个测试实例所获得的$DI_R$和$\rho$值均优于A1, 关于指标$SP$, PNSGA-Ⅱ关于17个实例所获得的结果优于A1, 这表明, 基于启发式算法的初始化方法能有效地改进算法的收敛性和分布均匀性, 大幅度地提高PNSGA-Ⅱ的求解质量, 表 7的统计结果也验证了该结论, 因此, 引入启发式算法进行种群初始化是合理有效的.和算法A2相比, PNSGA-Ⅱ关于18个实例所获得的$DI_R$优于A2, 关于23个实例, PNSGA-Ⅱ的$\rho $更优, 关于17个实例, PNSGA-Ⅱ的$SP$占优, 且关于所有实例的$SP$均值也优于A2, 可以发现, 基于问题性质的局部搜索, 可以有效地改善算法的收敛性, 一定程度上改善解的分布性. 表 7的统计结果表明, PNSGA-Ⅱ在收敛性和解的分布性方面的确优于A2, 总之, 基于问题性质的局部搜索合理有效.

            • 由于DLCPMSP的相关研究很少, 缺乏现存的优化算法, 为此, 选择经典的多目标优化算法NSGA-Ⅱ[22]、强度Pareto进化算法2 (Strength Pareto evolutionary algorithm 2, SPEA2)[42]和禁忌增强迭代Pareto贪婪算法(Tabu-enhanced iterated Pareto greedy algorithm, TIPG)[43]作为对比算法.其中TIPG用来解决不相关PMSP, 对编码串调整, 在表示每台机器所加工的所有工件构成的片段中再引入$D-1$个0, 将工件片段划分为$D$个小片段, 同一小片段的工件加工速度一样, 这样就能应用于DLCPMSP.在PNSGA-Ⅱ中去掉启发式算法和基于问题性质的局部搜索后, 就是NSGA-Ⅱ. SPEA2的复制、交叉和变异与NSGA-Ⅱ一样. NSGA-Ⅱ和SPEA2是求解多目标问题的经典算法, 具有较强的搜索能力和优势.其中TIPG的参数设置依据文献[43], NSGA-Ⅱ和SPEA2依据文献[22, 42], $p_c=0.9$, $p_m=1/n$, $n$为工件数, 种群规模为100, SPEA2的外部档案大小为30.

              表 4表 5所示, PNSGA-Ⅱ在指标$DI_R$和$\rho $方面优势明显, PNSGA-Ⅱ关于所有24个实例均取得了优于TIPG、NSGA-Ⅱ和SPEA2三种算法的$DI_R$, 关于$\rho$值, PNSGA-Ⅱ关于小、中、大三种规模的24个实例均取得了优于TIPG、NSGA-Ⅱ的结果, 仅有1个实例PNSGA-Ⅱ所得的$\rho$值小于SPEA2, 表 7的统计结果也验证了PNSGA-Ⅱ在收敛性方面的明显优势, 如图 3所示, 几种对比算法的解都远离PNSGA-Ⅱ所产生的非劣解, 因此, PNSGA-Ⅱ在收敛性方面具有较强的优势.

              图  3  6种算法关于四个实例的非劣解分布

              Figure 3.  Distribution of non-dominated solutions of six algorithms on four instances

              表 6可以发现, 关于分布均匀性指标$SP$, PNSGA-Ⅱ关于18个实例取得了优于NSGA-Ⅱ的结果, 在TIPG能给出有效结果的20个实例中, PNSGA-Ⅱ有17个实例的$SP$占优, 表 7的统计结果表明, PNSGA-Ⅱ在分布均匀性方面的优势是显著的, 只是和SPEA2相比, PNSGA-Ⅱ不占优, 但SPEA2的收敛性明显劣于PNSGA-Ⅱ, 因此, PNSGA-Ⅱ在分布均匀性方面具有一定的优势.

              由于启发式算法和基于问题性质的局部搜索的引入, PNSGA-Ⅱ的收敛性得到明显改善, 分布均匀性也有所提高; 另外, 启发式算法也利用了一定的问题性质如调大机器加工速度, 对降低总延迟时间有利, 这表明在DLCPMSP优化求解过程中, 强化问题性质的作用, 对获得质量更高的解是有价值的, 因此, PNSGA-Ⅱ是解决DLCPMSP具有较强竞争力的方法.

            • 分布式PMSP和低碳PMSP研究都取得了一定进展, 但很少同时考虑这两种问题.针对分布式低碳PMSP, 提出了一种基于问题性质的调度算法$-$PNSGA-Ⅱ以同时最小化总延迟时间和总能耗.首先将问题转换为扩展的低碳不相关PMSP以降低子问题的数量; 然后, 提出基于问题特征的两种启发式算法以初始化种群, 描述了问题的四种性质以及相关证明, 在此基础上, 提出了两种局部搜索方法以增强PNSGA-Ⅱ的局部搜索能力.通过仿真实验验证了启发式算法初始化种群和基于问题性质的局部搜索的有效性, 显示了PNSGA-Ⅱ在求解DLCPMSP方面较强的优势.未来将进一步深入研究分布式低碳调度问题包括分布式低碳混合流水车间调度问题, 并加强对基于问题性质的智能调度算法的设计与应用研究.

          参考文献 (43)

          目录

            /

            返回文章
            返回