我如何将以下方程式表示为Gurobi中的约束

时间:2019-09-02 09:07:23

标签: optimization gurobi

我正在尝试根据python中的以下公式在Gurobi中创建一个约束,但是不知道怎么做?

总和(工作日(J至J3)+休息日(J4)+工作日(J5))<= 5

  • J是任何月份中的特定日期

-

-

-

1 个答案:

答案 0 :(得分:0)

假设我们从数据开始;

# Data
workdays = [0, 1, 2, 3, 5]  # (or whatever work days data you have)
days_off = [4]  # (or whatever day off data you have)
days = workdays + days_off

然后首先您需要创建一个模型

from gurobipy import Model

model = Model()

然后是其中的每一天的变量,这是假设每一天都是一个具有值的变量,这意味着您可以选择执行操作或执行多少操作。

# Variables
day_vars = {
    day: model.addVar()
    for day in days
}

例如,您想使用model.addConstr添加约束,并使用quicksum对变量求和

from gurobipy import quicksum

# Constraints
model.addConstr(
    (
        quicksum(
            day_vars[workday]
            for workday in workdays
        ) + quicksum(
            day_vars[day_off]
            for day_off in days_off
        )
    ) <= 5
)

希望有帮助!