遗传算法实例: 也是自己找来的,原代码有少许错误,本人都已更正了,调试运行都通过了的
对于初学者,尤其是还没有编程经验的非常有用的一个文件 遗传算法实例 % 下面举例说明遗传算法 % % 求下列函数的最大值 % % f(x)=10*sin(5x)+7*cos(4x) x∈[0,10] % % 将 x 的值用一个10位的二值形式表示为二值问题,一个10位的二值数提供的分辨率是每为 (10-0)/(2^10-1)≈0
% % 将变量域 [0,10] 离散化为二值域 [0,1023], x=0+10*b/1023, 其中 b 是 [0,1023] 中的一个二值数
% % % % 编程 %----------------------------------------------- % 2
1初始化(编码) % initpop
m函数的功能是实现群体的初始化,popsize表示群体的大小,chromlength表示染色体的长度(二值数的长度), % 长度大小取决于变量的二进制编码的长度(在本例中取 10位)
%遗传算法子程序 %Name: initpop
m %初始化 function pop=initpop(popsize,chromlength) pop=round(rand(popsize,chromlength)); % rand随机产生每个单元为 {0,1} 行数为popsize,列数为 chromlength的矩阵, % roud对矩阵的每个单元进行圆整
这样产生的初始种群
2 计算目标函数值 % 2
1 将二进制数转化为十进制数(1) %遗传算法子程序 %Name: decodebinary
m %产生 [2^n 2^(n-1)
1] 的行向量,然后求和,将二进制转化为十进制 function pop2=decodebinary(