鲸鱼优化算法C++代码
for (j = 0; j < dim; j ) {
if (p < 0.5) {
if (abs(A) >= 1) {
int rand_leader_index = floor(SearchAgents_no * (double)rand() / RAND_MAX 1);
memcpy(&x_rand, &ptcle[rand_leader_index].position, sizeof(double) * dim);
D_X_rand[j] = abs(C * x_rand[j] - ptcle[i].position[j]);
ptcle[i].position[j] = x_rand[j] - A * D_X_rand[j];
}
else if(abs(A) < 1){
double D_leader= abs(C * leader_pos[j] - ptcle[i].position[j]);
ptcle[i].position[j] = leader_pos[j] - A * D_leader;
}
}
else if (p > 0.5) {
double distance2Leader= abs(leader_pos[j] - ptcle[i].position[j]);
ptcle[i].position[j] = distance2Leader * exp(b*l)*cos(l*2*PI) leader_pos[j];
}
}
下载地址
用户评论