1 简介
和声搜索算法(Harmony search, HS)是一种新兴的智能优化算法,通过反复调整记忆库中的解变量,使函数值随着迭代次数的增加不断收敛,从而来完成优化。算法概念简单、可调参数少、容易实现。它是 2001 年韩国学者 Geem Z W 等人提出的一种新颖的智能优化算法。
2 部分代码
% Harmony Search Algorithm
%
% Base on:
% [1]:
clc;clear all;close all
%% Problem Prametters
Dim=2; % problem Dimention
Low=[-100 -100]; % Low Boundry of Problem
High=[100 100]; % High Boundry of Problem
Min=1; % Minimaization or maximaiz of Fun? if Min=1 it will be minimaze the function and if Min=0 it will be maximized the function.
%% Harmony Search Parametters
HMS=100;%Harmony Memory Size (Population Number)
bw=0.2;
HMCR=0.95;%[1], Harmony Memory Considering Rate
PAR=0.3;%[1], Pitch Adjustment Rate
MaxItr=10000;% Maximum number of Iteration
%% Initialization
HM=zeros(HMS,Dim);
HF=zeros(HMS,1);
for i=1:HMS
HM(i,:)=Low+(High-Low).*rand(1,Dim);
HF(i,1)=MyFun(HM(i,:));
end
%% Present Best Answer
if Min==1
[BestFit,BestLoc]=min(HF);
else
[BestFit,BestLoc]=max(HF);
end
Best=HM(BestLoc,:);
display(Best)
display(BestFit)
figure(1)
plot(Best)
xlabel('迭代次数')
ylabel('适应度值')
img =gcf; %获取当前画图的句柄
print(img, '-dpng', '-r600', './运行结果.png') %即可得到对应格式和期望dpi的图像
3 仿真结果
4 参考文献
[1]李亮, 迟世春, and 林皋. "改进和声搜索算法及其在土坡稳定分析中的应用." 土木工程学报 05(2006):107-111.
部分理论引用网络文献,若有侵权联系博主删除。
5 MATLAB代码与数据下载地址
见博客主页