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

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

?? ant.cpp

?? c語言編寫的蟻群算法源程序
?? CPP
字號:
/*
說明:對于論文中給出的算法 存在這樣一個問題:如果c和a只有一條路徑,而ab之間沒有路徑,
      那么當螞蟻從從c到a后該如何處理呢,因為螞蟻不能重復原路(文中假設),估計要出問題了,
	  不妨我們假設無路徑時 路徑為一個很大的值,但多大是一個合適的值呢,又不好確定。
	  此處取自身到自身為-1,無路徑為某個很大的值32767,要求對輸入的個路徑進行合理縮放
缺陷:1.當無法求解時會求得一個很大的值。2.在這里城市數量要在程序里修改,但這點不影響體現算法的的實質。
*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<time.h>

#define Infinite 32767//路經無窮大

const int m=1000;//count of ant
const int n=6;//城市數
const double To=0.2;//初始信息素

const double alfa=0.8;//參數
const double beta=1;//參數
const double row=0.2;//信息遺失參數

double edge[n][n];//初始時各城市之間的距離
double ph[n][n];//各邊的信息素值
int Just[m][n];//螞蟻未訪問的城市,此處我們這樣處理 當可訪問第i個城市時我們計Just[m][i]=1
                   //否則即為0
int start[m];//螞蟻的初始位置
int Locate[m];//記錄螞蟻的當前位置

int Tour[m][n];//螞蟻的路徑
double g[n][n];//啟發函數此處在初始時設為1/distict
double Len[m];//螞蟻的路徑長度

double q;//公式3中的參數
double q0=0.8;
int sk[m];//下一個待選擇的城市

/*初始化城市和路經以及各個螞蟻的初始位置 */
void IntiNode()
{
	//輸入各城市之間的路徑
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
			edge[i][j]=Infinite;
	printf("共%d城市請輸入各城市之間的距離\n",n);
	for(i=0;i<n-1;i++)
		for(int j=i+1;j<n;j++)
		{
			printf("%d-->%d:",i,j);
			scanf("%lf",&edge[i][j]);
			printf("\n");
		}
   
	for(i=0;i<n;i++)
		for(int j=0;j<n;j++)
			if(i>j)
				edge[i][j]=edge[j][i];	
  
	//輸入螞蟻的初始位置
    for(i=0;i<m;i++)
		start[i]=i%n;
	
	//設置啟發函數g	
	for(i=0;i<n;i++)
		for(int j=0;j<n;j++)
		{
			if(i!=j)
			{
				g[i][j]=(double)1/edge[i][j];				
			}
		}	
}
/*初始化信息素*/
void IntiPh()
{
	for(int i=0;i<n;i++)
		for(int j=0;j<n;j++)
		{
			if(i!=j)
			{
				ph[i][j]=To;
			}
		}
}
/*初始化螞蟻*/
void IntiAnt()
{
	//設置Just
	for(int i=0;i<m;i++)
		for(int j=0;j<n;j++)
			Just[i][j]=1;

   for(i=0;i<m;i++)
	   Len[i]=0;

	for(int k=0;k<m;k++)
	{		
		Just[k][start[k]]=0;//開始位置設置為不可訪問
		Locate[k]=start[k];
	}
}
/*根據T獲得sk*/
int getsk(int k)//k已在數組范圍內
{
	double temp=0.0;
	int sk=0;
	int lk=Locate[k];//當前位置
	for(int i=0;i<n;i++)
	{
		//if(Just[k][i]==1 && lk!=i && edge[lk][i]!=Infinite && temp < pow(ph[lk][i],alfa)*pow(g[lk][i],beta))
		if(Just[k][i]==1 && lk!=i && temp < pow(ph[lk][i],alfa)*pow(g[lk][i],beta))
		{
			temp=pow(ph[lk][i],alfa)*pow(g[lk][i],beta);
			sk=i;
		}
	}
	return sk;
}
/*產生0-1之間的一個隨機數*/
double drand()
{	
	return ((double)rand())/(double)Infinite;
}
/*根據p獲得sk 可以這樣來實現根據概率確定sk 對0-1按概率進行劃分成若干段,
 產生一個0-1之間的隨機數,根據該數值所在的范圍來確定sk 這樣既體現了概率又唯一確定一個值 */
int getSK(int k)
{
	double sum=0;
	int lk=Locate[k];	
	int count=0;
	double r=drand();
	
	for(int i=0;i<n;i++)//計算總量
	{
		//if(Just[k][i]==1&&edge[lk][i]!=Infinite)
		if(Just[k][i]==1&&lk!=i)//未訪問且有路徑
		{
			sum=sum+pow(ph[lk][i],alfa)*pow(g[lk][i],beta);
			count++;
		}
	}	
	double x=0;
	double y=0;
	for(i=0;i<n;i++)
	{
		//if(Just[k][i]==1&&edge[lk][i]!=Infinite)
		if(Just[k][i]==1&&lk!=i)//判斷隨機時的路徑
		{		
			y=y+pow(ph[lk][i],alfa)*pow(g[lk][i],beta);		
			if(r>=x/sum &&r<y/sum)
				break;
			else
				x=y;
		}
	}
	return i;
}
void main()
{	
	int b=0;//記錄最佳螞蟻
	srand((unsigned)time(NULL));//設置隨機數種子
	double Lbest=100000000;
	double Lbest0=100000000;//此處只是一個無窮大的值
	/*初始化城市和路經*/
	IntiNode();
    IntiPh();
label:
	/*建立每只螞蟻的路徑存入tourk*/
	IntiAnt();
	for(int i=0;i<n;i++)
	{
		if(i<n-1)
		{
			for(int k=0;k<m;k++)
			{
				q=drand();
				//確定下一個城市sk			
				if(q<=q0)
				{			
					sk[k]=getsk(k);
				}
				else
				{			
					sk[k]=getSK(k);
				}
				Just[k][sk[k]]=0;
				Tour[k][i]=sk[k];			
				Len[k]=Len[k]+edge[Locate[k]][sk[k]];			
			}
		}
		else
		{
			for(int k=0;k<m;k++)
			{
				sk[k]=start[k];				
				Tour[k][i]=sk[k];
				Len[k]=Len[k]+edge[Locate[k]][sk[k]];			
			}
		}
		//利用公式5更新局部信息素
		for(int k=0;k<m;k++)
		{
			int x,y;
			x=Locate[k];
			y=sk[k];
			ph[x][y]=(1-row)*ph[x][y]+row*To;
			Locate[k]=sk[k];			
		}
	}
	//更新全局信息素
	for(int k=0;k<m;k++)
	{
		if(Lbest>=Len[k])
		{
			Lbest=Len[k];
			b=k;
		}
	}
	for(i=0;i<n;i++)
		for(int j=0;j<n;j++)
		{
			if(edge[i][j]!=Infinite)
			{
				ph[i][j]=(1-row)*ph[i][j]+row/(double)Lbest;			
			}
		}
	
	if(Lbest0>Lbest)//判斷是否還可優化,  此處這樣處理如果下一次的比上一次的小則認為還可優化
	{
		Lbest0=Lbest;
		goto label;
	}
	if(Lbest<Infinite)
	{
		for(i=0;i<n;i++)
			printf("%d->",Tour[b][i]);
		printf("\n%f\n",Lbest);
	}
	else
	{
		printf("no solution\n");
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产在线观看| av网站一区二区三区| 欧美激情一区二区| 欧美另类变人与禽xxxxx| 国产精品综合久久| 亚洲国产精品一区二区www| 国产欧美综合在线| 日韩女优毛片在线| 日本久久一区二区| 国产精品69久久久久水密桃| 亚洲风情在线资源站| 国产精品每日更新在线播放网址| 欧美变态口味重另类| 欧美亚洲免费在线一区| 91啪亚洲精品| 成人动漫一区二区三区| 国产一区二区三区视频在线播放| 天堂久久久久va久久久久| 亚洲欧美日韩国产手机在线| 国产日韩视频一区二区三区| 日韩免费福利电影在线观看| 欧美日韩不卡视频| 欧美专区亚洲专区| 91色九色蝌蚪| 色天使久久综合网天天| 成人免费视频国产在线观看| 国产风韵犹存在线视精品| 精油按摩中文字幕久久| 久久不见久久见免费视频7| 日日摸夜夜添夜夜添精品视频| 亚洲一区二区三区四区在线免费观看| 综合精品久久久| 国产精品麻豆久久久| 国产亚洲综合色| 亚洲欧洲日韩综合一区二区| 国产日韩欧美制服另类| 久久久国产精品麻豆| 国产亚洲美州欧州综合国| 国产午夜精品久久| 国产精品免费观看视频| 亚洲国产高清不卡| 国产精品二三区| 亚洲三级在线播放| 亚洲一区二区三区中文字幕| 五月婷婷久久丁香| 日本在线不卡视频| 亚洲国产成人高清精品| 天天av天天翘天天综合网色鬼国产 | 日韩精品一区二区三区swag| 中文字幕一区二区三区精华液| 久久久99精品免费观看不卡| 久久久久高清精品| 国产精品久久久久久久久免费丝袜| 国产精品视频一二三区| 亚洲精品免费在线| 午夜久久久影院| 琪琪久久久久日韩精品| 狠狠色狠狠色综合日日91app| 国产电影精品久久禁18| 99视频精品全部免费在线| 91国产丝袜在线播放| 91精品国产品国语在线不卡| 2019国产精品| 亚洲女同ⅹxx女同tv| 亚洲成人免费看| 久久成人免费电影| 成人av免费在线| 欧洲一区二区av| 日韩欧美一区在线观看| 国产片一区二区| 亚洲成人一二三| 国产精品一区免费视频| 色琪琪一区二区三区亚洲区| 日韩免费高清视频| 亚洲色图.com| 久久99热狠狠色一区二区| 成人av在线资源网站| 欧美久久久影院| 欧美国产激情一区二区三区蜜月| 洋洋av久久久久久久一区| 美腿丝袜亚洲一区| www.欧美精品一二区| 欧美一区二区网站| 国产精品二三区| 另类成人小视频在线| 97se狠狠狠综合亚洲狠狠| 日韩欧美成人一区| 一区二区三区在线免费视频| 国产成人免费高清| 91成人免费在线视频| 欧美xxxx在线观看| 亚洲另类中文字| 国产精品综合网| 91精品麻豆日日躁夜夜躁| 国产精品亲子伦对白| 日本亚洲一区二区| 色狠狠综合天天综合综合| 欧美精品一区二区三区在线| 亚洲一区在线观看网站| 国产suv精品一区二区三区| 欧美日本一区二区三区四区| 国产精品久久久久久户外露出| 免费成人你懂的| 欧美视频在线不卡| 亚洲欧洲国产日本综合| 黄页视频在线91| 欧美日韩mp4| 一个色综合网站| 99热精品国产| 国产欧美精品一区二区三区四区 | 亚洲国产精品精华液2区45| 日韩成人一区二区三区在线观看| 色天天综合久久久久综合片| 国产亚洲1区2区3区| 久久91精品久久久久久秒播| 欧美日韩不卡在线| 亚洲激情图片一区| 99精品国产91久久久久久| 国产亚洲一区二区三区在线观看 | 色综合天天综合网天天看片| 国产嫩草影院久久久久| 极品美女销魂一区二区三区 | 欧美老肥妇做.爰bbww| 一区二区三区四区中文字幕| 99re视频这里只有精品| 欧美国产一区二区在线观看| 国产在线精品免费| 日韩精品一区国产麻豆| 美女视频黄a大片欧美| 91精品国产品国语在线不卡| 日韩中文欧美在线| 欧美精品日韩一区| 无吗不卡中文字幕| 欧美军同video69gay| 午夜精品在线看| 欧美日韩国产123区| 日韩精品乱码免费| 日韩美女一区二区三区四区| 日韩va欧美va亚洲va久久| 欧美一区二区高清| 精品一区精品二区高清| 精品乱人伦小说| 国产成人亚洲精品青草天美| 国产日产欧美一区二区视频| 成人精品gif动图一区| 中文字幕高清不卡| 一本色道亚洲精品aⅴ| 日韩在线一二三区| 欧美大黄免费观看| 国产美女久久久久| 国产精品久久久久久久久快鸭| 91看片淫黄大片一级在线观看| 亚洲欧洲日本在线| 欧美日韩小视频| 久久精品国产色蜜蜜麻豆| 欧美激情一区二区三区全黄| 91美女视频网站| 日韩国产高清影视| 国产三级精品三级| 91国产成人在线| 蜜桃视频在线观看一区二区| 久久精品亚洲一区二区三区浴池| 99久久久无码国产精品| 亚洲一区二区不卡免费| 精品久久久久久久一区二区蜜臀| 成人手机在线视频| 亚洲一区二区不卡免费| 精品乱人伦小说| 色综合中文字幕国产| 亚洲免费在线电影| 日韩一区二区三区三四区视频在线观看 | 欧美电影免费观看高清完整版在线观看 | 亚洲va欧美va国产va天堂影院| 日韩午夜激情电影| 成人高清视频在线观看| 天堂午夜影视日韩欧美一区二区| 精品国产电影一区二区| 91在线观看美女| 精品一区二区三区免费播放| 亚洲欧洲成人精品av97| 91精选在线观看| 成人h动漫精品一区二| 三级亚洲高清视频| 中文字幕一区二区不卡| 欧美一级精品在线| 96av麻豆蜜桃一区二区| 久久精品国产一区二区| 亚洲欧美成aⅴ人在线观看| 精品国产一区a| 在线一区二区三区四区五区| 国产一区二区日韩精品| 亚洲一区二区免费视频| 中文字幕不卡在线| 日韩久久久久久| 91国偷自产一区二区使用方法| 国产成人在线网站| 免费一区二区视频| 一个色在线综合| 国产精品久久久久久久午夜片 | 日韩一区二区三区电影|