數學中最優化問題的一般表述是求取,使,其中是n維向量,是的可行域,是上的實值函數。
凸優化問題是指是閉合的凸集且是上的凸函數的最優化問題,這兩個條件任一不滿足則該問題即爲非凸的最優化問題。
其中,是 凸集是指對集合中的任意兩點,有,即任意兩點的連線段都在集合內,直觀上就是集合不會像下圖那樣有“凹下去”的部分。至於閉合的凸集,則涉及到閉集的定義,而閉集的定義又基於開集,比較抽象,不贅述,這裏可以簡單地認爲閉合的凸集是指包含有所有邊界點的凸集。
注意:中國大陸數學界某些機構關於函數凹凸性定義和國外的定義是相反的。Convex Function在某些中國大陸的數學書中指凹函數。Concave Function指凸函數。但在中國大陸涉及經濟學的很多書中,凹凸性的提法和其他國家的提法是一致的,也就是和數學教材是反的。舉個例子,同濟大學高等數學教材對函數的凹凸性定義與本條目相反,本條目的凹凸性是指其上方圖是凹集或凸集,而同濟大學高等數學教材則是指其下方圖是凹集或凸集,兩者定義正好相反。
爲什麼要求是凸函數呢?因爲如果是下圖這樣的函數,則無法獲得全局最優解。
爲什麼要求是凸集呢?因爲如果可行域不是凸集,也會導致局部最優
實際建模中判斷一個最優化問題是不是凸優化問題一般看以下幾點:
- 目標函數如果不是凸函數,則不是凸優化問題
- 決策變量中包含離散變量(0-1變量或整數變量),則不是凸優化問題
- 約束條件寫成時,如果不是凸函數,則不是凸優化問題
之所以要區分凸優化問題和非凸的問題原因在於凸優化問題中局部最優解同時也是全局最優解,這個特性使凸優化問題在一定意義上更易於解決,而一般的非凸最優化問題相比之下更難解決。
非凸優化問題如何轉化爲凸優化問題的方法:
1)修改目標函數,使之轉化爲凸函數
2)拋棄一些約束條件,使新的可行域爲凸集並且包含原可行域