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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? afsa.cpp

?? 人工智能/神經(jīng)網(wǎng)絡(luò) 用C++編寫的人工魚群算法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "StdAfx.h"
#include ".\afsa.h"

AFSA::AFSA(int Visual,int Try_Number,Question_List_Class* Question_List,int Number_Of_Question,long* Knowledge_Number_List,int Number_Of_Knowledge,int Want_Hardest,int Want_Hard,int Want_Normal,int Want_Easy,int Want_Easist,float Level_Weight,float Cover_Weight,float Point_Weight,int Number_Of_fish,float Delta)
{
	//只給一次隨機數(shù)種子
	static int a=0;
	if(a!=1){
		a=1;
		srand((unsigned)time(NULL));
	}
	this->Relation_Of_Fishes=NULL;
	this->Fish=NULL;
	this->Cover_Weight=Cover_Weight;
	this->Delta=Delta;
	this->Level_Weight=Level_Weight;
	this->Point_Weight=Point_Weight;
	this->Try_Number=Try_Number;
	this->Visual=Visual;
	this->Want_Easist=Want_Easist;
	this->Want_Easy=Want_Easy;
	this->Want_Hard=Want_Hard;
	this->Want_Hardest=Want_Hardest;
	this->Want_Normal=Want_Normal;
	this->Amount_Of_Dimension=Number_Of_Question;
	this->Question_List=new Question_List_Class[Number_Of_Question];
	for(int i=0;i<Number_Of_Question;i++){
		this->Question_List[i].Number_Of_Cover_Knowledge=Question_List[i].Number_Of_Cover_Knowledge;
		this->Question_List[i].Knowledge_Number_List=new long[this->Question_List[i].Number_Of_Cover_Knowledge];
		for(int j=0;j<Question_List[i].Number_Of_Cover_Knowledge;j++)
			this->Question_List[i].Knowledge_Number_List[j]=Question_List[i].Knowledge_Number_List[j];
		this->Question_List[i].Question_Hard_Level=Question_List[i].Question_Hard_Level;
		this->Question_List[i].Question_Number=Question_List[i].Question_Number;
		this->Question_List[i].Question_Value=Question_List[i].Question_Value;
	}
	this->Number_Of_Knowledge=Number_Of_Knowledge;
	this->Knowledge_Number_List=new long[Number_Of_Knowledge];
	for(i=0;i<Number_Of_Knowledge;i++)
		this->Knowledge_Number_List[i]=Knowledge_Number_List[i];
	//計算人工魚的條數(shù)
	if(Number_Of_fish<=0){
		this->Number_Of_fish=this->Amount_Of_Dimension/10+3;
		Number_Of_fish=this->Amount_Of_Dimension/10+3;
	}
	else this->Number_Of_fish=Number_Of_fish;
	this->Fish=new Fish_Class[Number_Of_fish];
	for(i=0;i<Number_Of_fish;i++)
		this->Fish[i].Amount_Of_Neighbour=0;//鄰居數(shù)為0
	this->Relation_Of_Fishes=new int*[this->Number_Of_fish];
	for(i=0;i<this->Number_Of_fish;i++){
		this->Relation_Of_Fishes[i]=new int[this->Number_Of_fish];
		for(int j=0;j<this->Number_Of_fish;j++)
			this->Relation_Of_Fishes[i][j]=0;//鄰居數(shù)為0
	}
	for(i=0;i<this->Number_Of_fish;i++){
		this->Fish[i].Position=new int[this->Amount_Of_Dimension];
		for(int k=0;k<this->Amount_Of_Dimension;k++){
			this->Fish[i].Position[k]=rand()%2;
		}
	}
	for(i=0;i<this->Number_Of_fish;i++)
		this->Set_Neighbour(i);
	int ig1,ig2,best_position;
	float ig3,best_food;
	best_food=-1;
	for(i=0;i<this->Number_Of_fish;i++){
		this->Set_Food_Consistence(i,this->Get_Food_Consistence(this->Fish[i].Position,ig1,ig2,ig3));
		if(best_food==-1){
			best_food=this->Fish[i].Food_Consistence;
			best_position=i;
		}
		else{
			if(best_food>this->Fish[i].Food_Consistence){
				best_food=this->Fish[i].Food_Consistence;
				best_position=i;
			}
		}
	}
	this->Bulletin_Board.Food_Consistence=best_food;
	this->Bulletin_Board.Amount_Of_Neighbour=this->Fish[best_position].Amount_Of_Neighbour;
	this->Bulletin_Board.Position=new int[this->Amount_Of_Dimension];
	for(i=0;i<this->Amount_Of_Dimension;i++)
		this->Bulletin_Board.Position[i]=this->Fish[best_position].Position[i];
}

AFSA::~AFSA(void)
{
	for(int i=0;i<this->Amount_Of_Dimension;i++)
		delete[] this->Question_List[i].Knowledge_Number_List;
	delete[] this->Question_List;
	delete[] this->Knowledge_Number_List;
	for(int i=0;i<this->Number_Of_fish;i++)
		delete[] this->Fish[i].Position;
	delete[] this->Fish;
	delete[] this->Bulletin_Board.Position;
	for(i=0;i<this->Number_Of_fish;i++)
		delete[] this->Relation_Of_Fishes[i];
	delete[] this->Relation_Of_Fishes;
	
}
// 設(shè)置某條魚的食物濃度,魚在數(shù)組中的號,魚的食物濃度
int AFSA::Set_Food_Consistence(int Symbol_Of_Fish, float Food_Consistence)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{
		this->Fish[Symbol_Of_Fish].Food_Consistence=Food_Consistence;
		return 1;
	}
}

int AFSA::Rand_Move(int Symbol_Of_Fish)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{
		int* temp=new int[this->Amount_Of_Dimension];
		for(int j=0;j<this->Amount_Of_Dimension;j++){//沒選過的維賦值為0
			temp[j]=0;
		}
		int scope=this->Amount_Of_Dimension;
		for(int i=0;i<this->Visual;i++,scope--){//隨機移動的步長不超過visual
			//隨機選擇一個尚未選過的維
			int rand_number=rand()%scope;//從0開始
			//選擇第rand_number個未被選擇的維
			bool flag=true;
			for(int k=0;flag;k++){
				if(temp[k]==0){
					if(rand_number==0){
						temp[k]=1;
						this->Fish[Symbol_Of_Fish].Position[k]=rand()%2;
						flag=false;
					}
					else{
						rand_number--;
					}
				}
			}
		}
		this->Set_Neighbour(Symbol_Of_Fish);
		int ignore1,ignore2;
		float ignore3;
		this->Set_Food_Consistence(Symbol_Of_Fish,this->Get_Food_Consistence(this->Fish[Symbol_Of_Fish].Position,ignore1,ignore2,ignore3));
		delete[] temp;
		return 1;
	}
			
}

float AFSA::Get_Food_Consistence(int* Position,int &Most_Hard_Level_Difference,int &Amount_Difference,float &Cover_Difference)
{
	int hardest,hard,normal,easy,easist,amount;
	hardest=hard=normal=easy=easist=amount=0;
	long *covered=new long[this->Number_Of_Knowledge];
	for(int i=0;i<this->Number_Of_Knowledge;i++) covered[i]=0;
	for(i=0;i<this->Amount_Of_Dimension;i++){
		if(Position[i]==1){
			switch(this->Question_List[i].Question_Hard_Level){
				case 1:hardest+=this->Question_List[i].Question_Value;break;
				case 2:hard+=this->Question_List[i].Question_Value;break;
				case 3:normal+=this->Question_List[i].Question_Value;break;
				case 4:easy+=this->Question_List[i].Question_Value;break;
				case 5:easist+=this->Question_List[i].Question_Value;break;
			}
			amount+=this->Question_List[i].Question_Value;
			for(int j=0;j<this->Question_List[i].Number_Of_Cover_Knowledge;j++){
				bool flag;
				flag=true;
				for(int k=0;flag;k++){
					if(this->Knowledge_Number_List[k]==this->Question_List[i].Knowledge_Number_List[j]){
						covered[k]=1;
						flag=false;
					}
				}
			}
		}
	}
	Most_Hard_Level_Difference=abs(hardest-this->Want_Hardest);
	Most_Hard_Level_Difference=Most_Hard_Level_Difference<abs(hard-this->Want_Hard)?abs(hard-this->Want_Hard):Most_Hard_Level_Difference;
	Most_Hard_Level_Difference=Most_Hard_Level_Difference<abs(normal-this->Want_Normal)?abs(normal-this->Want_Normal):Most_Hard_Level_Difference;
	Most_Hard_Level_Difference=Most_Hard_Level_Difference<abs(easy-this->Want_Easy)?abs(easy-this->Want_Easy):Most_Hard_Level_Difference;
	Most_Hard_Level_Difference=Most_Hard_Level_Difference<abs(easist-this->Want_Easist)?abs(easist-this->Want_Easist):Most_Hard_Level_Difference;
	Amount_Difference=abs(amount-this->Want_Normal-this->Want_Hardest-this->Want_Hard-this->Want_Easy-this->Want_Easist);
	float c=0;
	for(i=0;i<this->Number_Of_Knowledge;i++){
		c+=covered[i];
	}
	Cover_Difference=(1-c/this->Number_Of_Knowledge);
	delete[] covered;
	return (float)((fabsf((float)(hardest-this->Want_Hardest))+fabsf((float)(hard-this->Want_Hard))+fabsf((float)(normal-this->Want_Normal))+fabsf((float)(easy-this->Want_Easy))+fabsf((float)(easist-this->Want_Easist)))/(this->Want_Hardest+this->Want_Hard+this->Want_Normal+this->Want_Easy+this->Want_Easist)*this->Level_Weight+Cover_Difference*this->Cover_Weight+((float)Amount_Difference/(this->Want_Easist+this->Want_Easy+this->Want_Hard+this->Want_Hardest+this->Want_Normal))*this->Point_Weight);
}

// 計算第Symbol_Of_Fish條魚和其它魚的相鄰關(guān)系
int AFSA::Set_Neighbour(int Symbol_Of_Fish)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{
		for(int i=0;i<this->Number_Of_fish;i++){
			if(i!=Symbol_Of_Fish){
				int distance;
				distance=0;
				for(int j=0;j<this->Amount_Of_Dimension;j++)
					if(this->Fish[i].Position[j]!=this->Fish[Symbol_Of_Fish].Position[j]) distance++;
				if(distance>this->Visual){
					if(this->Relation_Of_Fishes[Symbol_Of_Fish][i]==0) ;
					else{
						this->Relation_Of_Fishes[Symbol_Of_Fish][i]=0;
						this->Relation_Of_Fishes[i][Symbol_Of_Fish]=0;
						this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour--;
						this->Fish[i].Amount_Of_Neighbour--;//相關(guān)的魚也要變化
					}
				}
				else{
					if(this->Relation_Of_Fishes[Symbol_Of_Fish][i]==1) ;
					else{
						this->Relation_Of_Fishes[Symbol_Of_Fish][i]=1;
						this->Relation_Of_Fishes[i][Symbol_Of_Fish]=1;
						this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour++;
						this->Fish[i].Amount_Of_Neighbour++;//相關(guān)的魚也要變化
					}
				}
			}
		}
		return 1;
	}
}
	

// 覓食
int AFSA::Prey(int Symbol_Of_Fish)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{
		bool flag=true;
		int *temp_position=new int[this->Amount_Of_Dimension];
		int* temp=new int[this->Amount_Of_Dimension];
		for(int i=0;i<this->Try_Number&&flag;i++){
			//將這條魚拷貝到temp中

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆一区二区在线| 久久久不卡网国产精品一区| 99re热这里只有精品视频| 欧洲一区二区av| 日本精品一区二区三区高清| 欧美午夜精品一区二区蜜桃| 欧美日韩成人综合在线一区二区| 欧美另类变人与禽xxxxx| 精品久久久久久久久久久久包黑料 | 一本大道av一区二区在线播放| 91成人免费在线视频| 日韩一级黄色片| 日韩免费在线观看| 国产精品国产自产拍高清av | av在线不卡免费看| 欧美日韩精品三区| 中文字幕一区二区三区不卡在线 | 最新国产成人在线观看| 激情深爱一区二区| 色婷婷综合久久久久中文一区二区 | 久久久综合精品| 日本亚洲欧美天堂免费| 一本色道久久综合亚洲91| 欧美精品一区二区三区蜜臀| 亚洲一二三四区不卡| av一区二区三区在线| 精品久久久久久久久久久久久久久久久 | 欧美成人一区二区三区在线观看 | 国产在线一区二区| 精品视频1区2区| 亚洲免费观看在线视频| 国产乱码精品一区二区三区忘忧草 | 国产日韩欧美不卡在线| 免费看日韩精品| 欧美特级限制片免费在线观看| 亚洲手机成人高清视频| 色综合久久天天综合网| 亚洲欧洲综合另类在线| 色婷婷av一区二区三区软件| 一区二区三区四区蜜桃 | 亚洲欧美偷拍三级| 色婷婷香蕉在线一区二区| 一区二区三区免费网站| 欧美日韩亚洲综合| 免费成人性网站| wwwwww.欧美系列| 国产成人综合在线观看| 亚洲欧洲日产国码二区| 欧美亚洲动漫制服丝袜| 肉肉av福利一精品导航| 精品99999| jiyouzz国产精品久久| 午夜精品福利在线| 欧美精品一区二| 一本色道久久综合亚洲aⅴ蜜桃| 午夜电影一区二区| 日韩免费看网站| av在线综合网| 国产精品一区一区三区| 亚洲一级片在线观看| 国产三级三级三级精品8ⅰ区| 99视频精品全部免费在线| 欧美bbbbb| 亚洲综合激情小说| 欧美国产在线观看| 精品久久久久久久久久久久包黑料| 97精品久久久久中文字幕| 久久精品国内一区二区三区| 国产精品你懂的| 日韩欧美国产不卡| 欧美视频中文字幕| 91碰在线视频| 99视频热这里只有精品免费| 国产精品资源在线| 黑人巨大精品欧美一区| 日韩和的一区二区| 亚洲成av人**亚洲成av**| 最好看的中文字幕久久| 国产日产欧美精品一区二区三区| 欧美电影免费观看高清完整版在线观看| 94色蜜桃网一区二区三区| 国产精品456露脸| 懂色av一区二区在线播放| 国产自产高清不卡| 国产一区二区精品久久91| 国产在线精品不卡| 国产69精品一区二区亚洲孕妇| 国产一区福利在线| 成人久久视频在线观看| 97se狠狠狠综合亚洲狠狠| 在线免费观看成人短视频| 色狠狠综合天天综合综合| 欧美午夜精品一区二区三区| 日韩精品一区在线观看| 久久久国产综合精品女国产盗摄| 国产精品久久久一区麻豆最新章节| 国产精品国产三级国产aⅴ无密码| 日韩伦理电影网| 男男成人高潮片免费网站| 国产宾馆实践打屁股91| 欧美久久久一区| 国产亚洲视频系列| 一区二区三区高清不卡| 黄网站免费久久| 欧美日韩国产中文| 综合久久久久久| 精品午夜一区二区三区在线观看 | 国产色爱av资源综合区| 亚洲一区av在线| 91片在线免费观看| 欧美国产精品一区二区三区| 男男成人高潮片免费网站| 色婷婷综合久久久久中文一区二区 | 国产精品的网站| 粉嫩嫩av羞羞动漫久久久| 欧美日韩一级视频| 亚洲电影一区二区| 色一区在线观看| 国产精品国产精品国产专区不片| 久久99国产精品尤物| 91精品国产综合久久精品麻豆 | 99re66热这里只有精品3直播| 欧美日韩电影一区| 亚洲男人天堂一区| 欧美综合亚洲图片综合区| 一区二区在线电影| 国产毛片精品一区| 69堂成人精品免费视频| 天天色天天爱天天射综合| 在线国产电影不卡| 午夜视黄欧洲亚洲| 日韩美女一区二区三区| 国产露脸91国语对白| 亚洲视频你懂的| 在线免费不卡视频| 日韩av在线免费观看不卡| www激情久久| 色综合中文字幕| 亚洲va欧美va人人爽| 精品国产一区a| 在线精品亚洲一区二区不卡| 日本欧美韩国一区三区| 久久精品一区二区三区不卡| 国产高清精品网站| 亚洲自拍与偷拍| 国产精品久久久久国产精品日日| 欧洲激情一区二区| 国产一区二区福利| 亚洲福利视频导航| 国产精品婷婷午夜在线观看| 欧美日韩久久久久久| 国产一区二区精品久久99| 婷婷综合久久一区二区三区| 日韩久久免费av| 欧美日韩高清一区二区| 菠萝蜜视频在线观看一区| 久久99国产精品久久99| 亚洲最色的网站| 欧美国产综合色视频| 精品国产乱码久久久久久夜甘婷婷 | 粉嫩一区二区三区在线看| 日本中文字幕一区二区有限公司| 中文字幕巨乱亚洲| 中文文精品字幕一区二区| 欧美精品粉嫩高潮一区二区| 欧美视频精品在线观看| 色美美综合视频| 色综合久久九月婷婷色综合| 成人国产精品免费| 成人激情动漫在线观看| 国产成人综合网| 丁香一区二区三区| 成人高清伦理免费影院在线观看| 国产传媒久久文化传媒| 99精品视频在线观看免费| 99国产一区二区三精品乱码| 国产91丝袜在线播放| 成人a区在线观看| 欧洲日韩一区二区三区| 欧美一区二区视频在线观看 | 国产精品午夜免费| 国产无人区一区二区三区| 国产女同互慰高潮91漫画| 综合激情成人伊人| 亚洲国产精品久久人人爱| 日韩高清一区在线| 国产激情一区二区三区桃花岛亚洲| 成人毛片在线观看| 91麻豆精品国产91久久久久久 | 日日噜噜夜夜狠狠视频欧美人| 亚洲日本免费电影| 美女www一区二区| av亚洲精华国产精华精华| 9191国产精品| 中文字幕欧美三区| 婷婷激情综合网| 91国产成人在线| 欧美国产日产图区| 久久狠狠亚洲综合| 91免费版在线看|