簡體   English   中英

指定紙漿中的變量范圍

[英]Specify variables bounds in pulp

我正在使用紙漿進行線性編程,我要求的是如何指定列表中的每個項目邊界

mylist=["x","y","z"]

我創建了這個:

vars = LpVariable.dicts("vars", mylist, lowBound=0, cat='Continuous')

但它為列表中的所有項目創建了一個全局范圍,而我想要的是列表中的每個項目

我嘗試了這個,但沒有奏效:

x = LpVariable("x", lowBound=5, upBound=10, cat='Continuous')

謝謝

如果您希望它們在pulp中有所不同,您只需要為下限/上限創建單獨的約束。 這對求解器來說都是一樣的。

例子:

import pulp as plp

products = ['rice', 'veggies', 'fruit']

low_bounds = {  'rice': 5,
                'veggies': 7,
                'fruit': 2}

prob = plp.LpProblem('example')

x = plp.LpVariable.dicts('products', products, cat='Continuous')

for p in products:
    prob += x[p] >= low_bounds[p]

print(prob)

產量:

MINIMIZE
None
SUBJECT TO
_C1: products_rice >= 5

_C2: products_veggies >= 7

_C3: products_fruit >= 2

VARIABLES
products_fruit free Continuous
products_rice free Continuous
products_veggies free Continuous

暫無
暫無

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

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