Matlab 将遗传算法染色体中的基因限制为整数倍
如果我使用matlab中的遗传算法,有没有办法将染色体中的基因限制在10000的整数倍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
我有一条这样的染色体,
{Pdg1 Pdg2…Pdg33}
,我需要0gamultiobj
不支持整数约束。我通常执行标量化并使用普通的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
参数,用于说明哪些参数是整数
0gamultiobj
不支持整数约束。我通常执行标量化并使用普通的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