本文主要是介绍MATLAB初始化种群-随机和一定的实数序列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在智能算法的编码场景中,很多时候是需要用求和为一定的编码的, 比如分配问题, 配送问题等, 下面给出具体程序代码:
clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;
N=5; % 设定优化问题维数
lb=0*ones(1,N);% 自变量上限
ub=1*ones(1,N);% 自变量下限
popsize=10;% 种群数
p=12.5;% 求和的目标
Chrom=mygenfun(popsize,N,lb,ub,p)
disp('验证求和是否为p');
sum(Chrom,2)
function Chrom=mygenfun(popsize,N,lb,ub,p)
% 建立随机种群
Chrom=zeros(popsize,N);% 初始化编码矩阵
for i=1:popsize% 循环
x=zeros(1,N);% 初始化变量
for j=1:N
x(1,j)=lb(j)+(ub(j)-lb(j))*rand(1,1);% 随机赋值
end
x2=p*x/sum(x);% 和为p的非负序列
Chrom(i,:)=x2;% 求和序列赋值
end
程序结果:
可看到产生了10行随机数, 每一行的和都是12.5, 说明代码有效.
这篇关于MATLAB初始化种群-随机和一定的实数序列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!