MATLAB初始化智能算法编码-产生随机不重复整数序列矩阵

发布时间:2024-01-23 14:20:14

产生随机不重复整数序列矩阵是智能算法最常用的操作之一,以下给出具体方法:

clc;close all;clear all;warning off;%清除变量
rand('seed', 100);
randn('seed', 100);
format long g;


N=10; % 设定优化问题维数
lb=0*ones(1,N);% 自变量上限
ub=1*ones(1,N);% 自变量下限

popsize=10;% 种群数
Chrom=mygenfun(popsize,N,lb,ub)
?

function Chrom=mygenfun(popsize,N,lb,ub)
% 建立随机种群
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
? ? [v1,S]=sort(x);% 排序
? ? ?Chrom(i,:)=S;% 排序赋值
end
?

程序运行结果如下:


Chrom =

? ? ?3 ? ? 2 ? ? 1 ? ?10 ? ? 5 ? ? 4 ? ? 7 ? ? 8 ? ? 6 ? ? 9
? ? ?2 ? ? 5 ? ? 6 ? ? 1 ? ?10 ? ? 3 ? ? 7 ? ? 4 ? ? 9 ? ? 8
? ? ?1 ? ? 7 ? ? 8 ? ? 3 ? ? 5 ? ? 9 ? ? 6 ? ? 4 ? ? 2 ? ?10
? ? ?2 ? ? 7 ? ? 5 ? ? 4 ? ?10 ? ? 1 ? ? 9 ? ? 8 ? ? 6 ? ? 3
? ? ?9 ? ? 1 ? ? 5 ? ? 6 ? ? 3 ? ? 7 ? ? 2 ? ? 8 ? ?10 ? ? 4
? ? ?1 ? ? 9 ? ? 8 ? ? 7 ? ?10 ? ? 4 ? ? 3 ? ? 6 ? ? 2 ? ? 5
? ? ?3 ? ? 8 ? ? 2 ? ? 4 ? ? 1 ? ? 6 ? ? 7 ? ? 5 ? ? 9 ? ?10
? ? ?1 ? ? 6 ? ? 7 ? ? 3 ? ? 8 ? ?10 ? ? 5 ? ? 9 ? ? 2 ? ? 4
? ? ?8 ? ? 9 ? ? 5 ? ? 1 ? ? 2 ? ? 3 ? ? 4 ? ? 6 ? ?10 ? ? 7
? ? ?8 ? ?10 ? ? 3 ? ? 4 ? ? 7 ? ? 9 ? ? 2 ? ? 6 ? ? 1 ? ? 5

>>?

熟练掌握此方法可以广泛用于各类排序编码的智能算法,避让遗传算法,蚁群算法等,用于解决很多排序问题.

文章来源:https://blog.csdn.net/corn1949/article/details/135762682
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。