匿名用户

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遗传算法中的交叉算子函数应该怎么编写?相关推荐

  1. 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 ...

  2. 机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三)

    机器学习之MATLAB代码--MATLAB量子粒子群优化LSTM超参数负荷预测(十三) 代码 数据 结果 代码 代码按照下列顺序依次: 1. function result(true_value,pr ...

  3. 公式写成matlab代码,大话遗传算法(含Matlab代码)

    一.遗传算法简介 转载自:https://blog.csdn.net/acelit/article/details/78187715 在工程实践中,经常面临多变量.不可微.不连续.有约束等条件下的最优 ...

  4. 人工神经网络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 ...

  5. 变步长龙格库塔法matlab代码,matlab 龙格库塔法 变步长龙格库塔法.doc

    河北科技大学硕士学位研究生 2012--2013学年第二学期 <Matlab语言及应用>结课论文 学 院: 信息科学与工程学院 专 业: 电路与系统 姓 名: 张利超 学 号: S2012 ...

  6. 变步长龙格库塔法matlab代码,matlab龙格库塔法变步长龙格库塔法.doc

    河北科技大学硕士学位研究生 2012--2013学年第二学期 <Matlab语言及应用>结课论文 学 院:信息科学与工程学院专 业:电路与系统姓 名:张利超学 号:S2012014011 ...

  7. nlm算法matlab代码_遗传算法GA的MATLAB代码

    MATLAB 实现算法代码: GA (遗传算法)--整数编码 function [BestGene,aa] = GA(MaxGeneration,GeneSize,GeneNum,pcross,pmu ...

  8. 微分进化算法解决函数优化问题的matlab代码,Matlab微分进化算法及优化函数测试...

    微分进化(Difference Evolution,DE)算法是一种优化算法,据称其比GA(遗传算法)等更为优秀. 借鉴网上实现的DE算法,用Matlab实现了对若干函数优化问题的解法,代码如下: f ...

  9. 极限环的matlab代码,matlab 数学实验 实验报告 欧拉公式 ROSSLER微分方程

    问题二:用向前欧拉公式和改进的欧拉公式求方程 y '=y -2x /y , y (0)=1的数值解(0≤x ≤1 , h =0.1) 要求编写程序. 问题三:Rossler 微分方程组 当固定参数b= ...

最新文章

  1. 如何解决“HttpException (0x80004005): 超过了最大请求长度”问题
  2. 五种方法创建 Java 对象,你知道几种呢?
  3. 若要加载模块二进制_春哥说 | 浅谈NodeJs的模块机制-2
  4. UA MATH566 一个例子:什么是隐状态
  5. gdb中看内存(x命令)
  6. eclipse/myeclipse高亮显示相同变量名 .
  7. 如何让Docker镜像飞起来
  8. 1.C#WinForm基础制作简单计算器
  9. android studio yasea,yasea: RTMP streaming client for Android.
  10. arts-week12
  11. 小米系统wifi服务器,如何将小米8se(MIUI10系统)设置wifi仅连2.4赫兹
  12. 阿里ai人工智能平台_AI标签众包平台
  13. 字符串拆分成泛型列表
  14. Windows如何查看局域网内所有设备的ip
  15. 周鸿祎:做到这五点,才算是好用户体验
  16. 2022危险化学品经营单位主要负责人考试题库及在线模拟考试
  17. python 做深度学习时偶遇的 (0xC0000409)错误
  18. Win10踩坑-开机0xc0000225
  19. ERP系统常用SQL集锦
  20. 黑马程序员--C# 定义全班学生成绩类

热门文章

  1. js的indexOf方法
  2. linux 服务器 iptables 防止arp病毒,Linux下Mac地址绑定防范arp病毒***
  3. 【Unity3d】火炬之光的X射线效果
  4. 儿童产品设计,从三个方面来思考
  5. 4.22 使用复合路径命令制作裙子图标 [Illustrator CC教程]
  6. 微信小程序将引爆手机屏幕的核战争?
  7. 2022年好用的蓝牙耳机有哪些?2022年蓝牙耳机推荐
  8. openEuler 22.09环境二进制安装Kubernetes(k8s) v1.26
  9. 网红泡泡屋,是如何火爆餐饮、民宿及景区市场的?
  10. RocketMQSpringTask