数模笔记_多变量最优化计算之随机搜索算法及建模案例
Date: 2_22
Name: Guo Yehao
Theme: Calculation in Optimality with multiple variables
Reference: 數(shù)學(xué)建模方法與分析(華章)
寫在前面:看完本節(jié)講到的隨機(jī)搜索算法不禁讓我類比一個(gè)有趣的事實(shí):我寫的博客只是讀書筆記,記錄了我在讀書時(shí)的一些思考,而沒有轉(zhuǎn)述或者以更詳細(xì)的方式介紹書中的理論和方法,所以瀏覽者不能指望通過(guò)瀏覽我的博客就學(xué)會(huì)什么具體的方法。但是如果讀者親自看書,那么我的博客會(huì)提供一些對(duì)應(yīng)章節(jié)內(nèi)容的有益見解。所以對(duì)于那些很著急的同學(xué)(急著速成或者直接套用)來(lái)說(shuō),他們想做的是在尋找他們的最優(yōu)解,在輸入關(guān)鍵詞搜索CSDN上眾多博客時(shí),一篇篇地點(diǎn)開查看就像一個(gè)隨機(jī)搜索過(guò)程,我的博客并不是他們想要的最優(yōu)解,于是其瀏覽量的增加就源于隨機(jī)搜索過(guò)程中有幸被抽到、但也被舍棄的事實(shí)了。
?
正文
? 列出最優(yōu)化問(wèn)題的范式只是模型建立的環(huán)節(jié),建模最終是要解決實(shí)際問(wèn)題的,所以模型的求解必不可少,而這一步通常是手算無(wú)法解決的。本節(jié)主要介紹了最優(yōu)化計(jì)算(多變量)的兩種可操作的方法:隨機(jī)搜索算法和梯度算法。在討論的過(guò)程中,順便提到了圖像法和格點(diǎn)搜索法。本次筆記的highlight除了介紹最優(yōu)化計(jì)算方法外,還有有關(guān)的建模思路可供參考。
-
實(shí)際問(wèn)題可以這樣描述:澳大利亞去年的火災(zāi)成了澳大利亞人的痛苦經(jīng)歷(今年MCM_B題的背景,我們隊(duì)伍選的此題),為了增加控制火災(zāi)的把握,澳大利亞政府決定增加一些地區(qū)的消防站的密度。現(xiàn)在,一片給定大小的區(qū)域(對(duì)這個(gè)區(qū)域怎么來(lái)的,比如如何分割如何選取,也可以做一個(gè)討論和假設(shè))內(nèi)要設(shè)立一個(gè)消防站,問(wèn)消防站應(yīng)該選在什么地方?
-
首先我們考慮確定消防站位置的關(guān)鍵因素,我們認(rèn)為是消防隊(duì)員從消防站到達(dá)失火地點(diǎn)的時(shí)間,我們稱之為響應(yīng)時(shí)間,而時(shí)間是和距離有關(guān)系的,第八章的習(xí)題討論了如何確定這個(gè)關(guān)系,是一種基于回歸的方法。假設(shè)我們已經(jīng)得到了,就是書上直接給出的那個(gè)響應(yīng)時(shí)間表達(dá)式。
-
接著,處理這片區(qū)域有關(guān)火災(zāi)的情況:我們采用在今年寒假集訓(xùn)期間眾多隊(duì)伍采用的地圖分割,將這片區(qū)域分成m·m的矩形網(wǎng)格,統(tǒng)計(jì)每個(gè)網(wǎng)格內(nèi)的火災(zāi)報(bào)警呼叫頻數(shù),如果檢索不到現(xiàn)成的數(shù)據(jù)(這個(gè)問(wèn)題大概率是檢索不到的),我們可以模擬一組數(shù)據(jù),例如隨機(jī)生成的方法,(當(dāng)然,如果考慮到地形或者其他環(huán)境的因素,可以對(duì)隨機(jī)模擬的過(guò)程進(jìn)行調(diào)整,例如在隨機(jī)生成時(shí)增加或者減少某些網(wǎng)格投點(diǎn)的幾率,這可以作為模型的改進(jìn),甚至后續(xù)問(wèn)題會(huì)直接這樣提問(wèn)),由此我們得到了每個(gè)網(wǎng)格中的呼叫頻數(shù),正如書上所展示的那張網(wǎng)格上的形式。
-
消防站位置的衡量指標(biāo),或者最優(yōu)化問(wèn)題中的專有名詞——目標(biāo)函數(shù),用消防站對(duì)每次呼叫的平均響應(yīng)時(shí)間確定,容易理解:某處的呼叫頻數(shù)越高,那個(gè)地方在取平均時(shí)的權(quán)重越高。表達(dá)式正如書上的那個(gè)表達(dá)式。由此我們就走到要使用隨機(jī)搜索算法的大門前了。
-
-
隨機(jī)搜索算法:我們要求解一個(gè)復(fù)雜表達(dá)式的最優(yōu)值問(wèn)題,當(dāng)表達(dá)式的維數(shù)n<=2時(shí),可以采用圖像法這種全局方法,除了直接觀察三維(或更低維)圖形,采用等值線在二維平面上進(jìn)一步分析。這種方法的缺點(diǎn)在于精度不高(雖然隨機(jī)搜索也不是什么高精度的算法,但是相比圖像法還是可以“五十步笑百步”的),處理問(wèn)題的緯度有限,不能處理三個(gè)以上決策變量的問(wèn)題。于是書中進(jìn)一步提出了隨機(jī)搜索算法:它的基本思想是在可行域內(nèi)投N個(gè)點(diǎn),每個(gè)點(diǎn)的坐標(biāo)分量隨機(jī)生成,計(jì)算每個(gè)點(diǎn)的目標(biāo)函數(shù)值,選出這些值中的最小值,并且記錄對(duì)應(yīng)的坐標(biāo)分量。算法的偽代碼如下:
%% 算法:隨機(jī)搜索算法%% 變量:a=x的下限b=x的上限c=x的下限d=x的上限N=迭代次數(shù)xmin=最小點(diǎn)x坐標(biāo)的近似解ymin=最小點(diǎn)y坐標(biāo)的近似解zmin=最小點(diǎn)目標(biāo)值F(x,y)的近似解%% 輸入:a, b, c, d, N %% 過(guò)程:begin:xmin<=random [a, b];ymin<=random [c, d];zmin<=F(xmin, ymin);loop n=1 to Nbegin:x<=random [a, b];y<=random [c, d];z<=F(x, y);if z<zmin begin:xmin<=x;ymin<=y;zmin<=z;endendend %% 輸出:xmin, ymin, zmin -
對(duì)算法精度的討論和靈敏度分析:隨機(jī)搜索算法的精度與N個(gè)點(diǎn)在n·n網(wǎng)格上的均勻分布大致相當(dāng),此處n=sqrt(N),相當(dāng)于n·n網(wǎng)格中每個(gè)網(wǎng)格中分配一個(gè)點(diǎn),這樣在每個(gè)方向上的精確度為:m/n,其中m為對(duì)區(qū)域劃分成m·m網(wǎng)格中的m。由于在最優(yōu)值處有目標(biāo)函數(shù)的梯度為零,所以變化較緩慢,所以目標(biāo)值的精確度更高。對(duì)于隨機(jī)搜索算法而言,不適合繼續(xù)提高精確度,因?yàn)榫_度(m/n)每多一位小數(shù),意味著n要擴(kuò)大10倍,也就是N擴(kuò)大100倍,這將會(huì)造成更長(zhǎng)的計(jì)算時(shí)間。事實(shí)上,對(duì)區(qū)域m·m網(wǎng)格劃分時(shí)就有一個(gè)單位的誤差,我們只需要精確度到達(dá)這個(gè)單位之后的一位小數(shù)就可以了,這也為我們確定迭代次數(shù)提供了依據(jù)。通過(guò)圖像法將區(qū)域繼續(xù)局限在一個(gè)包含最優(yōu)值的小區(qū)域內(nèi)用隨機(jī)搜索提高精度沒有太大的意義,因?yàn)閰^(qū)域網(wǎng)格的m·m劃分就有很大的誤差了,但是我們可以將其用作隨機(jī)搜索算法的靈敏度分析,在包含最優(yōu)值的局部區(qū)域做隨機(jī)搜索可以得到一個(gè)新的最優(yōu)值,一般會(huì)與我們最開始得到的最優(yōu)值差很小的數(shù)值,比如在消防問(wèn)題中差了0.03min,這幾乎可以忽略不計(jì)的,因此我們可以說(shuō)明第一次得到結(jié)果的穩(wěn)定性。
總結(jié)一下精確度和靈敏性分析的討論,一方面是通過(guò)精確度確定迭代次數(shù),判斷提高精確度是否有意義;另一方面小范圍的隨機(jī)搜索得到與最初結(jié)果差值較小說(shuō)明穩(wěn)定性。
總結(jié)
以上是生活随笔為你收集整理的数模笔记_多变量最优化计算之随机搜索算法及建模案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数模笔记_多变量最优化的拉格朗日乘子方法
- 下一篇: 数模笔记_多变量最优化计算之牛顿法