The MOSEK Python optimizer API manual Version 7.0 (Revision 141)

Optimizer API for Python - Documentation - Mosek Optimizer API for Python - Documentation - Mosek

25.11.2015 Views

160 CHAPTER 12. THE OPTIMIZERS FOR MIXED-INTEGER PROBLEMS Tolerance δ 1 δ 2 δ 3 δ 4 δ 5 δ 6 Parameter name dparam.mio tol abs relax int dparam.mio tol rel relax int dparam.mio tol abs gap dparam.mio tol rel gap dparam.mio near tol abs gap dparam.mio near tol rel gap Table 12.2: Integer optimizer tolerances. Parameter name Delayed Explanation iparam.mio max num branches Yes Maximum number of branches allowed. iparam.mio max num relaxs Yes Maximum number of realizations allowed. iparam.mio max num solutions Yes Maximum number of feasible integer solutions allowed. Table 12.3: Parameters affecting the termination of the integer optimizer. is satisfied. If it is satisfied, the optimizer will report that the candidate solution is near optimal and then terminate. Please note that since this criteria depends on timing, the optimizer will not be run to run deterministic. 12.5.2 Important parameters All δ tolerances can be adjusted using suitable parameters — see Table 12.2. In Table 12.3 some other parameters affecting the integer optimizer termination criterion are shown. Please note that if the effect of a parameter is delayed, the associated termination criterion is applied only after some time, specified by the dparam.mio disable term time parameter. 12.6 How to speed up the solution process As mentioned previously, in many cases it is not possible to find an optimal solution to an integer optimization problem in a reasonable amount of time. Some suggestions to reduce the solution time are: • Relax the termination criterion: In case the run time is not acceptable, the first thing to do is to relax the termination criterion — see Section 12.5 for details. • Specify a good initial solution: In many cases a good feasible solution is either known or easily computed using problem specific knowledge. If a good feasible solution is known, it is usually worthwhile to use this as a starting point for the integer optimizer. • Improve the formulation: A mixed-integer optimization problem may be impossible to solve in one form and quite easy in another form. However, it is beyond the scope of this manual

12.7. UNDERSTANDING SOLUTION QUALITY 161 to discuss good formulations for mixed-integer problems. For discussions on this topic see for example [16]. 12.7 Understanding solution quality To determine the quality of the solution one should check the following: • The solution status key returned by MOSEK. • The optimality gap: A measure for how much the located solution can deviate from the optimal solution to the problem. • Feasibility. How much the solution violates the constraints of the problem. The optimality gap is a measure for how close the solution is to the optimal solution. The optimality gap is given by ɛ = |(objective value of feasible solution) − (objective bound)|. The objective value of the solution is guarantied to be within ɛ of the optimal solution. The optimality gap can be retrieved through the solution item dinfitem.mio obj abs gap. Often it is more meaningful to look at the optimality gap normalized with the magnitude of the solution. The relative optimality gap is available in dinfitem.mio obj rel gap.

160 CHAPTER 12. THE OPTIMIZERS FOR MIXED-INTEGER PROBLEMS<br />

Tolerance<br />

δ 1<br />

δ 2<br />

δ 3<br />

δ 4<br />

δ 5<br />

δ 6<br />

Parameter name<br />

dparam.mio tol abs relax int<br />

dparam.mio tol rel relax int<br />

dparam.mio tol abs gap<br />

dparam.mio tol rel gap<br />

dparam.mio near tol abs gap<br />

dparam.mio near tol rel gap<br />

Table 12.2: Integer <strong>optimizer</strong> tolerances.<br />

Parameter name Delayed Explanation<br />

iparam.mio max num branches Yes Maximum number of branches allowed.<br />

iparam.mio max num relaxs Yes Maximum number of realizations allowed.<br />

iparam.mio max num solutions Yes Maximum number of feasible integer solutions allowed.<br />

Table 12.3: Parameters affecting the termination of the integer <strong>optimizer</strong>.<br />

is satisfied. If it is satisfied, the <strong>optimizer</strong> will report that the candidate solution is near optimal and<br />

then terminate. Please note that since this criteria depends on timing, the <strong>optimizer</strong> will not be run<br />

to run deterministic.<br />

12.5.2 Important parameters<br />

All δ tolerances can be adjusted using suitable parameters — see Table 12.2. In Table 12.3 some other<br />

parameters affecting the integer <strong>optimizer</strong> termination criterion are shown. Please note that if the<br />

effect of a parameter is delayed, the associated termination criterion is applied only after some time,<br />

specified by the dparam.mio disable term time parameter.<br />

12.6 How to speed up the solution process<br />

As mentioned previously, in many cases it is not possible to find an optimal solution to an integer<br />

optimization problem in a reasonable amount of time. Some suggestions to reduce the solution time<br />

are:<br />

• Relax the termination criterion: In case the run time is not acceptable, the first thing to do is<br />

to relax the termination criterion — see Section 12.5 for details.<br />

• Specify a good initial solution: In many cases a good feasible solution is either known or easily<br />

computed using problem specific knowledge. If a good feasible solution is known, it is usually<br />

worthwhile to use this as a starting point for the integer <strong>optimizer</strong>.<br />

• Improve the formulation: A mixed-integer optimization problem may be impossible to solve<br />

in one form and quite easy in another form. However, it is beyond the scope of this <strong>manual</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!