I want to solve minimize max problem using cvx

Uncategorized
Feb 22, 2022
M


$C_max $is the max processing time of all machines,i want to make every machine as average as possiable

M

Have you read the CVX Users’ Guide? That is a fairly straightforward Binary Linear Programming problem to enter in CVX.

M
Replying to #2

cvx_begin
expression T(5,1);
variable x(5,10) binary;
expression x_tmp(10,1);

minimize(max(T))
subject to
for i=1:5
for j=1:10
T(i)=T(i)+x(i,j)*charging_time(j);
end
end
T_max=max(T);
T>=0;
for i=1:5

   end
   for i=1:10
       x_tmp(i)=0;
       for j=1:5
           x_tmp(i)=x_tmp(i)+x(j,i);
       end
   end
   x_tmp==1;

cvx_end

this is my code,but result is terriable

M

Expressions have the value that hey have when they are used in the code. Expressions have value zero by default before anything is assigned to them. So your objective is always zero, and CVX/;solver can choose any feasible values they “want” for the variables. So you should move the minimize statement to after T as been assigned.

Much of your code can be vectorized. For instance, sum(x,2) == 1 can be used instead of the double for loop with x_tmp, which is unnecessary. From the image, it looks like you can have code such as x.*P <= Cmax, with P having the same dimensions as x, and not use any for loops.

M
Replying to #4

Thank you !!! I have soloved it .WOW