How to represent this constraint in a different way?

(Dipak Narayanan) #1

I have a constraint in the form below
Here, Rmat_1,Rmat_2,\cdots,Rmat_{17} are known matrices (can be of different sizes)

Zmat_1,Zmat_2,\cdots,Zmat_{17} are matrices of continuous optimization variables. Rmat_n and Zmat_n are of same sizes.

Lmat of size 17\times 50 is a matrix of binary optimization variables.

sum((repmat([sum(sum(Zmat_1.*Rmat_1)) sum(sum(Zmat_2.*Rmat_2)) sum(sum(Zmat_3.*Rmat_3)) sum(sum(Zmat_4.*Rmat_4)) sum(sum(Zmat_5.*Rmat_5)) sum(sum(Zmat_6.*Rmat_6)) sum(sum(Zmat_7.*Rmat_7)) sum(sum(Zmat_8.*Rmat_8)) sum(sum(Zmat_9.*Rmat_9)) sum(sum(Zmat_10.*Rmat_10)) ...
              sum(sum(Zmat_11.*Rmat_11)) sum(sum(Zmat_12.*Rmat_12)) sum(sum(Zmat_13.*Rmat_13)) sum(sum(Zmat_14.*Rmat_14)) sum(sum(Zmat_15.*Rmat_15)) sum(sum(Zmat_16.*Rmat_16)) sum(sum(Zmat_17.*Rmat_17))],50,1).').*Lmat,2)>=t_opt.*Demand;

Note it is a nonlinear constraint as it has multiplication of continuous and binary variables.

Of course, the nonlinear terms can be linearized.

Is there a different way of representation from this constraint?

(Mark L. Stone) #2

I think you know how to linearize the product of Zmat and Lmat, so try that.