0% found this document useful (0 votes)
165 views30 pages

BPMPD Manual

This document summarizes the BPMPD software package, which implements the infeasible primal-dual interior point method to solve linear and quadratic programming problems. BPMPD generates a sequence of iterates that satisfy the perturbed KKT conditions and converge to an optimal solution. It uses Newton's method to solve the perturbed KKT system at each iteration. The user must prepare input data in MPS format and can specify algorithmic options. BPMPD is written in Fortran 77 and can be compiled and used as a callable library.

Uploaded by

Marcelo Dávalos
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
165 views30 pages

BPMPD Manual

This document summarizes the BPMPD software package, which implements the infeasible primal-dual interior point method to solve linear and quadratic programming problems. BPMPD generates a sequence of iterates that satisfy the perturbed KKT conditions and converge to an optimal solution. It uses Newton's method to solve the perturbed KKT system at each iteration. The user must prepare input data in MPS format and can specify algorithmic options. BPMPD is written in Fortran 77 and can be compiled and used as a callable library.

Uploaded by

Marcelo Dávalos
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 30

BPMPD user's manual Version 2.

20
Csaba Meszaros Imperial College, Deparment of Computing
The purpose of this document is to describe a software package, called BPMPD, which implements the infeasible primal{dual interior point method for linear and quadratic programming problems. This manual describes how to prepare data to solve with the package, how to use BPMPD as a callable solver library and which algorithmic options can be speci ed by the user.

Abstract

1 Problem formulation
BPMPD is a software package to solve linear (LP) and convex quadratic (QP) problems. For simplicity we will introduce here the quadratic programming problem which includes the linear programming as special case. Without loss of generality, the convex QP problem is usually assumed to be in the following form:
1 xT Qx min cT x + 2 subject to Ax = b (1) x 0 where A 2 Rm n of full row rank, Q 2 Rn n symmetric positive semide nite and c x 2 Rn b 2 Rm . It is to be noted that an 1/2 explicit term is given in the quadratic matrix. The dual associated with this problem can be written as 1 xT Qx max bT y ; 2 subject to AT y + z ; Qx = c (2) z 0
The author was supported by EPSRC grant No. GR/J52655

where z 2 Rn and y 2 Rm . The constrains of the above problems de ne convex polyhedrons which are nonempty if a feasible primal{dual solution exists. The Karush{Kuhn{Tucker optimality conditions for (1) and (2) are: Ax = b (3) T A y + z ; Qx = c (4) Xz = 0 (5) (x z) 0 (6) where X = diag(x1 ::: xn). BPMPD implements the infeasible primal{dual interior point algorithm 10, 1] that is BPMPD generates a sequence of iterates (xk yk zk ) k = 0 1 2 ::: which satis es a strict positivity condition (xk zk ) > 0, but feasibility (3,4) and optimality (5) reached as k ;! 1. The primal{dual interior point algorithm is based on the application of the Newton method to solve the perturbed KKT system. The perturbation is introduced to retain positivity in (x z) by replacing (5) with Xz = e where is the nonnegative centering parameter and e is the n vector of ones. To derive the primal-dual algorithm one should: replace nonnegativity constraints on the variables with logarithmic barrier penalty terms move equality constraints to the objective with the Lagrange transformation to obtain an unconstrained optimization problem and write rst order optimality conditions for it and apply Newton's method to solve these rst order optimality conditions (i.e. to solve a system of nonlinear equations). Replacing nonnegativity constraints with the logarithmic penalty terms gives the following logarithmic barrier problem:
n 1 xT Qx ; P minimize cT x + 2 ln xj j =1 subject to Ax = b:

(7)

The Lagrangian for (7) is


n 1 xT Qx ; X L(x s y w ) = cT x + 2 ln xj ; yT (Ax ; b) j =1

and the rst order optimality conditions for (7) are:

rxL = c ; X ;1 e ; AT y + Qx = 0 ry L = b ; Ax = 0:
By introducing Z = X ;1 we can write the rst order optimality conditions of (7) as

AT y + z ; Qx

Ax = b = c XZe = e:

(8)

Let us observe that the rst two of the above equations are linear and force primal and dual feasibility of the solution. The last equation is nonlinear and depends on the barrier parameter . It becomes the complementarity condition for = 0, which together with the feasibility constraints provides optimality of the solutions. It can be seen that (8) is identical to the Karush-Kuhn-Tucker (KKT) system for the LP problem, in which the complementarity conditions are perturbed by . Hence, (8) is called the perturbed KKT conditions. A nonnegative solution of (8) is called an analytic center. It clearly depends on the value of the barrier parameter . The set of such solutions (x( )) and (y( ) z( )) de nes a trajectory of centers for the primal and dual problem, respectively and is called the central path. The quantity

g = xT z + sT w
measures the error in the complementarity and is called a complementarity gap. Note that for a feasible point, this value reduces to the usual duality gap. For a -center, for example, g = 2 eT e = 2 n (9) and it vanishes at an optimal solution. One iteration of the primal-dual algorithm makes one step of Newton's method applied to the rst order optimality conditions (8) with a given and then is 3

updated (usually decreased). The algorithm terminates when the infeasibility and the complementarity gap are reduced below predetermined tolerances. m Given an x z 2 Rn + y 2 R , Newton's direction is obtained by solving the following system of linear equations 2 32 3 2 3 A 0 0 x b 6 7 (10) 4 Q AT I 7 56 4 y7 5=6 4 5 c Z 0 X z e ; XZe where b = b ; Ax T and c = c ; A y ; z + Qx denote the violations of the primal and the dual constraints, respectively. We call the linear system (10) the Newton equations system. Note that the primal-dual method does not require feasibility of the solutions ( b and c might be nonzero) during the optimization process. Feasibility is attained during the process as optimality is approached. It is easy to verify that if a step of length one is made in the Newton's direction (10), then feasibility is reached immediately. This is seldom the case as a smaller stepsize usually has to be chosen (a damped Newton iteration is taken) to preserve positivity of x and z. If this is the case and a stepsize < 1 is applied, then infeasibilities b and c are reduced by a factor (1 ; ). Once the system (10) has been solved, the maximum stepsizes in primal space ( P ) and dual space ( D ) are computed such that the nonnegativity of variables is preserved: n1 x o P = max 1 ; xkk k=1:::n n1 z o: D = max 1 ; zkk k=1:::n Then the common steplengt is de ned as = min ( P D ). These stepsizes are slightly reduced with a factor 0 < 1 to prevent hitting the boundary. Finally a new iterate is computed as follows x x+ 0 x y y+ 0 y (11) z z + 0 z: 4

After making the step, the barrier parameter is decreased by a given factor and the process is repeated. Interior point algorithms terminate when the rst order optimality conditions (8) are satis ed with some predetermined tolerance. In the case of the primal{dual method, this translates to the following conditions imposed on the relative primal and dual feasibility and the relative duality gap jjAx ; bjj 10;p 1 + jjbjj

where p is the number of digits accurate in the solution. An 8{digits exact solution (p = 8) is typically required in the literature. In each iteration BPMPD uses Mehrotra's predictor corrector technique 5] to compute the search direction and the centering parameter . Furthermore, the multiple correction technique 3] is also applied.

jjAT y + z ; w ; cjj 10;p 1 + jjc + Qxjj 1 T T T jcT x + 1 2 x Qx ; (b y ; 2 x Qx)j 10;p 1 xT Qxj 1 + jbT y + 2

2 Installing BPMPD
BPMPD is entirely written in Fortran 77 and is believed to be portable. Only the timing routine has to be adjusted to the actual platform and compiler. In the distribution this timing routine is provided for a number of platforms and compilers and the relevant one can be easily activated. The C version of the timing routine is also included which is standard under UNIX. BPMPD can be compiled and linked with a Fortran 77 compiler system. Alternatively, the Fortran 77 source code can be translated to C by using the public domain f2c system. To install the executable version of BPMPD one parameter, realmxx has to be set in bpmain:f for memory allocation prior to compile the source le. The value of this parameter depends on the available memory of the platform and determines the memory allocation. BPMPD will allocate about 14 realmmx bytes of memory, that is for a computer platform with 64 megabyte operative memory realmmx can be set to about 4500000. 5

To compile the callable library form of BPMPD, the source les bpmain.f, minput.f, mpsinp.f, mpsout.f and convert.f have to be omitted. An interface, which simpli es the use of BPMPD as a subroutine can be created (we will describe such an interface in one of the forthcoming sections) and included to the source les. We would like to note that only one routine, mprnt (located in the le mprnt.f) contains write statements to external les.

3 Solution of a problem
The rst step of the solution process is to generate an input le which describes the optimization problem. BPMPD supports the industry{standard MPS format with some extensions. In the input le A b and c, furthermore the bounds on individual variables and rows are speci ed by the usual ROWS, COLUMNS, RHS, BOUNDS, RANGES records of the MPS format 11]. To specify the quadratic part of the problem, a new section "QUADOBJ" is introduced. It serves to specify the lower triangular part of the quadratic objective in that relative column order as it has been given in the COLUMNS section. Otherwise the data records in the QUADOBJ section are of the same structure than that of the COLUMNS section. As example for the problem formulation, let us consider the following quadratic programming problem: min f (x y) = 4 + 1:5x 2x ;x 0 x After implied rewriting: min f (x y) = 4 + 1:5x 2x ;x 0 x Thus the Q matrix is + y + 2y 20 y 0:
"

; 2y + 4x2 + 2xy + 5y2


+ y 2 + 2y 6 20 y 0:
1 2 2 (8x

; 2y +

2 6

+ 2xy + 2yx + 10y2)

8 2 2 10 6

for which the lower triangular part (to be given) is: " # 8 2 10 : Below we have shown the MPS le corresponding to the example. Note that the additive term in the objective function is given in the RHS section by opposite sign.
NAME ROWS N obj G r1 L r2 COLUMNS c1 c1 c2 c2 RHS rhs1 rhs1 BOUNDS UP bnd1 QUADOBJ c1 c1 c2 ENDATA QP example

r1 obj r1 obj obj r1 c1 c1 c2 c2

2.0 1.5 1.0 -2.0 -4.0 2.0 20.0 8.0 2.0 10.0

r2 r2

-1.0 2.0

r2

6.0

After the input le has been created the problem can be solved. The optimizer can be called by the bpmpd command. First, BPMPD will read its parameter le called bpmpd.par if presented. If the parameter le exists and the problem le name is speci ed in it, BPMPD will start to read the problem and to solve it. Otherwise BPMPD will prompt the user for the the input le name. It is assumed by BPMPD that the extension of the input le is either .mps or .qps. The name of the MPS input le has to be given by the user without extension. Depending on the speci cations BPMPD will create an optimization report le (with extension .log) and a solution le (with extension .out). 7

4 Using the package as callable library


BPMPD is a modularized software package, written in Fortran 77, in which the problem input/output and optimization are completely separated. As a stand-alone solver, BPMPD is prepared to read optimization problems from MPS les. The main program (bpmain.f) contains subroutine call to the MPS input reader ( nput), to the optimizer driver routine (solver) and to the output writer routine (mpsout). Additionally, the "built{in" values of the optimization parameters are de ned here. BPMPD operates in a column le and in a row le. The column le consists of two working arrays (one double precision called colnzs and one integer called colidx) which are of the same dimension. The row le is one integer working array (called rowidx). The column le contains the A and the lower o {diagonal part of Q as part of the input in form of sparse vectors. They need to be placed continuously from the rst position of the working arrays. The remaining part of the column le will be used to hold the factorization during the algorithm, while the purpose of the row le is to support row-wise representation of data when necessary. The problem and memory dimensions are put in the common block /dims/ which has the following structure:
common/dims/ n,qn,n1,m,mn,nz,qnz,cfree,pivotn,denwin,rfree integer*4 n,qn,n1,m,mn,nz,qnz,cfree,pivotn,denwin,rfree

The following values needed to be set prior to calling the optimization driver routine: Name Description n Number of variables. qn Number of quadratic variables. n1 = n+1. m Number of rows in A. mn = n+m. nz Number of nonzeros in A. qnz Number of nonzeros in Q. cfree Lenght of the column le. rfree Length of the row le. The optimization driver routine can serve as a callable library. The QP problem has to be passed to this subroutine as input. BPMPD assumes the problem in the 8

1 xT Qx min cT x + 2 subject to Ax ; Is = b u (x s)T l where s 2 Rm are slack variables for rows and u l 2 Rn+m are (possibly in nite) upper and lower bouns. BPMPD computes the primal{dual solution corresponding this formulation. The input parameters for this subroutine are:

following form:

1. Name obj rhs ubound lbound colpnt colidx colnzs qdiag qpnt big addobj Type Length Description double prec. n Linear part of the objective function. double prec. m Right hand side. double prec. n+m Upper bound of variables. double prec. n+m Lower bounds of variables. integer n+1 Column pointers of A. integer cfree Indices of the columns in A and Q. double prec. cfree Nonzero values in A and Q. double prec. n Diagonal of the quadratic objective. integer n+1 Column pointers of Q. double prec. 1 Represents in nity (1030 ). double prec. 1 Additive term to the objective.

Note if qnz=0 then qpnt, if qn=0 then both qpnt and qdiag can be dummy parameter. The subroutine results in the following outgoing parameters: Name xs dv dspr code iter opt Type Length Description double prec. n+m Last (optimal) primal iterate. double prec. m Last (optimal) dual iterate. double prec n+m Last (optimal) dual slack iterate. integer 1 Termination code. integer 1 Number of iterations during optimization. double prec. 1 Final primal objective function value.

The termination code can have one of the following values: 9

Code value <0 1 2 3 4

Statement Not enougt memory, optimization was not performed. Suboptimal solution. Optimal solution. Problem is dual infeasible. Problem is primal infeasible.

As an example the following code presents an interface to the optimization driver routine:
subroutine bpmpd(mm,nn,qnn,qnnz,isiz,rsiz,colnzs,colidx, x colpnt,qpnt,ubound,lbound,obj,qdiag,rhs,addobj,xs,dv, x dspr,vstat,opt,big,code) integer*4 mm,nn,qnn,qnnz,isiz,rsiz,colidx(isiz), x colpnt(nn+1),qpnt(nn+1),vstat(mm+nn),code real*8 colnzs(rsiz),ubound(nn+mm),lbound(nn+mm), x obj(nn),qdiag(nn),rhs(mm),addobj,xs(mm+nn),dv(mm), x dspr(mm+nn),opt,big c common/dims/ n,qn,n1,m,mn,nz,qnz,cfree,pivotn,denwin,rfree integer*4 n,qn,n1,m,mn,nz,qnz,cfree,pivotn,denwin,rfree common/logprt/ loglog,lfile integer*4 loglog,lfile c c Local variables to read parameter file c real*8 bigbou,at character*8 objnam,rhsnam,bndnam,rngnam character*99 namstr,outstr,ofnam integer*4 i,j,k,l,iter,fnzmax,fnzmin c c Setting up problem dimensions c

10

qn=qnn qnz=qnnz n=nn m=mm n1=n+1 mn=m+n nz=colpnt(n+1)-1 c c Computing the length of the row and column files c cfree=rsiz-(13*mn+3*m+3) rfree=isiz-(11*mn+3)-cfree if(rfree.lt.0)then code=-2 goto 999 endif c c Set printing log to "stdout only", we do not open logfile c loglog=1 c c Read-in optimization parameters. c outstr='bpmpd.par' call readpar(outstr,i,j,k,namstr,ofnam, x objnam,rhsnam,bndnam,rngnam,bigbou,at,l) c c Call the optimizer c code=0 call solver( x obj,rhs,lbound,ubound,colnzs(rsiz-mn),colnzs(rsiz-2*mn),xs, x colnzs(rsiz- 3*mn),colnzs(rsiz- 4*mn),colnzs(rsiz- 5*mn),dspr, x colnzs(rsiz- 6*mn),colnzs(rsiz- 7*mn),colnzs(rsiz- 8*mn), x colnzs(rsiz- 9*mn),colnzs(rsiz-10*mn),dv, x colnzs(rsiz-10*mn- m),colnzs(rsiz-10*mn-2*m), x colnzs(rsiz-10*mn-3*m),colnzs(rsiz-11*mn-3*m),

11

x x x x x x x x

colnzs(rsiz-12*mn-3*m),colnzs(rsiz-13*mn-3*m), qdiag,colnzs, colidx(isizn),colidx(isiz-mn),colpnt,colidx(isiz-2*mn), colidx(isiz- 3*mn),colidx(isiz-4*mn),vstat,colidx(isiz-5*mn), colidx(isiz- 6*mn),colidx(isiz -7*mn),colidx(isiz- 8*mn), colidx(isiz- 9*mn),colidx(isiz-10*mn),qpnt, colidx(isiz-11*mn),colidx,colidx(cfree+2), code,opt,iter,i,j,k,fnzmax,fnzmin,addobj,bigbou,big,l)

c c Solver finished, return c 999 return end

The interface expects a double precision array (colnzs) of size rsiz, an integer array (colidx) of size isiz which represent A and Q. Parameters mm and nn pass the number of rows and columns in A respectively. Parameter qnn contains the number of quadratic variables. For pure LP problems this has to be set to zero, and the allocation of the arrays qdiag and qpnt can be ignored. Parameter qnnz contains the number of o -diagonal nonzeros in the lower triangular part of Q. For separable quadratic problems this has to be set to zero and the allocation of the array qpnt can be omitted. The other input parameters colpnt, qpnt, ubound, lbound, obj, qdiag, rhs, addobj, big and the output parameters xs, dv, dspr, opt, code are as mentioned previously. An additional output parameter bstat is also passed in our sample interface. This parameter is an integer vector of size (nn + mm) which contains 0 or 1 as output corresponding the optimizer's guess on the status of the individual variables / slacks (non-basic { basic respectively). It is to be noted that no default values for the optimization parameters are de ned in our sample interface routine. These parameters will be set from the parameter le by the readpar procedure. To demonstrate the calling the interface routine let us consider our previous sample problem. Then, the input parameters need to be de ned as: 12

mm mn qnn qnnz addobj isiz rsiz ubound lbound rhs obj qdiag colcnt qpnt colidx colnzs

= = = = = = = : : : : : : : : :

2 2 2 1 4.0 ... ...

(size of the allocated integer memory) (size of the allocated double prec. memory)

( 20, big, big, 0) ( 0, 0, 0, -big) ( 2, 6) (1.5, -2) ( 8, 10) ( ( ( ( 1, 5, 1, 2, 2, -1, 3, 6, 1, 2, 1, 2, 5) 6) 2) 2)

5 The parameter le
BPMPD is a research code which allowes to experiment by trying di erent algorithmic options. To support this, several algorithmic parameters and input/output options can be speci ed for BPMPD via the parameter le called bpmpd.par. In the parameter le all parameters must be in lines between the BEGIN and END markers, other lines will be ignored. It is also important that to preserve compatibility across platforms and compilers, EACH numerical value MUST contain a decimal point. Within one line the parameter name and its associated value has to be separated with at least one space or with one "=" symbol. BPMPD will ignore the section of a line which is after a "!" symbol, this allows to put comments in the parameter section.

13

5.1 Input/output options


parameter : NAME

The purpose of these options is to support MPS le handling. They can be omitted in the callable library form of BPMPD. This option speci es the name of the input le. If it is left blank (as default), BPMPD will prompt the user for the lename. The lenght of the string is limited to 36 characters. The extension ".mps" is automatically added to the string read in. If the opening of the le is not successful, BPMPD replaces the extension with".qps" and tries again. This string speci es the name of the le which contains the starting point used in warm start. The length of this string is limited to 40 characters. The whole lename (with extension) has to be given. BPMPD can read a le which has been generated by BPMPD itself previousely with OUTPUT = 1 setting (see parameter OUTPUT) or which has the same le format as BPMPD's output le. If the value of the parameter is left blank, no le will be read. If reading the le is unsuccessful, BPMPD will automatically switch from warm start to cold start. BPMPD will partition the memory and read the MPS le by assuming that the number of rows plus number of columns is less than MAXMN. If this is incorrect, BPMPD will repartition the memory and read the MPS le once more. After successful reading the MPS le the dimensions of the problem will be known and BPMPD will redistribute the memory for its maximal possible exploitation. It is recommended to give an overestimation on the problem dimension otherwise BPMPD will need to read the MPS le twice. If the MAXMN value is too large to form the corresponding memory partitions BPMPD will automatically decrease it. BPMPD solves minimization problems. For maximization problems MINMAX has to be speci ed as -1, then BPMPD will negate the objective function (and minimize it).

default:

values : String

parameter : STARTSOL

default:

values : String

parameter : MAXMN default: 250000 values : POSITIVE INTEGER

parameter : MINMAX parameter : OUTPUT

default: 1 default:1
14

values : -1 or 1

values : 0 or 1

This parameter de nes either a whole solution report has to be written or not. When specifying 1, BPMPD will create an output le which contains the whole optimal solution of the problem. Otherwise a short le will be created containing the most important statistics about the solution progress.

parameter : OBJNAM default: values : String of 8 character length

This parameter speci es the name of the objective function in the MPS le. If it is left blank, BPMPD will select the rst row which has the type " N ".

parameter : RHSNAM default: values : String of 8 character length

This parameter speci es the name of the right hand side in the MPS le. If it is left blank, BPMPD will select the rst right hand side name.

parameter : BNDNAM default: values : String of 8 character length

This parameter speci es the name of the bounds in the MPS le. If it is left blank, BPMPD will select the rst bound name.

parameter : RNGNAM default: values : String of 8 character length parameter : BIGBOUND default:1015 values : POSITIVE REAL

This parameter speci es the name of the ranges in the MPS le. If it is left blank, BPMPD will select the rst range name.

All bounds and ranges will be considered as in nity which are larger than this parameter. This parameter serves to correct those MPS les in which in nities are expressed by very large numbers. All numerical values in the MPS le which are less in absolute value than this parameter will be considered as zero. BPMPD will include slack variables as structural ones (and form the constrains as equalities) if this parameter is set to 1. Otherwise slacks are handled as special variables for inequality constraints.

parameter : SMALLVAL

default:10;12

values : POSITIVE REAL

parameter : EXPSLACKS

default:0

values : 0 or 1

parameter : ITERLOG default:3 values : NONNEGATIVE INTEGER


15

This value speci es how the iteration log has to be produced. The following values are possible:

0 : BPMPD works in silent mode, no log will be created. 1 : BPMPD sends the iteration log to the standard output. 2 : BPMPD sends the iteration log to the log le (which has the same name as the
input le but with ".log" extension). 3 : BPMPD sends the iteration log to both the standard output and log le. Larger numbers can be also speci ed for debugging purposes. In this case BPMPD will print additional informations during the solution process. One of the most important features of BPMPD is the sophisticated methods for handling sparsity. Two di erent approaches are implemented to build the factorization for computing interior point iterations. One is called as normal equations while the other is called as augmented system approach. The main di erence between them is that by the normal equations the pivot order is computed by symbolical investigation while by the augmented system it is determined by both symbolical and numerical tests. The augmented system is more advantageous if the problem has special structures (e.g. dense columns) but it is more expensive than the normal equations approach. See more details in 4]. The following parameters in uence the heuristic which decides which of the two approaches is preferable by the particular problems. The implemented method uses an improved version of the heuristic described in 4].

5.2 Parameters for handling sparsity

parameter : DENSGAP

Maximal ratio of the dense columns. At most DENSGAP n columns are allowed to be handled as dense.

default: 0.20

values : POSITIVE REAL

parameter : DENSLEN default: 10 values : POSITIVE INTEGER parameter : SUPDENS default: 350 values : POSITIVE INTEGER
16

Minimum required column length for dense columns. Shorter columns are not treated as dense. Minimal column length of 'super' dense columns. Very dense columns are handled specially in the factorization set{up phase to increase the speed of the process.

This parameter represents the minimum acceptable density for "dense" columns. This parameter can override the result of the heuristic in such a case if the heuristic decides to handle some columns as "dense" which are of very small density. Positive LAM means a relative density measure while a negative value is negated and considered as absolute density value (i.e. column count).

parameter : LAM

default: 10;5

values : REAL

parameter : SETLAM

By default, BPMPD uses its own heuristic to identify dense columns. When specifying -1, BPMPD skips this heuristic and uses LAM as criterion to handle columns as "dense" and "sparse". Setting up the factorization by the augmented system approach can be requested by specifying 1 for this parameter. We would like to note that to request the normal equations approach is possible when specifying 1.0 for LAM.

default: 0

values : -1, 0, 1

5.3 Supernode parameters

BPMPD performs the supernodal Cholesy factorization. A paper 8] is available which contains the particulars. The parameters introduced here control the supernode partitions of the factorization.

parameter : PSUPNODE default: 4 values : POSITIVE INTEGER


Required minimum number of columns of a primer supernode.

parameter : SSUPNODE default: 4 values : POSITIVE INTEGER


Required minimum number of columns of a secondary supernode.

parameter : MAXSNZ INTEGER

default: 99999999

values : POSITIVE

Maximum number of nonzeros allowed in one supernode. This parameter can be very important if the computer platform has an e cient cache memory system. These parameters control the pivot searching in the symbolical and numerical processes in the factorization set up as well during interior point iterations.

5.4 Pivot and factorization parameters


default: 10;3
17

parameter : TPIV1

values : POSITIVE REAL

First relative pivot tolerance for the augmented system factorization. Second relative pivot tolerance for the augmented system factorization. If there are no pivots satisfying the rst tolerance, the value of the tolerance will be reduced until TPIV2. See 7] for more details. Relative pivot tolerance for the starting factorization. When a computed pivot value in the factorization is less than this parameter, the corresponding row of the problem will be considered as dependent and will be dropped. This parameter e ects the rst factorization which is performed to compute the starting point.

parameter : TPIV2

default: 10;8

values : POSITIVE REAL

parameter : TABS

default: 10;12

values : POSITIVE REAL

parameter : TRABS

Relative pivot tolerance during the algorithm. Pivot values bellow this parameter will indicate dependent rows.

default: 10;15

values : POSITIVE REAL

parameter : TFIND default: 25 values : NONNEGATIVE INTEGER

Pivot searching power. TFIND = 0 will result in the "minimum degree" ordering while a large number will result in the "minimum local ll{in" ordering. Intermediate values balances between speed and ordering quality. See more details in 6].

parameter : ORDERING

This parameter selects the ordering algorithm. The following vales are possible:

default: 2

values : 0, 1, 2 or 3.

0 : "Natural" ordering (without investigations). 1 : Minimum degree ordering 2 : Minimum local ll{in ordering for the normal equations, minimum degree for
the augmented system. 3 : Minimum local ll{in ordering.

18

BPMPD terminates with optimal status if the relative primal infeasibility jjAx ; bjj 1 + jjbjj the relative dual infeasibility jjAT y + z ; w ; cjj 1 + jjc + Qxjj and the relative duality gap 1 T T T T jcT x + 1 2 x Qx ; (b y ; u w ; 2 x Qx)j T 1 + jbT y ; uT w ; 1 2 x Qxj or the average complementarity gap xT s n are less than the predetermined tolerances. Infeasibility is detected if a sharp increase in one of the above terms occurs. This is monitored by the merit function: 1 xT Qx ; (bT y ; uT w ; 1 xT Qx)j jjAx ; bjj + jjAT y + z ; w ; cjj + jcT x + 2 2 : 1 xT Qxj 1 + jjbjj 1 + jjc + Qxjj 1 + jbT y ; uT w ; 2 BPMPD stops if the current iterate is primal and dual feasible and the relative duality gap is less than this value.

5.5 Stopping criterion parameters

parameter : TOPT1

default: 10;8

values : POSITIVE REAL

parameter : TOPT2

BPMPD stops if the average complementary gap is less than this tolerance.

default: 10;20

values : POSITIVE REAL values : POSITIVE REAL values : POSITIVE REAL

parameter : TFEAS1 parameter : TFEAS2

Relative primal feasibility tolerance. Relative dual feasibility tolerance.

default: 10;7

default: 10;7
19

parameter : INFTOL parameter : TSDIR

BPMPD stops if the "merit" value of "non-optimality" grows faster than this value. BPMPD stops if the maximum norm of the search direction is less than this value.

default: 105

values : POSITIVE REAL

default: 10;16

values : POSITIVE REAL

BPMPD stops if the number of iterations exceeds this limit.

parameter : MAXITER default: 99 values : POSITIVE INTEGER

5.6 Numerical tolerances


parameter : TPLUS

These parameters are used in special parts of the code. It is not recommended to change these values. Relative addition tolerance. In some procedures (for example in the aggregator) the result of a + b is replaced by zero if abs (a + b) < max(a b) TPLUS . parameter : TZER default: 10;35 values : POSITIVE REAL Absolute zero tolerance. All computed values whose absolute value is less than this parameter will be considered as zero.

default: 10;10

values : POSITIVE REAL

5.7 Iterative re nement parameters


Iterative improvement. Conjugate gradient method. Quasi minimum residual algorithm.

During computation of the search direction iterative methods can be invoked to improve numerical accuracy. Three such methods are available in BPMPD, these are:

The application of re nements can slow down the iterations remarkably if the problem and its factorization is very sparse. Otherwise, it has less in uence on the speed. These methods are highly recommendable due to their advantageous numerical effect. 20

parameter : TRESX parameter : TRESY

Acceptable residual in the primal space.

default: 10;9

values : POSITIVE REAL values : POSITIVE REAL values : INTEGER

Acceptable residual in the dual space. Iterative re nement will be performed if the primal or dual residual is not acceptable.

default: 10;9

Base number for computing the maximum allowable re nement steps. If its value is positive, the current limit of the iterative re nements is computed as ! flops MAXREF log2 fnz where ops is the number of oating point operations required for one factorization and fnz is the number of nonzeroes in the factorization. If a negative value is presented, BPMPD will do at most {MAXREF re nements. parameter : REFMET default: 1 values : 0 to 7 INTEGER The bits of this value represent turning on{o individual re nement techniques. The following methods are available:

parameter : MAXREF

default: 5

1 Iterative improvement. 2 Conjugate gradient method. 4 Quasi minimum residual method.

5.8 Scaling parameters

Scaling is performed prior to the interior point iterations to improve the condition and numerical behavior of the problem. The scaling is performed in iterations (called here as passes). There are the following scaling methods available:

0 No scaling. 1 Simple scaling. Scales each columns and rows to have 1.0 maximum norm. 2 Geometric mean scaling + simple scaling.
21

3 Curtis-Reid's algorithm + simple scaling. 4 Geometric mean scaling only. 5 Curtis-Reid's algorithm only.
There are two possible places for scaling: before the aggregator (which is recommended) and after aggregator (which is not recommended).

parameter : OBJNORM default: 102 values : NONNEGATIVE REAL

BPMPD will scale the objective to this maximum norm. If the problem is quadratic, the objective will be scaled in such a way that the square of the largest diagonal element of Q will be OBJNORM. If the value of OBJNORM is zero, no scaling on the objective will be performed.

parameter : RHSNORM default: 0.0 values : NONNEGATIVE REAL parameter : MINDIFF default: 1.0

BPMPD will scale the right hand side to this maximum norm. If this value is zero, no scaling on the right hand side will be performed. BPMPD will terminate the scaling if the ratio of the largest and smallest absolute value in the matrix is less than this threshold. BPMPD will ignore those matrix elements during scaling whose relative absolute value to the maximum norm of the corresponding column is less than SIGNORE. This parameter is very useful if small computational errors are presented in the problem.

values : POSITIVE REAL

parameter : SIGNORE

default: 10;12

values : POSITIVE REAL

parameter : SPASSES1 default: 5 values : NONNEGATIVE INTEGER


Maximum number of passes before the aggregator. This value should be less than 128.

parameter : SMETHOD1

Scaling method before aggregator.

default: 2

values : 0 to 5 INTEGER

parameter : SPASSES2 default: 0 values : NONNEGATIVE INTEGER


22

Maximum number of passes after aggregator. This value should be less than 128. We do not recommend to scale after doing aggregation, but it can be advantageous in some cases.

parameter : SMETHOD2

Scaling method after aggregator.

default: 0

values : 0 to 5 INTEGER

5.9 Predictor-corrector and barrier parameters


parameter : STOPCOR
BARSET
xT s n

The parameters de ned here in uence the predictor{corrector method 5] as well the computation of the barrier parameter. Corrector is ignored if it decreases the steplengts by a larger factor than STOPCOR.

default: 10;3

values : POSITIVE REAL

parameter : BARSET default: 0.25 values : NONNEGATIVE REAL


will be used as an upper limit for the barrier parameter. parameter : BARGROW default: 103 values : POSITIVE REAL Barrier growing bound between two successive iterations.

parameter : BARMIN default: 10;12 values : NONNEGATIVE REAL


Minimum barrier threshold. Smaller barrier value will be replaced by zero.

parameter : MINCORR

Number of minimum corrector steps in the predictor{corrector procedure. Value 1 forces to do one correction with iterative re nement, while values 0 and -1 allow to skip corrector. When value 0 is speci ed the predictor is enhanced with iterative re nement.

default: 1

values : -1, 0 or 1

parameter : MAXCORR INTEGER

default: 1

values : NONNEGATIVE

Maximum number of corrections allowed in the predictor{corrector procedure.

parameter : INIBARR default: 0.0 values : NONNEGATIVE REAL


23

This parameter determines the barrier value for the predictor direction as INIBARR xT s . n

After the predictor{corrector step BPMPD uses centrality corrections. More details in 3].

5.10 Centrality corrections parameters


default: 0.09 default: 0.1 default: 10.0 default: 5.0 default: 1.01 default: 0 default: 9

parameter : TARGET parameter : TSMALL

Trial steplength improvement. Small complementarity bound.

values : POSITIVE REAL values : POSITIVE REAL values : POSITIVE REAL values : POSITIVE REAL values : POSITIVE REAL values : NONNEGATIVE values : NONNEGATIVE

parameter : TLARGE
Centrality force.

Large complementarity bound.

parameter : CENTER parameter : CORSTOP


Correction stop parameter.

parameter : MINCCORR INTEGER

Number of the minimum corrections.

parameter : MAXCCORR INTEGER

Base number for computing the number of maximum corrections. The number of maximum corrections will be computed similarly as described by the parameter MAXREF.

5.11 Steplenth parameters

Both by LP an QP problems di erent stepsizes are used in the primal and dual spaces. In the quadratic case, however, a special technique is implemented which guarantees the decrease in the primal and dual infeasibilities. The following parameters are used to prevent to hit the boundary during interior point iterations. Smaller values can be bene cial on "di cult" problems. 24

parameter : PRDARE default: 0.999 values : 0.0 < PRDARE < 1.0

The maximal possible steplengt to the boundary in the primal space is multiplied by PRDARE.

parameter : DUDARE default: 0.999 values : 0.0 < DUDARE < 1.0

The maximal possible steplengt to the boundary in the dual space is multiplied by DUDARE.

5.12 Starting point paramerers

There are two possibilities for determination of the starting point: cold start and warm start (under developing). By cold start BPMPD computes for the primal variables the solution of the problem: min jjx ^jj + P x ^T Qx ^

Ax ^=b where P > 0 weight for the quadratic objective function. For the dual variables there are two options. Either the optimal solution of the problem
min jjs ^jj + P s ^T Qs ^

AT y + s ^ ; Qx ^=c or y ^=0 s ^ = c + Qx ^ is computed. To avoid small or negative values, x ^ and s ^ are modi ed (safed).
Minimum initial primal value. This parameter is used during the modi cation of x ^ and s ^:

parameter : PRMIN

default: 150.0

values : POSITIVE REAL

parameter : UPMAX parameter : DUMIN

Maximum initial primal value. This parameter is used during the modi cation of x ^ and s ^:

default: 50000.0 default: 150.0


25

values : POSITIVE REAL

Minimum initial dual slack value. This parameter is used during the modi cation of x ^ and s ^:

values : POSITIVE REAL

parameter : LSQWEIGHT default: 10.0 values : POSITIVE REAL Weight of jjx ^jj by the primal problem. parameter : SMETHOD default: 2 values : -2, -1, 1 or 2 parameter : SAFEMET default: -3 values : from -3 to +3

By this parameter the rst or second method for the dual can be selected. When negative value is presented, BPMPD try warm start. If the warm start is not successful, BPMPD will use -SMETHOD in the cold start process. This parameter selects the method for modi cation of x ^ and s ^. Negative values implies methods which improves all components otherwise only the small components are modi ed. Method 1 (and -1) checks the individual values of the variables while methods 2 and 3 (as well -2 and -3) consider the complementarity components also. Value 1. introduces arti cial variables (slack variables for equality rows with upper and lower bounds zero) to the model.

parameter : REGULARIZE

default: 0

values : 0 or 1

5.13 Presolve parameters

Prior to the solution process BPMPD may apply presolve techniques. These techniques reduce the problem size by detecting x variables or redundant rows, and in general, improve the e ciency of the interior point method. Several presolve techniques can be invoked. In addition to the presolve, BPMPD is able to eliminate variables and constraints from the LP/QP problem. A paper is available which discuss the particulars 9].

parameter : PRESOLV default: 1023 values : 0 to 2047 INTEGER

Presolve action control. The bits of this value represent turning on or o individual presolve techniques. The following methods are available: 1 : Singleton row check. Singleton rows are replaced by bounds on variables. 2 : Singleton column check. Free (or implied free) singleton columns are eliminated from the problem. 4 : Primal feasibility check. This process evaluates the possible minimum and maximum row values. Based on the results, it may detect redundant rows and xes variables on their bound. 26

8 : Cheap dual test. This procedure performs tests based on the signs of the nonzero

values of the columns. 16 : Dual feasibility check. The same as the primal but on the dual problem. Bounds on the dual variables are tightened if possible. 32 : Primal bound check and relaxation. This procedure detects hidden free variables in the problem. 64 : Searching identical variables. This procedure detects splitted variables in the problem and replaces them with an appropriate one. 128 : Doubleton row check. This procedure generates free variables in doubleton rows. 256 : Aggregator. This procedure eliminates free variables. 512 : Sparser. This procedure makes the constraint matrix sparser. 1024 : Extended dual test. This procedure performs additional dual tests which may change the optimal solution. The optimal objective value is not change however, therefore this procedure can be turned on if the optimal objective function value is the only important.

parameter : BNDLOOP INTEGER

default: 5

values : NONNEGATIVE

Maximum number of iterations in the primal bound check procedure.

parameter : DULOOP default: 10 values : NONNEGATIVE INTEGER


Maximum number of iterations in the dual feasibility check procedure.

parameter : PRIMALBND default: 1000.0 values : NONNEGATIVE REAL


Maximum allowable generated bound during primal bound investigations. Maximum allowable generated bound during dual feasibility tests. 27

parameter : DUALBND default: 10000.0 values : NONNEGATIVE REAL

parameter : PREFEAS default: 10;8 values : NONNEGATIVE REAL


Relative primal feasibility tolerance during presolve. Relative pivot tolerance in the aggregator process.

parameter : PIVRTOL default: 10;2 values : NONNEGATIVE REAL parameter : PIVATOL default: 10;4 values : NONNEGATIVE REAL
Absolute pivot tolerance in the aggregator process. Fill{in bound on individual pivots in aggregator. Aggregator stops if (ci ; 1)(rj ; 1) > FILLTOL (ci + rj ) for all possible pivot positions, where (i j ) are the column/row indices of the pivot candidates and ci, rj are the column and row counter of column i and row j , respectively.

parameter : FILLTOL default: 4.0 values : NONNEGATIVE REAL

5.14 Regularization parameters

The purpose of these parameters is to prevent numerical instability. Unfortunately, increasing numerical behavior (e.g. doing stronger regularization) may decrease the e ciency of the computed steps and possibly increases the number of necessary iterations. In extreme cases regularization can prevent convergence. The theory of regularization is discussed in 9].

parameter : SOFTREG default: 10;12 values : NONNEGATIVE REAL parameter : HARDREG REAL default: 10;16

Soft regularization of the diagonal scaling matrix. This parameter slowes down the decrease of small values in the diagonal scaling matrix. The increase of this parameter will increase the regularization.

values : NONNEGATIVE

The parameter introduces "hard" regularization, namely "freeses" small values in the diagonal scaling matrix. The increase of this parameter will increase the regularization.

parameter : SCFREE default: 10;8 values : NONNEGATIVE REAL


28

Base value for scaling free variables. See 9] for the details. BPMPD xes variables whose value fall under this limit.

parameter : TFIXVAR default: 10;20 values : NONNEGATIVE REAL default: 10;20 values : NONNEGATIVE

parameter : TFIXSLACK REAL

BPMPD xes slacks whose value fall under this limit.

parameter : DSLACKLIM default: 10;20 values : NONNEGATIVE REAL


Dual slack limit. BPMPD does not decrease dual slacks bellow this value.

parameter : COMPLIMIT REAL

default: 1.0

values : NONNEGATIVE

Complementarity balancing technique turns on if the average complementarity falls bellow this value.

parameter : COMPPAR default: 10;5 values : NONNEGATIVE REAL

The complementarity balancing technique will improve those complementarity components which are less then the average complementarity gap multiplied by COMPPAR.

6 Bug reports and further inquires


If there are any problems or questions about the BPMPD package please contact: Csaba Meszaros, Computer and Automation Research Institute, Laboratory of Operations Research and Decision Systems, H-1518 Budapest, P.O. BOX 63, Hungary . FAX: +(361) 269-8268 PHONE: +(361) 269-8267 E-MAIL: [email protected], [email protected] 29

References
1] T.J. Carpenter, I.J. Lustig, J.M. Mulvey, and D.F. Shanno. Higher order predictor-corrector interior point methods with application to quadratic objectives. SIAM Journal on Optim., 3:696{725, 1993. 2] A.V. Fiacco and G.P. McCormick. Nonlinear Programming: Sequential Unconstrained Minimization Techniques. John Wiley and Sons, New York, 1968. 3] J. Gondzio. Multiple centrality corrections in a primal-dual method for linear programming. Computational Optimization and Applications, 6:137{156, 1996. 4] I. Maros and Cs. Meszaros. The role of the augmented system in interior point methods. Technical Report TR/06/95, Brunel University, Department of Mathematics and Statistics, London, 1995. to appear in European Journal of Operations Research. 5] S. Mehrotra. On the implementation of a primal-dual interior point method. SIAM Journal on Optim., 2(4):575{601, 1992. 6] Cs. Meszaros. The \inexact" minimum local ll{in ordering algorithm. Working paper WP 95{7, Computer and Automation Institute, Hungarian Academy of Sciences, Budapest, 1995. 7] Cs. Meszaros. The augmented system variant of IPMs in two{stage stochastic linear programming computation. Working paper WP 95{1, Computer and Automation Institute, Hungarian Academy of Sciences, Budapest, 1995. to appear in European Journal of Operations Research. 8] Cs. Meszaros. Fast Cholesky factorization for interior point methods of linear programming. Computers & Mathematics with Applications, 31(4/5):49{54, 1996. 9] Cs. Meszaros. On free variables in interior point methods. Technical Report DOC 97/4, Imperial College, Department of Computing, London, 1997. 10] R. D. C. Monteiro and I. Adler. Interior path following primal-dual algorithms. Part II: Convex quadratic programming. Math. Programming, 44:43{66, 1989. 11] J.L. Nazareth. Computer Solution of Linear Programs. Oxford University Press, New York, 1987. 30

You might also like