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
but it stays actually inactive because the line
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?