關於 線性規劃 非線性規劃 與 凸優化
出處:https://blog.csdn.net/weixin_37589896/article/details/78712955
優化問題涉及關鍵詞:
凸優化、凸錐、凸集、線性規劃、非線性規劃(np)、拉格朗日chengzi、hessian矩陣、泰勒展開式、梯度、方向導數、牛頓法、凸二次優化、區域性最小化、隨機梯度、最速梯度、批量梯度、kkt條件、等高線 、共軛梯度、二次型、二次型矩陣、對偶問題一,前置條件:需要補充一下知識,才開啟下面內容:
方向導數 與 梯度的概念
線性規劃
hession矩陣
泰勒展開式
共軛
————————————————————————————————————————————————二,凸集:
http://www.hanlongfei.com/%E5%87%B8%E4%BC%98%E5%8C%96/2015/05/22/convexset/
————————————————————————————————————————————————
三,線性規劃求解:
可以轉化為線性規劃對偶方式:http://blog.csdn.net/chunyun0716/article/details/52423991
求解:
無約束求解:導數、求極值
有約束求解:
1,圖解法——最為簡單直觀,不需要轉化為標準型
2,單純形表法:
a,需要轉化為標準型:min到max,將不等式變為等式:增加鬆弛變數
b,找出所有基解,判斷是否是基礎可行解,並比較求出最大的那個
————————————————————————————————————————————————
四,非線性規劃內的凸優化求解:
也可以轉化為對偶方法:http://blog.csdn.net/chunyun0716/article/details/52423991
1,無約束:(無論是否是凸函式、還是非凸函式均可使用)
原理:需要先理解方向導數、梯度概念;
方法:
最速梯度下降(需要方向導數、梯度知識、偏導數原理),
牛頓法(泰勒展開式知識、需要hession矩陣、偏導數原理、對稱矩陣、二次型),
隨機梯度(由最速梯度衍生),
批量梯度(由最速梯度衍生),
共軛梯度(由最速梯度衍生、共軛概念、共軛矩陣)
2,等式約束(限凸函式):拉格朗日乘子(需要等高線、法向量知識)將等式有約束變為無約束,之後使用無約束方法求解,拉格朗日乘子原理請檢視:https://www.zhihu.com/question/38586401。
3,不等式約束(需要滿足kkt條件):kkt條件(廣義拉格朗日乘子),原理:https://www.zhihu.com/question/23311674,如果求解困難,可考慮轉化為拉格朗日對偶,之後通過無約束方法求解。
4,對於有約束的優化問題,通過拉格朗日法可以將其轉變為等價的無約束優化問題。在這個過程中,新構造的拉格朗日函式存在好玩的對偶性質,從而衍生出了對偶問題。原問題與對偶問題之間的特殊性質,為我們
研究優化問題提供了新的方向和方法。因此,這部分的思路是:對4.1定義的優化問題,通過拉格朗日法構造拉格朗日函式,從而生成原問題Primal problem和對偶問題Dual problem,然後介紹一些引理,揭示原問題
與對偶問題之間的關係。拉格朗日對偶問題,詳情檢視:https://www.cnblogs.com/90zeng/p/Lagrange_duality.html
————————————————————————————————————————————————
五,凸優化:
凸優化包含:線性規劃 與 目標函式與條件函式都是凸函式的 非線性規劃。
詳情檢視:https://www.zhihu.com/question/24641575/answer/164397294
凸優化特性:
a,區域性最優解=全域性最優解
b,效率高
c,是目前科技比較確定的可以求解的非線性規劃方式,
d,許多非凸問題通過一定的手段,要麼等價地化歸為凸問題,要麼用凸問題去近似、逼近。典型的如幾何規劃、整數規劃,它們本身是非凸的,但是可以藉助凸優化手段去解,這就極大地擴張了凸優化的應用範圍。
e,在非凸優化中,凸優化同樣起到很重要的作用 1)當你要解決一個非凸優化問題時,可以先試圖建立一個簡化多凸優化模型,解出來以後作為非凸問題的一個起始點。 2)很多非凸優化問題的啟發式演算法的基礎都是基於凸優化 3)你可以先建立非凸優化的鬆弛問題,使用凸優化演算法求解,作為非凸優化問題的上限或下限(bound)
求解凸函式的極小值(convex minimization)和凹函式的極大值(concave maximization)都是凸優化問題(convex optimization problem)。
凸優化之所以‘容易’是因為任何可證明的區域性最優解(Local Optimal Solution)都同時為全域性最優解(Global Optimal Solution)。
凸優化理論中最重要的工具是Lagrange對偶。近些年來關於凸問題的研究非常透徹,以至於只要把某一問題抽象為凸問題,就可以近似認為這個問題已經解決了。
————————————————————————————————————————————————
六,關於非凸非線性規劃求解:
解決一個非凸優化問題時,可以先試圖建立一個簡化的多凸優化模型,解出以後作為非凸問題的一個起始點,很多非凸優化問題的啟發式演算法的基礎都是基於凸優化,可以先建立非凸
優化的鬆弛問題,使用凸優化演算法求解,然後作為非凸優化問題的上限或下限
a,先鬆弛,例如,某問題有一約束為 x^2+bx+c=0 ,就不構成一個凸集,但等價於 x^2+bx+c<= 0 和 x^2+bx+c>= 0 ,前一個不等式即構成凸集,因此我們可以將後一個不等式從約束中去除,就得到原問題的一個凸
優化鬆弛問題。
b,利用廣義拉格朗日乘子 以及 拉格朗日對偶簡化,
c,通過凸優化的無約束條件規劃求解。
相關文章
- matlab求解非線性規劃Matlab
- 運籌優化(十一)--無約束非線性規劃優化
- 運籌優化(十二)--帶約束非線性規劃(NLP)優化
- matlab線性規劃Matlab
- 動態規劃-----線性動態規劃
- 線性規劃對偶原理
- 運籌優化(五)--線性規劃之內點法優化
- 動態規劃篇——線性DP動態規劃
- 運籌優化(二)--線性規劃概念及應用模型優化模型
- UVA 10498 Happiness!(線性規劃)APP
- 線性規劃模型複習總結模型
- matlab求解線性規劃問題Matlab
- 非線性規劃的經典例題--選址問題
- Matlab解決線性規劃問題Matlab
- Python求解線性規劃——PuLP使用教程PythonPulp
- ERP的核心——線性規劃模型(轉)模型
- 線性規劃對偶學習筆記筆記
- 線性規劃單純形法精解
- 做題筆記——網路流與線性規劃24題筆記
- 運籌優化(四)--線性規劃之對偶問題和靈敏度分析優化
- 萬字教你如何用 Python 實現線性規劃Python
- 關於非線性和線性是什麼的理解
- 基於TRE文章的非線性模型化線性方法模型
- 非線性最優化最佳教材優化
- 蒙特卡洛模擬(3)————求解有約束的非線性規劃問題
- Python小白的數學建模課-03.線性規劃Python
- Python學習筆記-PuLP庫(3)線性規劃例項Python筆記Pulp
- 關於人生的規劃
- 資訊化業務規劃與技術體系規劃
- 虛擬化運維:規劃和發展戰略性 IT 計劃運維
- 斜率優化動態規劃優化動態規劃
- 線性規劃之單純形演算法矩陣描述與python實現演算法矩陣Python
- 遊戲策劃---實現一個非線性的故事(轉)遊戲
- 有關動態規劃的相關優化思想動態規劃優化
- 關於動態規劃法動態規劃
- 出行路線規劃系統設計與開發
- 關於個人規劃和團隊
- leetcode--重新規劃路線LeetCode