一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法

文档序号:8943516阅读:690来源:国知局
一种基于n邻近Lipschitz支撑面的广义增强群体全局优化方法
【技术领域】
[0001] 本发明涉及一种智能优化、计算机应用领域,尤其涉及的是,一种基于η邻近 Lipschitz支撑面的广义增强群体全局优化方法。
【背景技术】
[0002] 近年来,智能群体优化算法在经济、科学、工程等领域等到了广泛应用。典型的群 体优化算法包括差分进化算法(DE)、遗传算法(GA)、粒子群算法(PSO)和蚁群算法(ACO) 等,这些算法不需要问题的导数信息,对目标函数的形态没有要求,而且适用范围广、鲁棒 性强,因此在电力系统、化工、通信、机械工程和生物信息学等领域得到了广泛应用。然而, 这些算法面临的一个共同的问题就是求解时需要大量的目标函数评价次数,从而导致较高 的计算代价,尤其对于一些实际应用问题,由于其仿真模型运行时间的限制,对目标函数评 价一次极其费时。例如,一个2维粗水动力模型,运行一次需要1分钟左右;而对于一个完 整的3维水动力模型,运行一次需要几分钟,甚至达到几小时。因此,如何减少群体算法在 优化求解时所需的目标函数评价次数极其重要。
[0003] 为了降低群体算法的计算代价,不少学者在群体算法中引入代理模型来代替计算 代价昂贵的实际目标函数评价。由于代理模型的建立和估计所需的计算代价要远远低于直 接对目标函数评价所需的计算代价,因此能够有效的降低群体算法的计算代价。然而,由于 不同的问题有着不同的目标函数曲面,任一代理模型不可能适用于所有问题,因此,代理模 型的选择是一个富有挑战性的工作,选择不恰当会直接影响算法的性能。
[0004] 另外,还有一些学者在群体算法中引入k-近邻预测方法。在算法进化前期,对所 有的个体进行目标函数评价,并将这些个体记录为训练样本,进而在进化后期,根据新个体 的近邻样本个体的目标函数值来估计新个体的目标函数值,从而减少一些不必要的目标函 数评价次数,同时根据估计值对种群个体进行排名,并对排名靠前的部分个体进行目标函 数评价,并加入样本中。k_近邻预测方法结构简单,但是需要耗费很大的内存来保存不断增 长的训练样本,从而导致极高的空间复杂度,因此,k-近邻预测方法并不适用于高维优化问 题。
[0005] 因此,现有全局优化方法在计算代价、模型选择、空复杂度等方面存在着缺陷,需 要改进。

【发明内容】

[0006] 为了克服现有的全局优化方法计算代价、模型选择和空间复杂度方面的不足,本 发明基于η邻近Lipschitz估计思想,提出一种计算代价和空间复杂度较低,且不需要进行 模型选择和样本训练的基于η邻近Lipschitz支撑面的广义增强群体全局优化方法。
[0007] 本发明解决其技术问题所采用的技术方案是:
[0008] -种基于η邻近Lipschitz支撑面的广义增强群体全局优化方法,假设问题维数 为N,所述方法包括以下步骤:
[0009] 1)初始化:设置常数C,种群规模NP,交叉概率Cr,增益常数F,各变量的下界 &]和 上界b,,置无效区域IR为空,η邻近个体数目η ;进化代数g = 0,误差值ε,在各变量定义 域范围内随机生成初始种群P = lx1'8, x2'g,...,xNp'g},x1>g,i = 1,2,…,Np表示第g代种群 中的第i个个体;
[0010] 2)建立初始支撑矩阵:
[0011] 2.1)根据公式⑴对N+1维单位单纯形区域S的各顶点进行转换得到点
[0013] 其中~为$的下界,4为:*):的上界,其中#=(xK,…为点 # =〇<,χ3\···,.<)在S中的坐标值,上标k表示单位单纯形的第k个顶点,N为问题维数;
[0014] 2.2)根据公式⑵计算X' \X' 2,...,x' N+1的支撑向量",^..,严^式中 f (Xk)表示Xk对应的目标函数值;
[0015]
[0016] 其中,C为足够大的常数,其中
[0017] 2.3)建立初始矩阵支撑矩阵1^={11,12,...,1# 1厂,支撑矩阵1^如公式(3);
[0018]
(3)
[0019] 其中,L k2,…,kN+1为支撑矩阵的行标,1,2,…,N+1为支撑矩阵的列标, f 二必,々,…,'),i = 1,2,...,N+1,/;-,,i = 1,2,...,N+1,j = 1,2,...,N+1 表示支持矩阵 L的第Ic1行第j列的元素;
[0020] 3)判断是否满足终止条件:计算出当前群体中的最优个体Xtest和最差个体X WOTSt, 如果满足终止条件|f(xtest)-f(xw" st) I彡ε,其中,ε为允许误差,则保存结果并退出,否则 进入步骤4);
[0021] 4)建立η叉树保存各下界估计值:以支撑矩阵L= {Ι1,〗2,...,^}为根建立树;
[0022] 5)对于种群中的每个目标个体? i = 1,2, "·,Νρ,执行交叉、变异操作产生新个 体 xtriai:
[0023] 5. 1)从种群中任意选取三个个体{xa'g, xb'g, xe'g| a, b, c e {1,2, · · ·,Np},a 辛 b 辛C,辛i},g表示进化代数,i为目标个体的索引;
[0024] 5. 2)根据公式⑷对执行变异操作,生成变异个体V1,
[0025] Vllg= xa'g+F · (Xblg-Xc'g) (4)
[0026] 5. 3)根据公式(5)执行交叉操作,生成新个体xt_1:
[0027]
[0028] 其中,Xtrial,,表示新个体X &lal的第j维元素,C表示第g代种群中第i个个体X1'g 的第j维元素,表示第g代种群中第i个变异个体v1>g的第j维元素 ,randb (0, 1)表示 为产生0到1之间的随机小数,rnbr(j)表示随机产生1到N之间的整数;
[0029] 6)判断新个体&31是否在无效区域中:根据公式(6)从树中找出包含X w的树 叶在节点TreeNode ;
[0030]
[0031] 其中,
分别表示所找的叶子节点矩阵中第k,行第j列 和第i列对应的元素,若所找叶子节点为无效区域对应的节点,且满足公式(6),则表明新 个体Xtola^含在无效区域IR中,因此抛弃此新个体X &lal,且直接进入下一次迭代;
[0032] 7)若新个体不在无效区域中,则选取新个体的η邻近个体,并建立支撑向量:
[0033] 7. 1)根据公式(7)选取新个体Xttia^ η邻近个体xk, k = 1,2,…,η,即与XttiaJii 离最近的η个个体;
[0034]
(7)
[0035] 7. 2)根据公式⑵计算Xk的支撑向量I k,其中
[0036] 7. 3)根据条件关系式(8) (9)更新树:
[0037] (β):
[0038] (9,
[0039] 其中,3表示存在;
[0040] 7. 3. 1)找出针对步骤7. 2构建的支撑向量Ik不满足条件(9)的叶子节点;
[0041] 7. 3. 2)用抄替换步骤7. 3. 1)中找到的叶子节点矩阵中的第i个支撑向量f· 从 而形成新的叶子节点;
[0042] 7. 3. 3)判断步骤7. 3. 2)中产生的新的叶子节点是否满足条件关系式(8),如果满 足,则保留,否则删除;
[0043] 7. 4)根据公式(10)计算出XttiaJZf在节点TreeNode的下界估计值7?.:
[0044]
(増
[0045] 其中max表示求最大值,min表示求最小值;@为第k个支撑向量Ik的第j维元 素;
[0046] 8)利用新个体的下界估计值瓦.《根据公式(11)指导种群更新,
[0047]
[0048] 其中,/CCt)表示第g代种群中最优个体C的目标函数值;
[0049] 9)如果JU 2/W)或者JL1 ,继续根据下界估计区域的极值信息排除部 分无效区域:
[0050] 9. 1)根据公式(12)计算出节点TreeNode所对应的下界估计区域的极小值dmin;
[0051]
[0052] 其中Trace (L)表示矩阵的迹,即正对角线元素之和,L为支撑矩阵;
[0053] 9. 2)如果dmin大于当前最优值f (X best),则将TreeNode所对应的区域视为无效区 域,并将其对应的支撑矩阵加入到IR中;
[0054] 10)如果新个体优于目标个体,则根据η邻近个体的下降方向和Lipschitz下界支 撑面的下降方向设计广义下降方向作局部增强,进行如下操作:
[0055] 10. 1)根据公式(13)计算出η邻近下降方向dnb,
[0056]
[0057] 其中,xBnb和X Wnb分别表示η邻近个体中的最优个体和最差个体;
[0058] 10. 2)根据公式(14)找出Lipschi
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1