使用纸浆给出优化限制

时间:2017-07-06 08:05:22

标签: python-2.7 pulp

我目前正在使用Python中的Pulp模块处理优化问题。我想将我的变量设置为7500的整数倍。所以我创建了一个如下所示的constriant,但它显示错误。

import pandas as pd
import numpy as np
from pulp import *

prob = LpProblem('Cost minimization' , LpMinimize)
X = LpVariable.dicts('',tsap.varName, lowBound=0, upBound=None,     cat=LpInteger)
prob += lpSum( X[i] * j for i,j in zip(tsap.varName, tsap.coeff)),'Total cost'

l=7500

for i in X:
prob += i % l == 0

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-73548ad8b39f> in <module>()
        1 for i in X:
  ----> 2     prob += i % l == 0
        3 

TypeError: not all arguments converted during string formatting

有没有办法达到预期的目标?

1 个答案:

答案 0 :(得分:1)

您不能在纸浆中使用模数运算符,因为这会成为一个非线性问题。

但是,简单的解决方案是保持X[i]整数,然后在约束中使用7500*X[i]并相应地报告解决方案。

相关问题