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

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

?? sa3.cpp

?? 模擬退火算法解旅行商問題(須運行在VS2008平臺下)
?? CPP
字號:
/*********************************
模擬退火算法(SA)求解旅行商(TSP)問題
06373055 陳宗澤
2008.12.18
**********************************/


#include <iostream>
#include <fstream>
#include <string>
#include <cmath>
#include <ctime>
using namespace std;

#define  TERMINATE   0.000001     //終結差
#define  p0          0.95         //溫度下降系數
#define  MAX_COUNT   2            //路程多少沒有變化時結束
#define  TEMP		 280          //初始溫度
#define  MAX_CITY    200          //最大城市數
struct Point
{
	double x,y;
};

Point citys[20];				//城市的坐標,用數組記錄
int n;  						//城市數目
double t0;  					//初始溫度
double bestLength;				//最優解
double preLength;				//前一次的解,用來判斷結束條件
double currentLength;			//當前解
int  LOOP;						//循環次數, 為100*n
int  bestPath[MAX_CITY+1];	     		//最佳城市路線
int  currentPath[MAX_CITY+1];			//當前城市路線

/*******************
計算兩個城市之間的距離
*******************/
inline double calcDis(int a, int b) //返回點A和點B之間的距離
{
a--;b--;

	double dis = 
		sqrt((citys[a].x-citys[b].x)*(citys[a].x-citys[b].x)+(citys[a].y-citys[b].y)*(citys[a].y-citys[b].y));
	return dis;
}
/*******************
計算路線的長度
*******************/
double pathLength(int p[]) 
{
	double length = 0;
	for(int i = 0; i <n; i ++) 
		length += calcDis(p[i], p[i + 1]);
	return length;
}
/********************
初始化函數,讀入數據,初始化溫度和路線等
********************/
void initialize()
{
	FILE *infile,*outfile;
	if((infile=fopen("1.in","r"))==NULL)
	{
		cout<<"cann't open 1.in"<<endl;
		system("pause");
		exit(1);
	}
	
	fscanf(infile, "%d",&n);
	for(int i=0;i<n;i++)
		citys[i].x=citys[i].y=0;
	for(int i=0;i<n;i++)
	{
		

		int c;double x,y;
		fscanf(infile,"%d",&c);
		fscanf(infile,"%lf",&x);
		fscanf(infile,"%lf",&y);
		citys[c-1].x=x;
		citys[c-1].y=y;
		if(i==0)
		{ citys[n].x=x;citys[n].y=y;}
	}
	
	fclose(infile);
/*
    if ((outfile= fopen("1.out","w"))==NULL)
    {
		system("pause");
		exit(1);
    }
*/

	t0 = TEMP;										//初始溫度
	LOOP = 100 * n;									//每一個溫度的循環次數
	memset(bestPath,0,sizeof(bestPath));
	cout << "\n初始狀態: " ;

	//fprintf(outfile,"初始線路:  ");

	//fprintf(galog, "\n generation  best  average  standard \n");
	
	for (int i = 0; i < n; i++)
	{
		bestPath[i]=i+1;		//初始化路線序列
		cout<<bestPath[i]<<"-";
	}
	bestPath[n]=1;
	cout << "初始溫度: " << t0;
    
	
	bestLength = pathLength(bestPath);				//初始化最優解

}


/********************
交換城市rand1和rand2之間的方向
********************/
void swap(int rand1, int rand2)
{
	if(rand1 > rand2) 
	{
		int temp = rand1;
		rand1 = rand2;
		rand2 = temp;
	}

	for(int i = 1; i <= (rand2 - rand1 - 1) / 2; i ++) 
	{
		int temp = currentPath[rand1 + i];
		currentPath[rand1 + i] = currentPath[rand2 - i];
		currentPath[rand2 - i] = temp;
	}
}

/*********************
判斷當前解是否滿足接受的概率
*********************/
bool IsAccept(double bestLength, double currentLength, double t)
{
	double p = (double)rand() / (double)(RAND_MAX);
	double pt = exp((bestLength - currentLength) / t);
	if(pt > p) 
		return true;
	else 
		return false;
}
/*********************
模擬退火算法的具體函數
*********************/
void SA() {
	double t = t0;
	int count = 0;				
	while(1) 
	{
		for(int i = 0; i < LOOP; i ++) 
		{

			for(int i=0;i<=n;i++)
				currentPath[i]=bestPath[i];

			int rand1 = rand() % (n + 1);
			int rand2 = rand() % (n + 1);
			while(abs(rand1 - rand2) < 3)
				rand2 = rand() % (n + 1);


			swap(rand1, rand2);

			//計算新解
			double currentLength = pathLength(currentPath);		
		    
			//判斷是否應該接受新解
			if(currentLength - bestLength < TERMINATE) 
			{
				bestLength = currentLength;
				
				for(int i=0;i<=n;i++)
					bestPath[i]=currentPath[i];
			} else

    		if (IsAccept(bestLength, currentLength, t))
				{
					bestLength = currentLength;	
					for(int i=0;i<=n;i++)
					{
						bestPath[i]=currentPath[i];
					}
				}
		}

		if(fabs(preLength - bestLength) < TERMINATE) 
		{
			count++;
			//滿足結束條件,輸出終結狀態,MAX_COUNT標記結束時要求的結果不變的次數
			if(count > MAX_COUNT) 
			{
				cout << "\n終結路線: ";
				for(int i=0;i<n;i++)
					cout<<bestPath[i]<<"-";
				cout<< "  路線:" << bestLength << endl;
				return;
			}
		} 
		else 
		{
			preLength = bestLength;
			count = 0;
		}
		//每次輸出當前溫度下的計算結果
		cout << "\n當前溫度:" << t << "   路線:-";
		for(int i=0;i<n;i++)
			cout<< bestPath[i]<<"-";
		cout<< "  路長:" << bestLength << endl;
		//溫度下降
		t = t * p0;
	}
}


int main()
{
    initialize();
    SA();
system("pause");
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区免费看| 色哟哟精品一区| 色婷婷久久综合| 精品美女在线观看| 亚洲精品国产精华液| 精品一区二区三区久久久| 色妞www精品视频| 日本一区二区三区高清不卡| 天天操天天综合网| 日本高清不卡在线观看| 国产欧美一区二区三区在线老狼| 天天综合日日夜夜精品| 91精品福利在线| 中文字幕乱码亚洲精品一区| 蜜臀久久久99精品久久久久久| 色婷婷综合五月| 中文在线资源观看网站视频免费不卡| 视频一区中文字幕| 欧洲亚洲精品在线| 一区二区三区日韩在线观看| 国产成人精品一区二区三区网站观看| 日韩一区二区三区视频| 首页综合国产亚洲丝袜| 欧美中文一区二区三区| 亚洲欧美成人一区二区三区| 成人精品国产一区二区4080| 中文字幕欧美日本乱码一线二线| 国产在线不卡一区| 久久久久免费观看| 国产一区视频导航| 久久午夜色播影院免费高清| 老司机午夜精品| 精品欧美一区二区久久| 精品一区二区三区免费视频| 欧美v国产在线一区二区三区| 美国毛片一区二区三区| 日韩无一区二区| 狠狠狠色丁香婷婷综合激情| 欧美大片在线观看一区| 精品在线观看视频| 久久亚洲精品国产精品紫薇| 国产一区二区三区在线观看免费| 久久综合久久鬼色中文字| 国产精品一区免费视频| 国产精品久久久久久亚洲毛片| av欧美精品.com| 亚洲欧美欧美一区二区三区| 一本一本久久a久久精品综合麻豆| 亚洲欧美日韩电影| 69p69国产精品| 精品一区二区三区av| 中文乱码免费一区二区| 91影视在线播放| 日韩精品电影一区亚洲| 精品少妇一区二区| 成人午夜电影小说| 亚洲综合区在线| 日韩精品在线看片z| 国产成人av资源| 亚洲综合无码一区二区| 精品免费国产一区二区三区四区| 成人午夜伦理影院| 婷婷夜色潮精品综合在线| 欧美mv和日韩mv国产网站| 成人国产精品免费| 天天操天天干天天综合网| 国产喷白浆一区二区三区| 99久久er热在这里只有精品66| 亚洲国产成人高清精品| 精品国产乱码久久久久久闺蜜| 成人一区二区三区| 首页国产欧美久久| 国产精品情趣视频| 欧美一区二区三区免费| aa级大片欧美| 久久精品国产一区二区| 亚洲欧洲三级电影| 精品日韩一区二区三区免费视频| 99视频一区二区三区| 人妖欧美一区二区| 亚洲欧洲国产日本综合| 精品国产91乱码一区二区三区| 一本久道久久综合中文字幕| 狠狠色伊人亚洲综合成人| 一级日本不卡的影视| 国产日韩欧美精品一区| 日韩欧美电影在线| 欧美综合一区二区| 成人午夜又粗又硬又大| 国产在线视频不卡二| 日韩中文字幕麻豆| 一区二区三区 在线观看视频| 久久综合九色综合97_久久久| 欧美最猛黑人xxxxx猛交| 白白色 亚洲乱淫| 国产精品小仙女| 美女被吸乳得到大胸91| 午夜精品福利一区二区三区av| √…a在线天堂一区| 欧美激情资源网| 久久久久97国产精华液好用吗| 日韩免费视频一区| 91精品国产欧美日韩| 精品视频一区 二区 三区| 日本精品视频一区二区三区| 成人做爰69片免费看网站| 国产一区二区福利| 国产自产高清不卡| 久久er99精品| 七七婷婷婷婷精品国产| 首页国产丝袜综合| 丝袜美腿亚洲色图| 日韩av网站免费在线| 日韩电影在线免费看| 天堂va蜜桃一区二区三区| 亚洲成a人v欧美综合天堂下载 | 久久精品在线免费观看| 欧美变态口味重另类| 亚洲精品一区二区三区影院| 26uuu久久天堂性欧美| 久久亚洲综合色| 国产精品欧美一区二区三区| 亚洲国产精品成人综合色在线婷婷| 久久久亚洲欧洲日产国码αv| 国产日韩视频一区二区三区| 国产欧美日韩激情| 国产精品久久久久久久久图文区| 亚洲色图一区二区三区| 亚洲永久精品国产| 天堂va蜜桃一区二区三区| 久久国产日韩欧美精品| 国产麻豆欧美日韩一区| av毛片久久久久**hd| 在线看日韩精品电影| 欧美视频在线观看一区二区| 欧美高清dvd| 2021久久国产精品不只是精品| 亚洲国产成人午夜在线一区| 亚洲蜜臀av乱码久久精品| 亚洲制服欧美中文字幕中文字幕| 日韩黄色免费电影| 国产剧情一区二区三区| 欧美日韩国产中文| 久久理论电影网| 亚洲女同女同女同女同女同69| 午夜精品免费在线观看| 国产露脸91国语对白| 日本高清免费不卡视频| 亚洲精品一区二区三区影院| 亚洲欧美一区二区三区孕妇| 日韩av中文在线观看| 国产999精品久久久久久绿帽| 色婷婷综合久久久久中文| 91精品国产aⅴ一区二区| 欧美国产综合一区二区| 亚洲午夜久久久久| 国产精品99久| 欧美中文字幕一区二区三区| 久久精品亚洲国产奇米99| 伊人色综合久久天天| 国产精品影视天天线| 在线日韩av片| 国产性天天综合网| 五月天国产精品| 9久草视频在线视频精品| 91精品国产91久久久久久一区二区 | 91精品国产欧美一区二区18| 日本一区二区成人| 蜜臀久久99精品久久久久宅男| 色综合天天综合在线视频| 精品理论电影在线| 日精品一区二区三区| 91网址在线看| 日本一区二区综合亚洲| 日本女人一区二区三区| 欧美色图一区二区三区| 国产精品欧美一区二区三区| 毛片不卡一区二区| 制服丝袜av成人在线看| 一级女性全黄久久生活片免费| 成人午夜视频网站| 国产视频一区在线播放| 捆绑紧缚一区二区三区视频| 欧美日韩中文精品| 亚洲欧美一区二区三区极速播放| 国产高清不卡一区二区| 久久亚洲影视婷婷| 精品在线一区二区| 欧美xxxxxxxx| 久久99精品国产麻豆婷婷洗澡| 91精品在线麻豆| 五月婷婷综合网| 精品视频在线看| 偷偷要91色婷婷| 91精品国产乱码| 久久综合综合久久综合| 91精品蜜臀在线一区尤物| 视频一区欧美日韩| 欧美一区三区四区| 捆绑调教一区二区三区|