Gurobi中的分段线性函数,理解examp

2024-06-26 10:36:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在python中的gurobi优化问题中实现分段线性目标。当尝试使用gurobi网站(http://examples.gurobi.com/production-scheduling/)中的示例熟悉此方法时

我陷入困境,好几天都无法真正解决这个问题。现在我希望这里有人能告诉我,我的解释哪里错了。在

上述例子优化了生产能力有限,尤其是员工工作时间有限的几种商品的利润。然而,后一个约束并不难,但是,对于某些奖金支付,可能的工作时间可以扩展(这是分段线性函数)。在一般的问题表述中,问题是这样的:

profit = revenue−cost = ∑r(i)x(i)−cost(t)

,其中r表示货物“i”的具体收入,x表示该货物的份额,而成本项提供了加班的潜在额外成本。 然而,在实际的代码中,目标遗漏了成本项,至少根据我的理解:

^{pr2}$

我怀疑这是由分段线性目标引入/解释的,但不幸的是,我不知道怎么做。在

# Set piecewise linear objective
nPts = 101
ti = []
costi = []
lb = 0
ub = maxhours;

for i in range(nPts):
    ti.append(lb + (ub - lb) * i / (nPts - 1))
    costi.append(-cost(ti[i], limithours, penalty))

m.setPWLObj(t, ti, costi)
m.optimize()

PWLObj是否总是与主要目标脱节?有没有办法将PWLObj乘以主目标函数? 我希望我不只是错过了一些琐碎的地方(我对编程和优化都还很陌生)。 非常感谢您的时间和支持!在


Tags: 函数目标时间ti线性成本货物分段