计算机租赁问题- Pyomo中的线性优化.我的解决方案在AMPL中运行,但Pyomo说它没有边界-可能有什么问题.<



我正在尝试在Pyomo中建模一个简单的线性问题。我在AMPL中完成了建模并得到了正确的答案,但由于一些奇怪的原因,Pyomo说它没有界限。

如果有人能好心地看一下我所做的,看看为什么它不能在pyomo中工作。所有数据和代码如下:

这是最初的问题:BCoE已确定,在未来12个月的每个月,它将需要下表所示的笔记本电脑数量。为了满足这些要求,BCoE租用笔记本电脑的期限为一个月、两个月或三个月。一台笔记本电脑一个月的租金是100美元,两个月的租金是180美元,三个月的租金是250美元。在第一个月初,BCOE有70台笔记本电脑。确定以最低成本满足未来12个月需求的租赁计划。为这个问题写出一个数学程序,然后用你选择的求解器来求解。

tbody> <<tr>2456781011
月份 笔记本电脑需求
1700
1100
3500
600
1100
500
700
700
9300
600
700
12700

这个问题是无界的,因为你没有限制变量的域,所以它可以是负的,求解器发疯了,因为它试图建立"负购买"模型。也这就解决了问题。(注意:你也不必初始化变量):

model.full = Var(fullData, domain=NonNegativeReals)

同样,如果您在这方面做了一些工作,您可以稍微收紧您的模型构造。您应该能够处理约束的RHS值列表,并使用循环将它们全部生成,而不是单独将它们写出来。创建月度指数也是如此。你能想出一个数学表达式来表示每月手头的计算机数量吗?如果是这样,您可以使用一些列表推导和简单的条件动态创建索引。:)