【优化求解】基于和声搜索算法求解最优目标Matlab代码

277 阅读1分钟

 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代码与数据下载地址

见博客主页