數學中最最佳化問題的一般表述是求取,使,其中是n維向量,是的可行域,是上的實值函式。
凸最佳化問題是指是閉合的凸集且是上的凸函式的最最佳化問題,這兩個條件任一不滿足則該問題即為非凸的最最佳化問題。
其中,是 凸集是指對集合中的任意兩點,有,即任意兩點的連線段都在集合內,直觀上就是集合不會像下圖那樣有“凹下去”的部分。至於閉合的凸集,則涉及到閉集的定義,而閉集的定義又基於開集,比較抽象,不贅述,這裡可以簡單地認為閉合的凸集是指包含有所有邊界點的凸集。
實際建模中判斷一個最最佳化問題是不是凸最佳化問題一般看以下幾點:
目標函式如果不是凸函式,則不是凸最佳化問題
決策變數中包含離散變數(0-1變數或整數變數),則不是凸最佳化問題
約束條件寫成時,如果不是凸函式,則不是凸最佳化問題
之所以要區分凸最佳化問題和非凸的問題原因在於凸最佳化問題中區域性最優解同時也是全域性最優解,這個特性使凸最佳化問題在一定意義上更易於解決,而一般的非凸最最佳化問題相比之下更難解決。
非凸最佳化問題如何轉化為凸最佳化問題的方法:
1)修改目標函式,使之轉化為凸函式
2)拋棄一些約束條件,使新的可行域為凸集並且包含原可行域
數學中最最佳化問題的一般表述是求取,使,其中是n維向量,是的可行域,是上的實值函式。
凸最佳化問題是指是閉合的凸集且是上的凸函式的最最佳化問題,這兩個條件任一不滿足則該問題即為非凸的最最佳化問題。
其中,是 凸集是指對集合中的任意兩點,有,即任意兩點的連線段都在集合內,直觀上就是集合不會像下圖那樣有“凹下去”的部分。至於閉合的凸集,則涉及到閉集的定義,而閉集的定義又基於開集,比較抽象,不贅述,這裡可以簡單地認為閉合的凸集是指包含有所有邊界點的凸集。
實際建模中判斷一個最最佳化問題是不是凸最佳化問題一般看以下幾點:
目標函式如果不是凸函式,則不是凸最佳化問題
決策變數中包含離散變數(0-1變數或整數變數),則不是凸最佳化問題
約束條件寫成時,如果不是凸函式,則不是凸最佳化問題
之所以要區分凸最佳化問題和非凸的問題原因在於凸最佳化問題中區域性最優解同時也是全域性最優解,這個特性使凸最佳化問題在一定意義上更易於解決,而一般的非凸最最佳化問題相比之下更難解決。
非凸最佳化問題如何轉化為凸最佳化問題的方法:
1)修改目標函式,使之轉化為凸函式
2)拋棄一些約束條件,使新的可行域為凸集並且包含原可行域