【优化算法】晶体结构算法【含Matlab源码 1800期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【优化算法】晶体结构算法【含Matlab源码 1800期】
二、部分源代码
% ----------------------------------------------------------------------- %
%% CryStAl for Unconstrained Benchmark Problems%%
clc;clear all;
%% Get Required Problem Information
ObjFuncName = @(x) Sphere(x); % @CostFunction ;
Var_Number = 100 ; % Number of variables ;
LB = -10 *ones(1,Var_Number) ; % Lower bound of variable ;
UB = 10 *ones(1,Var_Number) ; % Upper bound of variable ;
%% Get Required Algorithm Parameters
MaxIteation = 1000 ; % Maximum number of Iterations ;
Cr_Number = 10 ; % Maximum number of initial Crystals ;
%% Outputs:
% BestCr (Best solution)
% BestFitness (final Best fitness)
% Conv_History (Convergence History Curve)
%% Updating the Size of ProblemParameters
if length(LB)==1LB=repmat(LB,1,Var_Number);
end
if length(UB)==1UB=repmat(UB,1,Var_Number);
end
%% Initialization
% Initializing the Position of first probs
for i=1:Cr_NumberCrystal(i,:)=unifrnd(LB,UB);% Evaluating the initial probsFun_eval(i)=feval(ObjFuncName,Crystal(i,:));
end
% The best Crystal
[BestFitness,idbest]=min(Fun_eval);
Crb=Crystal(idbest,:);
% Number of Function Evaluations
Eval_Number=Cr_Number;
%% Search Process
Iter=1;
while Iter<MaxIteationfor i=1:Cr_Number%% Generate New Crystals% Main CrystalCrmain=Crystal(randperm(Cr_Number,1),:);% Random-selected CrystalsRandNumber=randperm(Cr_Number,1);RandSelectCrystal=randperm(Cr_Number,RandNumber);% Mean of randomly-selected CrystalsFc=mean(Crystal(RandSelectCrystal,:)).*(length(RandSelectCrystal)~=1)...+Crystal(RandSelectCrystal(1,1),:)*(length(RandSelectCrystal)==1); % Random numbers (-1,1)r=2*rand-1; r1=2*rand-1;r2=2*rand-1; r3=2*rand-1; % New CrystalsNewCrystal(1,:)=Crystal(i,:)+r*Crmain;NewCrystal(2,:)=Crystal(i,:)+r1*Crmain+r2*Crb;NewCrystal(3,:)=Crystal(i,:)+r1*Crmain+r2*Fc;NewCrystal(4,:)=Crystal(i,:)+r1*Crmain+r2*Crb+r3*Fc;for i2=1:4% Checking/Updating the boundary limits for CrystalsNewCrystal(i2,:)=bound(NewCrystal(i2,:),UB,LB);% Evaluating New CrystalsFun_evalNew(i2)=feval(ObjFuncName, NewCrystal(i2,:));% Updating the Crystalsif Fun_evalNew(i2)<Fun_eval(i)Fun_eval(i)=Fun_evalNew(i2);Crystal(i,:)=NewCrystal(i2,:);end% Updation the Number of Function EvalutionsEval_Number=Eval_Number+1;endend % End of One IterationIter=Iter+1;% The best Crystal[BestFitness,idbest]=min(Fun_eval);Crb=Crystal(idbest,:);BestCr=Crb;Conv_History(Iter)=BestFitness;% Show Iteration Informationdisp(['Iteration ' num2str(Iter) ': Best Cost = ' num2str(Conv_History(Iter))]);
end % End of Main Looping
semilogy(Conv_History)
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
【优化算法】晶体结构算法【含Matlab源码 1800期】相关推荐
- 【优化算法】蚁狮优化算法(ALO)【含Matlab源码 1307期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]蚁狮优化算法(ALO)[含Matlab源码 1307期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: 付费专栏M ...
- 【优化算法】基于matlab象鼻虫损害优化算法 (WDOA)【含Matlab源码 2228期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[优化算法]基于matlab象鼻虫损害优化算法 (WDOA)[含Matlab源码 2228期] 点击上面蓝色字体,直接付费下载,即可. 获 ...
- 【RF分类】基于matlab随机森林算法数据分类【含Matlab源码 2048期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[RF分类]基于matlab随机森林算法数据分类[含Matlab源码 2048期] 获取代码方式2: 付费专栏Matlab智能算法神经网络 ...
- 【图像去噪】基于matlab全变分算法图像去噪【含Matlab源码 626期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像去噪]基于matlab全变分算法图像去噪[含Matlab源码 626期] 获取代码方式2: 付费专栏Matlab图像处理(初级版) ...
- 【图像分割】基于matlab萤火虫算法图像分割【含Matlab源码 2136期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像分割]基于matlab萤火虫算法图像分割[含Matlab源码 2136期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 036期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [优化预测]基于matlab粒子群算法优化ELM神经网络预测[含Matlab源码 036期] 二.粒子群算法及ELM简介 1 粒子群算法简 ...
- 【KNN分类】基于matlab模拟退火优化KNN、蝗虫算法优化KNN数据分类【含Matlab源码 2275期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[ELM分类]基于matlab鲸鱼算法优化核极限学习机数据分类[含Matlab源码 2012期] 获取代码方式2: 付费专栏Matlab智 ...
- 【优化规划】基于matlab禁忌搜索算法求解配电网无功补偿优化规划问题【含Matlab源码 1842期】
一.基于禁忌搜索算法的无功优化参数选择及流程 禁忌搜索方法是Glover F在1986年首次提出的一种智能启发式算法.鉴于禁忌搜索算法是对局部邻域搜索的一种扩展,通过引入一个灵活的存储结构和相应的禁忌 ...
- 【SVM回归预测】基于matlab粒子群算法优化SVM回归预测【含Matlab源码 1424期】
⛄一.粒子群算法简介 1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都 ...
- 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 1586期】
一.粒子群算法简介 1 粒子群算法简介 1.1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在.生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他 ...
最新文章
- iOS应用版本更新(自动提醒用户)
- 文字加减前后缀lisp_华为笔试题---仿LISP算法
- 将单词的首字母转换成大写
- linux通过管道的进程通信,linux 线程或进程之间通过管道通信(pipe)
- Flink三种运行模式安装部署
- 前端性能优化(PC版)
- NewSQL数据库VoltDB特性简介
- 实现一个压缩Remoting传输数据的Sink:CompressionSink (转载)
- 字节跳动智能创作实验室-图像团队2022秋招正式批开启
- CSS Scrollbar (滚动条)
- 希尔排序不稳定例子_Python实现希尔排序(已编程实现)
- mysql group by 两列_MySQL GROUP BY两列
- html canvas绘制网格,canvas(七)绘制网格和坐标轴
- DZ论坛php代码,Discuz!代码大全 - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
- 单片机蓝牙模块与手机蓝牙通信(1)
- 电路布线问题的动态规划实现(java)
- 计算机里的音乐怎么设置,realtek高清晰音频管理器怎么设置
- ESP8266——入门:点亮TFT液晶屏(五)
- 微信文章投诉模板html,微信小程序模板消息填坑
- 深度学习--采用ReLU解决消失的梯度问题(vanishing gradient problem)