2014全国建模(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3 改进的混合蛙跳算法训练 SVM
3.1 SFLA 算法
在一个D 维的目标搜索空间中,随机生成 P 只青蛙(解) 组成初始群体,第 i 只青蛙表示问题的解为x i =( x i 1,x i 2,…,x iD ) 。

青蛙个体按适应度值从优到劣排列,将整个群体分为 M 个子群体。

其中排名 第1 的青蛙分入第 1 子群体,排名第 2 的青蛙分入第2 子群体,第 M 只青蛙分入第 M 子群体,第 M +1 只青蛙分入第 1 子群体,第 M + 2 只青蛙分入第 2 子群体,依次类推,直到全部青蛙划分完毕。

每个子群体进行局部深度搜索,即在子群体的每次迭代中,首先确定当前迭代中子群体的最差个体 x ω、最好个体 x b 和全局最好个体 x g ,只对该子群体当前最差的个体x ω进行更新,更新策略为:
D i =rand() * (x b -x ω)( -D max ≤D i ≤D max ) (7)
new x ω = x ω + D i (8)
其中,rand( )是均匀分布在[0,1]之间的随机数; D max 表示青蛙所允许更新步长的最大值。

如new x ω的适应度值优于原来的x ω,则取代原来种群中的解。

如果没有改进,则用x g 取代x b 重复执行更新策略( 7) ( 8) 。

如果仍没有改进,则随机产生一个新的解取代原来的x ω。

重复这种更新操作,直至满足子群体的更新代数。

当所有子群体的局部深度搜索完成以后,将所有的青蛙个体重新混合排序并再次划分子群体,然后再进行局部深度搜索,如此反复直到满足混合迭代次数。

3.2 模拟退火算法
SA 算法的思想是由 Metropolis 在 1953 年提出的,它是一个全局最优算法,具有并行性,并且以概率 1 接近最优值。

SA 来源于固体退火过程,当固体的温度充分高时,内部粒子变为无序状, 内能较大,随着固体缓慢冷却,其内部粒子渐趋有序,内能逐渐减小; 在每个温度都会达到平衡态,最后在常温时达到基态,内能减为最小。

此算法将优化问题比拟成一个物理系统,将优化问题的目标函数比拟为物理系统的能量,通过模拟物理系统逐步降温以达到最低能量状态的退火过程而获得优化问题的全局最优解。

具体步骤如下:
(1)初始退火温度T k ( k =0),产生随机初始解X 。

(2)在温度T k 下重复执行如下操作,直至达到温度T k 的平衡状态:
在解 X 的领域中产生新的可行解 X';计算 X'的目标函数f( X')和X 的目标函数f( X) 的差值Δf; 依照概率min{1,exp(-Δf/T k ) }>rand( )接收X',其中rand( )表示[0, 1]内的随机数。

本文利用公式 x' = x +ηξ产生新解,式中η为扰动幅值参数,ξ为随机变量,一般服从正态分布。

SA 通过退火机制所得的子代,即随着温度的下降, 接受劣解的概率逐渐减小,从而提高算法的性能。

3.3改进的SFLA 算法在SVM 训练中的应用
SVM 训练的数学本质即为求解支持向量系数,适应度函数为
f(a i ) =12 y i y j L j =1a i a j K (x i ,x j )- a i L i =1 (9) 用改进的 SFLA 算法训练 SVM 基本流程如下:
(1)初始化蛙群,个体初始位置为[ 0, C']间的随意数,种群个体总数 N ,个体的维数m ,子种群个数M ,子群局部搜索迭代次数cyc ,退火的初始温度T ,温度冷却系数C ,扰动幅值η。

(2)计算每个个体的适应度值,规定若某个个体位置不满足 a i y i L i =1,则定义该个体的适应度值为1e8,否则保持适应度值不变。

(3)将当前所有个体的适应度值从优到劣排序,依次将个体划分到各子种群。

(4)利用SFLA 的更新策略,对子种群的最差个体进行更新,获得一个较优解X。

(5)利用SA 算法,产生新解X',利用退火机制比较X 和X'的质量,获得较优解。

(6)对该子种群适应度值排序,然后转步骤( 4) ,重复该更新策略,直至子种群内的迭代次数满足事先给定的要求cyc。

(7)当所有子种群完成了更新操作后,若当前最优个体满足收敛条件,则进化过程成功结束,返回全局最优解; 否则修改种群的退火温度,即令T = C* T,转步骤( 3) 。

相关文档
最新文档