規劃演算法是數學建模眾多演算法中最常用的演算法之一,也是最容易入門
學習的演算法之一,規劃的初學者可能發現,它和我們高中時學過的線
性規劃非常像,但又複雜許多。高中時學習的規劃形式非常簡單,只
有 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,內容與下面的文字相同...