簡體   English   中英

紙漿中的二維決策變量

[英]2D decision variables in PuLP

我是 PuLP 的新手,我正在嘗試運行一個優化問題,其中我的一個決策變量是 2D。 我對如何將 2D 決策變量聲明為 plp.LpVariable 的一部分感到有些困惑? 截至目前,這就是我聲明變量的方式

a = { k : plp.LpVariable(name='a', lowBound=np.array([0, 0]), \
                         upBound=np.array([2, 3]), \
                         cat=plp.LpContinuous) for k in range(10)}

謝謝!

歡迎來到 SO! 您正在尋找的是LpVariable class 的dicts方法。 這允許您傳入多維索引以創建 M x N 或 M x N x O(等)變量集。

它的用途在解決數獨難題的紙漿文檔示例中進行了說明: https://coin-or.github.io/pulp/CaseStudies/a_sudoku_problem.ZFC35FDC70D52FC69DE36

該方法本身記錄在此: https://coin-or.github.io/pulp/technical/pulp.html?highablelight.plsLdicts

據我所知,該方法不能直接接受每個變量不同的上限和下限,因此您需要執行以下操作:

up_bounds = [2,3]
a = pulp.LpVariable.dicts('a', range(2), lowBound=0)
for i in range(2):
    prob += a[i] <= up_bounds[i]

暫無
暫無

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

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