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

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

?? afsa.cpp

?? 人工智能/神經網絡 用C++編寫的人工魚群算法
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
			for(int j=0;j<this->Amount_Of_Dimension;j++){
				temp_position[j]=this->Fish[Symbol_Of_Fish].Position[j];
			}
			//對temp做一次隨機移動
			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 flag2=true;
				for(int k=0;flag2;k++){
					if(temp[k]==0){
						if(rand_number==0){
							temp[k]=1;
							temp_position[k]=rand()%2;
							flag2=false;
						}
						else{
							rand_number--;
						}
					}
				}
			}
			//是否找到更優解
			int ignore1,ignore2;
		    float ignore3;
			float food;
			food=this->Get_Food_Consistence(temp_position,ignore1,ignore2,ignore3);
			if(food<this->Fish[Symbol_Of_Fish].Food_Consistence){
				flag=false;
				for(int k=0;k<this->Amount_Of_Dimension;k++){
					this->Fish[Symbol_Of_Fish].Position[k]=temp_position[k];
				}
				this->Set_Food_Consistence(Symbol_Of_Fish,food);
				this->Set_Neighbour(Symbol_Of_Fish);
			}
		}
		if(flag==false){
			delete[] temp;
			delete[] temp_position;
			return 1;
		}
		else{
			delete[] temp;
			delete[] temp_position;
			return this->Rand_Move(Symbol_Of_Fish);
		}
	}
}

// 聚群
int AFSA::Swarm(int Symbol_Of_Fish)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{//鄰居數為0時,food*this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour==0,條件橫成立,應預防
		if(this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour!=0){
			int *centre2=new int[this->Amount_Of_Dimension];
		    float *centre=new float[this->Amount_Of_Dimension];
			for(int i=0;i<this->Amount_Of_Dimension;i++){
				centre[i]=0;
			}
			for(i=0;i<this->Number_Of_fish;i++){
				if(i!=Symbol_Of_Fish)
					if(this->Relation_Of_Fishes[Symbol_Of_Fish][i]==1)
						for(int j=0;j<this->Amount_Of_Dimension;j++) centre[j]+=this->Fish[i].Position[j];
			}
			for(i=0;i<this->Amount_Of_Dimension;i++) 
				centre[i]/=this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour;
			for(i=0;i<this->Amount_Of_Dimension;i++) 
				if(centre[i]>=0.5) centre2[i]=1;
				else centre2[i]=0;
			delete[] centre;
			int ignore1,ignore2;
			float ignore3,food;
			food=this->Get_Food_Consistence(centre2,ignore1,ignore2,ignore3);
			if(food*this->Fish[Symbol_Of_Fish].Amount_Of_Neighbour<this->Delta*this->Fish[Symbol_Of_Fish].Food_Consistence){
				for(i=0;i<this->Amount_Of_Dimension;i++){
					if(this->Fish[Symbol_Of_Fish].Position[i]!=centre2[i]){
						int rand_number=rand()%2;
						this->Fish[Symbol_Of_Fish].Position[i]=rand_number;
					}
				}
				this->Set_Food_Consistence(Symbol_Of_Fish,this->Get_Food_Consistence(this->Fish[Symbol_Of_Fish].Position,ignore1,ignore2,ignore3));
				this->Set_Neighbour(Symbol_Of_Fish);
				delete[] centre2;
				return 1;
			}
			else{
				delete[] centre2;
				return this->Prey(Symbol_Of_Fish);
			}
		}
		else{
			return this->Prey(Symbol_Of_Fish);
		}
	}
}

// 追尾
int AFSA::follow(int Symbol_Of_Fish)
{
	if(this->Number_Of_fish<=Symbol_Of_Fish||Symbol_Of_Fish<0||this->Fish==NULL) return 0;
	else{
		int best=-1;//-1表示沒有任何魚在視線內
		for(int i=0;i<this->Number_Of_fish;i++)
			if(this->Relation_Of_Fishes[Symbol_Of_Fish][i]==1)
				if(best==-1||this->Fish[i].Food_Consistence<this->Fish[best].Food_Consistence)
					best=i;
		if(best!=-1&&this->Fish[best].Food_Consistence*this->Fish[best].Amount_Of_Neighbour<this->Fish[Symbol_Of_Fish].Food_Consistence*this->Delta){
			for(int j=0;j<this->Amount_Of_Dimension;j++)
				if(this->Fish[best].Position[j]!=this->Fish[Symbol_Of_Fish].Position[j])
					this->Fish[Symbol_Of_Fish].Position[j]=rand()%2;
			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));
			this->Set_Neighbour(Symbol_Of_Fish);
			return 1;
		}
		else{
			return this->Swarm(Symbol_Of_Fish);
		}
	}
}

// 尋找最優解,試題列表以-1為結尾,try_number為迭代次數,負數表示最大迭代時間,Want_Most_Hard_Level_Difference可容忍的各難度部分最大分值差異,Want_Amount_Difference可容忍總分差異,Want_Cover_Difference可容忍知識點未覆蓋率
int AFSA::move(long double Try_Number,long *&Questions,int Want_Most_Hard_Level_Difference,int Want_Amount_Difference,float Want_Cover_Difference)
{//使用long double 可表示更大迭代次數
	time_t time1,time2;
	time1=time(NULL);
	for(long double k=0;true;k+=1){
		int Most_Hard_Level_Difference,Amount_Difference;
		float Cover_Difference;
		this->Get_Food_Consistence(this->Bulletin_Board.Position,Most_Hard_Level_Difference,Amount_Difference,Cover_Difference);
		if(Most_Hard_Level_Difference<=Want_Most_Hard_Level_Difference&&Amount_Difference<=Want_Amount_Difference&&Cover_Difference<=Want_Cover_Difference){
			Questions=new long[this->Amount_Of_Dimension+1];//開辟足夠的空間
			for(int j=0,count=0;j<this->Amount_Of_Dimension;j++){
				if(this->Bulletin_Board.Position[j]==1) Questions[count++]=this->Question_List[j].Question_Number;
			}
			Questions[count]=-1;
			return 1;
		}
		if(Try_Number>=0){
			if(k>=Try_Number){
				Questions=new long[this->Amount_Of_Dimension+1];//開辟足夠的空間
				for(int j=0,count=0;j<this->Amount_Of_Dimension;j++){
					if(this->Bulletin_Board.Position[j]==1) Questions[count++]=this->Question_List[j].Question_Number;
				}
				Questions[count]=-1;
				return 0;
			}
		}
		else{
			time2=time(NULL);
			if((time2-time1)>(0-Try_Number)){
				Questions=new long[this->Amount_Of_Dimension+1];//開辟足夠的空間
				for(int j=0,count=0;j<this->Amount_Of_Dimension;j++){
					if(this->Bulletin_Board.Position[j]==1) Questions[count++]=this->Question_List[j].Question_Number;
				}
				Questions[count]=-1;
				return 0;
			}
		}
		float best_food;
		best_food=this->Bulletin_Board.Food_Consistence;
		int best_position;
		best_position=-1;//-1表示此次未找到比公告板好的
		for(int i=0;i<this->Number_Of_fish;i++){
			this->follow(i);
			int ig1,ig2;
			float ig3,food;
			food=this->Get_Food_Consistence(this->Fish[i].Position,ig1,ig2,ig3);
			if(food<best_food){
				best_food=food;
				best_position=i;
			}
		}
		if(best_position!=-1){
			for(int m=0;m<this->Amount_Of_Dimension;m++){
				this->Bulletin_Board.Position[m]=this->Fish[best_position].Position[m];
			}
			this->Bulletin_Board.Food_Consistence=this->Fish[best_position].Food_Consistence;
			this->Bulletin_Board.Amount_Of_Neighbour=this->Fish[best_position].Amount_Of_Neighbour;
		}
	}
}

// 僅用于測試
void AFSA::test(void)
{
	printf("維數:%d\n試題列表:\n",this->Amount_Of_Dimension);
	for(int i=0;i<this->Amount_Of_Dimension;i++){
		printf("\n難度%d,題號%d,分值%d,覆蓋面積%d,所包含知識點:\n",this->Question_List[i].Question_Hard_Level,this->Question_List[i].Question_Number,this->Question_List[i].Question_Value,this->Question_List[i].Number_Of_Cover_Knowledge);
		for(int j=0;j<this->Question_List[i].Number_Of_Cover_Knowledge;j++)
			printf("知識點號:%d,",this->Question_List[i].Knowledge_Number_List[j]);
	}
	printf("\n");
	printf("公告板:\n鄰居數:%d,食物:%f\n",this->Bulletin_Board.Amount_Of_Neighbour,this->Bulletin_Board.Food_Consistence);
	for(i=0;i<this->Amount_Of_Dimension;i++)
		printf("%d,",this->Bulletin_Board.Position[i]);
	printf("\n");
	printf("覆蓋權:%f\n",this->Cover_Weight);
	printf("擁擠系數:%f\n",this->Delta);
	printf("%d條魚:\n",this->Number_Of_fish);
	for(i=0;i<this->Number_Of_fish;i++){
		printf("第%d條:  鄰居數 %d,食物 %f\n位置:",i,this->Fish[i].Amount_Of_Neighbour,this->Fish[i].Food_Consistence);
		for(int j=0;j<this->Amount_Of_Dimension;j++)
			printf("%d,",this->Fish[i].Position[j]);
		printf("\n");
	}
	printf("\n");
	printf("知識點數%d\n知識點:",this->Number_Of_Knowledge);
	for(i=0;i<this->Number_Of_Knowledge;i++)
		printf("%d,",this->Knowledge_Number_List[i]);
	printf("\n");
	printf("難度權:%f\n", this->Level_Weight);
	printf("總分權:%f\n",this->Point_Weight);
	printf("相鄰關系:\n");
	for(i=0;i<this->Number_Of_fish;i++){
		for(int j=0;j<this->Number_Of_fish;j++)
			printf("%d ",this->Relation_Of_Fishes[i][j]);
		printf("\n");
	}
	printf("\n");
	printf("嘗試次數:%d\n",this->Try_Number);
	printf("可見域:%d\n",this->Visual);
	printf("Want_Easist:%f\n",(float)this->Want_Easist);
	printf("Want_Easy:%f\n",(float)this->Want_Easy);
	printf("Want_Hard:%f\n",(float)this->Want_Hard);
	printf("Want_Hardest:%f\n",(float)this->Want_Hardest);
	printf("Want_Normal:%f\n",(float)this->Want_Normal);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美黑人一区二区三区| 日韩一级免费观看| 天堂va蜜桃一区二区三区漫画版| 日韩精品在线一区| 一本高清dvd不卡在线观看| 麻豆精品视频在线| 一区二区三区欧美| 国产精品电影一区二区| 91精品国产综合久久小美女| va亚洲va日韩不卡在线观看| 精品一区二区免费视频| 一区二区三区免费网站| 国产精品久久久久影视| 久久久久久亚洲综合影院红桃| 欧美日韩免费观看一区三区| 成人一级片网址| 国产美女av一区二区三区| 天天操天天综合网| 亚洲一级在线观看| 一区二区三区四区激情| 欧美国产精品劲爆| 国产亚洲va综合人人澡精品| 欧美电影在线免费观看| 欧美午夜寂寞影院| 在线观看av一区二区| 99久久精品免费精品国产| 国产成人在线视频免费播放| 日韩av在线播放中文字幕| 亚洲影视在线观看| 亚洲美女区一区| 亚洲欧美偷拍三级| 亚洲色图欧洲色图| 亚洲色图在线看| 日韩伦理电影网| 亚洲精品国产无套在线观| 国产精品毛片久久久久久| 欧美极品美女视频| 国产精品美日韩| 国产精品免费人成网站| 国产精品久久久久久妇女6080| 久久日韩粉嫩一区二区三区| 欧美成人欧美edvon| 日韩欧美中文字幕制服| 日韩一区二区麻豆国产| 91精品久久久久久久99蜜桃| 7777精品伊人久久久大香线蕉超级流畅 | 欧美激情一区二区在线| 久久久久久免费毛片精品| 久久久99久久| 国产精品免费网站在线观看| 成人免费小视频| 亚洲精品欧美综合四区| 亚洲国产成人porn| 欧美96一区二区免费视频| 久久超碰97中文字幕| 国产一区二区调教| 不卡欧美aaaaa| 91久久国产最好的精华液| 欧美日韩五月天| 精品国产一区久久| 国产精品网站在线播放| 亚洲美女屁股眼交| 秋霞电影一区二区| 国产不卡视频在线观看| 91亚洲精品乱码久久久久久蜜桃| 91精品1区2区| 日韩欧美国产精品| 国产人久久人人人人爽| 亚洲精品日产精品乱码不卡| 午夜视频在线观看一区| 精品在线播放午夜| 9l国产精品久久久久麻豆| 欧美性色aⅴ视频一区日韩精品| 日韩视频不卡中文| 国产精品乱码一区二区三区软件| 一区二区三区日韩在线观看| 免费欧美日韩国产三级电影| 高清不卡一区二区在线| 欧美午夜理伦三级在线观看| 精品国产乱码久久久久久牛牛| 中文字幕人成不卡一区| 婷婷一区二区三区| 国产精品一区2区| 欧美亚一区二区| 久久伊99综合婷婷久久伊| 亚洲色大成网站www久久九九| 日本欧美一区二区三区乱码 | 毛片av一区二区| 99re视频精品| 欧美成人精品二区三区99精品| 国产女主播视频一区二区| 偷拍与自拍一区| 91一区二区三区在线播放| 日韩美女主播在线视频一区二区三区| 中国色在线观看另类| 日日噜噜夜夜狠狠视频欧美人 | 亚洲色图视频网| 久久91精品久久久久久秒播| 一本到三区不卡视频| 久久综合久久99| 日韩激情视频网站| 91丨porny丨蝌蚪视频| 亚洲精品一区二区三区蜜桃下载| 亚洲伦在线观看| 国产成人99久久亚洲综合精品| 91精品一区二区三区久久久久久| 国产精品初高中害羞小美女文| 久久99最新地址| 欧美乱熟臀69xxxxxx| 亚洲人亚洲人成电影网站色| 国产一区二区在线影院| 欧美精品丝袜中出| 亚洲一区国产视频| 99久久综合色| 国产日韩欧美制服另类| 毛片av一区二区| 欧美人妇做爰xxxⅹ性高电影| 日韩理论片一区二区| 成人免费观看视频| 久久精品人人做人人爽97| 免费高清视频精品| 91麻豆精品91久久久久同性| 尤物av一区二区| 日本二三区不卡| 亚洲精品一二三区| yourporn久久国产精品| 久久精品人人做人人爽人人| 极品少妇xxxx精品少妇| 日韩欧美国产高清| 久久精品av麻豆的观看方式| 欧美高清hd18日本| 首页国产丝袜综合| 欧美日本高清视频在线观看| 五月婷婷久久综合| 精品视频一区二区三区免费| 亚洲乱码日产精品bd| 在线一区二区视频| 亚洲福利一二三区| 欧美精品在线一区二区三区| 亚洲成av人影院在线观看网| 欧美日韩久久一区| 日本系列欧美系列| 日韩三级中文字幕| 国产在线精品一区二区不卡了| 精品久久久久久综合日本欧美| 激情五月播播久久久精品| 日韩女同互慰一区二区| 国模大尺度一区二区三区| 欧美videossexotv100| 国产精品一区二区免费不卡| 欧美国产日韩精品免费观看| 91亚洲精品乱码久久久久久蜜桃| 亚洲免费资源在线播放| 欧美日韩一区视频| 人妖欧美一区二区| 久久九九久久九九| 99久久精品一区二区| 亚洲午夜在线视频| 欧美mv和日韩mv国产网站| 国产成人精品免费看| 自拍偷在线精品自拍偷无码专区| 在线区一区二视频| 久久精品国产久精国产| 中文字幕高清不卡| 日本伦理一区二区| 日本在线观看不卡视频| 国产日韩亚洲欧美综合| 色视频欧美一区二区三区| 奇米四色…亚洲| 欧美国产激情一区二区三区蜜月| 色老汉一区二区三区| 麻豆成人91精品二区三区| 国产精品无遮挡| 欧美性生活影院| 国产精品综合视频| 亚洲高清视频中文字幕| 26uuu国产在线精品一区二区| bt欧美亚洲午夜电影天堂| 视频一区中文字幕国产| 亚洲国产成人自拍| 欧美久久久一区| 成人久久18免费网站麻豆| 亚洲大片在线观看| 欧美国产精品一区二区三区| 欧美日韩性生活| 成人毛片视频在线观看| 日日骚欧美日韩| 日韩美女久久久| xvideos.蜜桃一区二区| 91福利精品视频| 国产精品一线二线三线精华| 亚洲一区二区三区四区的 | 亚洲欧美色一区| 精品国产网站在线观看| 91福利社在线观看| 丰满少妇久久久久久久| 日韩电影免费在线看| 亚洲欧美日韩中文播放| 国产午夜精品在线观看| 777久久久精品|