确定性排挤是一种小生境技术,代码是按照A. Will, J. Bustos, M. Bocco, J. Gotay, C. Lamelas,On the use of niching genetic algorithms for variable selection in solar radiation estimation,Renewable Energy,Volume 50,2013,Pages 168-176,ISSN 0960-1481,https://doi.org/10.1016/j.renene.2012.06.039.这篇文章的描述写出来的,具体代码如下,可以用于platemo3.2的版本
function [Dec,Obj,MSE] = DCEnvironment(parentDec,parentObj,parentMSE,offspringDec,offspringObj,offspringMSE)
%DCENVIROMENT 使用Deterministic Crowding对父代和子代个体进行环境选择
%输入参数:
%parentDec为父代决策变量,parentObj为父代目标值(单目标情况,仅有1列),parentMSE为父代预测值的估计误差值
%offspringDec为子代决策变量,offspringObj为子代目标值,offspringMSE为子代预测值的估计误差值
%输出参数:
%Dec为环境选择后的决策变量,Obj为环境选择后的目标值,MSE为环境选择后的估计误差

%floor为向下取整,将父代分成父代个体1和父代个体2
parDec1 = parentDec(1:floor(end/2),:);
parDec2 = parentDec(floor(end/2)+1:floor(end/2)*2,:);
parObj1 = parentObj(1:floor(end/2));
parObj2 = parentObj(floor(end/2)+1:floor(end/2)*2);
parMSE1 = parentMSE(1:floor(end/2));
parMSE2 = parentMSE(floor(end/2)+1:floor(end/2)*2);
%将子代分成子代个体1和子代个体2
offDec1 = offspringDec(1:floor(end/2),:);
offDec2 = offspringDec(floor(end/2)+1:floor(end/2)*2,:);
offObj1 = offspringObj(1:floor(end/2));
offObj2 = offspringObj(floor(end/2)+1:floor(end/2)*2);
offMSE1 = offspringMSE(1:floor(end/2));
offMSE2 = offspringMSE(floor(end/2)+1:floor(end/2)*2);%计算父代个体1到子代个体1之间决策变量的距离
disPar1Off1 = sqrt(sum((parDec1-offDec1).^2,2));
%计算父代个体1到子代个体2之间决策变量的距离
disPar1Off2 = sqrt(sum((parDec1-offDec2).^2,2));
%计算父代个体2到子代个体1之间决策变量的距离
disPar2Off1 = sqrt(sum((parDec2-offDec1).^2,2));
%计算父代个体2到子代个体2之间决策变量的距离
disPar2Off2 = sqrt(sum((parDec2-offDec2).^2,2));
%使用临时变量保存环境选择后的数据
[N,D] = size(parDec1);
tempDec1 = NaN(N,D);
tempDec2 = NaN(N,D);
tempObj1 = NaN(N,1);
tempObj2 = NaN(N,1);
tempMSE1 = NaN(N,1);
tempMSE2 = NaN(N,1);%使用DC准则确定使用小生境,determinIDX为逻辑索引值
%DC准则为:d(P1,C1)+d(P2,C2) <= d(P2,C1)+d(P1,C2),其中C为后代个体的意思
determinIDX = ((disPar1Off1+disPar2Off2) <= (disPar1Off2+disPar2Off1));%小生境环境选择
for i = 1 : Nif determinIDX(i)==1  %父代直接和其对应子代对比%判断父代个体1和子代个体1if parObj1(i)<=offObj1(i)tempDec1(i,:) = parDec1(i,:);tempObj1(i) = parObj1(i);tempMSE1(i) = parMSE1(i);elsetempDec1(i,:) = offDec1(i,:);tempObj1(i) = offObj1(i);tempMSE1(i) = offMSE1(i);end%判断父代个体2和子代个体2if parObj2(i)<=offObj2(i)tempDec2(i,:) = parDec2(i,:);tempObj2(i) = parObj2(i);tempMSE2(i) = parMSE2(i);elsetempDec2(i,:) = offDec2(i,:);tempObj2(i) = offObj2(i);tempMSE2(i) = offMSE2(i);end else%判断父代个体1和子代个体2if parObj1(i)<=offObj2(i)tempDec1(i,:) = parDec1(i,:);tempObj1(i) = parObj1(i);tempMSE1(i) = parMSE1(i);elsetempDec1(i,:) = offDec2(i,:);tempObj1(i) = offObj2(i);tempMSE1(i) = offMSE2(i);end%判断父代个体2和子代个体1if parObj2(i)<=offObj2(i)tempDec2(i,:) = parDec2(i,:);tempObj2(i) = parObj2(i);tempMSE2(i) = parMSE2(i);elsetempDec2(i,:) = offDec1(i,:);tempObj2(i) = offObj1(i);tempMSE2(i) = offMSE1(i);endend
endDec = [tempDec1;tempDec2];
Obj = [tempObj1;tempObj2];
MSE = [tempMSE1;tempMSE2];

end

遗传算法(确定性排挤)相关推荐

  1. 湖南理工学院计算机老师信息,郭观七(计算机与信息工程系)老师 - 湖南理工学院 - 院校大全...

    郭观七 郭观七老师的简介 郭观七 性 别男 出生年月1963年6月 最终学历研究生 职 称教授 电 话13786015048 学 位博士 行政职务 职 务 传 真0730-8847048 所在院系湖南 ...

  2. 遗传算法小生境技术简介

    生物学上,小生境是指特定环境下的一种组织结构.在自然界中,往往特征,形状相似的物种相聚在一起,并在同类中交配繁衍后代.在SGA 中,交配完全是随机的,在进化的后期,大量的个体集中于某一极值点上,在用遗 ...

  3. 遗传算法的简单介绍以及模式定理的简单证明

    遗传算法   遗传算法(Genetic Algorithm,GA),最早是由美国的John holland在20世纪70年代提出.算法通过模拟达尔文生物进化论的自然选择以及遗传学机理的生物进化过程来搜 ...

  4. 遗传算法占用计算机空间,遗传算法综述摘要.doc

    随着经济社会的迅猛发展, 人类科学研究与生产活动的广度与深度都大大拓展了,其中涌现出的大量具有各种非线性.不确定.不能精确解析以及建模机理复杂的新课题对信息与控制科学提出了前所未有的挑战.正是在这种背 ...

  5. 遗传算法求解背包问题

    其实遗传算法是一种处理问题的思想,因为遗传算法整个体系都是在说对于一种问题的处理思路和原则,而不是一个具体的代码编写过程. 1. 算法过程 关键步骤如下: (1)基因编码:在这个过程中,尝试对一些个体 ...

  6. 国科大高级人工智能9-模糊数学和遗传算法

    文章目录 1.模糊计算 笛卡尔积.关系 模糊集 连续的隶属度函数 运算 2.evolution 遗传算法 1.模糊计算 why模糊 取得精确数据不可能或很困难 没有必要获取精确数据 模糊性概念:对象从 ...

  7. 遗传算法学习笔记(一):常用的选择策略

    简述 遗传算法(GA)是一种模拟生物进化自然选择过程的非确定性搜索方法,源于达尔文的进化论和孟德尔的遗传定律,由美国 Michigan 大学的 Holland教授在 20 世纪 70 年代首先提出.生 ...

  8. 遗传算法求函数最大值实验_小知识:什么是遗传算法

    1 什么是遗传算法 遗传算法(GeneticAlgorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法. 其主要特点是 ...

  9. 算法高级(4)-遗传算法(Genetic Algorithm)简介

    01 什么是遗传算法? 1.1 遗传算法的科学定义 遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过 ...

最新文章

  1. 2022-2028年中国粘胶纤维市场投资分析及前景预测报告
  2. tensorflow2.0 Dataset创建和使用
  3. STL vector简介
  4. 本质矩阵 基础矩阵 单应矩阵 (1)
  5. grafana 批量添加图表
  6. Aqua Data Studio v19.0 安装使用
  7. 1000道Python题库系列分享三(30道)
  8. Linux安装MariaDB
  9. chrome 书签恢复_如何在Chrome和Firefox中恢复意外删除的书签
  10. 爆料!滴滴或于4-5月开启第二轮裁员,内部员工透露细节:或无赔偿!
  11. 关于前端职业规划的一点思考
  12. 激光雷达与自动驾驶详解
  13. aps是什么意思_aps是什么意思
  14. 游戏服务端(MMORPG)的基础算法二、寻路
  15. GPT时代,最令人担心的其实是“塔斯马尼亚效应”
  16. 人工智能前沿——玩转OpenAI聊天机器人ChatGPT(中文版)
  17. 楼宇能效控制器真的有用吗
  18. GitChat文章推荐
  19. 通达信VOL实战监测,很实用 可以替代成交量指标公式 源码 效果图
  20. 综合布线可视化运维管理平台与电子配线架的区别

热门文章

  1. Committer 蔡正昕专访:勇敢迈出第一步,做开源没有那么难
  2. python爬虫简单入门(爬网页文本信息)
  3. 个人形象设计之服装单品的理想搭配
  4. 深度学习入门系列,用白话文的方式让你看得懂学的快(第八章)
  5. 脚本:批量复制微信后台用户消息
  6. sqlplus 中的spool命令
  7. android之图片选择器ImageSelector的使用
  8. 查询选修相同课程的学生学号、课程号和成绩
  9. 基于本地存储LVM新建虚机方案
  10. php s3 创建bucket,AWS管理控制台:五步创建S3 bucket策略