簡體   English   中英

如何在 Python 的紙漿環境中引入變量

[英]How to introduce a variable in pulp environment of Python

我有兩套。

  • S = 來源 = {S1, S2, S3}
  • D = 目的地 = {D1, D2, D3}

我必須在某些限制條件下最小化總運輸成本。 我正在使用 Python 中的紙漿。 我怎樣才能引入一個變量,以便我允許一些特定的路線?

條件是if cost $(S_i, D_j) >=$ 250 then 0 else 1

allowed_route = []
for i in range(len(matrix)):

for j in matrix[i]:
    if j >= 250:
        allowed_route.append(0)
    else:
        allowed_route.append(1)
 np_array=np.asarray(allowed_route)
 allowed_route = np_array.reshape(6, 4) 
 allowed_route = np.array(P_allowed_PLF_cap).tolist()

這樣,我已經定義了參數,但是我無法引入變量。

您應該制作具有合法路由並使用它的 SXD 變量的子集。 這是一個例子:

In [4]: from pulp import *                                                      

In [5]: sources = {'S1', 'S2', 'S3'}                                            

In [6]: destinations = {'D1', 'D2', 'D3'}                                       

In [7]: legal_routes = ( ('S1', 'D2'), 
   ...:                  ('S2', 'D1') )                                         

In [8]: # note:  above is obviously infeasible...just shows idea...             

In [9]: route_select = LpVariable.dicts('route', legal_routes, 0, 1, LpBinary)

實際上,您可能對每條路線都有成本,所以我會將所有這些都保存在字典中並將字典鍵發送到 LpVariable.dicts 調用

rest 應該與我提到的示例相似。 如果您遇到困難,如果您搜索“紙漿運輸模型”或“紙漿稀疏約束”等,本網站上還有其他幾個示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM