Dependent Variable operations?

1 view (last 30 days)
Azime Beyza Ari
Azime Beyza Ari on 3 Apr 2022
Edited: Torsten on 4 Apr 2022
Hello Everyone,
I am working on an optimization problem using genetic algorithm solver. I have 2 decision variables (x with 36x36 dimensions and y with 36x1 dimensions ). y is dependent to x. Like;
column sum of x is equal to row of y.
I introduced x and y like;
x = optimvar('x', [36,36], 'Type', 'integer', 'LowerBound',0,'UpperBound',1);
y = optimvar('y', [36,1]);
But i have a hard time doing the operation i want to do. How can i implement this (column sum of x is equal to row of y. ) into my code?
Any suggestions and opinions are welcome.
Thank you in advance!
Best,
Beyza.
  7 Comments
Azime Beyza Ari
Azime Beyza Ari on 3 Apr 2022
So this is what i am trying to achive;
I have 2 decision variables (x with dimensions 36*36 and y with 36*1). The objective function only has x (binary) in it. y should be equal to the row summation of x values. If i can make this then i will use y's in my constraints. like;
if summation of first row of x is equal to 2
then the following inequality would be correct.
y(1,1) <= 3
so my constraint will be met.
PS. The x matrix rows should not be higher than some values becasue there are demands for each row (each row has different demand). If we place more than demand then there is unnecessary cost. So, i want to make sure we do not exceed the demand.
Torsten
Torsten on 3 Apr 2022
Edited: Torsten on 4 Apr 2022
Aeq = zeros(36,36*36+36);
for i = 1:36
Aeq(i,(i-1)*36+1:i*36) = ones(1,36);
Aeq(i,36*36+i) = -1;
end
This gives the contribution of the constraint sum_i (xij) - y(j) = 0 for j=1,...,36 to Aeq if the vector of unknowns Z is ordered as
Z = [x11,x21,x31,...,x(36,1),x12,x22,x32,...,x(36,2),...,x(1,36),x(2,36),...,x(36,36),y1,y2,...,y36]
The corresponding part of the vector beq is
beq(1:36,1) = zeros(36,1)

Sign in to comment.

Answers (0)

Products


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!