⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myfun.c

📁 粒子群算法的JAVA 程序
💻 C
字号:
#include "headfile.h"
#include "extern.h"
#include "myfun.h"

float f6(int a)
{
/*
	This is the f6 function as described in the Handbook of
	Genetic Algorithms, p.8
*/
	double num, denom, f6;
	double errorf6;

	num=(sin(sqrt((xx[0][a]*xx[0][a])+(xx[1][a]*xx[1][a]))))  *
		 (sin(sqrt((xx[0][a]*xx[0][a])+(xx[1][a]*xx[1][a])))) - 0.5;
	denom=(1.0 + 0.001 * ((xx[0][a] * xx[0][a]) + (xx[1][a]*xx[1][a]))) *
		(1.0 + 0.001 * ((xx[0][a] * xx[0][a]) + (xx[1][a]*xx[1][a])));
	f6=(double) 0.5 - (num/denom);
	errorf6=1 - f6;
	return errorf6;
}

float sphere(int a, int b)
{
	/* This is the familiar sphere model
		int a: index of particles   b:dimension */

	double result;
	int i;

	result=0.0;

	for (i=0;i<b;i++)
	{
		result += xx[i][a]*xx[i][a];
	}

	return result;
}

float rosenbrock(int a, int b)
{
	/* this is the Rosenbrock function
		a: index of the particles; b:dimension */

	int i;
	double result;

	result=0.0;

	for (i=1;i<b;i++)
	{
		result +=100.0*(xx[i][a]-xx[i-1][a]*xx[i-1][a])*(xx[i][a]-xx[i-1][a]*xx[i-1][a]) + (xx[i-1][a]-1)*(xx[i-1][a]-1);
	}

	return fabs(result);
}

float rastrigrin(int a, int b)
{
	/* This is the generalized Rastrigrin function
		a:index of the particles; b:dimension */

	int i;
	double result;

	result=0.0;

	for (i=0;i<b;i++)
	{
		result +=xx[i][a]*xx[i][a] - 10.0*cos(2.0*3.141591*xx[i][a])+10.0;
	}

	return result;
}

float griewank(int a,int b)
{
	/* This is the generalized Griewank function
		a:index of the particles; b:dimension */

	int i;
	double result_s,result_p;

	result_s=0.0;
	result_p=1.0;

	for (i=0;i<b;i++)
	{
		result_s +=xx[i][a]*xx[i][a];
		result_p *=cos(xx[i][a]/sqrt(i+1));
	}
	result_s =result_s/4000.0 - result_p +1;

	return result_s;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -