版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)學(xué)建模競(jìng)賽中應(yīng)當(dāng)掌握的十類算法,蒙特卡羅算法 數(shù)據(jù)處理算法 數(shù)學(xué)規(guī)劃算法 圖論算法 動(dòng)態(tài)規(guī)劃、回溯搜索、分治算法、分支定界 三大非經(jīng)典算法 網(wǎng)格算法和窮舉法 連續(xù)離散化方法 數(shù)值分析算法 圖象處理算法,1、蒙特卡羅算法,該算法又稱隨機(jī)性模擬算法,是通過計(jì)算機(jī)仿真來解決問題的算法,同時(shí)可以通過模擬可以來檢驗(yàn)自己模型的正確性,是比賽時(shí)必用的方法,蒙特卡羅(Monte Carlo)方法,或稱計(jì)算機(jī)隨機(jī)模擬方法,是一種基于“
2、隨機(jī)數(shù)”的計(jì)算方法。這一方法源于美國在第一次世界大戰(zhàn)進(jìn)研制原子彈的“曼哈頓計(jì)劃”。該計(jì)劃的主持人之一、數(shù)學(xué)家馮·諾伊曼用馳名世界的賭城—摩納哥的Monte Carlo—來命名這種方法,為它蒙上了一層神秘色彩。,考慮平面上的一個(gè)邊長(zhǎng)為1的正方形及其內(nèi)部的一個(gè)形狀不規(guī)則的“圖形”,如何求出這個(gè)“圖形”的面積呢?Monte Carlo方法是這樣一種“隨機(jī)化”的方法:向該正方形“隨機(jī)地”投擲N個(gè)點(diǎn)落于“圖形”內(nèi),則該“圖形”的面積近似
3、為M/N。,另一類形式與Monte Carlo方法相似,但理論基礎(chǔ)不同的方法—“擬蒙特卡羅方法” (Quasi-Monte Carlo方法)—近年來也獲得迅速發(fā)展。我國數(shù)學(xué)家華羅庚、王元提出的“華—王”方法即是其中的一例。這種方法的基本思想是“用確定性的超均勻分布序列(數(shù)學(xué)上稱為L(zhǎng)ow Discrepancy Sequences)代替Monte Carlo方法中的隨機(jī)數(shù)序列。對(duì)某些問題該方法的實(shí)際速度一般可比Monte Carlo方法提
4、出高數(shù)百倍,并可計(jì)算精確度。,具體實(shí)現(xiàn)的matlab代碼:---------------------------------------------------------------------------------------------------function val = ballvol(n, m)% BALLVOL Compute volume of unit ball in R^n%% Computes the
5、 volume of the n-dimensional unit ball % using monte-carlo method.% usage: val = BallVol(n, m)% where: n = dimension % m = number of realisations% If the second argument is omitted, 1e4 is taken as default for m.%
6、(c) 1998, Rolf Krause, krause@math.fu-berlin.deM = 1e4;error = 0;if(nargin 2), error('wrong number of arguments'); endif nargin == 2, M = m; end R = rand(n, M);in = 0;for i=1:Mif(norm(R(:,i),2) <= 1.0
7、), in = in+1; endendval = 2^n*in/M;,2、數(shù)據(jù)擬合、參數(shù)估計(jì)、插值等數(shù)據(jù)處理算法,數(shù)據(jù)擬和: 從給出的一大堆數(shù)據(jù)中找出規(guī)律,即設(shè)法構(gòu)造一條曲線(擬和曲線)反映數(shù)據(jù)點(diǎn)總的趨勢(shì),以消除其局部波動(dòng)。 參數(shù)估計(jì):對(duì)給定的統(tǒng)計(jì)問題,在建立了統(tǒng)計(jì)模型以后,我們的任務(wù)就是依據(jù)樣本對(duì)未知總體進(jìn)行各種推斷,參數(shù)估計(jì)是統(tǒng)計(jì)推斷的重要內(nèi)容之一。包括點(diǎn)估計(jì)方法、頻率替換法、矩法、極大似然估計(jì)法 插值法是函數(shù)逼
8、近的一種重要方法,包括多項(xiàng)式插值、分段插值和三角插值,3、數(shù)學(xué)規(guī)劃算法,線性規(guī)劃、整數(shù)規(guī)劃、多元規(guī)劃、二次規(guī)劃等規(guī)劃類問題(建模競(jìng)賽大多數(shù)問題屬于最優(yōu)化問題,很多時(shí)候這些問題可以用數(shù)學(xué)規(guī)劃算法來描述,通常使用Lindo、Lingo軟件實(shí)現(xiàn)),4、圖論算法,這類算法可以分為很多種,包括最短路、網(wǎng)絡(luò)流、二分圖等算法,涉及到圖論的問題可以用這些方法解決,需要認(rèn)真準(zhǔn)備,5、動(dòng)態(tài)規(guī)劃、回溯搜索、分治算法、分支定界,這些算法是算法設(shè)計(jì)中比較常用的方
9、法,很多場(chǎng)合可以用到競(jìng)賽中,動(dòng)態(tài)規(guī)劃,它建立在最優(yōu)原則的基礎(chǔ)上。采用動(dòng)態(tài)規(guī)劃方法,可以優(yōu)雅而高效地解決許多用貪婪算法或分而治之算法無法解決的問題。動(dòng)態(tài)規(guī)劃方法在解決背包問題、圖象壓縮、矩陣乘法鏈、最短路徑、無交叉子集和元件折疊等方面的有很大作用。,算法思想,和貪婪算法一樣,在動(dòng)態(tài)規(guī)劃中,可將一個(gè)問題的解決方案視為一系列決策的結(jié)果。不同的是,在貪婪算法中,每采用一次貪婪準(zhǔn)則便做出一個(gè)不可撤回的決策,而在動(dòng)態(tài)規(guī)劃中,還要考察每個(gè)最優(yōu)決策序列
10、中是否包含一個(gè)最優(yōu)子序列。,尋找問題的解的一種可靠的方法是首先列出所有候選解,然后依次檢查每一個(gè),在檢查完所有或部分候選解后,即可找到所需要的解。理論上,當(dāng)候選解數(shù)量有限并且通過檢查所有或部分候選解能夠得到所需解時(shí),上述方法是可行的。不過,在實(shí)際應(yīng)用中,很少使用這種方法,因?yàn)楹蜻x解的數(shù)量通常都非常大(比如指數(shù)級(jí),甚至是大數(shù)階乘),即便采用最快的計(jì)算機(jī)也只能解決規(guī)模很小的問題。對(duì)候選解進(jìn)行系統(tǒng)檢查的方法有多種,其中回溯和分枝定界法是比較常
11、用的兩種方法。按照這兩種方法對(duì)候選解進(jìn)行系統(tǒng)檢查通常會(huì)使問題的求解時(shí)間大大減少(無論對(duì)于最壞情形還是對(duì)于一般情形)。事實(shí)上,這些方法可以使我們避免對(duì)很大的候選解集合進(jìn)行檢查,同時(shí)能夠保證算法運(yùn)行結(jié)束時(shí)可以找到所需要的解。因此,這些方法通常能夠用來求解規(guī)模很大的問題。,回溯方法,這種方法被用來設(shè)計(jì)貨箱裝船、背包、最大完備子圖、旅行商和電路板排列問題的求解算法。,算法思想,回溯(backtracking)是一種系統(tǒng)地搜索問題解答的方法。為了
12、實(shí)現(xiàn)回溯,首先需要為問題定義一個(gè)解空間(solution space),這個(gè)空間必須至少包含問題的一個(gè)解(可能是最優(yōu)的)。 下一步是組織解空間以便它能被容易地搜索。典型的組織方法是圖或樹。,分治算法,君主和殖民者們所成功運(yùn)用的分而治之策略也可以運(yùn)用到高效率的計(jì)算機(jī)算法的設(shè)計(jì)過程中。利用這一策略可以解決如下問題:最小最大問題、矩陣乘法、殘缺棋盤、排序、選擇和計(jì)算一個(gè)幾何問題——找出二維空間中距離最近的兩個(gè)點(diǎn)。,算法思想,分而治之方法
13、與軟件設(shè)計(jì)的模塊化方法非常相似。為了解決一個(gè)大的問題,可以: 1) 把它分成兩個(gè)或多個(gè)更小的問題; 2) 分別解決每個(gè)小問題; 3) 把各小問題的解答組合起來,即可得到原問題的解答。小問題通常與原問題相似,可以遞歸地使用分而治之策略來解決。,例2-1 [找出偽幣] 給你一個(gè)裝有1 6個(gè)硬幣的袋子。1 6個(gè)硬幣中有一個(gè)是偽造的,并且那個(gè)偽造的硬幣比真的硬幣要輕一些。你的任務(wù)是找出這個(gè)偽造的硬幣。為了幫助你完成這一任務(wù),將提供一臺(tái)可用來比較
14、兩組硬幣重量的儀器,利用這臺(tái)儀器,可以知道兩組硬幣的重量是否相同。,比較硬幣1與硬幣2的重量。假如硬幣1比硬幣2輕,則硬幣1是偽造的;假如硬幣2比硬幣1輕,則硬幣2是偽造的。這樣就完成了任務(wù)。假如兩硬幣重量相等,則比較硬幣3和硬幣4。同樣,假如有一個(gè)硬幣輕一些,則尋找偽幣的任務(wù)完成。假如兩硬幣重量相等,則繼續(xù)比較硬幣5和硬幣6。按照這種方式,可以最多通過8次比較來判斷偽幣的存在并找出這一偽幣。,假如把1 6硬幣的例子看成一個(gè)大的問題。第
15、一步,把這一問題分成兩個(gè)小問題。隨機(jī)選擇8個(gè)硬幣作為第一組稱為A組,剩下的8個(gè)硬幣作為第二組稱為B組。這樣,就把1 6個(gè)硬幣的問題分成兩個(gè)8硬幣的問題來解決。第二步,判斷A和B組中是否有偽幣??梢岳脙x器來比較A組硬幣和B組硬幣的重量。假如兩組硬幣重量相等,則可以判斷偽幣不存在。假如兩組硬幣重量不相等,則存在偽幣,并且可以判斷它位于較輕的那一組硬幣中。最后,在第三步中,用第二步的結(jié)果得出原先1 6個(gè)硬幣問題的答案。若僅僅判斷硬幣是否存在
16、,則第三步非常簡(jiǎn)單。無論A組還是B組中有偽幣,都可以推斷這1 6個(gè)硬幣中存在偽幣。因此,僅僅通過一次重量的比較,就可以判斷偽幣是否存在。,現(xiàn)在假設(shè)需要識(shí)別出這一偽幣。把兩個(gè)或三個(gè)硬幣的情況作為不可再分的小問題。注意如果只有一個(gè)硬幣,那么不能判斷出它是否就是偽幣。在一個(gè)小問題中,通過將一個(gè)硬幣分別與其他兩個(gè)硬幣比較,最多比較兩次就可以找到偽幣。這樣,1 6硬幣的問題就被分為兩個(gè)8硬幣(A組和B組)的問題。通過比較這兩組硬幣的重量,可以判斷
17、偽幣是否存在。如果沒有偽幣,則算法終止。否則,繼續(xù)劃分這兩組硬幣來尋找偽幣。假設(shè)B是輕的那一組,因此再把它分成兩組,每組有4個(gè)硬幣。稱其中一組為B1,另一組為B2。比較這兩組,肯定有一組輕一些。如果B1輕,則偽幣在B1中,再將B1又分成兩組,每組有兩個(gè)硬幣,稱其中一組為B1a,另一組為B1b。比較這兩組,可以得到一個(gè)較輕的組。由于這個(gè)組只有兩個(gè)硬幣,因此不必再細(xì)分。比較組中兩個(gè)硬幣的重量,可以立即知道哪一個(gè)硬幣輕一些。較輕的硬幣就是所要
18、找的偽幣。,分枝定界,類似于回溯法,分枝定界法在搜索解空間時(shí),也經(jīng)常使用樹形結(jié)構(gòu)來組織解空間。然而與回溯法不同的是,回溯算法使用深度優(yōu)先方法搜索樹結(jié)構(gòu),而分枝定界一般用寬度優(yōu)先或最小耗費(fèi)方法來搜索這些樹。本章與第1 6章所考察的應(yīng)用完全相同,因此,可以很容易比較回溯法與分枝定界法的異同。相對(duì)而言,分枝定界算法的解空間比回溯法大得多,因此當(dāng)內(nèi)存容量有限時(shí),回溯法成功的可能性更大,算法思想,分枝定界(branch and bound)是另一
19、種系統(tǒng)地搜索解空間的方法,它與回溯法的主要區(qū)別在于對(duì)E-節(jié)點(diǎn)的擴(kuò)充方式。每個(gè)活節(jié)點(diǎn)有且僅有一次機(jī)會(huì)變成E-節(jié)點(diǎn)。當(dāng)一個(gè)節(jié)點(diǎn)變?yōu)镋-節(jié)點(diǎn)時(shí),則生成從該節(jié)點(diǎn)移動(dòng)一步即可到達(dá)的所有新節(jié)點(diǎn)。在生成的節(jié)點(diǎn)中,拋棄那些不可能導(dǎo)出(最優(yōu))可行解的節(jié)點(diǎn),其余節(jié)點(diǎn)加入活節(jié)點(diǎn)表,然后從表中選擇一個(gè)節(jié)點(diǎn)作為下一個(gè)E-節(jié)點(diǎn)。從活節(jié)點(diǎn)表中取出所選擇的節(jié)點(diǎn)并進(jìn)行擴(kuò)充,直到找到解或活動(dòng)表為空,擴(kuò)充過程才結(jié)束。,有兩種常用的方法可用來選擇下一個(gè)E-節(jié)點(diǎn)(雖然也可能存在
20、其他的方法): 1) 先進(jìn)先出(F I F O) 即從活節(jié)點(diǎn)表中取出節(jié)點(diǎn)的順序與加入節(jié)點(diǎn)的順序相同,因此活節(jié)點(diǎn)表的性質(zhì)與隊(duì)列相同。 2) 最小耗費(fèi)或最大收益法在這種模式中,每個(gè)節(jié)點(diǎn)都有一個(gè)對(duì)應(yīng)的耗費(fèi)或收益。如果查找一個(gè)具有最小耗費(fèi)的解,則活節(jié)點(diǎn)表可用最小堆來建立,下一個(gè)E-節(jié)點(diǎn)就是具有最小耗費(fèi)的活節(jié)點(diǎn);如果希望搜索一個(gè)具有最大收益的解,則可用最大堆來構(gòu)造活節(jié)點(diǎn)表,下一個(gè)E-節(jié)點(diǎn)是具有最大收益的活節(jié)點(diǎn)。,6、模擬退火法、神經(jīng)網(wǎng)絡(luò)、
21、遺傳算法,模擬退火法(Simulated Annealing)是Kirkpatrick等人在一九八三年提出并成功地應(yīng)用在組合最佳化問題中,它是蒙特卡羅演算法的推廣。 人工神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu): 遞歸網(wǎng)絡(luò)和前饋網(wǎng)絡(luò) 人工神經(jīng)網(wǎng)絡(luò)的典型模型有:自適應(yīng)諧振理論(ART)、 Kohonen 網(wǎng)絡(luò) 、 反向傳播(BP)網(wǎng)絡(luò) 、 Hopfield網(wǎng),遺傳算法(Genetic Algoritms,簡(jiǎn)稱GA)是以自然選擇和遺傳理論為基礎(chǔ),將生
22、物進(jìn)化過程中適者生存規(guī)則與群體內(nèi)部染色體的隨機(jī)信息交換機(jī)制相結(jié)合的搜索算法。遺傳算法是具有"生成+檢測(cè)"的迭代過程的搜索算法。基本流程如圖1所示??梢?,遺傳算法是一種群體型操作,該操作以群體中的所有個(gè)體為對(duì)象。選擇(selection)、交叉(crossover)和變異(mutation)是遺傳算法的三個(gè)主要操作算子。遺傳算法包含如下6個(gè)基本要素:參數(shù)編碼、生成初始群體、適應(yīng)度評(píng)估檢測(cè)、選擇、交叉操作、變異,7、網(wǎng)格
23、算法和窮舉法,網(wǎng)格算法和窮舉法都是暴力搜索最優(yōu)點(diǎn)的算法,在很多競(jìng)賽題中有應(yīng)用,當(dāng)重點(diǎn)討論模型本身而輕視算法的時(shí)候,可以使用這種暴力方案,最好使用一些高級(jí)語言作為編程工具,窮舉法是基于計(jì)算機(jī)特點(diǎn)而進(jìn)行解題的思維方法。一般是在一時(shí)找不出解決問題的更好途徑時(shí),可以根據(jù)問題中的部分條件(約束條件)將所有可能解的情況列舉出來,然后通過一一驗(yàn)證是否符合整個(gè)問題的求解要求,而得到問題的解。這種解決問題的方法我們稱之為窮舉算法。窮舉法特點(diǎn)是算法簡(jiǎn)單,但
24、運(yùn)行時(shí)所花費(fèi)的時(shí)間量大。,8、連續(xù)離散化方法,很多問題都是實(shí)際來的,數(shù)據(jù)可以是連續(xù)的,而計(jì)算機(jī)只認(rèn)的是離散的數(shù)據(jù),因此將其離散化后進(jìn)行差分代替微分、求和代替積分等思想是非常重要的,9、數(shù)值分析算法,如果在比賽中采用高級(jí)語言進(jìn)行編程的話,那一些數(shù)值分析中常用的算法比如方程組求解、矩陣運(yùn)算、函數(shù)積分等算法就需要額外編寫庫函數(shù)進(jìn)行調(diào)用,10、圖象處理算法,賽題中有一類問題與圖形有關(guān),即使與圖形無關(guān),論文中也應(yīng)該要不乏圖片的,這些圖形如何展示以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)建模競(jìng)賽中應(yīng)該掌握的幾種方法
- 十類常見的數(shù)學(xué)課堂教學(xué)模式
- 最該嫁的十類男人
- 十類事物的搭配易致病
- 十類事故應(yīng)急處置卡
- 2013十類熱門企業(yè)培訓(xùn)課程
- 數(shù)學(xué)建模十大算法
- 2019年河北高職單招考試十類
- 如何做好直銷-與十類人的溝通技巧
- 如何做好直銷-與十類人的溝通技巧
- 哪十類男人天生是長(zhǎng)壽命
- 掃黑除惡專項(xiàng)斗爭(zhēng)十類打擊重點(diǎn)
- 十類場(chǎng)所消防安全自查檢查標(biāo)準(zhǔn)
- 高中地理十類論述題典型問題歸類
- 數(shù)學(xué)建模與數(shù)學(xué)建模競(jìng)賽
- 我們參加數(shù)學(xué)建模競(jìng)賽獲獎(jiǎng)的十大秘訣
- 一元一次方程應(yīng)用中的十類行程問題
- 同濟(jì)大學(xué)數(shù)學(xué)建模類競(jìng)賽報(bào)名表
- 同濟(jì)大學(xué)數(shù)學(xué)建模類競(jìng)賽報(bào)名表
評(píng)論
0/150
提交評(píng)論