Dependent Variable operations?

3 次查看(过去 30 天)
Azime Beyza Ari
Azime Beyza Ari 2022-4-3
编辑: Torsten 2022-4-4
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 个评论
Azime Beyza Ari
Azime Beyza Ari 2022-4-3
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 2022-4-3
编辑:Torsten 2022-4-4
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)

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Genetic Algorithm 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by