#include
#include
#include
#define MM 33554432
#define A 1103515245
#define C 12345
#define RA 1.0
int x1=21,x2=1,next=11;
int shengchengsuijishu1()
{
int r;
x2=(A*x1+C)%MM;
r=(A*x1)%MM;
x1=x2;
return(r);
}
double shengchengsuijishu()
{
next=shengchengsuijishu1();
next=next*A+C;
next=(int)(next/256)%65536;
return(fabs((double)next/65536));
}
void lorenz(double sig,double b,double r,double *x)
{
int i;
double y[3];
for(i=0;i<3;i++)
y[i]=*(x+i);
*x=-sig*(y[0]-y[1]);
*(x+1)=r*y[0]-y[1]-y[0]*y[2];
*(x+2)=y[0]*y[1]-b*y[2];
}
void run_kut(double sig,double b,double r,double *x,double t) {
int i;
double y[4][3];
for(i=0;i<3;i++)
y[0][i]=*(x+i);
lorenz(sig,b,r,y[0]);
for(i=0;i<3;i++)
y[1][i]=*(x+i)+t*y[0][i]/2;
lorenz(sig,b,r,y[1]);
for(i=0;i<3;i++)
y[2][i]=*(x+i)+t*y[1][i]/2;
lorenz(sig,b,r,y[2]);
for(i=0;i<3;i++)
y[3][i]=*(x+i)+t*y[2][i];
lorenz(sig,b,r,y[3]);
for(i=0;i<3;i++)
*(x+i)+=t*(y[0][i]+2*y[1][i]+2*y[2][i]+y[3][i])/6; }
double ffunction(int n,double *param,double *mx1,double t) {
int i;
double rr=0.0,sig,b,r,x[3],sx1[600];
sig=10;
b=8/3.0;
r=*(param);
x[0]=*mx1;
sx1[0]=*mx1;
x[1]=*(param+1);
x[2]=*(param+2);
for(i=1;irange)
x[i][j]=range*x[i][j]/fabs(x[i][j]);
if(qd==0)
{
p[i][j]=x[i][j];
p1[i][j]=p[i][j];
}
}
ant_rea(x[i],para);
if(qd==0)
{
ant_rea(p[i],para);
ant_rea(p1[i],para);
fitness[i]=ffunction(NN,p[i],mx1,t);
}
//fitness[i]=ffunction(p[i],range1,N);
}
//迭代过程--------------------------------12---------------------------------
for(js=0;;js++)
{
jishu++;
tm+=0.01;
for(i=0;irange)
x[i][j]=range*x[i][j]/fabs(x[i][j]);
}
ant_rea(x[i],para);
ant_rea(p[i],para);
//计算目标函数---------------12-------------------------
f=ffunction(NN,x[i],mx1,t);
if(fitness[i]>f)
{
fitness[i]=f;
for(j=0;jfitness[i])
{
fitness[0]=fitness[i];
k=i;
}
}
for(i=0;ifitness[i])
{
midle=fitness[i];
k=i;
}
}
for(j=0;j1e-7)
break;
}
if(j==N)
break;
}
printf("%d %d %d\n",qd+1,jishu,jishu*M);
for(j=0;j1e-6)
break;
}
}
if(i==M&&j==N)
{
for(j=0;j1e-3)//校正
printf("%f\n\n",i*0.001);
for(j=0;j<3;j++)
xx[j]=x[j];
mx1[0]=x[0];
for(j=1;j