Mosek Solver Option

Solving a linear problem using Mosek, I set MSK_DPAR_INTPNT_TOL_PFEAS, which is Primal feasibility tolerance used by the interior-point optimizer for linear problems, to 1.0 by
set_optimizer_attribute(model, "MSK_DPAR_INTPNT_TOL_PFEAS", 1.0) but it seems it didn’t accept it.

 Problem
  Name                   :                 
  Objective sense        : maximize        
  Type                   : LO (linear optimization problem)

ITE PFEAS    DFEAS    GFEAS    PRSTATUS   POBJ              DOBJ              MU       TIME  
0   6.4e+02  3.8e+03  5.3e+02  0.00e+00   -1.246365857e+03  -7.221823975e+02  1.2e+00  61.33 
.
.
40  1.1e+00  6.8e+00  9.3e-01  1.00e+00   1.141114142e+01   1.144900001e+01   2.2e-03  241.58
41  1.0e+00  6.1e+00  8.4e-01  9.99e-01   1.141575550e+01   1.144976471e+01   2.0e-03  245.97
42  9.1e-01  5.5e+00  7.5e-01  9.99e-01   1.141846371e+01   1.144891199e+01   1.8e-03  250.34
43  7.5e-01  4.5e+00  6.2e-01  9.98e-01   1.142328657e+01   1.144839178e+01   1.4e-03  254.84
44  6.9e-01  4.2e+00  5.7e-01  9.96e-01   1.142464050e+01   1.144784107e+01   1.3e-03  259.32
45  6.4e-01  3.9e+00  5.3e-01  9.97e-01   1.142627713e+01   1.144775052e+01   1.2e-03  263.70

Did set_optimizer_attribute(model, "MSK_DPAR_INTPNT_TOL_PFEAS", 1.0) throw a warning or any error? If not, it seems like MOSEK accepted the setting.

The problem is likely that even though the primal feasibility tolerance is satisfied, the solver might not terminate if other tolerances are not satisfied (e.g., dual feasibility).

I don’t see any warning. Generally, the termination tolerances are OR conditions, not AND conditions. for example, the time limit or MIP Gap.

This is typically not the case with feasibility tolerances.

1 Like