寻优算法笔记

个人对寻优算法的理解,就是存在一个系统F,我们想找一个最好的参数X,使FX)运行起来处于最佳状态。

首先这个X可以有很多种可能,我们可以一个一个拿到系统里面去试,但是没有必要。这就像男人找老婆,男人都想找一个最合适自己的老婆X,目的是让家庭F运行得更好,这是一个寻优过程,全世界女人的集合就是寻优的域。但是你不可能把全世界的女人都娶回家试试,虽然试出来的结果绝对是全局最优但是没必要。所以男人们心里有杆秤,什么样的女人比较适合自己,这就是评价函数E,比如E=0.5*善良+0.5美丽,这样就可以快速排除掉一些不适合的参数X,例如某个女人的X=[肮脏,恶毒]。但EF有本质区别,F作为系统,是客观存在的,E作为评价函数,是主观的。

遗传算法

(1)初始化MX

(2)评价这些X,并排序,选择前N个较好的X作为备选集

(3)交换备选集中X的基因,生成新的一些X

(4)改变备选集中X的基因,生成新的一些X

(5)返回(2),以上一轮为一代,经历N代为终止条件,输出最好的X

模拟退火算法

(1)初始化一个X

(2)给X增加随机扰动,生成X'

(3)评价X'是不是比X更好,即ΔT=EX')-EX),如果是则替换X,否则根据一定概率替换X,概率计算公式为

                                                                              exp(-ΔT/T)>Random(0,1)

(4)到达迭代次数,且找不到更优的X',则输出X,否则减小T继续迭代

粒子群优化算法

(1)初始化MX

(2)评价这些X,计算个体极值pBest与全体极值gBest

(3)通过公式V=wV+C1*Random(0,1)*(pBest-X)+C2*Random(0,1)*(gBest-X)更新每个X

(4)最后所有X会趋向于同一个点

差分进化算法

(1)初始化MX

(2)对应每个X,选择另三个X,进行变异,变异公式X'=X1+fX2-X3)

(3)对应每个XX',随机交叉生成新的Xnew

(4)评价XXnew,如果Xnew更好则替换X

(5)到达迭代次数,输出最好的X

(太多了,后面慢慢整理。讨论请留言,错误请指正。)

你可能感兴趣的:(算法概念)