遗传算法经典实例matlab_蚁群算法matlab实例

遗传算法经典实例matlab_蚁群算法matlab实例二进制编码为基础%目标函数functiony=fobj(x)ifx<=0y=sin(x);elseifx<=2y=x^2/2;elsey=3-x/2;endend%主程序%清楚窗口内容和变量clearclcpc=0.8;%交叉率pm=0.05;%变异率Iter_N=100;%迭代最大代数popsize=10;%种群规模,个体的集合LB=-10;UB=

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

二进制编码为基础

%目标函数
function y = fobj(x)
if x <= 0
    y = sin(x);
elseif x <= 2
        y = x^2/2;
else 
    y = 3-x/2;
end
end
%主程序
%清楚窗口内容和变量
clear
clc   

pc = 0.8 ;%交叉率
pm = 0.05 ;%变异率

Iter_N =100; %迭代最大代数
popsize = 10; %种群规模,个体的集合

LB = -10;
UB = 10;  %左右边界
DELTA = 1e-2; 
x=LB:0.05:UB;

for i = 1:length(x)
    y(i)=fobj(x(i));  %目标函数
end
plot(x,y)
hold on;
1. 初始化种群
function pop = ini_pop(LB,UB,DELTA,popsize)
N = ceil(log2((UB-LB)/DELTA+1)); %
for i = 1:popsize
    pop(i,:)=randi(2,[1,N])-1; %
end

%2. fitness 计算适应性
function y = fitness(LB,UB,x)
popsize = size(x,1);
for i = 1:popsize
    xtemp = x(i,:);
    N = length(xtemp);
    xdec = Bin2Dec(xtemp(1:N));
    xx = LB+(UB-LB)/(2^N-1)*xdec;
    y(i) = fobj(xx);
end
%主程序
pop=ini_pop(LB,UB,DELTA,popsize); %生成初始种群
fit_pop = fitness(LB,UB,pop) %计算适应度
[best_fit,ind]=max(fit_pop); %找到最大适应度个体
best_pop = pop(ind,:); %记录最佳个体
for k = 1:Iter_N
    newpop = selection(pop,fit_pop); %轮盘赌选择新种群
    newpop = crossover(newpop,pc); %交叉算子
    newpop = mutation(newpop,pm); %变异算子
    fit_pop = fitness(LB,UB,newpop);%计算适应度
    [bf,ind] = max(fit_pop);
    if bf<best_fit
        R=randi(popsize);
        newpop(R,:)=best_pop;
        fit_pop(R)=best_fit;
    else
        best_pop=newpop(ind,:);
    end
    pop = newpop;
    fstar(k)=best_fit;
    N=length(best_pop);
    xdec=Bin2Dec(best_pop(1:N));
    xx=LB+(UB-LB)/(2^N-1)*xdec;
    best_fit;
    plot(xx,best_fit,'r*');
    pause(0.1);
end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/194394.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 北京软件公司排名-中国十大软件外包公司排名[通俗易懂]

    北京软件公司排名-中国十大软件外包公司排名[通俗易懂]北京软件公司排名-中国十大软件外包公司排名

  • 元素守恒计算方法_树状数组求逆序对

    元素守恒计算方法_树状数组求逆序对给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。示例:输入:nums = [5,2,6,1]输出:[2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 1)2 的右侧仅有 1 个更小的元素 (1)6 的右侧有 1 个更小的元素 (1)1 的右侧有 0 个更小的元素提示:0 <= nums.length <= 10^5-10^4

  • 文件系统的类型「建议收藏」

    文件系统的类型「建议收藏」文件系统类型:ext2:早期linux中常用的文件系统ext3:ext2的升级版,带日志功能RAMFS:内存文件系统,速度很快NFS:网络文件系统,由SUN发明,主要用于远程文

  • 认识计算机教案_认识计算机硬件教案

    认识计算机教案_认识计算机硬件教案认识计算机教案Tag内容描述:1、第一单元计算机基础知识项目2认识计算机系统【项目目标】了解计算机硬件、软件系统的组成及作用;了解计算机主要部件及其作用;会利用数据存储单位区分存储空间大小;了解计算机主要技术指标及其对性能的影响;理解二进制基本概念及常用数制之间的转换方法;理解ASCII码的基本概念,了解计算机编码规则。任务1认识计算机硬件【任务说明】我们通常看到的微…

  • upx脱壳工具_攻防世界simple_unpack_逆向之旅003「建议收藏」

    upx脱壳工具_攻防世界simple_unpack_逆向之旅003「建议收藏」攻防世界simple_unpack_逆向之旅003前言一、使用exeinfoPE查看该文件二、使用upx脱壳2.使用ida打开脱壳处理后的文件总结前言先给出题目的链接:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=0&id=5077&page=1题目说是个加了个壳的二进制文件一、使用exeinfoPE查看该文件如上图所示,检测到了upx的壳。二、使用upx脱壳指

  • SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)

    SPI接口扫盲 SPI定义/SPI时序(CPHA CPOL)SPI接口扫盲为何要写这篇文档?百度上找出来的SPI接口中文描述都说的太过简略,没有一篇文档能够详尽的将SPI介绍清楚的。wikipedia英文版[注释1]中,SPI接口介绍的很好,但是毕竟是英文版,读起来终究不如母语舒服,所以我结合自己的工作经验,对其进行了汉化、整理。个人SPI接口相关经验:1.参与过国产某芯片SPI接口样品验证、SPI接口服务DEMO开发(C语言)。2.使

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号