如何解决Pyomo Constraint:使用决策变量进行比较的条件约束
def Departure_Time(model,I):
if I==0:
return (model.Dept_Time_P[I] == Tar_Dept_Date)
elif value(model.A[I] - floor(model.A[I]) + model.Cargo1[I]) < value(model.Work_end_time1[I]):
return (model.Dept_Time_P[I] == formula1)
elif value(model.Work_start_time1[I]) > value(model.A[I] - floor(model.A[I])):
return (model.Dept_Time_P[I] == formula2)
elif value(model.A[I] - floor(model.A[I])) > value(model.Work_end_time1[I]):
return (model.Dept_Time_P[I] == formula3)
elif value(model.A[I] - floor(model.A[I])) < value(model.Work_end_time1[I]):
return (model.Dept_Time_P[I] == formula4)
model.Dept_Time_P = Var(model.I,within=NonNegativeReals,initialize=0)
model.c3 = Constraint(model.I,rule = Departure_Time)
model.A
是一个决策变量。因此,当我运行此约束时,它不会抛出任何错误,而是只为所有 I 获取第一个 elif 约束,并为除 model.Dept_Time_P[I] == formula1
I = 0
有没有办法使用比较决策变量来编写约束。
PS:model.Cargo1
、model.Work_end_time1
和 model.Work_start_time1 是参数
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。