I want to program a sum over an indexed variable, whereby the index has a barrier just for this constraint.
sum(X[t] for t=1:T)
is clear to me, but how can I integrate the barrier of t<= R_j as shown in the screenshot.
Many thanks in advance!
I want to program a sum over an indexed variable, whereby the index has a barrier just for this constraint.
sum(X[t] for t=1:T)
is clear to me, but how can I integrate the barrier of t<= R_j as shown in the screenshot.
Many thanks in advance!
I think you are asking how to add a conditional (a filter) in a “comprehension”. Does this work for you: sum(x[i] for i in 1:10 if i<5)
Generally EXPRESSION for INDEX in RANGE if PREDICATE
.
That makes totally sense! Thank you.
While working with indices I always get back this:
sum(x[i] for i in 1:10 if i<5)
MethodError: no method matching getindex(::VariableRef, ::Int64)
Do you have any idea what might be missing?
JuMP is already added as a Pkg
x
needs to be an indexable collection datastructure to permit []
syntax. getindex
is the function being called when you use []
. Presumably, x
is not something that permits indexing. I do not know much about JuMP, so I do not know how they set up collections of variables. Any chance it is just a capitalization issue? Your original code used capital X
, while the example I gave uses a lower x
which might be some other unrelated variable you have defined.
Also, I would suggest experimenting with these expressions in the REPL. Just typing x
to see what prints out and whether it is the object you expect it to be.
It works, thanks!