简单的遗传算法,计算函数最值. 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:17:21 4KB 火力分配
1
遗传算法解决5种多旅行商问题(mtsp)的matlab程序 从不同起点出发回到起点(固定旅行商数量) 从不同起点出发回到起点(旅行商数量根据计算可变) 从同一起点出发回到起点 从同一起点出发不会到起点
2019-12-21 22:11:36 26KB MTSP MATLAB 多旅行商 数学建模
1
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法可以解决多种优化问题,如:TSP问题、生产调度问题、轨道优化问题等,在现代优化算法中占据了重要的地位,本例使用遗传算法求解最优解。
2019-12-21 22:05:18 5KB 遗传算法
1
遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法 遗传算法
2019-12-21 22:04:18 6KB 遗传算法
1
部分代码: function Population1=GA_tubian(Population,pe_tubian) %遗传算法突变算子 %pe为突变概率 Population1=Population; n=length(Population(:,1)); m=length(Population(1,:)); for i=1:n for j=1:m test=rand; if test
1
这个是在网站上花钱买的,买来后自己也不太会用,传上来大家有懂的就试试看行不行
2019-12-21 22:04:07 35KB 多目标优化
1
一篇很好的遗传算法入门教程,里面详细介绍了遗传算法及其代码(含注释)
2019-12-21 21:59:59 2.57MB 遗传算法 matlab 入门教程
1
在MATLAB中,使用遗传算法完成路径规划的问题,简单来说就是走迷宫。使用MATLAB进行仿真与实现。
2019-12-21 21:52:37 24KB 遗传算法 MATLAB 路径规划
1
Using genetic algorithms to solve path selection problems in MATLAB
2019-12-21 21:51:44 21KB 遗传算法 matlab
1