一、遗传算法简介

1 引言


2 遗传算法理论
2.1 遗传算法的生物学基础


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

二、部分源代码

function[]=main(N_gen,pcro,pmut)
clear;clc;
%遗传算法主函数
%用以实现求给定函数fun在给定区间[low,up]上的极大值
%pcro交叉概率,pmut变异概率,N_gen迭代次数
%改进地方:交叉率和变异率采用自适应,最优点采用最小值,判断是否越限改在交叉变异后,原来是在变异程序里
pcro1=0.9;
pcro2=0.6;
pmut1=0.1;
pmut2=0.05;
N_gen=150;
n=100; %种群个数
line=[1 1 2 0.0922 0.047 ;2  2 3 0.0493 0.2511 ;3  3 4 0.366 0.1864 ;4  4 5 0.3811 0.1941 ;5  5 6 0.8190 0.707 ;6  6 7 0.1872 0.6188;7  7 8 0.7114 0.2351 ;8  8 9 1.03 0.74 ;9  9 10 1.044 0.74; 10 10 11 0.1966 0.065 ;11  11 12 0.3744 0.1238; 12 12 13 1.468 1.155 ;13 13 14 0.5416 0.7129; 14 14 15 0.5910 0.526 ;15 15 16 0.7463 0.5450 ;16 16 17 1.289 1.7210 ;17 17 18 0.7320 0.574;18 2 19 0.164 0.1565 ;19 19 20 1.5042 1.3554; 20 20 21 0.4095 0.4784;21 21 22 0.7089 0.9373 ;22 3 23 0.4512 0.3083 ;23 23 24 0.8980 0.7091 ;24 24 25 0.8960 0.7011 ;25 6 26 0.2030 0.1034 ;26 26 27 0.2842 0.1447 ;27 27 28 1.059 0.9337;28 28 29 0.8042 0.7006; 29 29 30 0.5075 0.2585 ;30 30 31 0.9744 0.9630;31 31 32 0.3105 0.3619 ;32 32 33 0.3410 0.5362 ];
%line1为支路负荷
line1=[1 0 0;2  100 60;3  90 40;4  120 80;5  60 30;6 60 20;7  200 100;8 200 100;9 60 20;10  60 20;11  45 30;12  60 35;13 60 35;14  120 80;15  60 10;16  60 20;17 60 20;18  90 40;19  90 40;20  90 40;21  90 40;22  90 40;23  90 50;24  420 200;25  420 200;26  60 25;27  60 25;28  60 20;29  120 70;30  200 600;31 150 70;32 210 100;33  60 40];LOAD=3715;%总有功负荷/KW
pmax=0.2*LOAD/0.9;    % #功率因数0.9, 分布式电源接入总容量不超过系统总负荷20%# 825.5556KW
%%%ieee33   #功率基准值=10MVA,线电压基准值=12.66KV,总有功负荷=3715KW,总无功负荷=2300Kvar,根节点电压标幺值=1#
n_point=size(line1,1) ;  %节点数
pop=encode(n_point,n,pmax); %用编码函数求得初始种群
gen=0;%代数初始化
j=1;
while(gen<=N_gen)    time(j)=j;fval=zeros(1,n);%初始化函数值fit=zeros(1,n);%初始化适应度for i=1:n         fval(i)=fun(pop(i,:),line,line1,LOAD); %求个体的函数值,目标函数         endfval_avg(time(j))=mean(fval);%记录每代个体函数值平均值%fval=fval-min(fval);%保证适应度为正值fsum=sum(fval);%总适应度fit_avg=fsum/n;%计算种群适应度平均值fit=fval/fsum;%求个体的适应度(归一化)   [fit1,index]=sort(fit); %将fit数组从小到大排序,并存在数组fit1中;同时,将对应的数组下标值存在数组index中best=pop(index(1),:);%记录每代的最优值,保留在变量best中     #因为从小到大排列完,n=100时是最优个体#
%     best_fit(1,gen+1)=fit1(index(n));
%        best_fit(1,gen+1)=fval(index(1));best_fit(1,gen+1)= fun(pop(index(1),:),line,line1,LOAD);
%     avg_fit(1,gen+1)=fit_avg;fval_best(time(j))=fun(best,line,line1,LOAD); %求出每代最优个体的函数值,保存在数组 fval_best中  q(1)=fit(1);for i=2:nq(i)=q(i-1)+fit(i);%累加个体适应度形成赌轮endfunction popnew=crossover(pop,pcro1,pcro2,n,length,pmax,fit1,fit_avg)
%pcro为交叉概率% %单切点交叉
% k=1; %k个体编号
% i=0;
% while(k<=n)
%     rk=rand(); %选取进行交叉的两个亲本
%     if rk<pcro
%         b(i+1)=k;
%         i=i+1;
%     end
%     k=k+1;
%     if i==2
%         pos=fix(rand()*2*length)+1;%随机产生交叉点
%         for i=pos:2*length
%             c=pop(b(1),i);
%             pop(b(1),i)=pop(b(2),i);%对交叉点之后的编码进行交换
%             pop(b(2),i)=c;
%         end
%         i=0;
%     end
% end%双切点交叉函数(改进)
k1=1;
for k=1:2:n%**************自适应************if fit1(k+1)>=fit_avgpcro=proc1*(1/(proc1-proc2+exp((fit1(k+1)-fit_avg)/(fit1(n)-fit_avg))));elsepcro=k1*pcro1;end%************************************rk=rand();if rk<pcropos1=ceil(length*rand); %随机产生交叉点1if pos1==1 %出口断路器位置不允许变化pos1=pos1+1;endpos2=ceil(length*rand); %随机产生交叉点2if pos2==1 %出口断路器位置不允许变化pos2=pos2+1;endif pos1>pos2 %两个交叉点按从小到大排序temp=pos1;pos1=pos2;pos2=temp;endfor i=pos1:pos2        %对交叉点pos1到pos2的编码进行交换  c=pop(k,i);pop(k,i)=pop(k+1,i);pop(k+1,i)=c;endfor i=(pos2+1):length %对交叉点pos2之后的编码进行交换c=pop(k,i);pop(k,i)=pop(k+1,i);pop(k+1,i)=c;end     end
endpopnew=floor(pop);

三、运行结果



四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社

【优化求解】基于matlab改进的遗传算法求解考虑环境效益DG优化问题【含Matlab源码 1483期】相关推荐

  1. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  2. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  3. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

  4. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  5. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  6. 【Matlab水果蔬菜识别】形态学水果蔬菜识别【含GUI源码 919期】

    一.代码运行视频(哔哩哔哩) [Matlab水果蔬菜识别]形态学水果蔬菜识别[含GUI源码 919期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅. ...

  7. 【Matlab青草识别】形态学马唐草+牛筋草识别【含GUI源码 908期】

    一.代码运行视频(哔哩哔哩) [Matlab青草识别]形态学马唐草+牛筋草识别[含GUI源码 908期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  8. 【Matlab限速标志识别】形态学限速标志识别【含GUI源码 1142期】

    一.代码运行视频(哔哩哔哩) [Matlab限速标志识别]形态学限速标志识别[含GUI源码 1142期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  9. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. marsony布局出现的错误 (三)
  2. wxWidgets:wxProcess类用法
  3. 如何识别是三层交换机还是二层交换机
  4. 一张图告诉你为什么是服务网关
  5. 【离散数学】论域和客体函数的区别
  6. 基于特征的文法分析以及概述自然语言处理
  7. jQuery - Bootstrap 3 and Youtube in Modal
  8. 全国首个园区型绿色能源网一年“减碳”上万吨
  9. python3学习之元组
  10. word一键生成ppt 分页_word怎么分页,这3种方法简单快捷
  11. nginx的返回值替换模块sub_filter
  12. 刷脸支付代理收益盈利模式
  13. python语言的实验心得体会范文_关于实验的心得体会范文5篇
  14. 前端中的A、B、C端解释
  15. 基于JAVA学术会议信息网站计算机毕业设计源码+系统+数据库+lw文档+部署
  16. 00.敏捷项目管理——前序笔记
  17. 一名普通医护人员的抗疫日志
  18. 抖音发广告需要注意什么,三个注意事项与规范要牢记
  19. IO流 | IO流的应用举例
  20. python实现栅栏加密 超简易列表版本

热门文章

  1. chmod与chown
  2. jquery比较时间大小
  3. Struts2之命名空间与Action的三种创建方式
  4. Emmet的高级功能与使用技巧
  5. [转载] 全本张广泰——第九回 出世见师兄 广泰走江湖
  6. Access to the path is denied(转载)
  7. WSS2.0 服务器启用SQL代理的解决过程
  8. Python游戏开发入门2 壁球小游戏与图像的基本使用
  9. 一般不要在头文件中定义变量
  10. Atiitt 图像处理的常见功能业务用途与类库与功能实现 目录 1. 常见业务场景 2 1.1. 缩略图 2 1.2. 判断图像大小分辨率要求 长度 宽度 2 1.3. 图像格式 转换,,黑白图像