所谓遗传算法,是一种受到生物进化启发的算法。
里面有类似进化中用到的遗传 变异等东西还有就是优胜劣汰的思想
另外,假设一般被描述为二进制的位串
具体描述如下:
GA(Fiteness, Fitness_threshold,p,r,m)
Fitness:适应度平分函数,为给定假设富余一个评估分数
Fitness_threshold:指定中指判断的阈值
p:群体中包含的假设的数量
r:每一步通过交叉取代群体成员的比例
m:变异率
o 初始化群体:P<-随机产生p个假设
o 评估:对于P中的每个h,计算Fitness(h)
+- -+
o 当|maxFitness(h)| < Fitness_threshold,做:
+-h -+
产生新的一代Ps:
1 选择:用概率方法选择P中的(1-r)p个成员加入Ps。
从P中选择假设hi的概率Pr(hi)用下面的公式计算:
Fitness(hi)
Pr(hj)=---------------------
p
SUM Fitness(hj)
j=i
2 交叉:根据上面给出的Pr(hi),从P中按概率选择r*p/2对
假设。对于每对假设<h1,h2>,应用交叉算子产生两个
后代。把所有的后代加入Ps
3 变异:使用均匀的概率从Ps中选择m%的成员。对于选出的每
个成员,在它的表示中随机选择一个位取反
4 更新:P<-Ps
5 评估:对于P中的每个h计算Fitness(h)
o 从P中返回适应度最高的假设
源代码在哪里啊,谢谢,我也想看看,幸许能帮上忙
页:
1
[2]