14.8 The Solution File Format

MOSEK provides several solution files depending on the problem type and the optimizer used:

  • basis solution file (extension .bas) if the problem is optimized using the simplex optimizer or basis identification is performed,
  • interior solution file (extension .sol) if a problem is optimized using the interior-point optimizer and no basis identification is required,
  • integer solution file (extension .int) if the problem contains integer constrained variables.

All solution files have the format:

NAME                : <problem name>
PROBLEM STATUS      : <status of the problem>
SOLUTION STATUS     : <status of the solution>
OBJECTIVE NAME      : <name of the objective function>
PRIMAL OBJECTIVE    : <primal objective value corresponding to the solution>
DUAL OBJECTIVE      : <dual objective value corresponding to the solution>
CONSTRAINTS
INDEX  NAME     AT ACTIVITY    LOWER LIMIT   UPPER LIMIT   DUAL LOWER   DUAL UPPER
?      <name>   ?? <a value>   <a value>     <a value>     <a value>    <a value>
VARIABLES
INDEX  NAME     AT ACTIVITY    LOWER LIMIT   UPPER LIMIT   DUAL LOWER   DUAL UPPER    CONIC DUAL
?      <name>   ?? <a value>   <a value>     <a value>     <a value>    <a value>     <a value>

In the example the fields ? and <> will be filled with problem and solution specific information. As can be observed a solution report consists of three sections, i.e.

  • HEADER

    In this section, first the name of the problem is listed and afterwards the problem and solution status are shown. Next the primal and dual objective values are displayed.

  • CONSTRAINTS

    For each constraint \(i\) of the form

    (1)\[l_i^c \leq \sum_{j=1}^n a_{ij} x_j \leq u_i^c,\]

    the following information is listed:

    • INDEX: A sequential index assigned to the constraint by MOSEK

    • NAME: The name of the constraint assigned by the user.

    • AT: The status of the constraint. In Table 14.4 the possible values of the status keys and their interpretation are shown.

      Table 14.4 Status keys.
      Status key Interpretation
      UN Unknown status
      BS Is basic
      SB Is superbasic
      LL Is at the lower limit (bound)
      UL Is at the upper limit (bound)
      EQ Lower limit is identical to upper limit
      ** Is infeasible i.e. the lower limit is greater than the upper limit.
    • ACTIVITY: the quantity \(\sum_{j=1}^n a_{ij} x_j^*\) , where \(x^*\) is the value of the primal solution.

    • LOWER LIMIT: the quantity \(l_i^c\) (see (1).)

    • UPPER LIMIT: the quantity \(u_i^c\) (see (1).)

    • DUAL LOWER: the dual multiplier corresponding to the lower limit on the constraint.

    • DUAL UPPER: the dual multiplier corresponding to the upper limit on the constraint.

  • VARIABLES

    The last section of the solution report lists information about the variables. This information has a similar interpretation as for the constraints. However, the column with the header CONIC DUAL is included for problems having one or more conic constraints. This column shows the dual variables corresponding to the conic constraints.

Example: lo1.sol

In Listing 14.7 we show the solution file for the lo1.opf problem.

Listing 14.7 An example of .sol file. Click here to download.
NAME                : 
PROBLEM STATUS      : PRIMAL_AND_DUAL_FEASIBLE
SOLUTION STATUS     : OPTIMAL
OBJECTIVE NAME      : obj
PRIMAL OBJECTIVE    : 8.33333333e+01    
DUAL OBJECTIVE      : 8.33333332e+01    

CONSTRAINTS
INDEX      NAME           AT ACTIVITY                 LOWER LIMIT        UPPER LIMIT        DUAL LOWER               DUAL UPPER              
0          c1             EQ 3.00000000000000e+01     3.00000000e+01     3.00000000e+01     -0.00000000000000e+00    -2.49999999741654e+00   
1          c2             SB 5.33333333049188e+01     1.50000000e+01     NONE               2.09157603759397e-10     -0.00000000000000e+00   
2          c3             UL 2.49999999842049e+01     NONE               2.50000000e+01     -0.00000000000000e+00    -3.33333332895110e-01   

VARIABLES
INDEX      NAME           AT ACTIVITY                 LOWER LIMIT        UPPER LIMIT        DUAL LOWER               DUAL UPPER              
0          x1             LL 1.67020427073508e-09     0.00000000e+00     NONE               -4.49999999528055e+00    -0.00000000000000e+00   
1          x2             LL 2.93510446280504e-09     0.00000000e+00     1.00000000e+01     -2.16666666494916e+00    6.20863861687316e-10    
2          x3             SB 1.49999999899425e+01     0.00000000e+00     NONE               -8.79123177454657e-10    -0.00000000000000e+00   
3          x4             SB 8.33333332273116e+00     0.00000000e+00     NONE               -1.69795978899185e-09    -0.00000000000000e+00