单点交叉算子的matlab代码,matlab遗传算法中的交叉算子函数应该怎么编写?
匿名用户
1级
2016-03-08 回答
function [xv,fv]=myGA(fitness,a,b,NP,NG,Pc,Pm,eps)
L = ceil(log2((b-a)/eps+1)); %根据离散精度,确定二进制编码需要的码长
x = zeros(NP,L);
for i=1:NP
x(i,:) = Initial(L); %种群初始化
fx(i) = fitness(Dec(a,b,x(i,:),L)); %个体适应值
end
for k=1:NG
sumfx = sum(fx); %所有个体适应值之和
Px = fx/sumfx; %所有个体适应值的平均值
PPx = 0;
PPx(1) = Px(1);
for i=2:NP %用于轮盘赌策略的概率累加
PPx(i) = PPx(i-1) + Px(i);
end
for i=1:NP
sita = rand();
for n=1:NP
if sita <= PPx(n)
SelFather = n; %根据轮盘赌策略确定的父亲
break;
end
end
Selmother = floor(rand()*(NP-1))+1; %随机选择母亲
posCut = floor(rand()*(L-2)) + 1; %随机确定交叉点
r1 = rand();
if r1<=Pc %交叉
nx(i,1:posCut) = x(SelFather,1:posCut);
nx(i,(posCut+1):L) = x(Selmother,(posCut+1):L);
r2 = rand();
if r2 <= Pm %变异
posMut = round(rand()*(L-1) + 1);
nx(i,posMut) = ~nx(i,posMut);
end
else
nx(i,:) = x(SelFather,:);
end
end
x = nx;
for i=1:NP
fx(i) = fitness(Dec(a,b,x(i,:),L)); %子代适应值
end
end
fv = -inf;
for i=1:NP
fitx = fitness(Dec(a,b,x(i,:),L));
if fitx > fv
fv = fitx; %取个体中的最好值作为最终结果
xv = Dec(a,b,x(i,:),L);
end
end
function result = Initial(length) %初始化函数
for i=1:length
r = rand();
result(i) = round(r);
end
function y = Dec(a,b,x,L) %二进制编码转换为十进制编码
base = 2.^((L-1):-1:0);
y = dot(base,x);
y = a + y*(b-a)/(2^L-1);
单点交叉算子的matlab代码,matlab遗传算法中的交叉算子函数应该怎么编写?相关推荐
- dst matlab,DSTcode DST跟踪算法MATLAB代码,复杂环境中仿多目标 实现的单 Other systems 其他 272万源代码下载- www.pudn.com...
文件名称: DSTcode下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 82 KB 上传时间: 2017-03-17 下载次数: 0 提 供 者: Mar ...
- 机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三)
机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三) 代码 数据 结果 代码 代码按照下列顺序依次: 1. function result(true_value,pr ...
- 公式写成matlab代码,大话遗传算法(含Matlab代码)
一.遗传算法简介 转载自:https://blog.csdn.net/acelit/article/details/78187715 在工程实践中,经常面临多变量.不可微.不连续.有约束等条件下的最优 ...
- 人工神经网络matlab代码,matlab神经网络30例代码
如何在matlab中建立多层bp神经网络 当你用newff的时候,里面有一个参数可以控制层数,比如说:P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 ...
- 变步长龙格库塔法matlab代码,matlab 龙格库塔法 变步长龙格库塔法.doc
河北科技大学硕士学位研究生 2012--2013学年第二学期 <Matlab语言及应用>结课论文 学 院: 信息科学与工程学院 专 业: 电路与系统 姓 名: 张利超 学 号: S2012 ...
- 变步长龙格库塔法matlab代码,matlab龙格库塔法变步长龙格库塔法.doc
河北科技大学硕士学位研究生 2012--2013学年第二学期 <Matlab语言及应用>结课论文 学 院:信息科学与工程学院专 业:电路与系统姓 名:张利超学 号:S2012014011 ...
- nlm算法matlab代码_遗传算法GA的MATLAB代码
MATLAB 实现算法代码: GA (遗传算法)--整数编码 function [BestGene,aa] = GA(MaxGeneration,GeneSize,GeneNum,pcross,pmu ...
- 微分进化算法解决函数优化问题的matlab代码,Matlab微分进化算法及优化函数测试...
微分进化(Difference Evolution,DE)算法是一种优化算法,据称其比GA(遗传算法)等更为优秀. 借鉴网上实现的DE算法,用Matlab实现了对若干函数优化问题的解法,代码如下: f ...
- 极限环的matlab代码,matlab 数学实验 实验报告 欧拉公式 ROSSLER微分方程
问题二:用向前欧拉公式和改进的欧拉公式求方程 y '=y -2x /y , y (0)=1的数值解(0≤x ≤1 , h =0.1) 要求编写程序. 问题三:Rossler 微分方程组 当固定参数b= ...
最新文章
- 如何解决“HttpException (0x80004005): 超过了最大请求长度”问题
- 五种方法创建 Java 对象,你知道几种呢?
- 若要加载模块二进制_春哥说 | 浅谈NodeJs的模块机制-2
- UA MATH566 一个例子:什么是隐状态
- gdb中看内存(x命令)
- eclipse/myeclipse高亮显示相同变量名 .
- 如何让Docker镜像飞起来
- 1.C#WinForm基础制作简单计算器
- android studio yasea,yasea: RTMP streaming client for Android.
- arts-week12
- 小米系统wifi服务器,如何将小米8se(MIUI10系统)设置wifi仅连2.4赫兹
- 阿里ai人工智能平台_AI标签众包平台
- 字符串拆分成泛型列表
- Windows如何查看局域网内所有设备的ip
- 周鸿祎:做到这五点,才算是好用户体验
- 2022危险化学品经营单位主要负责人考试题库及在线模拟考试
- python 做深度学习时偶遇的 (0xC0000409)错误
- Win10踩坑-开机0xc0000225
- ERP系统常用SQL集锦
- 黑马程序员--C# 定义全班学生成绩类
热门文章
- js的indexOf方法
- linux 服务器 iptables 防止arp病毒,Linux下Mac地址绑定防范arp病毒***
- 【Unity3d】火炬之光的X射线效果
- 儿童产品设计,从三个方面来思考
- 4.22 使用复合路径命令制作裙子图标 [Illustrator CC教程]
- 微信小程序将引爆手机屏幕的核战争?
- 2022年好用的蓝牙耳机有哪些?2022年蓝牙耳机推荐
- openEuler 22.09环境二进制安装Kubernetes(k8s) v1.26
- 网红泡泡屋,是如何火爆餐饮、民宿及景区市场的?
- RocketMQSpringTask