回溯法,動(dòng)態(tài)規(guī)劃法,遺傳算法求解 tsp問題(課程設(shè)計(jì)報(bào)告)
標(biāo)簽: 回溯法
上傳時(shí)間: 2013-12-09
上傳用戶:yulg
算法框架: a.. 問題的解空間:應(yīng)用回溯法解問題時(shí),首先應(yīng)明確定義問題的解空間。問題的解空間應(yīng)到少包含問題的一個(gè)(最優(yōu))解。 b. 回溯法的基本思想:確定了解空間的組織結(jié)構(gòu)后,回溯法就從開始結(jié)點(diǎn)(根結(jié)點(diǎn))出發(fā),以深度優(yōu)先的方式搜索整個(gè)解空間。這個(gè)開始結(jié)點(diǎn)就成為一個(gè)活結(jié)點(diǎn),同時(shí)也成為當(dāng)前的擴(kuò)展結(jié)點(diǎn)。在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處,搜索向縱深方向移至一個(gè)新結(jié)點(diǎn)。這個(gè)新結(jié)點(diǎn)就成為一個(gè)新的活結(jié)點(diǎn),并成為當(dāng)前擴(kuò)展結(jié)點(diǎn)。如果在當(dāng)前的擴(kuò)展結(jié)點(diǎn)處不能再向縱深方向移動(dòng),則當(dāng)前擴(kuò)展結(jié)點(diǎn)就成為死結(jié)點(diǎn)。換句話說,這個(gè)結(jié)點(diǎn)不再是一個(gè)活結(jié)點(diǎn)。此時(shí),應(yīng)往回移動(dòng)(回溯)至最近的一個(gè)活結(jié)點(diǎn)處,并使這個(gè)活結(jié)點(diǎn)成為當(dāng)前的擴(kuò)展結(jié)點(diǎn)?;厮莘匆赃@種工作方式遞歸地在解空間中搜索,直至找到所要求的解或解空間中已沒有活結(jié)點(diǎn)時(shí)為止。 (3). 運(yùn)用回溯法解題通常包含以下三個(gè)步驟: a. 針對(duì)所給問題,定義問題的解空間; b. 確定易于搜索的解空間結(jié)構(gòu); c. 以深度優(yōu)先的方式搜索解空間,并且在搜索過程中用剪枝函數(shù)避免無效搜索;
上傳時(shí)間: 2017-09-21
上傳用戶:sdq_123
實(shí)驗(yàn)?zāi)康? 通過上機(jī)實(shí)習(xí),加深對(duì)語法制導(dǎo)翻譯原理的理解,掌握將語法分析所識(shí)別的語法成分變換為中間代碼的語義翻譯方法. 實(shí)驗(yàn)要求 采用遞歸下降語法制導(dǎo)翻譯法,對(duì)算術(shù)表達(dá)式、賦值語句進(jìn)行語義分析并生成四元式序列。 實(shí)驗(yàn)的輸入和輸出 輸入是語法分析提供的正確的單詞串,輸出為三地址指令形式的四元式序列。 例如:對(duì)于語句串 begin a:=2+3*4 x:=(a+b)/c end# 輸出的三地址指令如下: (1) t1=3*4 (2) t2=2+t1 (3) a=t2 (4) t3=a+b (5) t4=t3/c (6) x=t4
標(biāo)簽: 分 翻譯 實(shí)驗(yàn) 制導(dǎo)
上傳時(shí)間: 2017-09-27
上傳用戶:hjshhyy
設(shè)計(jì)題三:條件語句的語法分析及語義分析程序設(shè)計(jì)。 1.目的 通過設(shè)計(jì)、編制、調(diào)試一個(gè)語法及語義分析程序,加深對(duì)語法及語義分析原理的理解。 2.設(shè)計(jì)內(nèi)容及要求 IF 〈布爾表達(dá)式〉 THEN 〈賦值語句〉 ELSE 〈賦值語句〉 其中 (1)可以選擇遞歸下降法、LL(1)、算符優(yōu)先分析法、LR法完成以上任務(wù),中間代碼選用四元式。 (2)如1題寫出符合分析方法要求的文法,給出分析方法的思想,完成分析程序設(shè)計(jì)。 (3)編制好分析程序后,設(shè)計(jì)若干用例,上機(jī)測(cè)試并通過所設(shè)計(jì)的分析程序。
標(biāo)簽: 分 程序設(shè)計(jì) 程序 編制
上傳時(shí)間: 2013-12-24
上傳用戶:頂?shù)弥?/p>
用MATLAB求解無約束的問題,主要有最速下降法,牛頓法,共軛梯度法,變尺度法(DFP和BFGS法),非線性最小二乘法。 用MATLAB求解有約束的問題,主要是外懲罰函數(shù)和廣義乘子法。 以及一些對(duì)具體問題的分析,MATLAB的代碼在文檔里都有。
標(biāo)簽: MATLAB
上傳時(shí)間: 2017-09-28
上傳用戶:youth25
三維數(shù)據(jù)場(chǎng)可視化,很好的資料。介紹了一些直接體繪制技術(shù),包括光線投射法、拋雪球法等。
標(biāo)簽: 三維 數(shù)據(jù)場(chǎng) 可視化
上傳時(shí)間: 2015-03-27
上傳用戶:bunny11
遺傳算法為群體優(yōu)化算法,也就是從多個(gè)初始解開始進(jìn)行優(yōu)化,每個(gè)解稱為一個(gè)染色體,各染色體之間通過競(jìng)爭(zhēng)、合作、單獨(dú)變異,不斷進(jìn)化。 優(yōu)化時(shí)先要將實(shí)際問題轉(zhuǎn)換到遺傳空間,就是把實(shí)際問題的解用染色體表示,稱為編碼,反過程為解碼,因?yàn)閮?yōu)化后要進(jìn)行評(píng)價(jià),所以要返回問題空間,故要進(jìn)行解碼。SGA采用二進(jìn)制編碼,染色體就是二進(jìn)制位串,每一位可稱為一個(gè)基因;解碼時(shí)應(yīng)注意將染色體解碼到問題可行域內(nèi)。 遺傳算法模擬“適者生存,優(yōu)勝劣汰”的進(jìn)化機(jī)制,染色體適應(yīng)生存環(huán)境的能力用適應(yīng)度函數(shù)衡量。對(duì)于優(yōu)化問題,適應(yīng)度函數(shù)由目標(biāo)函數(shù)變換而來。一般遺傳算法求解最大值問題,如果是最小值問題,則通過取倒數(shù)或者加負(fù)號(hào)處理。SGA要求適應(yīng)度函數(shù)>0,對(duì)于<0的問題,要通過加一個(gè)足夠大的正數(shù)來解決。這樣,適應(yīng)度函數(shù)值大的染色體生存能力強(qiáng)。 遺傳算法有三個(gè)進(jìn)化算子:選擇(復(fù)制)、交叉和變異。 SGA中,選擇采用輪盤賭方法,也就是將染色體分布在一個(gè)圓盤上,每個(gè)染色體占據(jù)一定的扇形區(qū)域,扇形區(qū)域的面積大小和染色體的適應(yīng)度大小成正比。如果輪盤中心裝一個(gè)可以轉(zhuǎn)動(dòng)的指針的話,旋轉(zhuǎn)指針,指針停下來時(shí)會(huì)指向某一個(gè)區(qū)域,則該區(qū)域?qū)?yīng)的染色體被選中。顯然適應(yīng)度高的染色體由于所占的扇形區(qū)域大,因此被選中的幾率高,可能被選中多次,而適應(yīng)度低的可能一次也選不中,從而被淘汰。算法實(shí)現(xiàn)時(shí)采用隨機(jī)數(shù)方法,先將每個(gè)染色體的適應(yīng)度除以所有染色體適應(yīng)度的和,再累加,使他們根據(jù)適應(yīng)度的大小分布于0-1之間,適應(yīng)度大的占的區(qū)域大,然后隨機(jī)生成一個(gè)0-1之間的隨機(jī)數(shù),隨機(jī)數(shù)落到哪個(gè)區(qū)域,對(duì)應(yīng)的染色體就被選中。重復(fù)操作,選出群體規(guī)模規(guī)定數(shù)目的染色體。這個(gè)操作就是“優(yōu)勝劣汰,適者生存”,但沒有產(chǎn)生新個(gè)體。 交叉模擬有性繁殖,由兩個(gè)染色體共同作用產(chǎn)生后代,SGA采用單點(diǎn)交叉。由于SGA為二進(jìn)制編碼,所以染色體為二進(jìn)制位串,隨機(jī)生成一個(gè)小于位串長(zhǎng)度的隨機(jī)整數(shù),交換兩個(gè)染色體該點(diǎn)后的那部分位串。參與交叉的染色體是輪盤賭選出來的個(gè)體,并且還要根據(jù)選擇概率來確定是否進(jìn)行交叉(生成0-1之間隨機(jī)數(shù),看隨機(jī)數(shù)是否小于規(guī)定的交叉概率),否則直接進(jìn)入變異操作。這個(gè)操作是產(chǎn)生新個(gè)體的主要方法,不過基因都來自父輩個(gè)體。 變異采用位點(diǎn)變異,對(duì)于二進(jìn)制位串,0變?yōu)?,1變?yōu)?就是變異。采用概率確定變異位,對(duì)每一位生成一個(gè)0-1之間的隨機(jī)數(shù),看是否小于規(guī)定的變異概率,小于的變異,否則保持原狀。這個(gè)操作能夠使個(gè)體不同于父輩而具有自己獨(dú)立的特征基因,主要用于跳出局部極值。 遺傳算法認(rèn)為生物由低級(jí)到高級(jí)進(jìn)化,后代比前一代強(qiáng),但實(shí)際操作中可能有退化現(xiàn)象,所以采用最佳個(gè)體保留法,也就是曾經(jīng)出現(xiàn)的最好個(gè)體,一定要保證生存下來,使后代至少不差于前一代。大致有兩種類型,一種是把出現(xiàn)的最優(yōu)個(gè)體單獨(dú)保存,最后輸出,不影響原來的進(jìn)化過程;一種是將最優(yōu)個(gè)體保存入子群,也進(jìn)行選擇、交叉、變異,這樣能充分利用模式,但也可能導(dǎo)致過早收斂。 由于是基本遺傳算法,所以優(yōu)化能力一般,解決簡(jiǎn)單問題尚可,高維、復(fù)雜問題就需要進(jìn)行改進(jìn)了。 下面為代碼。函數(shù)最大值為3905.9262,此時(shí)兩個(gè)參數(shù)均為-2.0480,有時(shí)會(huì)出現(xiàn)局部極值,此時(shí)一個(gè)參數(shù)為-2.0480,一個(gè)為2.0480。算法中變異概率pm=0.05,交叉概率pc=0.8。如果不采用最優(yōu)模式保留,結(jié)果會(huì)更豐富些,也就是算法最后不一定收斂于極值點(diǎn),當(dāng)然局部收斂現(xiàn)象也會(huì)有所減少,但最終尋得的解不一定是本次執(zhí)行中曾找到過的最好解。
標(biāo)簽: 遺傳算法
上傳時(shí)間: 2015-06-04
上傳用戶:芃溱溱123
全局測(cè)量與精度控制是超大空間內(nèi)精密測(cè)量的基礎(chǔ),決定著整體測(cè)量的性能和適用性。為提高整體空間測(cè)量精度,同時(shí)解決定向及尺度問題,必須在全局空間內(nèi)布設(shè)高精度測(cè)量控制網(wǎng)。三維坐標(biāo)測(cè)量作為幾何量測(cè)量的重要代表,是建立控制網(wǎng)最直接且約束最強(qiáng)的控制條件。為建立大空間精密三維坐標(biāo)控制網(wǎng),采用激光跟蹤儀多站位對(duì)空間全局控制點(diǎn)進(jìn)行三維坐標(biāo)測(cè)量,結(jié)合奇異值分解算法完成各站位的方位定向,并利用激光跟蹤儀極高精度的測(cè)距值作為約束,對(duì)跟蹤儀測(cè)角誤差進(jìn)行優(yōu)化,進(jìn)一步提高坐標(biāo)控制網(wǎng)的精度。將該控制網(wǎng)建立方法應(yīng)用于某飛機(jī)機(jī)翼表面形貌測(cè)量,實(shí)現(xiàn)激光跟蹤儀全局控制與終端攝影測(cè)量的高效組合,以不同若干站位下全局控制點(diǎn)間距離比對(duì)結(jié)果表明該控制網(wǎng)對(duì)現(xiàn)場(chǎng)測(cè)量精度和可靠性的提高具有良好效果 。
標(biāo)簽: 空間測(cè)量 控制網(wǎng) 精密
上傳時(shí)間: 2017-03-23
上傳用戶:wyf1995
遺傳算法、模擬退火算法、蟻群算法三種算法求解旅行商問題
上傳時(shí)間: 2017-04-17
上傳用戶:風(fēng)之音誰懂
用二分法計(jì)算求解下列方程的近似根: (1)f(x)= X5 -x -1 = 0, (2)e2x- 5x2 + 2 = 0。
上傳時(shí)間: 2017-09-17
上傳用戶:nky1997
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1