使用紙漿和python,我試圖以以下形式解決水平衡(類似于經(jīng)典的運輸問題)線性規(guī)劃問題:最小化 c'x 服從:軸=b磅<=x<=ub其中 A 是 (10x18) 矩陣,c(1x18) 和 b(10x1) 是向量,U (18x2) 是分別包含 lb 和 ub 的兩列矩陣。import pulp as pimport pandas as pdimport numpy as npA=pd.read_csv(r"C:\...\A.csv",delimiter=',',dtype='int8',header=None)A=A.to_numpy()c=pd.read_csv(r"C:\...\c.csv",delimiter=',',dtype='float64',header=None)c=c.to_numpy()U=pd.read_csv(r"C:\...\U.csv",delimiter=',',dtype='float64',header=None)b=pd.read_csv(r"C:\...\b.csv",delimiter=',',dtype='float64',header=None)b=b.to_numpy()# Create a LP Minimization problem Lp_prob = p.LpProblem('Problem', p.LpMinimize) # Create problem Variables x = p.LpVariable("x", lowBound = U[0], upBound = U[1]) # Create a variable x# Objective Functionc=np.transpose(c)Lp_prob+= p.lpSum(c*x)# Constraints: Lp_prob += p.lpSum(A*x) == b# Display the problem print(Lp_prob) status = Lp_prob.solve() # Solver print(p.LpStatus[status]) # The solution status # Printing the final solution print(p.value(x), p.value(Lp_prob.objective)) 問題 當我嘗試運行項目時,它會顯示消息“文件“C:\Users\stavroula\Anaconda3\lib\site-packages\pandas\core\generic.py”,第1555行,非零 self.class.nameValueError:Series 的真值不明確。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。"為什么會這樣?可以使用 scipy.optimize.linprog() 例程成功解決該問題。提前致謝??!
1 回答

回首憶惘然
TA貢獻1847條經(jīng)驗 獲得超11個贊
PuLP 不使用矩陣表示法。所以A*x
變成了類似的東西(在偽代碼表示法中):
sum_j A[i,j]*x[j]
如果您想使用矩陣表示法,請查看 CVXPY。
添加回答
舉報
0/150
提交
取消