我随机生成了遗传算法的初始10个种群(每个大小为n)
for i = 1:10
for j=1:n
population(i,j)=randi([MinIntensity,MaxIntensity]);
end
end
假设我有一个种群的值。例如,让第一个种群的大小为[100 110 120 130 140 150 160 170 180 190]。是否有可能产生剩余的9个种群,使得数值为接近第一个种群?(这是为了遗传算法的快速收敛)。每个种群都是一个灰度图像,强度值以行主要顺序表示。强度值应该在0 - 255范围内。 请帮忙。谢谢提前
答案 0 :(得分:2)
你可以做一件事。将第一个字符串原样用于9个字符串中的其余字符串,除了随机生成索引(介于1到n之间)并仅将随机整数分配给具有该随机索引的位置。
population(1,:) = [100 110 120 130 140 150 160 170 180 190];
for i = 2:10
idx = randi([1 10]);
population(i,:) = population(1,:);
population(i,idx) = randi([0 255]);
end
通过这种方式,你只会在一个位置得到十个不同的字符串。
编辑:图片。 假设你有一个MXN图像。创建一个掩码,例如
randi([-10 10], M , N)
现在将其添加到原始图像中。现在你得到一个新的图像,其所有像素都被修改,但只在-10到10的范围内。有些像素值可能超出范围,在这种情况下只需修改如下
x(find(x < 0)) = 0 %Here X is your new image.
x(find(x > 255)) = 255