我正在制作一个遗传算法,但我遇到了突变问题。我想要做的是生成 30 个随机字符,它们将在我的有限状态机中充当 10 个状态(10 组 3 位数字),每 3 位的第一个数字必须在 1-4 之间,而其他 2 位数字必须在0-9。
生成数字后,我必须将它们转换为 30 个字符的字符串。我也只想改变每五位数之类的东西。
这是我目前正在尝试的:
% mutate probability 0.2
if (rand < 0.2)
% pick best chromosome to mutate
mut = combo{10};
for t = 3:30
mut(t) = num2str(randi([0,9]));
end
end
我目前不能做的是只改变每第 n 个数字或确保每 3 个数字中的第一个数字在 1-4 之间,而其他数字保持在 0-9 之间。
如果它有帮助:combo{10}
代表110202132224154246176368198100