繁体   English   中英

Python Gurobi:如何在目标函数中实现决策变量的最大值?

[英]Python Gurobi: How can I implement a maximum value of a decision variable in the objective function?

希望有人可以帮助我。 我正在开发一个优化模型,在该模型中,我将随着时间 ( t ) 和不同交易 ( s ) 的电力成本最小化。 (其中:标准功率( p )*电力成本( c )=电力成本)。

现在我试图在目标函数中实现一个基于发生的最大功耗的成本组件(有些类似: max(P[s,t]) )。 但是, np.max() 返回错误,因为 P[s,t] 是 np.max() 不受支持的类。 此外,Gurobi 函数 gp.max_(P[s,t]) 也给出了不受支持的类错误。 有人有解决方案吗?

代码:

obj = gp.quicksum(p[s, t] * Cost_elect[t]e for t in range(T) for s in range(S)) + gp.max_(p_batt_ch[s,t]*fixed_cost for t in range(T) for s in range(S))

您需要将max约束分配给新的辅助变量,并将此变量放入目标而不是实际约束。

maxobj = model.addVar()
max_constr = model.addConstr(maxobj == gp.max_(p_batt_ch[s,t] * fixed_cost
                             for t in range(T) for s in range(S)))

obj = gp.quicksum(p[s,t] * Cost_elect[t] for t in range(T) for s in range(S)) + maxobj)

Gurobi 文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM