遗传算法中种群个体初始化的方法及装置
技术领域
本发明涉及一种遗传算法中种群个体初始化的方法及装置,属于机器人校准
技术领域
。背景技术
遗传算法是计算数学中用于解决最佳化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。遗传算法通常实现方式为一种计算机模拟,对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。
种群的初始化对遗传算法的收敛性至关重要,同样会影响寻找优良种群个体的速度,高质量的初始种群个体对解决遗传算法搜索能力差的问题有很好的帮助作用,大量的种群初始化方法都是随机产生的,比如基于通过“种子值”得到的伪随机数(PRNG)的方法和基于混沌发生器的方法等。随机策略一定会使得初始的种群个体质量很难全部保持在高水平,同时全部的种群个体也不能保证可以覆盖到全部的搜索区域,因此算法往往会需要更多迭代次数、更多时间才能寻找到前景空间。
针对随机初始化出现的低质量种群个体的问题,人们通过在初始化种群的过程中引入局部搜索相关算法和专业的统计学科的采样方法等,创造了许多新的种群初始化方法。其中Bajer和Brest等人通过聚类和Cauchy变异,视图识别接近搜索区域中的有较好前景的部分,并在该部分附近生成相对较好的解决方案,对高维的种群初始化方法也有一定的借鉴意义,能提供一个相对良好的起始位置;Poikolainen和Neri等人提出了一种智能的种群初始化差异演化框架,即基于簇的种群初始化,使用了随机生成、局部搜索、聚类等技术,提高了算法性能;Elsayed Saber和Sarker Ruhul等人提出了一种基于序列的初始化方法,提高了初始个体在搜索空间上的覆盖率,可以相对提高得到最优解的机会。
但是现存种群初始化算法存在以下缺点:1)算法复杂度较高,例如使用反向学习的种群初始化方法,需要所有个体的适应度函数值的支持,才能选出最优的初始种群个体,这当然需要额外的大量计算;2)随机法虽然操作简单,算法复杂度低,但随机得到的初始种群个体的质量会影响到遗传算法在后续迭代过程中的性能表现;3)基于序列的种群初始化产生的初始种群个体虽然保证了全体搜索空间的覆盖,但这些初始种群个体之间的质量是差别很大的,别没有对优质个体和劣质个体进行筛选,因此种群中的独立的劣质个体所占用的搜索资源极有可能是浪费的。
发明内容
为了解决上述问题,本发明提出了一种遗传算法中种群个体初始化的方法及装置,能够进一步提高遗传算法的性能。
本发明解决其技术问题采取的技术方案是:
第一方面,本发明实施例提供的一种遗传算法中种群个体初始化的方法,包括以下步骤:
基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体;
基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体;
对优化后的初始个体进行聚合处理;
对聚合处理后的初始个体进行聚类处理构建初始种群。
作为本实施例一种可能的实现方式,所述基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体,包括:
将所求函数边界的平面空间正交等分成m*m,得到m*m个正交均匀覆盖解,m为正整数;
对初始化的种群个体设置均匀设计表,均匀设计表为Um*(mn),其中,x为初始化的种群个体,n=INT(x)*2+1;
将整体搜索空间按照均匀设计表划成m*n个子空间,和该子空间的中心相近的正交的初始化个体作为初始种群个体的数据。
作为本实施例一种可能的实现方式,所述基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体,包括:
计算出每个初始种群的目标函数值f(xi),然后计算其相邻的十字方向上其它各点的值f(j),j∈(1,2,3,4);
如果有一点的函数值更优则表示搜索成功,那么xi变为更优的点坐标,且下次搜索时以最新的点坐标为中心,新步长=旧步长*加速变量α扩大搜索范围,α≥1,如果没有找到这样的点则表示搜索失败,仍以xi为中心,新步长=旧步长*缩减率β缩小搜索范围,0<β<1;
重复上述搜索操作,直至步长小于搜索精度ε为止。
作为本实施例一种可能的实现方式,所述对优化后的初始个体进行聚合处理,包括:
确定两个距离T1和T2,T1>T2;在优化后的初始个体中的随机取出一个个体xi作为一个canopy中心,计算个体集中其他个体到该canopy中心的距离d,将d<T2的从个体集中移除,T2<d<T1的划到canopy中,重复操作直到个体集为空为止。
作为本实施例一种可能的实现方式,所述对聚合处理后的初始个体进行聚类处理构建初始种群,包括:
根据canopy中心确定K-means方法的中心;
计算每个样本个体到各个质心的距离;
根据距离最近的质心确定样本的簇标记;
将所有样本配置到各个簇中;
更新每个簇的质心,所述质心为该簇包含的所有样本的均值;
循环迭代以上过程,直到所有子部分的中心都不再变化;或者达到别的设定停止条件。
第二方面,本发明实施例提供的一种遗传算法中种群个体初始化的装置,包括:
均匀设计模块,用于基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体;
优化模块,用于基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体;
聚合模块,用于对优化后的初始个体进行聚合处理;
聚类模块,用于对聚合处理后的初始个体进行聚类处理构建初始种群。
作为本实施例一种可能的实现方式,所述均匀设计模块,包括:
空间正交模块,用于将所求函数边界的平面空间正交等分成m*m,得到m*m个正交均匀覆盖解,m为正整数;
设计表设置模块,用于对初始化的种群个体设置均匀设计表,均匀设计表为Um*(mn),其中,x为初始化的种群个体,n=INT(x)*2+1;
空间划分模块,用于将整体搜索空间按照均匀设计表划成m*n个子空间,和该子空间的中心相近的正交的初始化个体作为初始种群个体的数据。
作为本实施例一种可能的实现方式,所述优化模块,具体用于:
计算出每个初始种群的目标函数值f(xi),然后计算其相邻的十字方向上其它各点的值f(j),j∈(1,2,3,4);
如果有一点的函数值更优则表示搜索成功,那么xi变为更优的点坐标,且下次搜索时以最新的点坐标为中心,新步长=旧步长*加速变量α扩大搜索范围,α≥1,如果没有找到这样的点则表示搜索失败,仍以xi为中心,新步长=旧步长*缩减率β缩小搜索范围,0<β<1;
重复上述搜索操作,直至步长小于搜索精度ε为止。
作为本实施例一种可能的实现方式,所述聚合模块具体用于:
确定两个距离T1和T2,T1>T2;在优化后的初始个体中的随机取出一个个体xi作为一个canopy中心,计算个体集中其他个体到该canopy中心的距离d,将d<T2的从个体集中移除,T2<d<T1的划到canopy中,重复操作直到个体集为空为止。
作为本实施例一种可能的实现方式,所述聚类模块具体用于:
根据canopy中心确定K-means方法的中心;
计算每个样本个体到各个质心的距离;
根据距离最近的质心确定样本的簇标记;
将所有样本配置到各个簇中;
更新每个簇的质心,所述质心为该簇包含的所有样本的均值;
循环迭代以上过程,直到所有子部分的中心都不再变化;或者达到别的设定停止条件。
本发明实施例的技术方案可以具有的有益效果如下:
本发明实施例的技术方案结合了初始种群个体的创建、优化、合并,使得新的种群个体以仅仅增加迭代前初始化时间为代价,使得迭代过程的时间消耗、适应度函数、收敛性等方面与已有初始化方法相比更有优势,进一步提高了遗传算法的性能。
本发明实施例的技术方案通过将试验设计方法中的均匀设计方法引入种群初始化中,保证了种群个体在保证搜索空间粒度不降低并保证对搜索空间全覆盖情况下依然可以控制种群个体数量不激增,并且聚类合并高度相似的种群个体,也减轻了空间搜索的负担使得遗传算法的迭代过程中时间更短;初始化过程中的局部搜索提高了之后遗传迭代过程中空间搜索的效率,使得本文算法更有效、稳定的收敛于函数最优值。
附图说明
:图1是根据一示例性实施例示出的一种遗传算法中种群个体初始化的方法的流程图;
图2是根据一示例性实施例示出的一种遗传算法中种群个体初始化的装置的结构图;
图3是根据一示例性实施例示出的一种各试验函数迭代初期的收敛情况示意图;
图4是根据一示例性实施例示出的一种各试验函数迭代中期的收敛情况示意图;
图5是根据一示例性实施例示出的一种各试验函数迭代后期的收敛情况示意图。
具体实施方式
下面结合附图与实施例对本发明做进一步说明:
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例1
图1是根据一示例性实施例示出的遗传算法中种群个体初始化的方法的流程图。如图1所示,本发明实施例提供的一种遗传算法中种群个体初始化的方法,包括以下步骤:
基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体;
基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体;
对优化后的初始个体进行聚合处理;
对聚合处理后的初始个体进行聚类处理构建初始种群。
本实施例通过将试验设计方法中的均匀设计方法引入种群初始化中,保证了种群个体在保证搜索空间粒度不降低并保证对搜索空间全覆盖情况下依然可以控制种群个体数量不激增;之后通过局部搜索(如步进搜索),对初始种群个体进行优化,改变低质量的个体,加快收敛速度;然后通过粗聚类(canopy)和细聚类(K-means)算法,在不影响遗传算法性能的情况下降低遗传算法的计算量。
作为本实施例一种可能的实现方式,所述基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体,包括:
将所求函数边界的平面空间正交等分成m*m,得到m*m个正交均匀覆盖解,m为正整数;
对初始化的种群个体设置均匀设计表,均匀设计表为Um*(mn),其中,x为初始化的种群个体,n=INT(x)*2+1;
将整体搜索空间按照均匀设计表划成m*n个子空间,和该子空间的中心相近的正交的初始化个体作为初始种群个体的数据。
种群初始个体对整体搜索空间的覆盖是和试验设计方法中的试验点均匀分散的思想类似的,因此,实验设计方法中保证实验点均匀性的均匀设计方法就是可借鉴的。在多水平试验来满足大的条件范围的情况时,均匀设计仍能够使得试验次数保持缓慢增加,只需要试验次数等同于因素的情况数即可基本满足抽样要求。因此,选择均匀设计方法指导种群初始化的过程可以在保证对搜索空间均匀覆盖条件下尽量控制初始化的种群数量,减轻后续操作的运算负担。
作为本实施例一种可能的实现方式,所述基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体,包括:
计算出每个初始种群的目标函数值f(xi),然后计算其相邻的十字方向上其它各点的值f(j),j∈(1,2,3,4);
如果有一点的函数值更优则表示搜索成功,那么xi变为更优的点坐标,且下次搜索时以最新的点坐标为中心,新步长=旧步长*加速变量α扩大搜索范围,α≥1;如果没有找到这样的点则表示搜索失败,仍以xi为中心,新步长=旧步长*缩减率β缩小搜索范围,0<β<1,即当四周没有更优的点坐标时,xi维持原坐标,即本次搜索前的坐标;
重复上述搜索操作,直至步长小于搜索精度ε为止。
搜索空间被上节生成的初始种群个体均分完毕后,从各子搜索空间中心的初始个体开始,利用类似Hookie算法进行局部搜索,选择局部较优的个体替代均匀设计方法生成的初始个体。
以其中一个初始个体的局部搜索过程做例子,具体的局部搜索过程大致如下:
[1]设初始的种群个体x1的搜索空间为D,初始步进长度为δ,步进的加速变量为α(α≥1),缩减率β(0<β<1),步进搜索精度为ε(ε>0),ej=(0,…,0,1,0,…,0)T,j=1,2,…,n.令y1=x1,k=1,j=1.
[2]轴向搜索。参考点从初始点yj开始,沿着x的分量的方向以设定好的步进长度δ寻找优于当前种群个体的个体,令
[4]在x轴的的各个方向上的步进搜索完成后,假如f(yn+1)<f(xk),则进行步进搜索,否则重新调整步进距离再进行搜索。
[5]搜索方式。以yn+1=xk+1为条件,令y1=xk+1+α(xk+1-xk)成立下的种群个体作为新的参考个体,令k:=k+1,j=1。将得到的新的参考个体确定完后转到2)继续搜索。
[6]调整步进距离。如果δ≤ε,就结束搜索,xk即为优化后的种群个体;否则,令δ:=βδ,y1=xk,xk=xk+1,同时让k:=k+1,j=1,继续转[2]进行搜索。
将之前均匀设计得到的种群个体在自己对应的子搜索空间内进行局部搜索,得到较优的个体,代替初始的均匀设计个体,为同一前景空间的种群聚合做准备。
作为本实施例一种可能的实现方式,所述对优化后的初始个体进行聚合处理,包括:
确定两个距离T1和T2,T1>T2;在优化后的初始个体中的随机取出一个个体xi作为一个canopy中心,计算个体集中其他个体到该canopy中心的距离d,将d<T2的从个体集中移除,T2<d<T1的划到canopy中,重复操作直到个体集为空为止,即全部划分完成。
在进行类K-means方法进行聚类时,聚类中心的选择会影响到聚类的速度和效果,因此需要进行初步的聚类为下一节的聚类做一个聚类中心的选择参考。
Canopy就属于一种粗聚类方法,通过对点之间距离的计算和比较将数据分为很多子canopy,该算法精度不高,可作为下一节的前置方法。两个距离T1和T2的选择大致可通过交叉验证方式决定。在遗传算法的种群初始化过程中可将基因的相似度作为canopy方法中的距离指标。
作为本实施例一种可能的实现方式,所述对聚合处理后的初始个体进行聚类处理构建初始种群,包括:
根据canopy中心确定K-means方法的中心;
计算每个样本个体到各个质心的距离
根据距离最近的质心确定样本的簇标记
将所有样本配置到各个簇中
更新每个簇的质心,所述质心为该簇包含的所有样本的均值
循环迭代以上过程,直到所有子部分的中心都不再变化;或者达到别的设定停止条件,如迭代次数到达最大值、平方差小于要求值等等。
K-means算法簇是发现给定数据集合的方法簇,可对数据集进行聚类,从而得到我们想要的前景空间,合并类似的种群初始个体,减轻后续遗传算法每轮迭代的计算量。距离在遗传算法中可以用基因间的相似性来具体量化。标准的K-means算法由于K值需要调参、对初始质心敏感等问题,一般使用改进的类K-means算法,质心的问题前几节已经解决了,因此使用标准的K-means方法就可以得到不错的结果。
如图2所示,本发明实施例提供的一种遗传算法中种群个体初始化的装置,包括:
均匀设计模块,用于基于均匀设计对函数的边界进行处理,生成均匀覆盖初始个体;
优化模块,用于基于局部搜索对生成的初始个体进行优化,生成优化后的初始个体;
聚合模块,用于对优化后的初始个体进行聚合处理;
聚类模块,用于对聚合处理后的初始个体进行聚类处理构建初始种群。
作为本实施例一种可能的实现方式,所述均匀设计模块,包括:
空间正交模块,用于将所求函数边界的平面空间正交等分成m*m,得到m*m个正交均匀覆盖解,m为正整数;
设计表设置模块,用于对初始化的种群个体设置均匀设计表,均匀设计表为Um*(mn),其中,x为初始化的种群个体,n=INT(x)*2+1;
空间划分模块,用于将整体搜索空间按照均匀设计表划成m*n个子空间,和该子空间的中心相近的正交的初始化个体作为初始种群个体的数据。
作为本实施例一种可能的实现方式,所述优化模块,具体用于:
计算出每个初始种群的目标函数值f(xi),然后计算其相邻的十字方向上其它各点的值f(j),j∈(1,2,3,4);
如果有一点的函数值更优则表示搜索成功,那么xi变为更优的点坐标,且下次搜索时以最新的点坐标为中心,新步长=旧步长*加速变量α扩大搜索范围,α≥1,如果没有找到这样的点则表示搜索失败,仍以xi为中心,新步长=旧步长*缩减率β缩小搜索范围,0<β<1;
重复上述搜索操作,直至步长小于搜索精度ε为止。
作为本实施例一种可能的实现方式,所述聚合模块具体用于:
确定两个距离T1和T2,T1>T2;在优化后的初始个体中的随机取出一个个体xi作为一个canopy中心,计算个体集中其他个体到该canopy中心的距离d,将d<T2的从个体集中移除,T2<d<T1的划到canopy中,重复操作直到个体集为空为止。
作为本实施例一种可能的实现方式,所述聚类模块具体用于:
根据canopy中心确定K-means方法的中心;
计算每个样本个体到各个质心的距离
根据距离最近的质心确定样本的簇标记
将所有样本配置到各个簇中
更新每个簇的质心,所述质心为该簇包含的所有样本的均值
循环迭代以上过程,直到所有子部分的中心都不再变化;或者达到别的设定停止条件。
利用本发明所述装置进行遗传算法中种群个体初始化,以CEC2017函数集中的单峰函数Zakharoy:y=x1 2+x2 2+(0.5(x1+x2))2+(0.5(x1+x2)4为例,该函数最值为最小值0。
1.均匀设计方法
首先,由所求函数的边界x1∈[-5,10]、x2∈[-5,10],将解的平面空间正交等分成100*100,得到正交均匀覆盖解(10000个)部分个体为:
[-4.92500000,-4.92500000][-4.92500000,-4.77500000][-4.92500000,-4.62500000][-4.92500000,-4.47500000][-4.92500000,-4.32500000][-4.92500000,-4.17500000][-4.92500000,4.02500000][4.92500000,3.87500000][4.92500000,1.22500000]...略…[9.92500000,8.12500000][9.92500000,8.27500000][9.92500000,8.42500000][9.92500000,8.57500000][9.92500000,8.72500000][9.92500000,8.87500000][9.92500000,9.02500000][9.92500000,9.17500000][9.92500000,9.32500000][9.92500000,9.47500000][9.92500000,9.62500000][9.92500000,9.77500000][9.92500000,9.92500000]
由于正交等分的数据量太大,因此这里设定使用50个个体作为初始化的种群个体,则通过查询均匀设计表的相关数据可得可使用U17*(175)表(表1)作为均匀设计表,配合对应的使用表(表2),使用s=3的情况,即使用1、2、4列,共3列,共3*17=51个划分空间,即51个初始种群个体,最接近计划使用的50个初始种群个体数。将整体搜索空间按照均匀设计表划成17*5个子空间,和该子空间的中心相近的正交的初始化个体即可作为初始种群个体的数据。
表1.U17 *(175)均匀设计表
表2.U17 *(175)使用表
由均匀设计取正交结果的1、2、4列结果得到如下初始种群个体(51个)的坐标:
[-4.92500000,-4.92500000][-4.92500000,-4.04300000][-4.92500000,-3.16100000][-4.92500000,-2.27900000][-4.92500000,-1.39700000][-4.92500000,-0.51500000][-4.92500000,0.36700000][-4.92500000,1.24900000][-4.92500000,2.13100000][-4.92500000,3.01300000][-4.92500000,3.89500000][-4.92500000,4.77700000][-4.92500000,5.65900000][-4.92500000,6.54100000][-4.92500000,7.42300000][-4.92500000,8.30500000][-4.92500000,9.18700000][-4.92500000,10.06900000][-1.92500000,-4.92500000][-1.92500000,-4.04300000][-1.92500000,-3.16100000][-1.92500000,-2.27900000][-1.92500000,-1.39700000][-1.92500000,-0.51500000][-1.92500000,0.36700000][-1.92500000,1.24900000][-1.92500000,2.13100000][-1.92500000,3.01300000][-1.92500000,3.89500000][-1.92500000,4.77700000][-1.92500000,5.65900000][-1.92500000,6.54100000][-1.92500000,7.42300000][-1.92500000,8.30500000][-1.92500000,9.18700000][-1.92500000,10.06900000][4.07500000,-4.92500000][4.07500000,-4.04300000][4.07500000,-3.16100000][4.07500000,-2.27900000][4.07500000,-1.39700000][4.07500000,-0.51500000][4.07500000,0.36700000][4.07500000,1.24900000][4.07500000,2.13100000][4.07500000,3.01300000][4.07500000,3.89500000][4.07500000,4.77700000][4.07500000,5.65900000][4.07500000,6.54100000][4.07500000,7.42300000]。
2.局部搜索(本实施例使用步进搜索)
步进搜索就是让每个点在自变量的方向上,选择临近范围内比当前点的结果优的点作为下一次寻找的当前点,通过步进长度L<步进精度ε=0.0005作为局部寻优迭代过程的结束条件。
所有的初始点已经确定,即上步通过均匀设计方法得到的51个种群个体,然后由于有两个自变量,所以搜索方向就是沿着两个自变量的方向以当前设定的步长L=0.0075前进,即按解平面上的十字方向搜索。
具体步骤为:
①计算出每个初始种群(51个点)的目标函数值f(xi),然后计算其相邻的十字方向其它各点的值f(j),j∈(1,2,3,4)。
②如果有一点的函数值更优则表示搜索成功,那么xi变为更优的点坐标,且下次搜索时以最新的点坐标为中心,新步长=旧步长*加速变量α=1.5(α≥1),扩大搜索范围,若没有找到这样的点则表示搜索失败,仍以xi为中心,新步长=旧步长*缩减率β=0.5(0<β<1),缩小搜索范围。
③重复②的操作,结果到终止条件(步长<ε)为止。
例如其中一个种群个体为[-4.925,-4.925],它相邻十字方向各点值为659.20、663.00、659.20、663.00,最优值之一坐标为当前值[x1,x2];则(新)L=(旧)L*0.5,继续重复第一步,循环往复,若相邻十字方向各点其中优于中心点,则(新)L=(旧)L*1.5,直到L<=0.0005停止。
每个种群初始点通过以上步进搜索步骤,得到如下数据,其中第一个值为函数值,第二第三个值为x1、x2。
[627.52439578,-4.85750000,-4.85750000][439.36882645,-4.85750000,-3.97550000][297.73775423,-4.85750000,-3.08600000][196.32514961,-4.85750000,-2.20400000][126.51258548,-4.85750000,-1.32950000][80.02730675,-4.85750000,-0.44000000][52.59409069,-4.85750000,0.43450000][38.28930633,-4.85750000,1.31650000][33.30855899,-4.85750000,2.20600000][33.99673248,-4.85750000,2.93800000][38.52922346,-4.85750000,3.82000000][45.71019186,-4.85750000,4.70200000][54.92572376,-4.85750000,5.58400000][66.46965392,-4.85750000,6.46600000][81.54356568,-4.85750000,7.34800000][102.14396265,-5.00000000,8.23000000][130.12435876,-5.00000000,9.11200000][169.99038223,-5.00000000,9.99400000][165.39457950,-1.85750000,-4.85750000][100.11244267,-1.85750000,-3.97550000][56.40982784,-1.85750000,-3.08600000][29.43879481,-1.85750000,-2.20400000][14.20486995,-1.85750000,-1.32950000][6.70494708,-1.85750000,-0.44000000][4.40159984,-1.85750000,0.43450000][4.95901593,-1.85750000,1.17400000][7.68738985,-1.85750000,2.05600000][12.45920845,-1.85750000,2.93800000][19.93264094,-1.85750000,3.82000000][31.26536369,-2.00000000,4.70200000][48.70453648,-2.00000000,5.58400000][75.65852299,-2.00000000,6.46600000][116.26982688,-2.00000000,7.34800000][175.58870040,-2.00000000,8.23000000][259.57314446,-2.00000000,9.11200000][375.08890857,-2.00000000,9.99400000][39.81292502,4.00000000,-4.85750000][31.80475034,4.00000000,-3.97550000][25.77586290,4.00000000,-3.08600000][22.31430741,4.00000000,-2.20400000][22.31711251,4.00000000,-1.47200000][27.70591935,4.00000000,-0.59000000][41.89951546,4.00000000,0.29200000][68.86132482,4.00000000,1.17400000][113.46252004,4.00000000,2.05600000][181.48202235,4.00000000,2.93800000][279.60650161,4.00000000,3.82000000][415.43037630,4.00000000,4.70200000][597.45581353,4.00000000,5.58400000][835.09272904,4.00000000,6.46600000][1138.65878716,4.00000000,7.34800000][1519.37940090,4.00000000,8.23000000][1989.38773185,4.00000000,9.11200000][2561.72469024,4.00000000,9.99400000]。
3.粗聚类
粗聚类使用canopy算法:
首先设定两个距离T1、T2分别为6和3,然后从第二步结果中随机选择一个初始个体如[627.52439578,-4.85750000,-4.85750000]作为第一个canopy的质心并从个体集里删除;然后再从结果集里随机选择一个个体如[116.26982688,-2.00000000,7.34800000],计算其到所有质心的距离,这里只有一个质心,两者距离超过T1,因此第二个个体形成一个新的质心并从个体集中删除;再取一个个体,若最小距离小于T2,则加入该质心所在的簇,并从个体集中删除,若大于T2,则形成新的质心并从个体集中删除,若距离在T1T2之间,则只加入簇不删除,循环往复,直到种群个体集空为止。
由上述步骤可将第二步的个体集分为11簇:
[196.32514961,-4.85750000,-2.20400000][297.73775423,-4.85750000,-3.08600000][627.52439578,-4.85750000,-4.85750000][52.59409069,-4.85750000,0.43450000][80.02730675,-4.85750000,-0.44000000][439.36882645,-4.85750000,-3.97550000][126.51258548,-4.85750000,-1.32950000];
[4.95901593,-1.85750000,1.17400000][12.45920845,-1.85750000,2.93800000][6.70494708,-1.85750000,-0.44000000][14.20486995,-1.85750000,-1.32950000][19.93264094,-1.85750000,3.82000000][7.68738985,-1.85750000,2.05600000][4.40159984,-1.85750000,0.43450000];
[1519.37940090,4.00000000,8.23000000][1989.38773185,4.00000000,9.11200000][1138.65878716,4.00000000,7.34800000][2561.72469024,4.00000000,9.99400000];
[68.86132482,4.00000000,1.17400000][41.89951546,4.00000000,0.29200000][113.46252004,4.00000000,2.05600000];
[45.71019186,-4.85750000,4.70200000][54.92572376,-4.85750000,5.58400000][81.54356568,-4.85750000,7.34800000][31.26536369,-2.00000000,4.70200000][48.70453648,-2.00000000,5.58400000][38.52922346,-4.85750000,3.82000000][33.99673248,-4.85750000,2.93800000][33.30855899,-4.85750000,2.20600000][66.46965392,-4.85750000,6.46600000];
[22.31430741,4.00000000,-2.20400000][31.80475034,4.00000000,-3.97550000][25.77586290,4.00000000,-3.08600000][27.70591935,4.00000000,-0.59000000][22.31711251,4.00000000,-1.47200000][39.81292502,4.00000000,-4.85750000];
[259.57314446,-2.00000000,9.11200000][75.65852299,-2.00000000,6.46600000][116.26982688,-2.00000000,7.34800000][175.58870040,-2.00000000,8.23000000][375.08890857,-2.00000000,9.99400000];
[415.43037630,4.00000000,4.70200000][597.45581353,4.00000000,5.58400000][181.48202235,4.00000000,2.93800000][279.60650161,4.00000000,3.82000000][835.09272904,4.00000000,6.46600000];
[169.99038223,-5.00000000,9.99400000][102.14396265,-5.00000000,8.23000000][130.12435876,-5.00000000,9.11200000];
[100.11244267,-1.85750000,-3.97550000][165.39457950,-1.85750000,-4.85750000][56.40982784,-1.85750000,-3.08600000][29.43879481,-1.85750000,-2.20400000];
[38.28930633,-4.85750000,1.31650000]。
上述11簇为第四步细聚类的基础。
4.细聚类(K-Means算法)
a)根据前一节初步聚合得到的中心(canopy中心)确定K-means方法的中心;
b)计算每个样本个体到各个质心的距离
c)根据距离最近的质心确定样本的簇标记
d)将所有样本配置到各个簇中
e)更新每个簇的质心,所述质心为该簇包含的所有样本的均值
f)循环迭代以上过程,直到所有子部分的中心都不再变化;或者达到别的设定停止条件(如迭代次数到达最大值、平方差小于要求值等等)。
通过上步结果的11个聚类簇,确定K-means方法的其中初始中心为:
[196.32514961,-4.85750000,-2.20400000],
[4.95901593,-1.85750000,1.17400000],
[1519.37940090,4.00000000,8.23000000],
[68.86132482,4.00000000,1.17400000],
[45.71019186,-4.85750000,4.70200000],
[22.31430741,4.00000000,-2.20400000],
[259.57314446,-2.00000000,9.11200000],
[415.43037630,4.00000000,4.70200000],
[169.99038223,-5.00000000,9.99400000],
[100.11244267,-1.85750000,-3.97550000],
[38.28930633,-4.85750000,1.31650000],将其他个体配置到最近的质心所在的簇,变更质心为簇内个体的均值数据,循环迭代,直到质心不变,可得最终质心为:
[196.73681098,-4.85750000,-2.20828571][5.08419293,-1.85750000,1.23614286][1742.42882019,4.00000000,8.67100000][68.86132482,4.00000000,1.17400000][41.12583210,-4.22250000,4.81666667][23.88051615,4.00000000,-2.69750000][175.58870040,-2.00000000,8.23000000][415.43037630,4.00000000,4.70200000][130.12435876,-5.00000000,9.11200000][75.85786835,-1.85750000,-3.53075000][38.28930633,-4.85750000,1.31650000]。
以上即为初始化完成时的种群个体。
本实施例可以应用在车间调度中,用在遗传算法的常规车间调度的工序映射成的初始种群个体的染色体生成方面。根据实际,自变量取值可变为离散的(如工序编号、工件编号);在局部搜索时,为了保证步长的收缩和扩张,步长可固定为2,最小步长设为1;在粗聚类时T2可设为工序编号最大差值*0.2结果取整的值,T1设为T2的两倍即可,各种群个体染色体之间的距离量化可使用基因的相似程度(如两个染色体之间对应基因的数字差值之和等);细聚类时同样如粗聚类,运算过程和结果注意根据实际情况取整即可。
为了验证本发明提出的遗传算法初始个体生成方法的有效性,将该初始化方法与现有的初始个体生成方法从运行时间、适应度函数和收敛性等方面对比,实验进行控制变量,设定相同的交叉变异概率、最大遗传代数、种群数量大小、个体的基因个数,每种算法运行多次消除误差。
本实验使用CEC2017函数集进行测试,为了提高效率,本实验选择其中10个函数进行测试,其中包括3个单极值函数,2个多极值函数和5个混合、组合函数。
通过已有文献对遗传算法常见初始化方法比较的研究,这里选择PICCM、CBPI、SBDI作为对照的初始化方法。
表3为不同种群初始化方法下的遗传算法的适应度函数的均值和标准差,表4为各试验函数在各阶段的平均收敛情况,由于某些适应度函数的取值过大,为了便于对照,使用其他函数(如对数函数等)对数值进行了压缩。
表3:适应度函数的均值与标准差
表4:各试验函数在各阶段的平均收敛情况
由图3-5可知,使用本发明算法的遗传算法种群初始化方法,在迭代初期均比其他算法具有更优的适应度函数。
表5:迭代过程时间的均值与标准差
表5为本发明所述算法和CBPI、PICCM、SBDI初始化算法的迭代过程时间。分析可知,本发明提出的初始化算法,有效的减少了遗传算法在迭代过程中的时间消耗,标准差也更优。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种DNA计算的数据处理方法