亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pso.c

?? 粒子群算法源碼
?? C
字號:
/*
  This program optimizes benchmark functions using particle swarm algorithm
  Asynchronous version
  Yuhui Shi, May 15, 1998
  @ See OLD_README file for more details
  
  /-----------------------------------------------------------------------------------
  Dissipative PSO V1.1
  Xiao-Feng Xie, Dec 15, 2001 (last modified)
  URL: http://www.adaptivebox.net/research/
  @ See README.txt file for more details

  Difference: add two chaos parameters: Cv, Cl
  @ Ref: X. F. Xie, W. J. Zhang, Z. L. Yang. A dissipative particle swarm optimization.
    Congress on Evolutionary Computation (CEC), Hawaii, USA, 2002: 1456-1461 
  /-----------------------------------------------------------------------------------
*/
//normal file
#include "headfile.h"
#include "global.h"
#include "mem_loc.h"
#include "myfun.h"
#include "methods.h"

float calcFunc(int fun_type, FMATRIX outxx, int a, int DIMENSION);
float getRandom();

/* ******************** main() ******************** */
int main (int argc, char *argv[])
{
  /*------Algorithm setting parameters: Total evaluation time = m*(T+1)------------*/
  int  NUMBER_OF_AGENTS = 20;           //m: the number of particles
  int  MAXITER = 2000;                  //T: the maximum iteration cycles

  float weight_up=0.9, weight_low=0.4;  //inertia weight, for linear decreasing PSO (LPSO)
  float c1=2, c2=2;                     //learing factors
  float Cv = 0.0, Cl = 0.001;           //chaos factors: by Xiao-Feng Xie
  float MAXV = 0.5;			//For controllong the maximum velocity as MAXV*(dimension length)

  /*------Output setting parameters------------*/
  int run_no;                           //number of runs
  int OutputStep = 1;                   //For output interval
  char resfilePrefix[120];              //The prefix of output file

  /*------problem setting parameters------------*/
  int fun_type = 3;			// 0:Schaffer f6  1:sphere  2:Rosenbrock  3:generalized Rastrigrin  4:generalized Griewank
  int DIMENSION = 30;			// the dimension of problem
  float MAXX = 600;			// problem range: [-MAXX, MAXX] for all dimensions

  /*------temp values ------------*/
  FILE *fp, *frun;
  char runfile[120], resfile[120];      //run file and log file
  char temp[120];

  int a,b;
  int i,j;

  float minval=0.0;
  float realWeight;
  int iter;
  int gbest;
  int firsttime;
  int finish;


  time_t tt;
  struct tm *newtime;
  int curSec = 0;

  /* *********************************************************
		Open problem file
	********************************************************* */
	if (argc<2)
	{
		printf("Need to specify runfile. For Example: dpso *.run");
		exit(1);
	}
	strcpy(runfile,argv[1]);

	if ((frun=fopen(runfile,"r"))==NULL)
	{
		printf("Cant read file");
		exit(1);
	}

	/*Get parameters from file */
	fscanf(frun, "%d %d %f %f %f %f %f %d %d %s %d %d %f",
	  &NUMBER_OF_AGENTS, &MAXITER, &weight_up, &weight_low, &Cv, &Cl, &MAXV,
	  &run_no, &OutputStep, resfilePrefix,
	  &fun_type, &DIMENSION, &MAXX);
	fclose(frun);
	
	/*allocate memory*/
	FVectorAllocate(&trail,	 DIMENSION);
	FVectorAllocate(&pbest,  NUMBER_OF_AGENTS);
	FMatrixAllocate(&maxx,   DIMENSION, 2);
	FMatrixAllocate(&xx,     DIMENSION,NUMBER_OF_AGENTS);
	FMatrixAllocate(&vx,     DIMENSION,NUMBER_OF_AGENTS);
	FMatrixAllocate(&tx,     DIMENSION,NUMBER_OF_AGENTS);
	FMatrixAllocate(&pbestx, DIMENSION,NUMBER_OF_AGENTS);

	/****************************initial parameter range********************************/
	for (a=0;a<DIMENSION;a++)
	{
		maxx[a][0]=-MAXX;			  /* range of xx[]  */
		maxx[a][1]= MAXX;             /* range of xx[]  */
	}


	time(&tt);
	printf("begin time: %s\n",ctime(&tt));

	/*** .log file for output best agent index vs iteration ***/
	sprintf(temp, "(N%d, V%.2f, W%.2f-%.2f, G%d, Cv%.4f, Cl%.4f, D%d)", NUMBER_OF_AGENTS, MAXV, weight_up, weight_low, MAXITER, Cv, Cl, DIMENSION);
	strcpy(resfile,resfilePrefix);
	strcat(resfile,temp);
	strcat(resfile,".log");
	printf("Out: %s\n", resfile);
	if ((fp=fopen(resfile,"w"))==NULL)
	{
		printf("Cant write file");
		exit(1);
	}

	/* ----- loop for runs -----*/
	for (i=0;i<run_no;i++)
	{
		firsttime=1;           //first iteration of this run
		iter=0;
		gbest=0;               //initialy assume the first particle as the gbest

		time(&tt);
		newtime = localtime( &tt ); /* Convert to local time. */
		curSec = newtime->tm_sec;
		for (j=0; j< curSec; j++) {
			rand();
		}
		
  		/* **********************************************
			This loop initializes the individual agents  for each run
		********************************************** */
		for (a=0;a<NUMBER_OF_AGENTS;a++) {
			for (b=0;b<DIMENSION;b++)	{
				xx[b][a] = (float) ((maxx[b][1] - maxx[b][0])*getRandom() + maxx[b][0]);
				pbestx[b][a]=xx[b][a];
				vx[b][a] = (float) (MAXV*(maxx[b][1]-maxx[b][0])*getRandom());
				if (getRandom()> 0.5) vx[b][a]=-vx[b][a];
			}
		}
		/* *******************************************************
			Main Work Loop for each run here
		******************************************************** */

		finish=0;
		do {
			/*------ more randomize by Xiao-feng Xie start ------*/
			time(&tt);
			newtime = localtime( &tt ); /* Convert to local time. */
			curSec = newtime->tm_sec;
			for (j=0; j< curSec%7; j++) {
				rand();
			}
			/*------ more randomize by Xiao-feng Xie end   ------*/

			iter++;

			//update inertia weight
			realWeight = (weight_up-weight_low) * (MAXITER - iter) /MAXITER +weight_low;

			for (a=0;a<NUMBER_OF_AGENTS;a++)
			{
				/* *********************************************
				eval(a) error is returned by function routines 
				********************************************* */
				minval = calcFunc(fun_type, xx, a, DIMENSION);
				if (firsttime==1) pbest[a]=minval;

				if (minval < pbest[a]) {
					pbest[a]=minval;
					for (b=0;b<DIMENSION;b++) pbestx[b][a]=xx[b][a];
					if (pbest[a] < pbest[gbest]) {
						gbest=a;
					}
				}

			}

			for (a=0;a<NUMBER_OF_AGENTS;a++) {

				/* asynchronous version */
				for (b=0;b<DIMENSION;b++)	{
					vx[b][a] = (float) (realWeight*vx[b][a] + c1*getRandom()*(pbestx[b][a]-xx[b][a]) +
					c2*getRandom()*(pbestx[b][gbest]-xx[b][a]));
					if (vx[b][a]>MAXV*maxx[b][1]) {
						vx[b][a]=MAXV*maxx[b][1];
					} else if (vx[b][a]<MAXV*maxx[b][0]) {
						vx[b][a]=MAXV*maxx[b][0];
					}
					tx[b][a]=xx[b][a]+vx[b][a];
				}
			}

			for (a=0;a<NUMBER_OF_AGENTS;a++) {
				for (b=0;b<DIMENSION;b++)	{
					xx[b][a] = tx[b][a];
                    /*------ chaos factors Cv, Cl for absentminded birds: by Xiao-Feng Xie start ------*/
                    if (getRandom()< Cv) {		
						vx[b][a] = (float) (MAXV*(maxx[b][1]-maxx[b][0])*getRandom());
						if (getRandom() > 0.5) vx[b][a]=-vx[b][a];
					}
					if (getRandom()< Cl) {		
						xx[b][a] = (float) ((maxx[b][1]-maxx[b][0])*getRandom()+maxx[b][0]);
					}
                    /*------ chaos factors Cv, Cl for absentminded birds: by Xiao-Feng Xie end  ------*/
				}
			}

			/* ******************************************************
				Terminate on criterion
			********************************************************* */
			//output best index vs iteration
			if (iter%OutputStep==0) {
				if (fun_type==0) {
					fprintf(fp,"%e\t",1.0-pbest[gbest]);
				}
				else {
					fprintf(fp,"%e\t",pbest[gbest]);
				}
			}

			if (iter >= MAXITER)
			{
				fprintf(fp,"\n");
				printf("%d run: gbest=%.4f\n",(i+1), pbest[gbest]);
				finish=1;
			}
			firsttime=0;

		}     /* **************** End of do-loop *************** */
		while (! finish);
	}
	time(&tt);
	fclose(fp);
	printf("end time: %s\n",ctime(&tt));
	return 0;
}

float getRandom() {
  return rand()/(float)RAND_MAX;
}

float calcFunc(int fun_type, FMATRIX outxx, int a, int DIMENSION) {
	float minval;
	switch (fun_type)
	{
		case 0:
			minval=f6(outxx, a);
			break;
		case 1:
			minval=sphere(outxx, a,DIMENSION);
			break;
		case 2:
			minval=rosenbrock(outxx, a,DIMENSION);
			break;
		case 3:
			minval=rastrigrin(outxx, a,DIMENSION);
			break;
		case 4:
			minval=griewank(outxx, a,DIMENSION);
			break;
		default:
			printf("\n Not a valid function type\n");
			exit(1);
	}
	return minval;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合网最新| 欧美videofree性高清杂交| 在线播放日韩导航| 久久新电视剧免费观看| 亚洲欧美区自拍先锋| 国产一区高清在线| 欧美老女人第四色| 亚洲人成电影网站色mp4| 麻豆视频一区二区| 欧美日韩国产综合草草| 国产精品久久久久aaaa樱花| 狠狠色综合日日| 欧美乱妇一区二区三区不卡视频| 国产精品免费aⅴ片在线观看| 蜜桃视频第一区免费观看| 在线中文字幕不卡| 自拍偷拍亚洲欧美日韩| 粉嫩蜜臀av国产精品网站| 日韩一区二区免费在线电影| 亚洲午夜免费福利视频| 一本一道波多野结衣一区二区| 国产午夜精品久久久久久久| 九九九精品视频| 在线不卡a资源高清| 亚洲一区二区在线视频| 色哟哟国产精品| 成人欧美一区二区三区白人| 风流少妇一区二区| 日本一区二区三区在线不卡| 国产一区日韩二区欧美三区| 26uuu欧美| 国产精品综合av一区二区国产馆| 欧美一区二区三区人| 首页国产欧美久久| 欧美日韩一区二区三区免费看| 亚洲精选视频免费看| 在线亚洲人成电影网站色www| 亚洲四区在线观看| 欧美综合视频在线观看| 午夜久久福利影院| 日韩欧美在线网站| 韩国女主播成人在线| 久久久久九九视频| 成人一区二区三区中文字幕| 中文字幕一区二区三区精华液| 99国产精品久久久久久久久久 | av资源网一区| 亚洲视频在线一区| 欧美日韩国产首页| 蜜臀av在线播放一区二区三区| 精品国产凹凸成av人网站| 久久99精品一区二区三区三区| 国产午夜精品久久久久久免费视 | 免费欧美日韩国产三级电影| 精品免费一区二区三区| 国产精品99久久久久久似苏梦涵| 国产精品麻豆一区二区| 91片黄在线观看| 亚洲第一福利一区| 久久女同精品一区二区| 色综合视频在线观看| 日日夜夜精品视频天天综合网| 日韩精品一区二区三区在线| 成人免费三级在线| 午夜成人免费视频| 久久在线观看免费| 在线观看网站黄不卡| 国产综合色在线视频区| 亚洲美女在线一区| 26uuu精品一区二区在线观看| 成人开心网精品视频| 亚洲资源中文字幕| 国产欧美日韩精品一区| 日本韩国欧美在线| 国产在线一区二区| 一区二区三区电影在线播| 2017欧美狠狠色| 在线观看精品一区| 国产白丝网站精品污在线入口| 亚洲午夜三级在线| 中文字幕国产一区二区| 欧美一级xxx| 日本乱码高清不卡字幕| 国产老肥熟一区二区三区| 性久久久久久久| 中文字幕在线一区| 久久亚洲精品国产精品紫薇| 在线观看成人小视频| 国产盗摄视频一区二区三区| 视频一区视频二区中文字幕| 亚洲美女淫视频| 国产三级精品三级在线专区| 欧美电影免费观看完整版| 在线区一区二视频| 成人高清视频在线| 国产sm精品调教视频网站| 免费在线看一区| 亚洲mv在线观看| 亚洲精品欧美二区三区中文字幕| 欧美激情在线一区二区| 精品久久人人做人人爱| 欧美日韩在线播| 91成人网在线| 日本黄色一区二区| 91官网在线观看| 92精品国产成人观看免费 | 另类小说色综合网站| 五月激情六月综合| 亚洲国产精品天堂| 亚洲va韩国va欧美va精品| 亚洲一区二区三区在线播放 | 久久久久久久久久电影| 欧美一二三四在线| 日韩女同互慰一区二区| 91精选在线观看| 欧美狂野另类xxxxoooo| 制服丝袜亚洲播放| 91精品国产欧美一区二区18| 5858s免费视频成人| 91精品欧美久久久久久动漫| 欧美久久婷婷综合色| 91精品国产综合久久福利软件| 91精品国产入口在线| 欧美大胆一级视频| 久久久久久9999| 中文一区二区在线观看| 日韩一区在线看| 亚洲一区二区成人在线观看| 日韩综合小视频| 精品一区二区三区不卡| 国产精品一区二区你懂的| 成人黄色777网| 色婷婷久久久综合中文字幕| 欧美亚洲国产一卡| 日韩一区二区视频在线观看| 久久久国产一区二区三区四区小说| 欧美极品aⅴ影院| 亚洲色图制服诱惑 | 欧美一区二区三区播放老司机| 欧美v国产在线一区二区三区| 久久精品亚洲精品国产欧美| 中文字幕亚洲成人| 婷婷中文字幕综合| 国产美女一区二区三区| av午夜一区麻豆| 欧美日韩中文字幕一区二区| 日韩欧美在线一区二区三区| 日本一区二区免费在线观看视频| 亚洲四区在线观看| 日本成人在线电影网| 成人综合日日夜夜| 欧美日韩精品一区二区| 337p日本欧洲亚洲大胆色噜噜| 国产精品成人一区二区艾草| 午夜不卡av在线| 丁香六月综合激情| 91精品国产一区二区三区| 国产精品全国免费观看高清| 视频一区中文字幕国产| eeuss影院一区二区三区| 91精品国产色综合久久久蜜香臀| 国产欧美日韩亚州综合| 日韩av中文在线观看| 成人免费毛片嘿嘿连载视频| 欧美日韩一区精品| 国产精品国产自产拍高清av| 日产精品久久久久久久性色| 97久久超碰国产精品| 精品国产乱码久久久久久久久 | 色婷婷综合视频在线观看| 欧美一区二区人人喊爽| 一区二区三区精品久久久| 国产不卡视频一区二区三区| 91精品免费观看| 一区二区不卡在线视频 午夜欧美不卡在| 久久av资源站| 欧美日韩高清一区| 一区二区在线观看免费| 国产精品白丝jk黑袜喷水| 欧美一级片在线看| 亚洲成人在线免费| 色婷婷av一区二区三区软件| 日本一区二区视频在线| 国内精品第一页| 亚洲精品一区二区三区四区高清| 亚洲国产综合人成综合网站| 99精品国产热久久91蜜凸| 欧美高清在线一区二区| 国产在线精品一区二区不卡了| 在线91免费看| 午夜视频在线观看一区二区三区| 91天堂素人约啪| 国产精品乱人伦一区二区| 国产精品亚洲成人| 国产亚洲成aⅴ人片在线观看| 国产一区二区三区久久久| 欧美sm美女调教| 寂寞少妇一区二区三区| 欧美大片拔萝卜| 国内精品免费**视频|