已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
專業(yè)技能訓(xùn)練報告學(xué) 院: 計算機學(xué)院 課程名稱: C程序設(shè)計綜合實踐 完成時間:2015年 6月19日目 錄第1部分 實訓(xùn)題目與要求.11. 問題提出.22. 功能要求.23. 任務(wù)分工.3第2部分 設(shè)計實訓(xùn)題目功能.41. 總體設(shè)計.42. 算法設(shè)計.53. 數(shù)據(jù)結(jié)構(gòu).64. 程序代碼設(shè)計.65. 測試與調(diào)試.12 第3部分 實訓(xùn)總結(jié).131.個人總結(jié).132.結(jié)束語.13 附錄 A 程序清單.13 C程序設(shè)計綜合實踐評分表.30第1部分 實訓(xùn)題目與要求(1)問題提出用經(jīng)典蟻群算法求解旅行商問題旅行商問題(Traveling Salesman Problem,TSP)又譯為旅行推銷員問題、貨郎擔問題,簡稱為TSP問題,是最基本的路線問題,該問題是在尋求單一旅行者由起點出發(fā),通過所有給定的需求點之后,最后再回到原點的最小路徑成本。本課題要求利用經(jīng)典蟻群算法求解旅行商問題。(2)功能要求重復(fù)顯示如下圖所示的主菜單,在主菜單中選擇任意一項,均實現(xiàn)相應(yīng)功能。. 請輸入選項編號(03): .1建立城市信息文件 .2設(shè)定相關(guān)參數(shù) .3尋優(yōu)計算 .0退出系統(tǒng) . 如上圖用經(jīng)典蟻群算法求解旅行商問題主菜單在主菜單中選擇1,建立一個城市信息文件,用于存放城市的坐標等數(shù)據(jù)。在主菜單中選擇2,可以設(shè)定蟻群算法相關(guān)的一些參數(shù),如蟻群中螞蟻的個數(shù),信息素揮發(fā)系數(shù)等。在主菜單中選擇3,即可進行TSP問題尋優(yōu)計算,要求追加本次設(shè)定的參數(shù)及最終計算結(jié)果到一個文本文件中。在主菜單中選擇0,顯示結(jié)束信息(如“感謝使用本軟件!已正常退出,按任意鍵結(jié)束!”),按任意鍵后,退出本系統(tǒng)。說明:可以根據(jù)實際情況適當增減主菜單中的菜單項,如增加一些創(chuàng)新功能項等。(3)任務(wù)分工本組有2人,我和傳昇。在剛開始,我們都一起查詢了許多資料,比如蟻群優(yōu)化【1】、蟻群算法原理及其應(yīng)用【2】等等,了解基本的運行方式和主要函數(shù)。成員分工吳超益1. 主要編程蟻群的運行核心函數(shù),如進行輪盤選擇、城市距離、隨機抽取、更新環(huán)境信息素、/螞蟻進行搜索、螞蟻尋優(yōu)等函數(shù)代碼。2. 整合倆人的分工的代碼,使其總代碼能更好的完成,實現(xiàn)功能。3. 修改、更改報告,上交工作結(jié)果。李傳昇1. 主要編譯蟻群的界面和其他復(fù)合函數(shù),比如主要界面、進入選擇的系統(tǒng)選項、建立城市信息文件、查看相關(guān)參數(shù)等函數(shù)代碼。2. 撰寫城市信息文件的信息文本并測試程序。3. 負責制作、修改報告,上交工作結(jié)果。(4)實驗?zāi)康?1.通過C語言綜合實踐,更加熟練鏈表、文件、循環(huán)、結(jié)構(gòu)體、函數(shù)、數(shù)組、選擇語、數(shù)組、順序的函數(shù)。 2.有助于學(xué)生了解群體智能(SI)計算,激發(fā)其學(xué)習(xí)計算機科學(xué)的興趣,為其進一步深造打下一定基礎(chǔ)并提前開啟一道門徑,在此基礎(chǔ)上可以進一步研究粒子群算法、遺傳算法、蛙跳算法、人工魚算法、野草算法、蜂群算法等。第2部分 設(shè)計實訓(xùn)題目功能(1) 總設(shè)計1. 首先打開軟件窗口將顯示主菜單內(nèi)容其中有4個選項,分別是【0】 退出系統(tǒng)【1】 建立城市信息文件【2】 設(shè)定相關(guān)參數(shù)【3】 尋優(yōu)計算。2.在顯示的窗口中選擇【1】調(diào)用city_information_file(),進入【建立城市信息,件】 ,在進入時,系統(tǒng)自動讀取city.txt文件的城市信息,并把城市坐標儲存在X,Y的兩個數(shù)組里。接下來可以選擇您想做的事【3】 建立城市坐標信息【2】修改某個城市信息【1】查看城市坐標信息【0】 返回主菜單 3.接下來返回主菜單后,您可以選擇【2】,調(diào)用Check_parameters()【查看相關(guān)參數(shù)】,下圖所示4.當然,您可以在第二步后,直接選擇【3】(或者在第三步后選擇【3】),系統(tǒng)將調(diào)用fand_calculation()【尋優(yōu)計算】自動進行尋優(yōu)計算,計算出最短路徑長度、最優(yōu)路徑,如圖所示,在【100】后面的601就是最短路徑長度4.5.6. 最后會將相關(guān)參數(shù),最優(yōu)路徑保存在city_way.txt文本文件里。在接下下來會跳回主菜單,如果您覺得這不是最理想的數(shù)據(jù),您可以繼續(xù)選【3】,直到出現(xiàn)你自認最合理的數(shù)據(jù)后,在主菜單選擇【0】退出系統(tǒng)。(2)算法設(shè)計1.main()函數(shù)2. city_information_file()(建立城市信息文件) 此函數(shù)能調(diào)用city.txt文件內(nèi)城市信息,將城市坐標保存到X,Y的兩個數(shù)組,該函數(shù)還可以修改某個城市信息,查看城市信息、建立城市信息的功能。3.Check_parameters()(設(shè)定相關(guān)參數(shù))此函數(shù)是查詢蟻群優(yōu)化算法的設(shè)定的參數(shù),啟發(fā)因子、期望因子、信息素殘留參數(shù)、螞蟻數(shù)量ant 、迭代次數(shù)R、城市數(shù)目,由于防止相關(guān)參數(shù)設(shè)置不合理導(dǎo)致系統(tǒng)癱瘓或不能尋找到最優(yōu)解,系統(tǒng)已經(jīng)自動設(shè)定相關(guān)的參數(shù)。4. fand_calculation()(尋優(yōu)算法) 此函數(shù)是該編程最核心的部分,實現(xiàn)用經(jīng)典蟻群算法解決旅行商問題的解法。在進入fand_calculation(),是首先進入CTsp:InitData(),將螞蟻最優(yōu)路徑長度設(shè)為最大值,初始化環(huán)境信息素,計算城市與城市間的距離。隨后調(diào)用srand(nSeed)獲得一個隨機數(shù),決定螞蟻從哪個城市開始。接下來進入CAnt:ChooseNextCity()選擇下一個城市,在進入下個城市前涉及到一個經(jīng)典算法1,如下圖:在得到概率,進入CAnt:Move()螞蟻在城市移動,進入UpdateTrial()進行更新環(huán)境信息素,最新的環(huán)境信息素 = 留存的信息素 + 新留下的信息素,再進行CAnt:ChooseNextCity()選擇下一個城市,如此反復(fù)進行下去,到螞蟻訪問全部城市。SCAnt:Search()螞蟻搜索一次,在執(zhí)行SCAnt:Search()前CAnt:Init()(初始化螞蟻搜索前調(diào)用)。在進行以上的步奏,直到迭代次數(shù)滿。進入CTsp:Search()尋找最優(yōu)路徑的長度,再返回fand_calculation()打印最優(yōu)路徑,返回主菜單。流程如下:(3) 數(shù)據(jù)結(jié)構(gòu)const double a=1.0; /啟發(fā)因子,信息素的重要程度const double b=2.0; /期望因子,城市間距離的重要程度const double ROU=0.5; /信息素殘留參數(shù)const int ant=40; /螞蟻數(shù)量const int R=100; /迭代次數(shù)const int N_CITY_COUNT=72; /城市數(shù)量const double DBQ=100.0; /總的信息素const double MAX=10e9; /一個標志數(shù)double g_TrialN_CITY_COUNTN_CITY_COUNT; /城市間信息素,就是環(huán)境信息素double g_DistanceN_CITY_COUNTN_CITY_COUNT; /城市間距離int x10000;/城市橫坐標int y10000;/城市縱坐標void city_information_file()/建立城市信息文件.FILE *fp;char s10010,sel10; int i,n100,m100,g100,d,p;while(1) puts(ttt=);puts(ttt查看城市坐標信息請按【1】);puts(ttt修改某個城市信息請按【2】);puts(ttt建立城市坐標信息請按【3】);puts(ttt返回主菜單請按【0】!); puts(ttt=);printf(ttt選擇是:); if(fp=fopen(city.txt,r)=NULL) printf(找不到該文件!); exit(0); for(i=0;iN_CITY_COUNT;i+) fscanf(fp,%d%s%d%d,&gi,si,&ni,&mi); xi=ni;yi=mi; fclose(fp);scanf(%s,sel); if(!(strcmp(sel,1)=0|strcmp(sel,0)=0|strcmp(sel,2)=0|strcmp(sel,3)=0) system(CLS); printf(ttt對不起,您輸入錯誤,請重新輸入: n); else if(sel0=1) system(CLS);printf(=n); printf(輸出的分別是城市序號,城市名,X橫坐標和Y縱坐標:n);printf(=n); for(i=0,p=1;iN_CITY_COUNT;i+,p+)if(p%3=0) printf(城市%d %s %d %dn,gi,si,ni,mi);else printf(城市%d %s %d %d ,gi,si,ni,mi);puts(n);system(pause);system(CLS);else if(sel0=2) fp=fopen(city.txt,w+);system(CLS);printf(=n); printf(輸出的分別是城市序號,城市名,X橫坐標和Y縱坐標:n);printf(=n); for(i=0,p=1;iN_CITY_COUNT;i+,p+)if(p%3=0) printf(城市%d %s %d %dn,gi,si,ni,mi);else printf(城市%d %s %d %d ,gi,si,ni,mi);puts(n);printf(ttt請輸入您想修改城市的編號:);scanf(%d,&d);for(i=0;iN_CITY_COUNT;i+)if(i=d-1)puts(ttt您想修改原城市信息:);printf(ttt%d %s %d %dn,gi,si,ni,mi);printf(ttt請輸入新的城市名、橫坐標和縱坐標:);scanf(%s%d%d,si,&ni,&mi); xi=ni;yi=mi;for(i=0;iN_CITY_COUNT;i+) fprintf(fp,%d %s %d %dn,gi,si,ni,mi);fclose(fp);getchar();system(CLS);else if(sel0=3) system(CLS);puts(=);printf(請依次輸入 %d 個城市名,橫坐標,縱坐標:n,N_CITY_COUNT);fp=fopen(city.txt,w+);for(i=0;iN_CITY_COUNT;i+)printf(請輸入第%d個城市信息:n,i+1);scanf(%s%d%d,si,&ni,&mi);xi=ni;yi=mi;for(i=0;iN_CITY_COUNT;i+) fprintf(fp,%d %s %d %dn,i+1,si,ni,mi); fclose(fp);system(pause);system(CLS); else system(CLS); break;void Check_parameters()/查看相關(guān)參數(shù). puts(nnnnn); puts(ttt); printf(ttt 啟發(fā)因子 : %.1fn,a); printf(ttt 期望因子 : %.1fn,b); printf(ttt 信息素殘留參數(shù) : %.1fn,ROU); printf(ttt 螞蟻數(shù)量ant : %dn,ant); printf(ttt 迭代次數(shù)R : %dn,R); printf(ttt 城市數(shù)目 :%dn,N_CITY_COUNT); puts(ttt); system(pause);system(CLS);void fand_calculation()/尋優(yōu)算法 FILE *fp; time_t tm; /用當前時間點初始化隨機種子,防止每次運行的結(jié)果都相同 time(&tm); unsigned int nSeed=(unsigned int)tm; srand(nSeed); int i; CTsp tsp; /開始搜索 tsp.InitData(); /初始化 tsp.Search(); /開始搜索 char cBuf128;if(fp=fopen(cit_way.txt,a+)=NULL)/把最佳路徑保存到city_way.txt文件里printf(找不到文本文件!n);fprintf(fp,相關(guān)參數(shù):n);fprintf(fp, 啟發(fā)因子 : %.1fn,a); fprintf(fp, 期望因子 : %.1fn,b); fprintf(fp, 信息素殘留參數(shù) : %.1fn,ROU); fprintf(fp, 螞蟻數(shù)量ant : %dn,ant); fprintf(fp, 迭代次數(shù)R : %dn,R); fprintf(fp, 城市數(shù)目 :%dn,N_CITY_COUNT);fprintf(fp,最佳路徑:n); printf(n最優(yōu)路徑是 :n); /輸出結(jié)果 for ( i=0;iN_CITY_COUNT;i+) sprintf(cBuf,%02d,tsp.m_cBestAnt.m_nPathi+1); if(i%10=0&i!=0)fprintf(fp,%dn,tsp.m_cBestAnt.m_nPathi+1);elsefprintf(fp,%d,tsp.m_cBestAnt.m_nPathi+1); if (i % 10 = 0) printf(n); printf(cBuf); fprintf(fp,n);putchar(n);putchar(n); putchar(n);puts(已經(jīng)把最優(yōu)路徑保存在cit_way.txt里);fclose(fp);system(pause);system(CLS);int main(void)/主調(diào)函數(shù),主要界面char sel10,w10;system(color 2A);system(color 2E);while(1)/循環(huán)選擇,直到選0退出循環(huán)printf(nnnnnn);printf(ttt*n);printf(ttt請輸入選項編號(03):n); printf(ttt*n); printf(ttt.1建立城市信息文件.n); printf(ttt.2設(shè)定相關(guān)參數(shù).n);printf(ttt.3尋優(yōu)計算.n); printf(ttt.0退出系統(tǒng) .n);printf(ttt*n);printf(ttt選擇是:); scanf(%s,sel);if(!(strcmp(sel,1)=0|strcmp(sel,2)=0|strcmp(sel,3)=0|strcmp(sel,0)=0)system(CLS);printf(ttt對不起,您輸入錯誤,請重新輸入: n);continue;if(sel0=0)/退出的確定puts(ttt#);puts(ttt您確定要退出嗎?); puts(ttt確定請按1,否則請按其它鍵!);puts(ttt#);printf(ttt選擇是:);scanf(%s,w);if(strcmp(w,1)=0)printf(“感謝使用本軟件!已正常退出,按任意鍵結(jié)束!”n);break;else system(CLS);elseswitch(sel0)/進入選擇的系統(tǒng)選項 case 1: system(CLS);city_information_file();break;/建立城市信息文件. case 2: system(CLS);Check_parameters();break;/查看相關(guān)參數(shù). case 3: system(CLS);fand_calculation();break;/尋優(yōu)計算.return 0;完整程序請參見附錄A7. 測試與調(diào)試內(nèi)容:包括合法與非法的測試數(shù)據(jù)、預(yù)期結(jié)果、實測結(jié)果。要求按照如下表格形式。測試數(shù)據(jù)類型測試數(shù)據(jù)預(yù)期結(jié)果實測結(jié)果合法數(shù)據(jù)主界面顯示進入界面,并顯示出內(nèi)容成功顯示出內(nèi)容,并可以進一步執(zhí)行操作建立城市信息文件讀取文件內(nèi)容成功讀取文本文件城市信息,并可以進行下一步修改序號3,城市名廣州,坐標分別為52,64的城市信息進入修改界面,輸入相關(guān)數(shù)據(jù),并保存在原文件里面成功修改城市信息,改為,城市名廣州,坐標分別為64,52設(shè)定相關(guān)參數(shù)顯示相關(guān)參數(shù)成功顯示對應(yīng)的相關(guān)參數(shù),并可以進行下一步尋優(yōu)算法系統(tǒng)自動計算最優(yōu)路徑成功算出最優(yōu)路徑、最短路程,并保存在city_way.txt文件里非法數(shù)據(jù)進入建立城市信息界面,選擇2修改城市信息,未正確輸入信息并強制關(guān)閉軟件city.txt文件內(nèi)的城市信息被完全刪除打開city.txt文件,里面沒有內(nèi)容進入主界面選擇4不能進入下一步系統(tǒng)提示錯誤,并要求重新輸入進入查詢相關(guān)參數(shù)后,選擇12312不能 進行下一步系統(tǒng)提示錯誤,并要求重新輸入第3部分 實訓(xùn)總結(jié)(1) 個人總結(jié):(吳超益)收獲:沒有嘗試就放棄永遠不會成功。勇于挑戰(zhàn),就算輸了,也輸?shù)闹?,輸?shù)墓鈽s。學(xué)習(xí)到幾個新的編碼函數(shù)如iostream、time.h、cons等等,對Java,C+有初步的了解,學(xué)到NP難問題的初步知識。面對:當知道有C語言綜合實踐的時候,我原本只想選個比較簡單的題目來做的。首先是完成題目以至于不會掛科,其次是熟練C語言的運用,最后提升自己的編碼能力。畢竟C語言是學(xué)習(xí)其他電腦編碼(比如c+,c#,jave)的基礎(chǔ)。但是到老師公布題目等級,看著大家都有選擇三級題目的意向,他們能完成三級的題目,為什么我不能呢?都是同個老師教的,都是同個教室,都是同樣的時間,他們能,我一樣能,而且我在這門科目付出的時間不比別人少。我毅然選擇了三級的蟻群優(yōu)化。在完成作業(yè)的過程中,困難接踵而至,資料缺乏,知識有限,時間有限等等問題困擾著我。有時候會后悔自己選擇了太難的題目,開始懷疑自己的能力,感覺個人能力的渺小。對自己的能力不能正確地認識。而當我克服種種困難,不足,終于成功編寫出代碼。 困難:不懂C+,Java等高級編程,沒有資料,對于蟻群基本了解匱乏,不懂蟻群的算法,時間有限。解決:向圖書館借C+,Jave書看,購買蟻群優(yōu)化書,上網(wǎng)學(xué)習(xí)所需的知識,好好利用時間(2) 結(jié)束語感謝我的隊友(李傳勝)共同克服困難完成這次作業(yè),感謝同班同學(xué)大力的支持,感謝師兄的點化,感謝老師的教導(dǎo)。謝謝您們!附錄A 程序清單#include#include#include #include #include const double a=1.0; /啟發(fā)因子,信息素的重要程度const double b=2.0; /期望因子,城市間距離的重要程度const double ROU=0.5; /信息素殘留參數(shù)const int ant=40; /螞蟻數(shù)量const int R=100; /迭代次數(shù)const int N_CITY_COUNT=72; /城市數(shù)量const double DBQ=100.0; /總的信息素const double MAX=10e9; /一個標志數(shù)double g_TrialN_CITY_COUNTN_CITY_COUNT; /城市間信息素,就是環(huán)境信息素double g_DistanceN_CITY_COUNTN_CITY_COUNT; /城市間距離int x10000;/城市橫坐標int y10000;/城市縱坐標void city_information_file()/建立城市信息文件.FILE *fp;char s10010,sel10; int i,n100,m100,g100,d,p;while(1) puts(ttt=);puts(ttt查看城市坐標信息請按【1】);puts(ttt修改某個城市信息請按【2】);puts(ttt建立城市坐標信息請按【3】);puts(ttt返回主菜單請按【0】!); puts(ttt=);printf(ttt選擇是:); if(fp=fopen(city.txt,r)=NULL) printf(找不到該文件!); exit(0); for(i=0;iN_CITY_COUNT;i+) fscanf(fp,%d%s%d%d,&gi,si,&ni,&mi); xi=ni;yi=mi; fclose(fp);scanf(%s,sel); if(!(strcmp(sel,1)=0|strcmp(sel,0)=0|strcmp(sel,2)=0|strcmp(sel,3)=0) system(CLS); printf(ttt對不起,您輸入錯誤,請重新輸入: n); else if(sel0=1) system(CLS);printf(=n); printf(輸出的分別是城市序號,城市名,X橫坐標和Y縱坐標:n);printf(=n); for(i=0,p=1;iN_CITY_COUNT;i+,p+)if(p%3=0) printf(城市%d %s %d %dn,gi,si,ni,mi);else printf(城市%d %s %d %d ,gi,si,ni,mi);puts(n);system(pause);system(CLS);else if(sel0=2) fp=fopen(city.txt,w+);system(CLS);printf(=n); printf(輸出的分別是城市序號,城市名,X橫坐標和Y縱坐標:n);printf(=n); for(i=0,p=1;iN_CITY_COUNT;i+,p+)if(p%3=0) printf(城市%d %s %d %dn,gi,si,ni,mi);else printf(城市%d %s %d %d ,gi,si,ni,mi);puts(n);printf(ttt請輸入您想修改城市的編號:);scanf(%d,&d);for(i=0;iN_CITY_COUNT;i+)if(i=d-1)puts(ttt您想修改原城市信息:);printf(ttt%d %s %d %dn,gi,si,ni,mi);printf(ttt請輸入新的城市名、橫坐標和縱坐標:);scanf(%s%d%d,si,&ni,&mi); xi=ni;yi=mi;for(i=0;iN_CITY_COUNT;i+) fprintf(fp,%d %s %d %dn,gi,si,ni,mi);fclose(fp);getchar();system(CLS);else if(sel0=3) system(CLS);puts(=);printf(請依次輸入 %d 個城市名,橫坐標,縱坐標:n,N_CITY_COUNT);fp=fopen(city.txt,w+);for(i=0;iN_CITY_COUNT;i+)printf(請輸入第%d個城市信息:n,i+1);scanf(%s%d%d,si,&ni,&mi);xi=ni;yi=mi;for(i=0;iN_CITY_COUNT;i+) fprintf(fp,%d %s %d %dn,i+1,si,ni,mi); fclose(fp);system(pause);system(CLS); else system(CLS); break;void Check_parameters()/查看相關(guān)參數(shù). puts(nnnnn); puts(ttt); printf(ttt 啟發(fā)因子 : %.1fn,a); printf(ttt 期望因子 : %.1fn,b); printf(ttt 信息素殘留參數(shù) : %.1fn,ROU); printf(ttt 螞蟻數(shù)量ant : %dn,ant); printf(ttt 迭代次數(shù)R : %dn,R); printf(ttt 城市數(shù)目 :%dn,N_CITY_COUNT); puts(ttt); system(pause);system(CLS);/返回指定范圍內(nèi)的隨機整數(shù)int rnd(int nLow,int nUpper) return nLow+(nUpper-nLow)*rand()/(RAND_MAX+1);/返回指定范圍內(nèi)的隨機浮點數(shù)double rnd(double dbLow,double dbUpper) double dbTemp=rand()/(double)RAND_MAX+1.0); return dbLow+dbTemp*(dbUpper-dbLow);/返回浮點數(shù)四舍五入取整后的浮點數(shù)double ROUND(double dbA) return (double)(int)(dbA+0.5);/定義螞蟻類class CAntpublic: CAnt(void); CAnt(void);public: int m_nPathN_CITY_COUNT; /螞蟻走的路徑 double m_dbPathLength; /螞蟻走過的路徑長度 int m_nAllowedCityN_CITY_COUNT; /沒去過的城市 int m_nCurCityNo; /當前所在城市編號 int m_nMovedCityCount; /已經(jīng)去過的城市數(shù)量public: int ChooseNextCity(); /選擇下一個城市 void Init(); /初始化 void Move(); /螞蟻在城市間移動 void Search(); /搜索路徑 void CalPathLength(); /計算螞蟻走過的路徑長度;CAnt:CAnt(void)CAnt:CAnt(void)/初始化函數(shù),螞蟻搜索前調(diào)用void CAnt:Init() int i; for ( i=0;iN_CITY_COUNT;i+) m_nAllowedCityi=1; /設(shè)置全部城市為沒有去過 m_nPathi=0; /螞蟻走的路徑全部設(shè)置為0 /螞蟻走過的路徑長度設(shè)置為0 m_dbPathLength=0.0; /隨機選擇一個出發(fā)城市 m_nCurCityNo=rnd(0,N_CITY_COUNT); /把出發(fā)城市保存入路徑數(shù)組中 m_nPath0=m_nCurCityNo; /標識出發(fā)城市為已經(jīng)去過了 m_nAllowedCitym_nCurCityNo=0; /已經(jīng)去過的城市數(shù)量設(shè)置為1 m_nMovedCityCount=1; /選擇下一個城市,返回值 為城市編號int CAnt:ChooseNextCity() /計算當前城市和沒去過的城市之間的信息素總和 int nSelectedCity=-1,i; double dbTotal=0.0; double probN_CITY_COUNT; /保存各個城市被選中的概率 for (i=0;i 0.0) /總的信息素值大于0 dbTemp=rnd(0.0,dbTotal); /取一個隨機數(shù) for ( i=0;iN_CITY_COUNT;i+) if (m_nAllowedCityi = 1) /城市沒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地轉(zhuǎn)讓協(xié)議書范文6篇
- 七年級上學(xué)期教學(xué)計劃范文六篇
- 2023年一周工作計劃
- 形容冬天寒冷的經(jīng)典句子120句
- 三年級第二學(xué)期美術(shù)教學(xué)計劃
- 實習(xí)工作總結(jié)錦集十篇
- 新年工作計劃(3篇)
- 《秋天的水果》中班教案
- 大學(xué)生暑期三下鄉(xiāng)心得體會
- 防校園欺凌主題班會教案
- 奇門遁甲在現(xiàn)代商業(yè)競爭中的應(yīng)用
- 風動送樣手冊
- 績效考核評分標準
- 電力建設(shè)施工技術(shù)管理
- 股權(quán)投資郵箱
- 江蘇省全日制勞動合同書模板
- (完整版)八年級下冊所有古詩及文言文(人教版)
- 鋁合金攪拌摩擦焊的工藝研究
- JGP9L-6(10)(Y)(ZNCK-4A)-霍工090608結(jié)構(gòu)圖電子版的
- 拉威爾悼念公主的帕凡舞曲鋼琴譜Ravel-Pavane pour une Infante Defunte樂譜
- GB∕T 39937-2021 塑料制品 聚丙烯(PP)擠塑板材 要求和試驗方法
評論
0/150
提交評論