[发明专利]基于两层遗传整数规划的复杂系统设计结构矩阵重构方法有效
申请号: | 201610041880.6 | 申请日: | 2016-01-21 |
公开(公告)号: | CN105550753B | 公开(公告)日: | 2017-06-30 |
发明(设计)人: | 刘莉;袁斌;龙腾;史人赫 | 申请(专利权)人: | 北京理工大学 |
主分类号: | G06N3/12 | 分类号: | G06N3/12;G06F17/16 |
代理公司: | 北京理工正阳知识产权代理事务所(普通合伙)11639 | 代理人: | 王民盛 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 遗传 整数 规划 复杂 系统 设计 结构 矩阵 方法 | ||
1.基于两层遗传整数规划的复杂系统设计结构矩阵重构方法,其特征在于,包括如下步骤:
步骤1:以数值表示设计结构矩阵中各个元素的耦合关系,并以设计结构矩阵的联系信息流量作为输出,初始化设计结构矩阵聚类分析模型;
步骤2:以设计结构矩阵的联系信息流量为目标函数,建立优化如下优化模型:
find X=[x1,x2...xN]
l1,l2...lN-1∈{0,1}
min f(X,l1,l2...lN-1)
其中,X代表N个学科的排列顺序,l1,l2…lN-1用于表示设计结构矩阵的聚类方式,二者共同决定了设计结构矩阵的聚类方案,具体编码方式见步骤3;f(X,l1,l2...lN-1)为当前聚类方案下设计结构矩阵的联系信息流量总和,优化目的是使设计结构矩阵的联系信息流量总和最小;
步骤3:采用遗传整数规划方法进行第一层重构,具体步骤如下:
步骤3.1:双段染色体编码
通过一种双段染色体编码方式,实现了将聚类数量作为变量之一随算法迭代,并自动找出最优聚类数量;定义设计结构矩阵中包含N个元素,则染色体编码长度为2×N-1,如下所示:
其中,第一段染色体编码以前N项白色元素表示,由整数1~N的排列组成,用于表示N个元素的排列顺序;第二段染色体以后N-1项灰色元素表示,由0-1编码序列表示,用于确定设计结构矩阵的聚类数量以及各个聚类所包含的元素;在第二段染色体中,若第i个元素为1,则说明在第一段染色体第i个元素后切割染色体,将两侧的元素分为两个聚类;二者合并共同构成双段染色体编码,决定设计结构矩阵的聚类方式;
步骤3.2:双段染色体遗传操作
由于前后两段染色体所代表的意义不同,且第一段染色体的编码方式为整数编码,第二段染色体的编码方式为0-1编码,因此在进行遗传操作时,前后两段染色体相互独立,需分别对两段基因进行判断是否进行交叉或变异操作;
a)选择
进行选择操作前需确定各个染色体的适应度;由于设计结构矩阵的联系信息流量总和越小,其聚类结果越好,因此取设计结构矩阵联系信息流量总和的倒数作为染色体的适应度;
选择轮盘赌作为选择方式,每个染色体被选择的概率为其适应度与全体染色体适应度总和的比值;
b)交叉
1)在一条染色体中选择一段基因作为交叉段,同样的,将另一条染色体中相同位置的基因也选择为交叉段并前者对应,如下所示:
parents 1:(c1 c2 c3|c4 c5 c6|c7 c8)
parents 2:(c3 c7 c5|c1 c6 c8|c2 c4)
其中第一条父代染色体中的c4、c5、c6、第二条父代染色体中的c1、c6、c8为交叉段;
2)将交叉段中相同位置的基因一一建立映射关系,即之后将两条染色体的交叉段基因交叉并分别复制到子代染色体中,即:
offspring 1:(x x x|c1 c6 c8|x x)
offspring 2:(x x x|c4 c5 c6|x x)
3)在剩余基因中,从第一条父代染色体的第一位基因开始,判断其是否与交叉段基因冲突,即该基因是否与交叉段中某一基因相同;若与交叉段基因均不相同,则将其直接复制到子代染色体中相同的基因位,并继续对下一个位置的基因进行判断;若与交叉段基因存在冲突,则进入第四步;
4)若某一位基因与交叉段基因相同,则按照第二步中建立的映射关系,将该基因转换为与之对应的基因,并再次判断,若不再与交叉段基因冲突,则将其复制到子代染色体中相同的基因位上,若仍与交叉段基因冲突,则继续按照映射关系转换,直至与交叉段基因不再冲突;
5)重复第三步和第四步的操作,直至确定两条染色体上所有基因位的基因,并将其作为子代染色体;按照上述操作,对初始两条染色体进行交叉后得到子代染色体为:
offspring 1:(c4 c2 c3|c1 c6 c8|c7 c5)
offspring 2:(c3 c7 c8|c4 c5 c6|c2 c1)
同样,若定义父代染色体为:
parents 1:(1 5 7|6 2 3|4 8)
parents 2:(4 2 3|1 8 6|7 5)
经过部分映射交叉算子运算后,得到的子代染色体为:
offspring 1:(3 5 7|1 8 6|4 2)
offspring 2:(4 8 1|6 2 3|7 5)
c)变异
在交叉段染色体中随机选择一位基因,并将其随机插入到另一个位置中,同时将处于其原始位置和新位置之间的基因共同向后移动一位;
步骤3.3:遗传整数规划
为提高遗传算法的全局搜索能力,使用一种基于罚函数思想的排挤小生境方法为:将每一代个体都保留一半,与下一代进行比较;比较时,分别计算各个个体间的距离,并将其看做是个体间的相似程度;考虑到该问题染色体的编码特性,采用Hamming距离表示个体间的距离,在两条编码相同位置上,若携带的基因不同,Hamming距离则加1;若Hamming距离小于染色体编码长度的一半,则看做两条个体过于相似,二者中目标函数值较大的一个个体需将其函数值乘以一个较大的罚系数,以此类推,最后将函数值最优的结果保留下来,形成新的种群,继续迭代;为保证前后两段染色体均保持多样性,对前后两段染色体分别进行判断,在两条染色体中,只要有一段染色体过于相似,则看做两条染色体整体过于相似;
遗传整数规划方法流程为:
1)应用双段染色体编码方式,生成初始种群;
2)保留种群数量一半的个体,用于与后代进行比较;
3)对种群分别进行选择,交叉,变异操作,得到下一代种群;
4)将之前保留的个体与下一代种群合并,两两进行比较,对其中目标函数值较大的个体乘以罚系数;
5)将处理后的个体按照目标函数值从小到大排列,选出其中最小的个体作为新的种群继续迭代,直至达到最大迭代次数;
步骤4:基于第一层重构所得到的聚类结果,进行第二层重构
在第二层重构中,需对第一层重构所得到的每个聚类进行进一步的重构,第二层重构所用的算法与第一层重构相同;若第一层重构得到的某一聚类非最优聚类,则第二层重构能够将其进一步分解为更优的聚类;第一层重构得到的某一聚类已无法再进行分解,则该聚类内的联系信息流量不变,不会影响设计结构矩阵的联系信息流量总和;考虑到每个聚类中元素个数较少,第二层重构中算法的全局收敛性以及求解效率相较于第一层重构都会大幅提升,因此在进行第二层重构时只需令算法迭代很少的代数即可保证找到最优聚类方案;对每个聚类都进行检查之后,将每个聚类所优化的结果相加,则得到最优的联系信息流量总和以及最优的重构方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610041880.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种含可再生能源的微网鲁棒多目标运行优化方法
- 下一篇:一种纵向进钞点钞机