I’m trying to find a way to define a varible x_ijk
where i in I
is an n-elemnts vector of vectors, j in J
and k in K
are both vectors. In my case, always the length of K
is equal to the number of vectors in I
.
The question is related on how we can index over each vectors in I
separatly with an orederd and separate combination with K
.
For example:
I = [[2,6,5], [1,2,4,5,9]]
J = [1,2,3]
K = [4,5] # for a better explanation suppose K = [a,b]
How to have the variables x_ijk
indexed with a pair entries in every vector I
and associated ordered elements in K
? I mean, the combination of each elemnts of the first vector of I
and first elements in K
. Then index over eache elements of the second vector in I
and the second elements in K
.
The desired output is like this:
# for a better explanation suppose K = [a,b]
# for each vector in I and associated elemnts in K having a variable x_ijk where each elemnts of the nth vector in `I` is paired and indexed with nth element in `K`
# for first pair (i.e. I=[2,6,5] ,K = a)
x[2,1,a], x[2,2,a], x[2,3,a], x[6,1,a], .... x[5,3,a] # in other words we cannot have x[2,1,b] or any other combination with `b`
# for second pair ( i.e. I=[1,2,4,5,9] ,K = b)
x[1,1,b], x[1,2,b],..., x[4,1,b], .... x[9,3,b]
Is this possible? I’ve tried many thing but neither were succesful? Like the following:
for idx in 1:length(K)
@variable(model, x[i in I[idx], j in J, k in K] >= 0, Bin)
end