matlab遗传算法实例求最短路径_遗传算法经典实例

matlab遗传算法实例求最短路径_遗传算法经典实例Matlab遗传算法实例


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

Matlab遗传算法实例

  • 确定目标函数
  • 初始化种群
  • 2进制(染色体)与10进制(数值)转换
  • 选择(轮盘赌法)
  • 交叉(交叉原则)
  • 变异(变异概率)
  • 选择…
clear;
clc;
%popsize=input('输入种群大小:\n');
%lengh=input('请输入染色体长度:\n');
popsize=100;
lengh=10;
a=-1;
b=2;
%y=x*sin(10*pi*x)+1.0
%初始种群
pop=round(rand(popsize,lengh));%行:种群大小,列:染色体长度

%二进制转换十进制
[px,py]=size(pop);
for i=1:py
    pop1(:,i)=2^(py-i).*pop(:,i);
end
pop2=sum(pop1,2);

%对应的实数  目标值
vpop=pop2*((b-a)/(2^(lengh)-1))-1.0;
x=vpop;
y=sin(10*pi*x).*x+1;
% m=1;
% m=m+1;
% S=zeros(100,1);
% S(m,1)=max(y);
%选择  适者生存
for i=1:px
    cpoint=round(rand*(px-10));
    A=y(cpoint:cpoint+9,:);
    [Y,U]=max(A);
    j=U+cpoint-1;
    newpop(i,:)=pop(j,:);
end
pop=newpop;

%交叉
newpop=ones(size(pop));
pc=0.6;%交叉概率
for i=1:2:px-1
    if(rand<pc)
        cpoint=round(rand*py);
        newpop(i,:)=[pop(i,1:cpoint),pop(i+1,cpoint+1:py)];
        newpop(i+1,:)=[pop(i+1,1:cpoint),pop(i,cpoint+1:py)];
    else
        newpop(i,:)=pop(i,:);
        newpop(i+1,:)=pop(i+1,:);
    end   
end

%变异
%newpop=ones(size(pop));
pb=0.02;
%newpop=pop;
for i=1:px
    if (rand<pb)
        cpoint=round(rand*py);
        if newpop(i,cpoint)==0
            newpop(i,cpoint)=1;
        else
            newpop(i,cpoint)=0;
        end 
    end
end
pop=newpop;    
        

%实验报告
%s生产种群
%二进制转十进制
%交叉   实验题目  实验内容   实验代码   实验结果    
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

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

相关推荐

  • 一步步学习SPD2010–第二章节–处理SP网站(6)—- 探索SP网站「建议收藏」

    一步步学习SPD2010–第二章节–处理SP网站(6)—- 探索SP网站「建议收藏」SP技术没有一个界面;你可以通过使用Web浏览器或者兼容程序如Office应用程序,包括SPD。你可以选择适合你必须完成的任务的接口。然而,根据你选择的程序,你可能有SP网站的不同视图。如果你使用MSWord,你只看到了网站和内容的一小部分。如果你使用浏览器,你看到支持SP协同本质的列表和库,以及它们的内容。当你使用SPD时—-此产品理解最多SP基础—-你可以看到…

    2022年6月15日
  • JRTPLIB 3.9.1文档翻译

    JRTPLIB 3.9.1文档翻译MainPageJRTPLIBAuthor:      JoriLiesenborgs      DevelopedattheTheExpertiseCentreforDigitalMedia(EDM),aresearchinstituteoftheHasseltUniversityAcknowledg

    2022年7月28日
  • 小确幸BBS论坛-2-首页

    小确幸BBS论坛-2-首页话说:各位读者朋友,晚上好!这一篇展示首页。难度系数:★★★☆☆建议用时:1天实际用时1天目录工具类首页面index.jsp首页面样式后端代码首页面复杂点:1.SQL语句复杂点,要统计下回复次数;2.搜索。单独搜索简单,但是要实现在不同栏目下的搜索,就相对复杂些,而且不论搜索还是分栏目,分页都要带上;1.工具类DBUtil连接数据

    2022年9月27日
  • sql 时间转字符串_字符串举例

    sql 时间转字符串_字符串举例一、日期时间类型转换为字符串:SelectCONVERT(varchar(100),GETDATE(),0):052020213:47PMSelectCONVERT(varchar(100),GETDATE(),1):05/20/21SelectCONVERT(varchar(100),GETDATE(),2):21.05.20SelectCONVERT(varchar(100),GETDATE(),3):20/05/21SelectCONVERT(var

    2022年10月8日
  • python循环语句for怎么用_python编程

    python循环语句for怎么用_python编程Python的for循环for语句是Python中执行迭代的两个语句之一,另一个语句是while。如果你对Python的迭代并不是很熟悉的话,Python中的迭代:for、while、break、以及continue语句是一个不错的切入点。Python中,for循环用于遍历一个迭代对象的所有元素。循环内的语句段会针对迭代对象的每一个元素项目都执行一次。暂且可以将迭代对象想象成一个对象集合,我们可以一个个遍历里面的元素。用for循环获取列表元素一、在获取值也获取下标方式一:当在py

    2022年8月12日
  • Android ListView默认选中某一项[通俗易懂]

    Android ListView默认选中某一项[通俗易懂]很多时候,在listview加载数据之后,我们希望默认选中第一项,然后我们在setAdapter之后写上如下代码:listview.getChildAt(0).setBackgroundResource(R.color.white);发现程序崩溃:NullPointerException,事实上,setAdapter()是异步的 ,调用了这个方法之后ListView的item并没

    2022年7月17日

发表回复

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

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