(1)
首先,遗传算法是解决搜索问题的一种通用算法,因此遗传算法具有搜索算法共有的特点:组成一组候选解;然后依据某些适应性条件测算这些候选解的适应度;再根据适应度保留某些候选解,放弃其他候选解;最后对保留的候选解进行某些操作,生成新的候选解。
在遗传算法中,基于染色体群的并行搜索,带有猜测性质的选择操作、交换操作和突变操作。这种特殊的组合方式将遗传算法与其它搜索算法区别开来。
遗传算法还具有以下几方面的特点:
(2)
遗传算法Java伪代码。
public static void main(String[] args) {String group[] = deAll(ga.GENE, groupsize); //初始化群体// 循环迭代for(int i = 0; i < ITERA; i++){group = rws.RWS(group, ga.GENE); //选择group = ss(group,ga.GENE,CP); //交叉group = mutation.mutation(group, ga.GENE, MP); //变异}
}
(3)
(4)
(1)
(2)
1. 随机初始化粒子群体的位置和速度。通常是在允许的范围内随机产生的,每个粒子的 pbest 坐标设置为其当前位置 ,且计算出其相应的个体极值(即个体的适应度值) ,而全局极值(即全局的适应度值) 就是个体极值中最好的 ,记录该最好值的粒子序号 ,并将 gbest 设置为该最好粒子的当前位置。
2. 计算每个粒子的适应值。
3. 对每个粒子 ,将其适应值与个体极值进行比较 ,如果较优 ,则更新当前的个体极值。
4. 对每个粒子 ,将其适应值与全局极值进行比较 ,如果较优 ,则更新当前的全局极值。
5. 根据式(1) 、(2) ,更新每个粒子的位置和飞行速度。
6. 如未达到预先设定的停止准则(通常设置为最大迭代次数) ,则返回步骤 2 ,若达到则停止计算。
PSO 算法可用伪代码表示如下 :
初始化粒子群 ;
DOFor 每个粒子计算其适应度 ;If (适应度优于粒子历史最佳值)用 Xi 更新历史最佳个体 Pi ;End选取当前粒子群中最佳粒子 ;If (当前最佳粒子优于群历史最佳粒子)用当前群最佳粒子更新 Pg ;For 每个粒子按式(1) 更新粒子速度 ;按式(2) 更新粒子位置 ;End
While 最大迭代数未达到或最小误差未达到。
(3)
(4)
(1)
(2)
(3)
训练起来比较难收敛。
(4)
函数真实图像:
神经网络拟合曲线:
(1)
聚类中心:
(2)
隶属度表格:
输出的隶属度值:
(3)
第一类:中国、美国、澳大利亚
第二类:日本、德国、英国、法国、意大利、加拿大、捷克、波兰、匈牙利、
南斯拉夫、罗马尼亚、保加利亚、印度、印尼、尼日利亚、墨西哥
第三类:前苏联、巴西
遗传算法
粒子群算法
神经网络
.html
本文发布于:2024-01-31 15:08:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170668493129401.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |