規劃問題心得

2021-09-26 13:00:09 字數 2497 閱讀 7207

規劃演算法是數學建模眾多演算法中最常用的演算法之一,也是最容易入門

學習的演算法之一,規劃的初學者可能發現,它和我們高中時學過的線

性規劃非常像,但又複雜許多。高中時學習的規劃形式非常簡單,只

有 x 和 y 兩個維度,一般都是利用影象進行求解,但實際生活中的維

度不僅僅是二維,也並非線性,利用高中方法求解這些問題顯然是不

現實的。在數學建模的規劃演算法中,不僅包含了如何建立更複雜的規

劃模型,還包含了如何對這些模型進行求解,而每年無論是國賽還是

美賽,都有相當一部分賽題是利用規劃演算法來進行計算求解的,下面

為大家分享下如何才能把規劃演算法的學習從入門到精通

目錄:1、如何入門規劃演算法?

2、如何精通規劃演算法?

3、學習規劃演算法的過程中側重點應放在什麼地方?

4、使用規劃演算法時應避免哪些誤區?

1、如何入門規劃演算法?

首先要明白規劃演算法是用來做什麼的:說簡單一點規劃就是在一堆限

制條件下求解某個目標的最大或最小值,按照限制條件和目標的屬性

可以分為線性規劃、非線性規劃、0-1 規劃、整數規劃這幾大類,根

據所求解問題的特點又可分為普通的規劃、目標規劃、動態規劃等。

實際規劃模型的建立:很多人在學習完規劃之後面對乙個問題還是不

知道如何下手去建立起乙個規劃模型,包括我自己在內,剛學完之後

去做題,感覺無論如何都套用不到規劃模型,面對這個問題只能是多

看題目多看別人的解法和模型,從每到例題中總結一點點自己的東西,

規劃的例題哪怕自己不親手去做,但一定要多看,哪怕是很簡單的題

目,切忌眼高手低,很多時候複雜問題的解題思想**就是很簡單的

題目。複雜規劃模型的求解:這種情況往往會出現在真題的求解中,因為遇

到真題時,很多條件在題目中約束比較多,並且這些約束條件會很復

雜,要麼出現微分或者高次情況,要麼就會出現變數個數幾十甚至上

百的情況,遇到這些情況時往往就會比較難以求解,難倒了很多程式設計

同學,這個時候一方面從式子本身入手看看是否能化簡,另外一方面

從模型入手看看建模的過程中是否能將問題進行簡化。並不是只要把

目標和約束條件羅列出來就一定能進行求解,需要建模和程式設計隊友對

問題進行討論,「優化」這個詞值得仔細品味。

總結而言,為了精通規劃演算法,必須要多看、多練。

3、學習規劃演算法的過程中側重點應放在什麼地方?

①求解規劃問題軟體的學習——matlab、lingo,matlab 和 lingo 都

可以求解線性、非線性規劃,個人認為 lingo 更方便一些,尤其是在

求解非線性規劃時,有時候很難將式子用標準型表示出來,而 lingo

不在意這一點。更重要的是如果對 matlab 不是很熟悉,在求解規劃

問題時選擇函式不恰當會出現報錯現象,而 lingo 不存在這個問題。

此外,lingo 本身帶有對問題的靈敏度分析,而 matlab 沒有。但是

lingo 本身是一款新的軟體,要想學好 lingo 也需要付出一定的時間

和精力。

②目標和約束條件的建立

針對同一問題,如何把目標和約束寫出來可能不是那麼難,但是如何

把目標和約束寫好則是重難點,什麼時候選擇整數規劃什麼時候選擇

0-1 規劃?這就需要我們在學習的過程中把握每種規劃的特點,多想

多練了。

③規劃問題的求解

求解規劃問題常用的方法有單純性法、分割平面法、分支定界法等等,

這些都屬於比較傳統的演算法,可以很方便的用軟體求解並不需要手動

計算,而有時候思維不要侷限於現成的一些方法,可以把多種優化算

法結合進來一起使用,來求解規劃問題,如蒙特卡洛演算法、模擬退火

演算法等等,要學會活學活用。

4、使用規劃演算法時應避免哪些誤區?

①設定很多變數

設定很多變數確實可以讓規劃模型的建立容易很多,但是會造成求解

上的困難。如果有 100 個變數,在用 matlab 求解時就要有 100*100

的矩陣,顯然在很多時候是不現實的,而用 lingo 求解的話,lingo

(學生版)這個免費版本要求的變數個數是不超過 50 個

②隨心所欲寫約束條件

看過很多無法求解的規劃問題,大多是約束條件寫的太隨意了,雖然

每條都能說出一定道理,但是式子裡不僅有三角函式,還有微分、高

次多項式等等,這種型別的式子是很難進行求解的。

③不清楚規劃的本質

要使用規劃,就要認清規劃的本質,規劃的本質還是在於求解方程組,

只不過方程組不是等式而已。回想看正常的方程組存在的特質——變

量個數等於方程組的個數,而在規劃中,變數的個數往往少於方程組

的個數,這也正是規劃最強大的一點——能夠解決變數個數少於方程

組的最優化問題,少乙個、少兩個都行,做例題時你會發現,哪怕少

輸入乙個約束條件照樣能把結果求解出來,這有好處也有壞處,好處

是你無論如何都能在短時間內得到結果,壞處就是可能漏掉了某個約

束但你沒有發現它,導致結果不是很精確。

動態規劃心得

一 找出最優解的性質,刻劃其結構特徵 最優子結構特徵 1.矩陣連乘 將矩陣連乘積簡記為a i j 這裡i j,m i j 為 計算矩陣a i j 所需的最少數乘次數 2.最長公共子串行中的x m 和y n z i j 記錄字串x i y j 最長公共子串長度 3.最大子段和 子問題 b j 計算區間...

職業規劃提示 心得

1,告訴我們活到老,學到老!2,不懂就問,要想有成績,必須經歷先聽方法,然後慢慢學習。3,我們付出的必定會有回報的,只是時間差而已。4,構建乙個良好的人際平台,說不定有助於未來職業的發展。5,識別你的工作,工作中重要之重。6,慎重考慮好自己理想 適合什麼樣的工作。7,為工作首先做乙份簡歷的準備,也可...

藍橋杯刷題心得 動態規劃

這裡單獨寫一下動態規劃專題,藍橋杯當中一定會出一道動態規劃的題目所以稍微彙總一下。源於藍橋杯2020屆一道題目 1.某市市長獲得了若干批口罩,每一批口罩的數目如下 如果你把以下文字複製到文字檔案中,請務必檢查複製的內容是否與文件中的一致。在試題目錄下有乙個檔案 mask.txt,內容與下面的文字相同...