求教MATLAB、遗传算法大神们

博主在使用MATLAB进行多目标遗传算法系统设备调度问题研究时遇到非支配排序错误,代码来源于算法包,希望大神帮助解决。错误出现在排序环节,请求帮助修复并提供指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MATLAB大神们,本人菜鸟一枚,近期在做一个课题,利用多目标遗传算法求解系统设备调度问题,主程序使用的是算法包,但计算过程中,在非支配排序环节出现了错误,我没有动过这部分的程序,不知道为什么会出错?下面附上错误以及代码,求各位大神指点迷津,十分感谢!!!

MATLAB运行报错
function f = non_domination_sort_mod(x, M, V)
% x 每个个体
% M 目标空间的维数
% V 决策变量空间的维数
% 使用非支配排序对种群进行排序。 这将返回两个列,每个人是排名和拥挤距离对应于他们
% 在前面他们所属的位置。 在这个阶段,每个染色体的等级和拥挤距离被添加到染色体向量
% 以便于计算。
%M是目标空间的维数,V是决策变量空间的维数,chromosome染色体向量
%%
[N, m] = size(x); %N为规模,即个体数目
clear m
front = 1; %初始化前沿为1

%此步骤没有重大意义,只是为了简单计算
F(front).f = []; %包含被个体支配的集合
individual = []; %个体集合

%% 非支配排序
%在NSGA进行非支配排序时,规模为N的种群中的每个个体都要针对M个目标函数
%和种群中的N-1个个体进行比较,复杂度为O(MN)
for i = 1 : N
%支配这个个体的个体数量
individual(i).n = 0; %支配p个体的个体数量
individual(i).p = []; % 被p支配的个体
for j = 1 : N
dom_less = 0;
dom_equal = 0;
dom_more = 0;
for k = 1 : M
%判断支配关系
if (x(i,V + k)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值