请问遗传算法的变异操作的问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 20:06:42
程序是求函数f(x)=abs(4*sin(x))*(exp(-0.1*x))的最大值
变异部分的代码,随机抽取一位以概率pm变异这种方法不是太好,但我只能想到这个,不知道有没有更好的方法?
谢谢!
我对白噪声算法一点概念都没有……请问能不能给个例子?谢谢!

可以使用白噪声之类的算法加入噪点

补充:白噪声是指功率谱密度在整个频域内均匀分布的噪声,比较适合在遗传算法中处理变异现象。

#include "msp.h"
float randnu(long *iseed)
{
float z;
*iseed=2045*(*iseed)+1;
*iseed=*iseed-(*iseed/1048576)*1048576;
z=(float)((*iseed+1)/1048577.0);
return(z);
}
/*--------------------------------------------------------------------*/
void meavar(float u[],int *n,float *pum,float *puv)
{
int i,k;
*pum=0.0;
for(k=0;k<*n;k++)
*pum=*pum+u[k];
*pum=*pum/(*n);
*puv=0.0;
for(i=0;i<*n;i++)
*puv=*puv+pow((u[i]-*pum),2);
*puv=*puv+pow((u[i]-*pum),2);
*puv=*puv/(*n-1.);
return;
}
/*---------------------------------------------------------------------
Routine mrandom : To generate the random numbe