"MSK_IPAR_MIO_CONSTRUCT_SOL" Mosek option in CVX

Hi to all,

I have the following problem: there’s an option the Mosek solver provides, “MSK_IPAR_MIO_CONSTRUCT_SOL”, that perfectly meets my needs, but unfortunately I don’t know hot to make it active.
My scope is to solve a mixed integer optimization using the Mosek solver through CVX, like in this example:

  cvx_solver mosek 
  cvx_begin 
  cvx_precision low
  cvx_solver_settings('MSK_DPAR_MIO_MAX_TIME',43200)
  cvx_solver_settings('MSK_IPAR_MIO_CONSTRUCT_SOL','MSK_ON')
  
  variable x_log(Nx*Ny)
  variable wb(Nx*Ny) binary  

    wb==wb_initial;  
    minimize( sum(wb) ) 

    subject to
        
    x_log>=epsilon;
    x_log<=wb+epsilon;
    sum(x_log)==1; 
    max(NDM*wb)<=1;    
    abs(MatPattT(vis,:)*x_log)<=10^(SLL_th(2,i1)/20); 
  cvx_end  

I know a priori that an initial, feasible vector for “wb” is “wb_initial”, that is of course perfectly known. The parameter I’m discussing about is binary (in the sense that it can be turned on or off; by default it’s off), and should let the (Mosek in this case) solver try to compute a feasible solution from the specified values of the integer variables (from “wb_initial” in this case) among the remaining variables left by the “initialization”. Well, the parameter seems to be switched on with

cvx_solver_settings(‘MSK_IPAR_MIO_CONSTRUCT_SOL’,‘MSK_ON’),

but it stays actually inactive because the line

wb==wb_initial;

is interpreted as an assignment, not as an initial condition for the solver to start from, and the result is that the solution of the optimization process is very “wb_initial”! Yet it just represents a point to start from that is a solution of the problem but that is not the optimal one. I even tried to insert it after the “subject to”, as well as before “cvx_solver_settings(‘MSK_IPAR_MIO_CONSTRUCT_SOL’,‘MSK_ON’)”, but nothing changed.
According to the Mosek guide for Matlab, when using Mosek “standalone” the initial vector is given as a part of the problem to solve, and turning “MSK_IPAR_MIO_CONSTRUCT_SOL” on becomes an active parameter that lets such part of the problem be interpreted as an initial point to start the optimization from; well, my scope is to do the same thing with Mosek under CVX.

Can anyone help me?

Thanks!!

I think you’re out of luck using CVX as your interface to MOSEK if you want to provide starting values. Initial guess for convex program