• Keine Ergebnisse gefunden

Test Environment and Implementation Details

Numerical tests are performed for the new algorithms introduced in the previous chap-ters. The different algorithms are accessible by setting the corresponding option of MISQP. The performance of MISQP is compared to the well-established FORTRAN code NLPQLP, see Schittkowski [104]. This section summarizes implementation details con-cerning both codes.

If not mentioned explicitly, all test runs are performed with default values for options as defined in the corresponding documentation, see Exler et al. [35] or Appendix A, and Schittkowski [104]. The FORTRAN codes are compiled by the Intel Visual Fortran Compiler, Version 9.1, under Windows XP64 and executed on an Intel Core(TM)2 6600 64 bit processor with 2.40 GHz and 4 GB RAM.

6.1.1 The FORTRAN Package MISQP

Three different implementations are tested on continuous nonlinear optimization prob-lems of form (1.2). MISQP offers the choice between versions that apply second order correction steps and versions that avoid these additional computations. Thus, the per-formance of both strategies can be compared easily. The different versions of MISQP are denoted by the highlighted names.

MISQP/lag Implementation of Algorithm 4.1. Second order correction steps are avoided by applying an augmented Lagrangian merit function. MISQP is called withIOPT(7)=0.

MISQP/soc Implementation of an SQP trust region method proposed by Yuan [130], cf. Algorithm 3.3. Additional second order cor-rection steps are calculated.MISQPis called withIOPT(7)=1.

131

MISQP/com Implementation of a modified version of Algorithm 3.3. Com-putation of SOC steps is avoided by locally switching to the augmented Lagrangian merit function. Combines versions MISQP/lag and MISQP/soc. The applied strategy is similar to the one used by the mixed-integer Algorithm 5.3. MISQP is called with IOPT(7)=2.

The codeMISQP offers two versions that address the mixed-integer nonlinear problem (1.1). The corresponding algorithms are presented in Chapter 5. Both versions are evaluated and compared. The identifiers are extended by ’/minlp’ to highlight the mixed-integer characteristic of the problems under consideration.

MISQP/soc/minlp Mixed-integer SQP-based trust region method, SOC steps are computed for continuous variables. Implementation of Algorithm 5.2. MISQP is called withIOPT(7)=1.

MISQP/com/minlp Mixed-integer SQP-based trust region method, fast local convergence with respect to continuous variables is obtained without calculating SOC steps. Implementation of Algo-rithm 5.3. MISQP is called with IOPT(7)=2.

The remainder of this section presents some details concerning the implementation of MISQP. Algorithm 4.1 requires that some parameters are set to specific values when coding the algorithm. In MISQP these parameters are set to the following values

τ1 = 0.5, τ2 = 2, ρ0 = 0.1, ρ1 = 0.75,min = 105 ,max = 1010 . (6.1) The values were obtained by extensive numerical tests and seem to be the most efficient choice.

The Hessian matrix plays a crucial role in SQP methods. To avoid the computation of second derivatives, the matrixBkused in the subproblems is set to a positive definite approximation of the Hessian of the Lagrangian function. To guarantee a superlinear convergence rate, Bk is updated by the BFGS formula

Bk+1 :=Bk+pkpTk

dTkpk BkdkdTkBk

dTkBkdk , (6.2)

with

pk:=xL(xk+1, uk)− ∇xL(xk, uk) , (6.3)

dk:=xk+1−xk . (6.4)

The initial matrixB0 is set to the unit matrix and the formula is stabilized by requiring pTkdk 0.2dTkBkdk. The BFGS update is also applied when mixed-integer problems are optimized. In this case, the formulas (6.2)-(6.4) are adapted accordingly.

As soon as the conditions outlined in the corresponding algorithms are satisfied, MISQP terminates. In addition, the following stopping criterion is implemented for the continuous versions of MISQP, see also Schittkowski [103]. MISQP terminates if

∥g(xk)< ϵtol (6.5)

and

|∇f(xk)Tdk|+µkk+

m j=1

u(k)j g(xk)< ϵtol (6.6)

hold, where xk is the current iterate and (dk, uk) denotes the solution of the corre-sponding subproblem at iteration k. µk denotes the approximation of the multipliers corresponding to the trust region constraint, see definition (4.35). The term µkk is added to prevent early termination in case the trust region constraint is active. The desired accuracy is denoted byϵtol>0. The termination criterion defined by (6.5) and (6.6) is adapted for the mixed-integer case appropriately.

In Chapter 5 some heuristics, e.g., the modification of the Hessian approximation, are discussed. They can be applied to Algorithm 5.2 and Algorithm 5.3. All proposed heuristics are implemented in MISQP. They can be switched on and off by changing the corresponding entries in the option arrays of MISQP.

The usage of MISQP and the parameters are described in Appendix A. Note thatϵtol corresponds to the parameterACCof MISQP. An extended documentation can be found in Exler et al. [35]. The mixed-integer quadratic programming problems are solved by the codeMIQLof Lehmann et al. [65], an implementation of a branch-and-cut method.

The underlying continuous quadratic programs are solved by an extended version of the code QL. The code QL traces back to Powell [87], see also Schittkowski [105], and is an implementation of the primal-dual method of Goldfarb and Idnani [50].

6.1.2 A Reference Code – NLPQLP

In case the performance is evaluated on problems without additional integer variables, then MISQP is compared to the FORTRAN code NLPQLP, see Schittkowski [104]. The FORTRANsubroutineNLPQLPsolves smooth nonlinear programming problems and is an extension of the code NLPQL, see Schittkowski [101]. The new algorithms introduced here and NLPQLP differ in the globalization strategy, since NLPQLP applies line search techniques instead of a trust region stabilization. NLPQLP is tuned to run under dis-tributed systems and to apply non-monotone line search in error situations. The input parameter L of NLPQLP is introduced to specify the number of parallel machines. The tests are executed with L set to 1, i.e., NLPQLP behaves almost identical to NLPQL.

The quadratic subproblems are solved by the subroutine QL, see Schittkowski [105].

NLPQLP also applies the BFGS update formula (6.2)-(6.4) for generating second order information. Moreover, the termination criterion stated before, see (6.5) and (6.6), is also implemented in NLPQLP. NLPQLP is executed with parameters set to the values shown in Table 6.1. If not stated differently,NLPQLP is tested in standard mode.

Option Value Description

L 1 number of parallel systems,

STPMIN 1010 minimum steplength in case of L>1(not used),

MAXFUN 30 upper bound for the number of function calls during the line search,

MAXNM 30 stack size for storing merit function values at previous itera-tions for non-monotone line search,

RHOB 104 parameter for performing a restart in case of IFAIL=2by set-ting the BFGS-update matrix toRHOB·I, whereIdenotes the identity matrix,

MODE 0 standard execution.

MODE >0 Safeguard strategy that applies non-monotone line search.

Table 6.1: Parameter settings for NLPQLP