Julia Jump整数规划优化模型:矩阵乘以向量的问题



我写了一个优化模型,它有3个二进制决策变量,它们都是矩阵形式(X[p,s],Y[a,s]和Z[a,p](。a=关联,p=过程,s=站点。

我在为Z变量编码约束时遇到了一个问题。Z是一个决策变量=1,如果关联分配了流程;=否则为0。

我想写一个约束,确保没有一个关联被分配超过他们所能处理的处理时间。我曾尝试过这样写:@约束(m,associate_takt[a在a中,p在p],sum(Z[a,p]*Pt[p]对于p在p中(<=takt_lim(

这应该是将Z行中的每个值乘以存储在向量Pt中的相应时间;takt_ lim";(处理时间限制(。我想对矩阵Z中的所有行(关联(执行此操作。

我尝试将约束更新为:@约束(m,associate_takt[a在a中,p]在p中(,sum(值.(Z[a,p](*Pt[p]对于p在p(<=takt_lim(但是由于Z变量还没有被优化,这产生了一个误差:;OptimizeNotCalled((">

这不只是:吗

@constraint(
m, 
associate_takt[a in A],
sum(Z[a, p]*Pt[p] for p in P) <= takt_lim,
)

我不明白为什么您需要在约束的所有p in P上循环。

最新更新