[其他] 如何證明convex function?

看板Math作者 (Raki)時間9年前 (2014/12/20 14:27), 9年前編輯推噓0(0020)
留言20則, 3人參與, 最新討論串1/1
我是工科的學生,本身沒學過linear programming和nonlinear programming 現在想要解一個nonlinear programming的問題 聽說如果objective function如果是convex function會比較容易解 但是我不知道要怎麼證明一個很複雜的function是convex function的樣子 一部分是x1*x2+x3*x4+...+xn*xn+1 另一部分是線性的,大概這樣的形式x1+x2+...+xn objective function=x1*x2+x3*x4+...+xn*xn+1+x1+x2+...+xn 請問這種形式的functionc是不是convex? 要怎麼檢驗或證明呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.221.212 ※ 文章網址: http://www.ptt.cc/bbs/Math/M.1419056832.A.9F6.html

12/20 14:40, , 1F
不是有定義嗎?
12/20 14:40, 1F

12/20 17:26, , 2F
你的二次項都是 x_(2n-1) * x_(2n) 這樣子,每一對
12/20 17:26, 2F

12/20 17:27, , 3F
確定不會有相同的x_i出現在不同兩項裡面嗎?
12/20 17:27, 3F

12/20 17:28, , 4F
如果這樣的話你還真幸福,好簡單的函數
12/20 17:28, 4F

12/20 17:29, , 5F
總之先換個變數,例如你不要用 x_1, x_2,改用
12/20 17:29, 5F

12/20 17:30, , 6F
(x_1 + x_2), (x_1 - x_2)
12/20 17:30, 6F

12/20 17:31, , 7F
然後你就可以看到,本來纏在一起的 x_1 * x_2
12/20 17:31, 7F

12/20 17:31, , 8F
被拆開了,可喜可賀
12/20 17:31, 8F

12/20 17:32, , 9F
後面的比照辦理
12/20 17:32, 9F
糟糕,會有相同的x_i出現在不同項Orz 這樣會困難很多嗎? 我再描述的詳細一點好了 objective function=x_1*x_2+x_2*x_3+x_4*x_5+x_5*x_6+...+x_(n-2)*x_(n-1)+x_(n-1)*x_n +x_1+x_2+...+x_n 以上是忽略每項的係數啦,我想系數應該是沒啥大影響? 這樣還有可能是convex嗎? ※ 編輯: raki237 (1.34.221.212), 12/21/2014 00:42:49

12/21 08:37, , 10F
你這是quadractic programming啊 算很簡單的情況了
12/21 08:37, 10F

12/21 08:39, , 11F
quadratic programming屬convex optimization的特例
12/21 08:39, 11F
謝謝樓上,我看懂了!XD 變數兩兩相乘+變數相加,這樣的型式應該都算是quadratic programming對吧? 雖然兩兩相乘的部分可能有些項是我不需要的,但沒差,該項係數是0就行了 不知道我理解的對不對? 畢竟我都是自己找原文資料看的,也沒學過這些,可能不太會XD 不過我的變數都是binary,所以算起來也不太快Orz ※ 編輯: raki237 (1.34.221.212), 12/21/2014 16:19:38

12/22 02:17, , 12F
你的變數是binary? 那你這是integer programming
12/22 02:17, 12F

12/22 02:18, , 13F
一般來說最佳化理論是建立在連續函數上 只限定某些
12/22 02:18, 13F

12/22 02:19, , 14F
整數的問題是一個更麻煩的層次的問題
12/22 02:19, 14F
其實我只想知道這樣的function會不會是convex function 因為我有一個可以解convex MINLP的solver 但是我必須確定一下,我的objective是不是convex 還是說binary型態的問題,有更好的方法可以使用? ※ 編輯: raki237 (140.113.88.41), 12/22/2014 15:29:52

12/23 03:31, , 15F
我後來又查過發現記錯了 quadratic要正定才是convex
12/23 03:31, 15F

12/23 03:32, , 16F
看你的solver是用什麼方法 如果是gradient descent
12/23 03:32, 16F

12/23 03:33, , 17F
那麼不convex的問題也可以丟下去解 不過有可得到的
12/23 03:33, 17F

12/23 03:33, , 18F
只是局部最佳解 如果是其他方法(SDP、subgradient)
12/23 03:33, 18F

12/23 03:34, , 19F
那麼不一定能解不convex的問題 不過你應該找integer
12/23 03:34, 19F

12/23 03:35, , 20F
programming的solver才是你需要的
12/23 03:35, 20F
文章代碼(AID): #1KbHR0ds (Math)