资源简介
基于遗传算法的单目标优化matlab程序代码
代码片段和文件信息
L = 32;
N = 60;
T = 100;
Pc = 0.6;
Pm = 0.02;
for i = 1 : 1 : N
x0(1 i) = unidrnd(2 ^ L - 1);
x0(2 i) = unidrnd(2 ^ L - 1);
end
for t = 1 : 1 : T
for i = 1 : 1 : N
grayCode(1 i :) = num2gray(x0(1 i) L);
grayCode(2 i :) = num2gray(x0(2 i) L);
end
for i = 1 : 1 : N / 2
if rand() < Pc
p = unidrnd(L);
for j = 1 : 1 : p - 1
grayCode(1 i + N j) = grayCode(1 i j);
grayCode(2 i + N j) = grayCode(2 i j);
grayCode(1 N - i + 1 + N j) = grayCode(1 N - i + 1 j);
grayCode(2 N - i + 1 + N j) = grayCode(2 N - i + 1 j);
end
for j = p : 1 : L
grayCode(1 i + N j) = grayCode(1 N - i + 1 j);
grayCode(2 i + N j) = grayCode(2 N - i + 1 j);
grayCode(1 N - i + 1 + N j) = grayCode(1 i j);
grayCode(2 N - i + 1 + N j) = grayCode(2 i j);
end
end
end
for i = N + 1 : 1 : 2 * N
for j = 1 : 1 : L
for k = 1 : 1 : 2
if rand() < Pm
grayCode(k i j) = 1 - grayCode(k i j);
end
end
end
end
for i = N + 1 : 1 : 2 * N
x0(1 i) = gray2num(grayCode(1 i :));
x0(2 i) = gray2num(grayCode(2 i :));
end
for i = 1 : 1 : 2 * N
x1(1 i) = double(x0(1 i)) / (2 ^ L - 1) * 10 - 5;
x1(2 i) = double(x0(2 i)) / (2 ^ L - 1) * 10 - 5;
temp(1 i) = x1(1 i) ^ 2 + x1(2 i) ^ 2;
y(1 i) = 0.5 - (sin(sqrt(temp(1 i))) ^ 2 - 0.5) / (1 + 0.001 * temp(1 i));
end
for i = 1 : 1 : N
[a b] = max(y);
x2(: i) = x0(: b);
y(1 b) = -inf;
end
for i = 1 : 1 : N
x0(: i) = x2(: i);
end
end
x1
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1964 2014-05-04 10:09 GA\GA_one.m
目录 0 2014-05-04 10:06 GA
----------- --------- ---------- ----- ----
1964 2
- 上一篇:qpsk的matlab实现
- 下一篇:零基础快速入门Matlab神经网络.txt
评论
共有 条评论