-
大小: 3KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-06-01
- 语言: Matlab
- 标签: 和声搜索 HarmonySearc matlab
资源简介
和声搜索 HarmonySearch matlab
代码片段和文件信息
function [BestGenBestFitnessgx]=HarmonySearch
% This code has been written with Matlab 7.0
% You can modify the simple constraint handlening method using more efficient
% methods. A good review of these methods can be found in:
% Carlos A. Coello Coello“Theoretical and numerical constraint-handling techniques used with evolutionary algorithms: a survey of the state of the art“
clc
clear;
global NVAR NG NH MaxItr HMS HMCR PARmin PARmax bwmin bwmax;
global HM NCHV fitness PVB BW gx;
global BestIndex WorstIndex BestFit WorstFit BestGen currentIteration;
NVAR=4; %number of variables
NG=6; %number of ineguality constraints
NH=0; %number of eguality constraints
MaxItr=5000; % maximum number of iterations
HMS=6; % harmony memory size
HMCR=0.9; % harmony consideration rate 0< HMCR <1
PARmin=0.4; % minumum pitch adjusting rate
PARmax=0.9; % maximum pitch adjusting rate
bwmin=0.0001; % minumum bandwidth
bwmax=1.0; % maxiumum bandwidth
PVB=[1.0 4;0.6 2;40 80;20 60]; % range of variables
% /**** Initiate Matrix ****/
HM=zeros(HMSNVAR);
NCHV=zeros(1NVAR);
BestGen=zeros(1NVAR);
fitness=zeros(1HMS);
BW=zeros(1NVAR);
gx=zeros(1NG);
% warning off MATLAB:m_warning_end_without_block
MainHarmony;
% /**********************************************/
function sum =Fitness(sol)
sum = 0.6224*sol(1)*sol(3)*sol(4)+1.7781*sol(2)*sol(3)^2+3.1661*sol(1)^2*sol(4)+19.84*sol(1)^2*sol(3)+ eg(sol); %F(x) = f(x) + penalty
end
% /*********************************************/
function sum=eg(sol)
% constraints g(x) > 0
gx(1)=sol(1)-0.0193*sol(3); % x1 - 0.0193 x3 > 0
gx(2)=sol(2)-0.00954*sol(3);
gx(3)=3.14*sol(3)^2*sol(4)+(4/3)*3.14*sol(3)^3 - 1296000;
gx(4)=-sol(4)+240;
gx(5)=sol(1) - 1.1;
gx(6)=sol(2) - 0.6;
% we use static penalty function to handle constraints
sum = 0;
for i=1:NG
if(gx(i)<0)
sum = sum - 1000 * gx(i);
end
end
end
% /*********************************************/
function initialize
% randomly initialize the HM
for i=1:HMS
for j=1:NVAR
HM(ij)=randval(PVB(j1)PVB(j2));
end
fitness(i) = Fitness(HM(i:));
end
end
%/*******************************************/
function MainHarmony
% global NVAR NG NH MaxItr HMS HMCR PARmin PARmax bwmin bwmax;
% global HM NCHV fitness PVB BW gx currentIteration;
initialize;
currentIteration = 0;
while(StopCondition(currentIteration))
PAR=(PARmax-PARmin)/(MaxItr)*currentIteration+PARmin;
coef=log(bwmin/bwmax)/MaxItr;
for pp =1:NVAR
BW(pp)=bwmax*exp(coef*curr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6214 2010-09-29 03:56 HarmonySearch.m
文件 1333 2010-09-29 03:56 license.txt
相关资源
- matlab2009a反复要求激活解决方案——亲
- 模拟退火的方法解TSP问题--matlab
- matlab航天工程工具箱相信对航天卫星
- matlab双对数坐标及拟合
- 基于LCL的单相有源阻尼并网逆变器的
- matlab 曲柄滑块机构仿真 程序
- Matlab图像处理模板匹配完整程序小飞
- SMOTE算法 MATLAB代码
- MIMO-OFDM系统的Matlab仿真代码
- 时间序列预测及matlab代码
- matlab 源代码 线性规划
- 基于matlab比例导引做的三维弹道
- 电磁场实验 MATLAB仿真直导线的磁场分
- 直接序列扩频通信系统matlab仿真程序
- 马氏链模型 matlab
- matlab IDW插值方式
- 基于卡尔曼滤波的视频人脸跟踪MATL
- 机器人障碍环境下路径规划改进的回
- 带通滤波器MATLAB程序139688
- 用重标度极差法计算hurst指数的matla
- BP神经网络对iris数据集进行分类 MAT
- 滑模变结构控制matlab仿真第三版基本
- R2016a_patch_1465823_2016-09-21(Mac上Matlab
- 节点导纳矩阵的Matlab算法
- 雷达系统设计MATLAB仿真Mahafza、Elsher
- 基于matlab,读取图像文件并计算其图
- 图像处理识别图中棒材个数
- 基于特征匹配和RANSAC的三维点云拼接
- matlab 求最小外接矩形
- 遗传算法求函数f=x+10*sin(5*x)+7*cos(
评论
共有 条评论