model.d, model.t, within=Binary, doc='Followed by Activity') ## Define constraints ## def Availability(model, i, j, d, t): tmax = 95 if t + model.Cij[i, j] + model.Ti[i] >= 95 else t + model.Cij[ i, j] + model.Ti[i] return model.Sijdt[i, j, d, t] <= model.Adt[d, tmax] model.Availability = Constraint(model.i, model.j, model.d, model.t, rule=Availability, doc='Availability') def GroupAvailability(model, i, j, d, t): return model.Sijdt[i, j, d, t] <= model.Adt[d, t] model.GroupAvailability = Constraint(model.i, model.j, model.d, model.t, rule=GroupAvailability, doc='Group Availability')