看板 Math 關於我們 聯絡資訊
給定n個變數 a,b,c,d,.... 及數個條件 f(a,b,...)>=M, g(a,b,...)>=N, ... 其中f、g為n個變數中部分變數的相和。 請問,所有n個變數總和的極小值要怎麼求? ---- 舉例如下: 給定4個變數a、b、c、d, 在符合 a+b+d>=322、a+c+d>=292、c+d>=157 、 a>=0 、 c>=0 等條件下, 求a+b+c+d的極小值。 可求出 a+b+c+d 的極小值在 (135,30,0,157) 上,值為322, 在 a+b+d=322、a+c+d=292、c+d=157、c=0 相交處,而不在 a=0 的面上。 ---- 希望有具體的演算法或程式碼。 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.136.56 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Math/M.1610868814.A.481.html ※ 編輯: kilva (114.36.136.56 臺灣), 01/17/2021 15:36:37 ※ 編輯: kilva (114.36.136.56 臺灣), 01/17/2021 15:37:43
garymore : 以你舉的例子來說,求a+b+c+d的最小值,使用偏微分 01/17 17:18
garymore : ,並且引入Lagrange multipliers(只需要前三個條 01/17 17:18
garymore : 件),就可以算出最小值可以由c決定。所以當c最小, 01/17 17:18
garymore : 就有最小值322。 01/17 17:18
LPH66 : 如果你要的是程式的話, 你的問題是標準的線性規劃 01/18 02:02
LPH66 : 解線性規劃的程式很容易找得到 01/18 02:02
Pieteacher : 找一下 scipy.optimize 裡的 linprog 01/19 12:13