亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python linprog 最小化錯誤——單純形法

Python linprog 最小化錯誤——單純形法

慕的地8271018 2021-10-12 16:09:01
我正在使用 scipy.optimize.linprog 庫使用單純形方法計算最小化。我有兩種情況出現錯誤:“ValueError:單純形方法的第 1 階段未能找到可行的解決方案。偽目標函數的計算結果為 3.1e-12,這超出了解決方案所需的 1e-12 容差,被認為“足夠接近”為零一個基本的解決方案??紤]將容差增加到大于 3.1e-12。如果這個容差大到無法接受,問題可能不可行?!薄R苍S有人會找到問題所在。Minimaze:     45x1 + 54x2 + 42x3 + 36x4Subject to:   x1 + x2 + x3 + x4 = 1600              30x1 + 60x2 + 70x3 + 80x4 = 100000              30x1 + 40x2 + 0x3 + 20x4 = 30000我寫的代碼:A = np.array([[-30, -60, -70, -80], [-30, -40, 0, -20], [-1, -1, -1, -1]])b = np.array([-100000, -30000, -1600])c = np.array([45, 54, 42, 36])res = linprog(c, A_eq=A, b_eq=b, bounds=(0, None))下面是第二個例子:Minimize:     100x1 + 50x2 + 100x3Subject to:   x1 + x2 + x3 = 3000              28x1 + 14x2 + 10x3 <= 42000              10x1 + 12x2 + 6x3 <= 24000              30x1 + 20x2 + 30x3 >= 75000              10x1 + 10x2 + 15x3 >= 36000這是代碼:A_ub = np.array([[28, 14, 10], [10, 12, 6], [-30, -20, -30], [-10, -10, -15]])b_ub = np.array([42000, 24000, -75000, -36000])A_eq = np.array([[1, 1, 1]])b_eq = np.array([3000])c = np.array([100, 50, 200])res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds=(0, None))print('Optimal value:', res.fun, '\nX:', res.x)
查看完整描述

2 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我檢查了系統,解決方案確實可行??戳诉@個帖子,好像有浮點問題linprog,顯然是方法的問題。似乎通過method='interior-point'改進了算法。


在這兩種情況下它都對我有用


情況1:


res = linprog(c, A_eq=A, b_eq=b, method='interior-point')

print('Optimal value:', res.fun, '\nX:', res.x)

>> Optimal value: 64090.8624935836 

X: [4.90908724e+02 1.50821194e-05 3.45454303e+02 7.63635788e+02]

案例2:


res = linprog(c, A_ub, b_ub, A_eq, b_eq, bounds=(0, None), method='interior-point')

print('Optimal value:', res.fun, '\nX:', res.x)

#output:

>> Optimal value: 449999.99988966336 

X: [ 377.22836393  748.5144238  1874.25721154]


查看完整回答
反對 回復 2021-10-12
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

使用單純形法的linprog確實存在一些問題。我發現超過15個案件溶于Matlab的,但不能要解決linprog用。也可以通過傳遞來解決。但通常的單純形方法更受歡迎。希望能修好。"method=simplex""method=interior-point"


查看完整回答
反對 回復 2021-10-12
  • 2 回答
  • 0 關注
  • 352 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號