• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: MATLAB  

资源简介

用于工程优化,函数优化,求最优解 工程问题

资源截图

代码片段和文件信息

clc;
close all;

nSize=10;  % 蝙蝠个体数

N_gen=1000;  % 总迭代次数

% This frequency range determines the scalings. You should change these values if necessary
Qmin=0;         % Frequency minimum
Qmax=2;         % Frequency maximum
 
% Iteration parameters  迭代参数
N_iter=0;       % Total number of function evaluations  功能评价总数
% Dimension of the search variables    搜索维数
Dim=2;           % Number of dimensions
 
ALoud=1+rand(nSize1);    % Loudness  (constant or decreasing)响度,按照p8要求产生[12]的随机数
r=rand(nSize1);      % Pulse rate (constant or decreasing)脉冲率设置为[01]的随机数
afa = 0.85;           %响度弱化速率
rta = 0.9;           %脉冲率增强系数
r0 = r;
tol = 1e-9;          %最小的计算误差

% Lower limit/bounds/ a vector
Lb=-2*ones(1Dim);   
% Upper limit/bounds/ a vector
Ub=2*ones(1Dim);

% Initializing arrays  初始化数组
Q=zeros(nSize1);   % Frequency 频率
v=zeros(nSizeDim);   % Velocities 速度

Sol = zeros(nSizeDim); 
Fitness = zeros(nSize1);
MinVal = zeros(N_gen1);

% Initialize the population/solutions
for i=1:nSize
  Sol(i:)=Lb+(Ub-Lb).*rand(1Dim);  %rand(m*n)会生成  m*n的矩阵,矩阵元素是[010]随机数
  Fitness(i)=Fun(Sol(i:));
end
% Find the initial best solution
[fminiBest]=min(Fitness);   %iBest记录取得fmin的Fitness的位置,而这位置正是Sol中解的位置;fmin是Fitness中最小的值
best=Sol(iBest:);           %记录最好的解
 
% Start the iterations -- Bat Algorithm (essential part)  %
itr = 0;  %统计进化的

评论

共有 条评论