Matlab 将遗传算法染色体中的基因限制为整数倍

Matlab 将遗传算法染色体中的基因限制为整数倍,matlab,genetic-algorithm,Matlab,Genetic Algorithm,如果我使用matlab中的遗传算法,有没有办法将染色体中的基因限制在10000的整数倍 我有一条这样的染色体,{Pdg1 Pdg2…Pdg33},我需要0gamultiobj不支持整数约束。我通常执行标量化并使用普通的ga function res = scalarizedFitness(x) [obj1, obj2, obj3] = yourFitnessFunction(x); %choose w1, w2, w3 res = w1 * obj1 + w2 * obj

如果我使用matlab中的遗传算法,有没有办法将染色体中的基因限制在10000的整数倍


我有一条这样的染色体,
{Pdg1 Pdg2…Pdg33}
,我需要
0
gamultiobj
不支持整数约束。我通常执行标量化并使用普通的
ga

function res = scalarizedFitness(x)
    [obj1, obj2, obj3] = yourFitnessFunction(x);
    %choose w1, w2, w3
    res = w1 * obj1 + w2 * obj2 + w3 * obj3;
end
避免标量化的方法是为
gamultiobj
编写自己的变异函数。我从来没有这样做过。有一些关于它的注释

自某些版本以来,
ga
支持整数约束。我的2011b支持它。键入
help ga
并查找它是否包含行
X=ga(FITNESSFCN、NVARS、A、b、[]、[]、lb、ub、NONLCON、INTCON)
。请注意,
INTCON
参数,用于说明哪些参数是整数


0
gamultiobj
不支持整数约束。我通常执行标量化并使用普通的
ga

function res = scalarizedFitness(x)
    [obj1, obj2, obj3] = yourFitnessFunction(x);
    %choose w1, w2, w3
    res = w1 * obj1 + w2 * obj2 + w3 * obj3;
end
避免标量化的方法是为
gamultiobj
编写自己的变异函数。我从来没有这样做过。有一些关于它的注释

自某些版本以来,
ga
支持整数约束。我的2011b支持它。键入
help ga
并查找它是否包含行
X=ga(FITNESSFCN、NVARS、A、b、[]、[]、lb、ub、NONLCON、INTCON)
。请注意,
INTCON
参数,用于说明哪些参数是整数

0