基于分解-并行遗传算法的约束优化算法

文档序号:10594036阅读:171来源:国知局
基于分解-并行遗传算法的约束优化算法
【专利摘要】本发明公开了一种基于分解?并行遗传算法的约束优化算法,将约束优化算法所针对的问题分解成Q个子问题和1个常规问题,先采用遗传算法分解得到的Q个子问题并行进行迭代进化,直到每个子问题所对应的种群中至少有一半以上的染色体满足该子问题的约束条件,从子问题中选择满足约束条件的染色体按顺序组成多条染色体,作为常规种群的初始种群;然后对常规问题和子问题进行并行遗传算法迭代,达到迁移间隔时即分别进行前向迁移和后向迁移,当迁移次数达到阈值,从常规问题的种群中选择最优染色体作为约束优化问题的解。本发明采用分解?并行遗传算法,可以快速求解出约束优化问题的最佳或近优解。
【专利说明】
基于分解-并行遗传算法的约束优化算法
技术领域
[0001] 本发明属于进化算法技术领域,更为具体地讲,设及一种基于分解-并行遗传算法 的约束优化算法。
【背景技术】
[0002] 大规模约束优化问题是指在多维约束条件下求解目标函数的极值,是算法技术领 域中的一种常见问题。一般可W描述为:在如下不等式组的条件下求minFoWectiveU):
[0003]
[0004] 通常情况下,规模越大,约束条件越多必然会导致算法复杂度和计算时间明显增 加。要求在合理的时间内求解出满足所有要求问题最佳或近优解,一直是优化智能算法领 域中一项难点。

【发明内容】

[0005] 本发明的目的在于克服现有技术的不足,提供一种基于分解-并行遗传算法的约 束优化算法,将约束优化问题划分为常规问题和子问题,在遗传算法求解过程中对常规问 题和子问题的种群之间进行交流,快速、准确地求得约束优化问题的最佳或近优解。
[0006] 为实现上述发明目的,本发明基于分解-并行遗传算法的约束优化算法包括W下 步骤:
[0007] SI:将约束优化算法所针对的问题分解成Q个子问题和1个常规问题,其中Q个子问 题所对应的决策变量子集和约束条件子集均不存在重叠,常规问题包含所有决策变量和除 Q个子问题约束条件子集W外的其他约束条件;
[000引S2:采用遗传算法分别对步骤Sl分解得到的Q个子问题进行并行迭代进化,直到每 个子问题所对应的种群中至少有一半W上的染色体满足该子问题的约束条件;
[0009] S3:分别从当前每个子问题的种群中满足该子问题约束条件的染色体中随机选择 若干个个体,将来自不同子种群中的染色体按照子问题顺序依次组合起来,构成多条长染 色体,作为常规种群的初始种群;
[0010] S4:令进化代数t = l;
[0011] S5:采用遗传算法对Q个子问题和常规问题分别进行一次迭代进化,其中常规问题 的迭代进化中,交叉操作时,个体的交叉点只能为常规染色体中对应子问题染色体的起始 点,并且常规问题的染色体不进行变异操作;
[001 ^ S6:如果t%A = O,其中A表示种群迁移间隔,%表示求余运算,则进入步骤S7,否则 令t = t+l,返回步骤S5;
[0013] S7:各自从常规问题和每个子问题的当代种群中随机选择N个满足约束条件的染 色体作为被迁移染色体;将常规问题的N个被迁移染色体按照子问题进行分段,共分为QXN 段,用每个子问题所对应的N个染色体段对该子问题种群中N个被迁移染色体进行覆盖;将 来自于Q个子问题的Q X N个被迁移染色体按照子问题顺序组合成N个常规问题染色体,子问 题中的每个被迁移染色体在组合时只使用一次,然后将组合得到的N个常规问题染色体去 补全常规种群中之前被迁移走的N个染色体;
[0014] S8:如果t/A<T,T表示最大迁移次数,令t = t+1,返回步骤S5,否则从常规问题的 种群中选择最优染色体作为约束优化问题的解。
[0015] 本发明基于分解-并行遗传算法的约束优化算法,将约束优化算法所针对的问题 分解成Q个子问题和1个常规问题,先采用遗传算法分解得到的Q个子问题并行进行迭代进 化,直到每个子问题所对应的种群中至少有一半W上的染色体满足该子问题的约束条件, 从子问题中选择满足约束条件的染色体按顺序组成多条染色体,作为常规种群的初始种 群;然后对常规问题和子问题进行并行遗传算法迭代,达到迁移间隔时即分别进行前向迁 移和后向迁移,当迁移次数达到阔值,从常规问题的种群中选择最优染色体作为约束优化 问题的解。本发明采用化整为零的方式将大规模问题分解为很多子问题,然后应用并行遗 传算法与适当的种群交流操作最终求解出原始问题的最佳或近优解,可W显著地提高求解 速度。
【附图说明】
[0016] 图1是本发明基于分解-并行遗传算法的约束优化算法的流程图;
[0017] 图2是迁移操作图;
[0018] 图3是本发明基于分解-并行遗传算法的约束优化算法的流程图;
[0019]图4是常规问题种群的适应度值变化曲线图。
【具体实施方式】
[0020] 下面结合附图对本发明的【具体实施方式】进行描述,W便本领域的技术人员更好地 理解本发明。需要特别提醒注意的是,在W下的描述中,当已知功能和设计的详细描述也许 会淡化本发明的主要内容时,运些描述在运里将被忽略。
[0021] 为了更好地说明本发明的技术方案,首先对本发明基于分解-并行遗传算法的约 束优化算法的分解-并行遗传算法进行简单介绍。
[0022] 所谓"分解"是指在本发明中,将原始的约束优化问题分解成了Q个子问题和1个常 规问题。常规问题对应所有变量和部分约束条件,每个子问题则分别对应不同的变量子集 和约束条件。常规问题的目标函数就是原始约束优化问题的目标函数;子问题的目标函数 通常可W统一定义为满足各自约束条件的临界情况。约束优化问题之所W能进行分解,是 因为在大规模实际优化问题中,大多数约束条件并未设及到所有变量,因此运些约束条件 可W根据他们各自所设及到的变量来组成多个小组。图1是约束优化问题分解的示例图。如 图1所示,约束优化问题可W被分解为一个更小的常规问题和Q个子问题。常规问题的目标 函数为约束优化问题的原本目标函数,其约束条件为原本约束条件的一个子集,显然常规 问题的目标函数包含了约束优化问题的所有变量。每个子问题的目标函数中包含约束优化 问题的所有变量的子集,约束条件为原本约束条件的一个子集。记约束优化问题的变量集 合为V,约束条件集合为C,常规问题的变量集合为V。,约束条件集合为SC。,第q个子问题的变 量集合为SVq,约束条件集合为SCq,q = 1,2,…,Q,满足W下条件:
[0023] V = Vc = SVi U SV2 U ... USVq
[0024] C = SCc U SCiU-. U SCq
[0025] 并且,子问题中任意两个变量集合和约束集合都没有交集,即当q/=q时,SVqH SVq' = 0,且SCqH SCq' = 0。
[0026] 所谓"并行"是指Q个子问题和1个常规问题分别采用遗传算法对其变量形成的染 色体进行迭代进化。由遗传算法进化趋势可知,一定代数过后,常规问题能找到自身的最优 解但该解并不一定满足子问题的约束;同样地,各项子问题也都能找到满足自身约束的最 优解但并不一定能满足常规问题的要求。因此本发明增加了常规问题和子问题的种群之间 的交流操作,即前向迁移和后向迁移。图2是迁移操作图。如图2所示,具体的迁移操作为:
[0027] 前向迁移:从常规问题的当代种群中随机选择一定数量满足约束条件的染色体, 将运些常规问题染色体按照子问题进行分段,得到与Q个子问题所对应的一组染色体段,用 运些染色体段对该子问题当代种群中染色体进行替换;
[0028] 后向迁移:分别从Q个子问题的当代种群中随机选择若干个满足约束条件的染色 体,按照子问题顺序组合成一定数量的常规问题染色体,对常规问题当代种群中染色体进 行替换,同时补全常规种群大小,保证两项迁移操作后的子问题和常规问题的种群大小均 保持不变。
[0029] 种群交流操作的优势在于:可W保证常规种群和各个子种群在能够找出自身最优 解的同时,还可W互相朝着满足对方约束要求的方向进化,进而最终能够求解出原始大规 模约束优化问题的最佳或近优解。但是经研究发现,后向迁移后,常规种群的遗传算法需要 稍作调整,W防止破坏从子种群迁移过来的原本已经满足子染色体约束要求的染色体。具 体调整方式主要包括两方面:
[0030] 1)常规种群不能再有变异操作;
[0031] 2)常规种群的交叉操作仅限于整段或整块的交叉,即交叉操作时个体所选择的交 叉点只能为常规染色体中对应子问题的起始点,即在每次交叉时,选择一个子问题在常规 染色体中的起始位置作为交叉点,也就是说常规种群的交叉操作说仅仅是子问题染色体的 不同结合方法的重组。
[0032] 本发明根据W上原理说明和分析,提出了基于分解-并行遗传算法的约束优化算 法。图3是本发明基于分解-并行遗传算法的约束优化算法的流程图。如图3所示,本发明基 于分解-并行遗传算法的约束优化算法包括W下步骤:
[0033] S301:约束优化问题分解:
[0034] 将约束优化算法所针对的问题分解成Q个子问题和1个常规问题,其中Q个子问题 所对应的决策变量子集和约束条件子集均不存在重叠,常规问题包含所有决策变量和Q个 子问题约束条件子集W外的其他约束条件。
[00巧]S302:子问题种群初始化:
[0036]采用遗传算法对步骤Sl分解得到的Q个子问题并行进行迭代进化,直到每个子问 题所对应的种群中至少有一半W上的染色体满足该子问题的约束条件,W当前种群作为对 应子问题的初始种群。
[0037] S303:常规问题种群初始化:
[0038] 分别从每个子问题的初始种群中满足该子问题约束条件的染色体中随机选择若 干个个体,将来自不同子种群中的染色体按照子问题顺序依次组合起来,构成多条染色体, 作为常规问题种群的初始种群。
[0039] 记第q个子问题的变量,即染色体所包含变量序列为…,其中Mq表 示第q个子问题的变量数量,那么常规问题的染色体所包含的变量序列为 (Vl,l'Vl.2''"'Vl,M, 。对于子问题和 1? 规问题,其种群 大小是根据问题寻优复杂度进行设置的。
[0040] S304:令进化代数t = l。
[0041 ] S305:进行一次迭代进化:
[0042] 采用遗传算法对Q个子问题和常规问题分别进行一次迭代进化。在本发明中,子问 题采用常规遗传算法进行进化,即选择、交叉、变异。而常规问题的迭代进化不采用常规遗 传算法,在交叉操作时个体的交叉点只能为常规染色体中对应子问题染色体的起始点,并 且常规问题的染色体不进行变异操作。
[0043] S306:判断是否t%A = 0,其中A表示种群迁移间隔,%表示求余运算,显然t%A = 0 表示达到种群迁移间隔,需要进行种群迁移,因此进入步骤S307,否则直接进入步骤S309。
[0044] S307:种群迁移:
[0045] 分别从常规问题和每个子问题的当代种群中随机选择N个满足约束条件的染色体 作为被迁移染色体,同一组迁移操作中的前向迁移和后向迁移个体不能重复,即刚迁移过 来的个体不能马上又迁移回去。N的值是根据实际需要来确定的,一般来说,为了兼顾迁移 效果和运算效率,N占种群大小10%的至20%,即种群的迁移率为10%至20%。当常规问题 种群和子问题种群数量不同时,按照最小种群数量计算N即可。
[0046] 将常规问题的N个被迁移染色体按照子问题进行分段,共分为QXN段,采用与每个 子问题所对应的N个染色体段对该子问题种群中的N个被迁移染色体进行覆盖,即进行前向 迁移。将来自于Q个子问题的QXN个被迁移染色体按照子问题顺序组合成N个常规问题染色 体,为了防止种群过早收敛和陷入局部最优,子问题中的每个被迁移染色体在组合时只使 用一次,然后将组合得到的N个常规问题染色体去补全常规种群中之前被迁移走的N个染色 体,即实现后向迁移。很显然,迁移后常规问题和子问题的种群大小保持不变。
[0047] 然后进入步骤S308。
[004引 S308:判断是否t/A<T,T表示最大迁移次数,如果是,进入步骤S309,否则进入步 骤S310。
[0049] S309:令 t = t + l,返回步骤 S305;
[(K)加]S310:选择最优染色体。
[0051] 从常规问题的种群中选择最优染色体作为约束优化问题的解。最优染色体就是使 常规问题的适应度函数值最大的染色体。
[0052] 实施例
[0053] 为了说明本发明的技术效果,采用一个具体的应用实例对本发明进行实施验证。
[0054] 在电子系统故障诊断领域的科学研究中,存在一种多工序测点选择问题。一个待 测电子系统往往会设及多个测试模块,且在对运种系统的故障诊断过程中,除了需要满足 整体测试性指标之外,还必须满足每个模块的测试性指标。W故障检测率FDR为例,其约束 条件可W表示为:
[0化5]
[0056] 其中,FDR表示整体故障检测率,FDR*表示整体故障检测率阔值,FDRpro(k)表示第k 个模块的故障检测率,W表示第k个模块的故障检测率阔值。
[0057] 故障检测率的计算公式如下:
[0化引
[0059] 其中,m表示可能发生的故障点数,n表示所有可用测点数;Pi表示的是各个可能发 生故障的先验概率,i = l,2,…,m;bj是一个布尔值(0或1),表示对应测点j是否被选中,选 中则bj = 1,否则bj = 0,j = 1,2,…,n。山功测点t j能够检测出对应故障f i的可能性。
[0060] 表1是本实施例小型电子系统的测试性依赖矩阵。如表1所示,包括10个可能的故 障发生点和20个可用测点,共设及4个测试模块。设置每个模块的故障检测率阔值为0.6,整 体故障检测率阔值为0.8。
[0061]
[0062]表 1
[0063]
[0064] 表1(续)
[0065] 根据表1可知,本实施例中电子系统共包括四个测试工序,每个测试工序之间相互 独立,故可W直接划分为四个子问题,即Q = 4,每个子问题对应一个测试工序,每个测试工 序的故障检测率阔值为0.6。本实施例中采用最小测试代价作为目标函数,则第q个子问题 的适应度函数可W表示为:
[0066]
[0067] 其中,ITq巧第q个子问题(即工序q)上的可用测点数量,Cj为测试测点tj所需花费 的代价。
[0068] 常规问题的适应度函数为下:
[0069]
[0070] 其中n为常规问题所包含的测点数量,即n = 20。
[0071] 本实施例中,将常规问题和每个子问题的种群大小为30,迁移间隔设置为5代。迁 移染色体的数量N=4,即染色体的迁移率为4/30^13 %。
[0072] 经过18次迁移操作(前向迁移和后向迁移各18次),所有种群并行进化了 90代,此 时所得最小测试代价为3.6,测点序列为00010000100010000001,所花时间为139ms,工序1- 4的故障检测率分别为0.93,0.89,0.85和0.84,整体故障检测率为0.99。
[0073] 为了便于结果对比,采用穷举法找出了该测试依赖矩阵的最佳测点序列,为 00001000100010000001,对应最小测试代价为3.35,所花时间约为46.9s。此时工序1、工序 2、工序3和工序4的检测率分别为0.80,0.89,0.85和0.84,整体检测率为0.99。
[0074] 将本发明基于分解-并行遗传算法的约束优化算法的结果与穷举法所得的结果相 比较,可W看出:在分工序测点序列选择方面,本发明所得到的结果与真实最佳结果相差两 位;在测试代价方面,本发明比实际最小代价高了约7.5%;但是在计算时间方面,分解一并 行遗传算法仅仅为穷举法所花时间的1/337。因此,对于多维约束的测点选择问题,本发明 所取得的结果可W视为近优解,但是在计算时间方面,大大低于穷举法所需要的时间。
[0075] 为了更清晰地分析本发明算法的进化历程,本发明描绘了常规问题种群的适应度 值变化曲线图。图4是常规问题种群的适应度值变化曲线图。如图4所示,在并行遗传算法 中,常规种群的两适应度值约在35代左右就开始趋近,随后每隔5代波动一次,但整体趋势 良好,35代W后的大部分染色体基本可视为该问题的近优解。而本实施例中迭代了 90代,可 见在计算时间方面还能进一步缩短。
[0076] 综上所述,本发明能W较快速度找出大规模约束优化问题的最优或近优解。
[0077] 尽管上面对本发明说明性的【具体实施方式】进行了描述,W便于本技术领域的技术 人员理解本发明,但应该清楚,本发明不限于【具体实施方式】的范围,对本技术领域的普通技 术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,运些 变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
【主权项】
1. 一种基于分解-并行遗传算法的约束优化算法,其特征在于,包括以下步骤: Sl:将约束优化算法所针对的问题分解成Q个子问题和1个常规问题,其中Q个子问题所 对应的决策变量子集和约束条件子集均不存在重叠,常规问题包含所有决策变量和除Q个 子问题约束条件子集以外的其他约束条件; S2:采用遗传算法对步骤Sl分解得到的Q个子问题并行进行迭代进化,直到每个子问题 所对应的种群中至少有一半以上的染色体满足该子问题的约束条件; S3:分别从当前每个子问题的种群中满足该子问题约束条件的染色体中随机选择若干 个个体,将来自不同子种群中的染色体按照子问题顺序依次组合起来,构成多条染色体,作 为常规种群的初始种群; S4:令进化代数t = 1; S5:采用遗传算法对Q个子问题和常规问题分别进行一次迭代进化,其中常规问题的迭 代进化中,交叉操作时,个体的交叉点只能为常规染色体中对应子问题染色体的起始点,并 且常规问题的染色体不进行变异操作; S6:如果t%A = 0,其中A表示种群迀移间隔,%表示求余运算,则进入步骤S7,否则令t = t+l,返回步骤S5; S7 :各自从常规问题和每个子问题的当代种群中随机选择N个满足约束条件的染色体 作为被迀移染色体;将常规问题的N个被迀移染色体按照子问题进行分段,共分为QXN段, 用每个子问题所对应的N个染色体段对该子问题种群中的N个被迀移染色体进行覆盖;将来 自于Q个子问题的QXN个被迀移染色体按照子问题顺序组合成N个常规问题染色体,子问题 中的每个被迀移染色体在组合时只使用一次,然后将组合得到的N个常规问题染色体去补 全常规种群中之前被迀移走的N个染色体; S8:如果t/A<T,令t = t+l,返回步骤S5,否则从常规问题的种群中选择最优染色体作 为约束优化问题的解。2. 根据权利要求1所述的约束优化算法,其特征在于,所述N的值取种群大小的10%至 20% 〇
【文档编号】G06N3/12GK105955927SQ201610279253
【公开日】2016年9月21日
【申请日】2016年4月28日
【发明人】杨成林, 张贞, 周秀云
【申请人】电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1