Can I formulate 'value shifting' constraint with MILP?
3 views (last 30 days)
Show older comments
I am trying to figure out if it is possible for this 'value shifting' constraint to be implemented in MILP.
In summary there is a vector used for other part of the model, and I am thinking of adding a bit of flexibility to the vector.
The idea is to give each vector value the freedom to shift to the right, up to a maximum of a positions, after the optimal shifting, the new vector will then be used in other parts of the optimization model for better minimization.
E.g.
x_old = [1 2 3 4 5] % x(1) goes to x(2), x(3) goes to x(5)
x_new = [0 3 0 4 8] % [0 x(1)+x(2) 0 x(4) x(3)+x(5)]
Boundary case of x(4) and x(5) will loop back to the start, allowing the re-allocation to the start of the vector
The only thing I came up so far is to have an Integer positional vector p with lower bound of 0 and upper bound a, then loop through the original vector and create x_new, but that would involve custom non-linear constraints like
x_new(ii+p(ii)) = x_new(ii+p(ii)) + x_old(ii)
Thanks!
0 Comments
Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!