遗传算法经典实例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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是SOAP,有哪些应用

    什么是SOAP,有哪些应用SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。SOAP规范还定义了HTTP消息是怎样传输SOAP消息的。MSMQ、SMTP、TCP/IP都可以做SOAP的传输协议。转载于:ht…

    2022年7月24日
    8
  • 从作坊到工厂_工厂和作坊的本质区别

    从作坊到工厂_工厂和作坊的本质区别作坊离工厂究竟有多远(二) smilemac 1.   软件大规模定制 在这个市场越来越起主导作用,定制的产品广受欢迎的时代,软件是否也可以做到大规模定制呢?首先看什么是软件的大规模定制。规模与产品的开发速度有关,如果一个定制的软件能够在一个月内交付,如果定制软件的交付数量可以与程序员数目成正比,我们可以将这种开发模式叫做大规模定制,如果这种结果能够出

    2025年10月27日
    3
  • telnet 1521端口不通

    telnet 1521端口不通一:场景:本机telnet虚拟机oracle数据库1521不通二:解决方法1:首先保证双方都ping通,虚拟机本地1521telnet是通的2:虚拟机防火墙设置如下:新建规则选择端口选择TCP输入端口号1521,后面一直下一步就OK了…

    2022年6月10日
    153
  • vs2017 c语言 安装教程,Visual Studio 2017 IDE安装使用图文教程「建议收藏」

    vs2017 c语言 安装教程,Visual Studio 2017 IDE安装使用图文教程「建议收藏」本文为大家分享了VisualStudio2017IDE的安装与最基本使用,供大家参考,具体内容如下首先,进入VisualStudio的官网下载最新版本的VSIDE(目前是VS2017):VS2017下载地址打开网页,点击红色画笔圈起的按钮然后会下载下来一个文件,点击它,会弹出一个这样的窗口点击“继续”,稍等一小会之后正式进入安装界面然后点击红圈内的“安装”VisualStudioCommu…

    2022年5月13日
    125
  • 阿里巴巴中间件团队_阿里的中间件和库

    阿里巴巴中间件团队_阿里的中间件和库实践出真知,阿里中间件博客入口

    2022年8月13日
    4
  • java实现MD5加密

    java实现MD5加密1加密方法:1.1java自带jar工具MessageDigest实现 java.security.MessageDigest1.2spring自带的工具DigestUtils实现

    2022年7月1日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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