C#进化计算:遗传算法源代码 参考原文:http://blog.csdn.net/conmajia/article/details/7823943
2020-01-03 11:18:39 112KB c# 人工智能 进化计算 遗传算法
1
简单的遗传算法,计算函数最值. function ga_main() % 遗传算法程序 % n-- 种群规模% ger-- 迭代次数% pc--- 交叉概率% pm-- 变异概率 % v-- 初始种群(规模为n)% f-- 目标函数值% fit-- 适应度向量 % vx-- 最优适应度值向量% vmfit-- 平均适应度值向量 clear all; close all; clc;%清屏 tic;%计时器开始计时 n=20;ger=100;pc=0.65;pm=0.05;%初始化参数 %以上为经验值,可以更改。 % 生成初始种群 v=init_population(n,22); %得到初始种群,22串长,生成20*22的0-1矩阵 [N,L]=size(v); %得到初始规模行,列 disp(sprintf('Number of generations:%d',ger)); disp(sprintf('Population size:%d',N)); disp(sprintf('Crossover probability:%.3f',pc)); disp(sprintf('Mutation probability:%.3f',pm)); %sprintf可以控制输出格式 % 待优化问题 xmin=0;xmax=9; %变量X范围 f='x+10*sin(x.*5)+7*cos(x.*4)'; % 计算适应度,并画出初始种群图形 x=decode(v(:,1:22),xmin,xmax);"位二进制换成十进制,%冒号表示对所有行进行操作。 fit=eval(f);%eval转化成数值型的 %计算适应度 figure(1);%打开第一个窗口 fplot(f,[xmin,xmax]);%隐函数画图 grid on;hold on; plot(x,fit,'k*');%作图,画初始种群的适应度图像 title('(a)染色体的初始位置');%标题 xlabel('x');ylabel('f(x)');%标记轴 % 迭代前的初始化 vmfit=[];%平均适应度 vx=[]; %最优适应度 it=1; % 迭代计数器 % 开始进化 while it<=ger %迭代次数 0代 %Reproduction(Bi-classist Selection) vtemp=roulette(v,fit);%复制算子 %Crossover v=crossover(vtemp,pc);%交叉算子 %Mutation变异算子 M=rand(N,L)<=pm;%这里的作用找到比0.05小的分量 %M(1,:)=zeros(1,L); v=v-2.*(v.*M)+M;%两个0-1矩阵相乘后M是1的地方V就不变,再乘以2. NICE!!确实好!!!把M中为1的位置上的地方的值变反 %这里是点乘 %变异 %Results x=decode(v(:,1:22),xmin,xmax);%解码,求目标函数值 fit=eval(f); %计算数值 [sol,indb]=max(fit);% 每次迭代中最优目标函数值,包括位置 v(1,:)=v(indb,:); %用最大值代替 fit_mean=mean(fit); % 每次迭代中目标函数值的平均值。mean求均值 vx=[vx sol]; %最优适应度值 vmfit=[vmfit fit_mean];%适应度均值 it=it+1; %迭代次数计数器增加 end
2019-12-21 22:20:15 4KB 遗传算法
1
MATLAB实现遗传算法,适合初学者学习使用,代码真实可用
2019-12-21 22:03:45 5KB MATLAB 遗传算法
1
用简单的例子讲解遗传算法,代码主要用C#编程,内容简单详细清楚。
2019-12-21 21:50:14 29KB 遗传算
1
遗传算法首先会采用一种编码方式将解空间映射到一个编码空间,每一个编码对应问题的一个解,称之为个体或者染色体,然后再随机生成确定起始的一群个体,称之为种群。在后续迭代的过程中,按照适者生存不适者淘汰的原理,根据适应度大小选择个体,并且借助各种不同的遗传算子对个体进行交叉和变异,生成一个代表新的解集的种群,这个种群会比前一代更加适应环境,如此一直进化下去直到到达优化准则。这个时候的末代个体,经过解码,得到的解可近似的作为问题的最优解。
2019-12-21 21:44:37 1KB 遗传算法
1
遗传算法工具箱MATLAB示例代码,遗传算法,模拟达尔文进化论的自然选择和遗产学机理的生物进化构成的计算模型,一种不断选择优良个体的算法。谈到遗传,想想自然界动物遗传是怎么来的,自然主要过程包括染色体的选择,交叉,变异(不明白这个的可以去看看生物学),这些操作后,保证了以后的个基本上是最优的,那么以后再继续这样下去,就可以一直最优了。
2019-12-21 21:43:16 1.04MB GA
1
主要是关于车间遗传算法的代码,仅仅参考,当然交流之用,我也是从别人那里拷来的
2019-12-21 21:28:55 26KB c++ 遗传算法 车间调度
1
3个matlab源代码,第一个文件为纯人工GA算法源代码,后两个采用工具箱函数
2019-12-21 21:23:59 5KB 遗传算法
1
三维遗传算法代码,插值,用于解2011年数模及其类似问题
2019-12-21 21:21:08 23KB 三维遗传算法 代码
1
自适应遗传算法matlab代码。针对函数求解的最优化问题,采用交叉概率和变异概率随适应度自适应变化的遗传算法进行优化。
2019-12-21 21:20:16 1KB 自适应 遗传算法 matlab
1