a brief tutorial on accpm.pdf

Upload: udun2011

Post on 14-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    1/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 1

    A brief tutorial on ACCPM

    Olivier Peton, JeanPhilippe Vial

    Abstract The aim of this tutorial is to help users to for-mulate and solve a large variety of problems through the an-

    alytic center cutting plane method. We first briefly reviewthe class of problems that are solvable by accpm and sketchthe principles that underlie accpm. We discuss the orga-nization of accpm as a general cutting plane method, andpresent its three modules: the oracle, the coordinator andthe query point generator. The main interface is betweenthe oracle that is problem-dependent, and thus programmedby the user, and the last two modules whose internal func-tions are hidden in most part to the user. We finally presentsome examples of optimization problems that can be solvedby accpm, directly or after some reformulation.

    Keywords Convex non-differentiable optimization, cut-ting planes, analytic center.

    Introduction

    THIS paper is an abridged version of the complete tu-torial [15] on the latest release of the Analytic CenterCutting Plane Method (accpm). This software is aimed tosolve a large variety of convex problems via a cutting planeapproach. The thrust of version 2.01 is the interface be-tween the user and the cutting plane method. In this newcontext, the description of the problem characteristics andsome execution parameters have been made more accessibleto non specialist users. The release provides templates forthis file in the C language, via some illustrative examples.

    The core of accpm 2.01 remains the same as in the ear-lier versions (see [9] and [10] for the users guide of theprecedent release). It is mainly based on the works [4] and

    [5] and related papers. For a survey, see [6] or [7].The paper is organized as follows. In the first section,

    we briefly review the theoretical background of our cuttingplane approach to convex optimization. Section 2 gives thecanonical structure underlying the new accpm interface.In section 3, we give some practical implementation issues.The last section is dedicated to some examples, which mayhelp the user to devise his/her own applications.

    I. Mathematical programming framework

    accpm is a general purpose method to solve convex prob-lems that can be formulated under the following generalformat:

    min{f(x) = f0(x) +

    pi=1

    fi(x) | x X = X0 rt=1 Xt}. (1)

    Assumption I.1:

    1. The function f0 is linear.2. The functions fj : R

    n R, j = 1, . . . , p are convex.3. The set X0 is a bounded polyhedron defined by somelinear inequalities B, x b.

    Hec/Logilab, University of Geneva, 40 bd du Pont dArve, CH-1211 Geneva 4, Switzerland, [email protected], [email protected]

    4. The sets Xt Rn, t = 1, . . . , r, are convex.

    The linear part f0 as well as the functions fj can be omit-ted. However, the convexity assumptions have to be satis-fied. Non-convexity may lead to the failure of the method.

    Some supplementary information is required about theproblem to be solved. In our framework, we isolate theinformation in a procedure called oracle. Thus, we addanother assumption:

    Assumption I.2: The functions fj(x), j = 0, . . . , p, andthe sets Xt, t = 1, . . . , r are described by an oracle.

    The numerical methods which are formulated in termsof oracle fall into a black-box concept: the only problem-dedicated information is obtained through the oracle.

    A. The oracle

    The typical input of an oracle consists of a so-calledquery point (or test point) x. The output consists of localinformation about the problem at the query point: objec-tive function f(x), element of the sub-differential f(x), orthe Hessian f(x). The nature of this information dependson the feasibility of the query point. Given a query pointx X0, the oracle output takes one of the following forms: Feasibility cut: A feasibility cut is a hyperplane thatdoes not intersect the set of feasible solutions of (1). Forsome t 1, . . . , r, x Xt: the oracle returns the vector(0, ) R R

    n and the feasibility cut

    , x

    x

    +

    0 0,

    for allx

    Xt.

    (2) Optimality cuts: An optimality cut is a hyperplanethat does not intersect the set of optimal solutions of (1).If x X is feasible, the oracle returns p function valuesfj(x), and p subgradients j fj(x), that define the validinequalities

    fj(x)+j , xx fj(x), for all x X, j = 1, . . . , p . (3)

    Observing that the function value f(x) is an upper boundfor the optimal soluton of (1), we can define a supplemen-tary optimality cut:

    f(x) f(x).

    B. Localization set

    Let (x1, . . . , xK) be a sequence of query points. The setK is partitioned into IK JK where

    IK = {k | xk is infeasible (feasibility cut)}, (4)

    JK = {k | xk is feasible (optimality cut)}. (5)

    If JK = , we define the upper bound K = minkJK

    f(xk).

    Collecting all valid inequalities generated so far, we definea set in the epigraph space of the functions fj . This set

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    2/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 2

    lies in Rp Rn; it contains the set of optimal points andis named thereafter the localization set. We denote it LKand represent it by the following inequalities:

    fj(xk) + kj , x x

    k zj , j = 1, . . . , p, k JK,(6a)

    k0 + k, x xk 0, k IK (6b)

    z1 + . . . + zp K, (6c)

    B, x b, (6d)

    The first set is made of optimality constraints (6a), whichstate that the point (zi, x) in the epigraph of fj lies abovea supporting hyperplane of fj at x

    k. The constraints inthe second set (6b) are feasibility cuts in the (horizontal)x-space. The third constraint (6c) forces the point z = z1 +. . . + zp to lie below the upper bound K. The constraintsin the last set (6d) are fixed. They are given at the outset,and usually take the form of box constraints on the variablex.

    C. Generic cutting plane methodMost of the cutting plane methods for convex optimiza-

    tion share a common structure (see the examples of cen-ter of gravity, inscribed ellipsoid, volumetric center, etc. in[17]). We sketch below the basic step of a generic cuttingplane method:

    1. Test termination.

    2. Choose a query point (x, z) LK.3. Compute a lower bound for z LK.4. Call the oracle at x. The oraclereturns

    (a) either feasibility cut(s);

    (b) or optimality cut(s) and an upper

    bound.

    5. Update the upper bound and add the new

    cuts in the definition of the localization

    set.

    Cutting plane methods differ in the way they choose aquery point in LK. accpm selects the analytic center ofLK, but the user may try other alternatives.

    Let us stress that the oracle (step 4) is totally problem-dependent, while the choice of the query point (step 2)depends on the particular cutting plane method. Moreprecisely, the user will be fully responsible of the imple-mentation of step 4, and possibly of step 1. The othersteps (2, 3 and 5) are performed automatically by the soft-ware and are beyond the scope of this tutorial. The lowerand upper bounds are used to compute an optimality gap.

    D. The Analytic Center Cutting Plane Method (ACCPM)

    accpm can be described as one specific way of choosingthe query point in the localization set. To give a handydefinition of the analytic center, let us use a compact rep-resentation of the localization set {y | ATy c}. Theanalytic center of this polyhedron is the unique solution (if

    it exists) of the problem

    min{Ki=1

    log si | s = c ATy > 0}.

    We thus make the assumption:Assumption I.3: The polyhedron {y | ATy c} is

    bounded and has a non-empty interior.

    The analytic center is also the unique solution of the nonlin-ear system of equations (first order optimality conditions)

    ATy + s = c,

    Aw = 0,

    wisi = 1, i = 1, . . . , K ,

    where w is the dual vector. The uniqueness of the ana-lytic center is guaranteed by the strong convexity of the

    logarithmic barrier Ki=1

    log si.

    II. Canonical structure of the cutting planemethods

    In the present section, we give a description of the struc-ture that has been used in the implementation of accpm.

    The original accpm library [9] has been designed to beincluded in larger applications, and thus comprises no inter-face with the problem to be solved. The user has to rewritea part of the C code to link the library with the application.This work may appear fastidious for the non-expert user.For this reason we have inserted an intermediate module,called coordinator, between the original accpm library andthe oracle. The coordinator is general enough to handle alarge variety of applications.

    Our implementation consists of 3 modules: a (query

    point) generator, an oracle, and a coordinator.Definition II.1:

    The (query point) generator is the part of a cuttingplane method which computes a new query point at eachiteration. The oracle is the part of a cutting plane methodwhich supplies the query point generator with new cuttingplane(s) at each iteration. The coordinator is the part of a cutting plane methodwhich links the generator with the oracle, and controls theprocess convergence.

    Print results

    and statistics

    Initialization

    query point

    query point

    lower bound

    COORDINATOR QUERY POINT

    GENERATOR

    ORACLE

    cutting plane(s) in users format

    upper bound

    cutting plane(s) in ACCPM format

    upper bound

    Fig. 1. The 3 modules of the cutting plane method interface

    Figure 1 summarizes the main links between the oracle,the coordinator and the generator.

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    3/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 3

    A. The coordinator

    The coordinator is the backbone of the cutting planeprocess. By calling the oracle or the generator, collectingoutput data and changing their format, the coordinatorplays the role of an intermediate between the other twomodules.

    A typical accpm run can be decomposed into two main

    phases, that are included in the coordinator:

    Phase I

    If the initial query point is infeasible, accpm startswith a Phase I, whose objective is to find a feasible pointby minimizing the constraints violation. The constraints ofthe original problem are omitted, and the objective func-tion is replaced by a convex indicator function h(x) whichis 0 for any feasible query point x, and positive otherwise.Note that solving this new formulation with accpm gener-ates optimality cuts. The phase stops as soon as a feasiblesolution is found. If the initial point is feasible, Phase I isskipped.

    Phase II

    Once a feasible point is found, accpm initializes thelower and upper bounds, turns the optimality cuts of PhaseI into feasibility cuts, and goes on until an optimal solutionis found. For pure feasibility problems, there is no PhaseII. Note that both feasible and unfeasible iterates can beencountered during Phase II.

    Other assignments of the coordinator

    1. Initialization procedures:Before entering the cutting plane process, the coordinator

    reads the main characteristics of the application in a datafile (problem dimension, number of cuts, number of com-ponents in the objective function...) and allocates memoryfor the data structures.2. Control of the convergence:At each iteration, a duality gap is computed from the lowerand upper bounds. The program stops as soon as this gapsatisfies a stopping criterion defined in the data file.3. Historical account of the process:Some applications can be handled by accpm only if thecomplete sequence of query points is kept in memory.Moreover, for other applications, a historical acocunt ofthe process may provide useful information when the user

    wants to tune the execution parameters properly or retrievesome intermediate solutions. Thus, the complete processhas to be recorded on users request.4. Time calculation:The coordinator calculates the time spent in the oracle andin the generator. These two modules concentrate almost allthe computational efforts of the solving process.5. Display and save the results.

    B. The query point generator

    The main role of the generator is to feed the oraclewith a new candidate solution at each iteration. accpm

    chooses as a query point an approximate analytic centerof the current localization set. Only minor changes in thismodule have been performed in version 2.01. One impor-tant issue is that the user has no need to know the internalmechanism of the generator. Only a few execution param-eters are to be defined; they have been all made accessiblein a separate file.

    The generator receives two distinct inputs from the co-ordinator: an upper bound for the objective function anda collection of new cutting planes (feasibility or optimal-ity cuts). The generator updates the localization set withthese new cuts, and returns three outputs: an approximation of the analytic center of the new local-ization set, a lower bound for the objective, the dual variables.

    C. The oracle

    The oracle takes the current query point as an input andreturns one or several cutting planes to the coordinator.

    The cutting planes can be either feasibility or optimalitycuts, but not both simultaneously. Recall that the oracleis the only module that contains some problem-dedicatedinformation. Thus, only this module has to be partiallyrewritten by the user.

    Version 2.01 comprises a few differences with the previ-ous one: The oracle per se is one single function. However, thefile containing the oracle function also contains some addi-tional functions that may be changed by the user (see nextsection). In the oracle, the user is only asked to give a natural de-scription of the cutting planes (function value, gradient or

    subgradient, upper bound, type of cut). The cuts are gen-erated one by one, and transformed into the appropriateformat by a special function called CPM build cut. Thisfunction creates a new cut and appends it to a data struc-ture called Newcut, which contains all the cuts generatedat the current iteration. The structure is unchanged com-pared to the former accpm library. For more details aboutit, see [9]. The oracle returns a pointer to Newcut. The function headers in the oracle file cannot be modi-fied by the user. In most cases, the present variables sufficeto formulate a large variety of oracles. Most often, some ofthem are even not used. However, some non-classical appli-cations may require supplementary inputs. To compensate

    the drawbacks of this rigid structure and handle as manycases as possible, a special structure, called my variablesis introduced. It is intended to include any variable of in-terest and can be modified for convenience by the user. After the initialization, the process always begins withan oracle call. This allows the user to include some pre-processing, supplementary initialization operations, or tointroduce some special cutting planes at the first oraclecall. An additional feature of the oracle is to produce a stop-ping signal, which is characterized by an artificial cut type,denoted -1. This turns out to be useful for the user to

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    4/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 4

    implement new stopping criteria within the oracle code.

    III. Important implementation issues

    The users work is limited to the following files: the oracle.C or oracle.cpp file, containing all the func-tions that can be modified by the user, the file user.h, containing the definition of the additional

    variables of type my variables (by default, this structureis predefined as empty), the data file, a text file containing the applications maincharacteristics, and some specific data, the parameter file, a text file containing the list of change-able execution parameters for accpm.

    A. The CPM oracle function

    This is the main function in file oracle.C (ororacle.cpp). It returns the cutting plane(s) by the way ofa pointer to the structure Newcut.

    The main variables that define a particular cutting planeare f (value of the objective function, or value of the vio-

    lated constraint), and gradient ((sub)gradient of the ob-jective/constraint function at the query point).

    Since the oracle generates either optimality or feasibilitycuts, one variable type is sufficient to describe the wholeset of cuts. It has one of the three following values: 0 forfeasibility cuts, 1 for optimality cuts, and -1 to transmit astopping signal to the coordinator.

    B. The box constraints

    The boundedness of the localization set is guaranteed ifX0 is bounded. Since X0 is the whole space in some appli-cations, the implementation assumes the existence of boxconstraints of the form xmin xi xmax, i = 1, . . . , n ,

    with xmin < xmax.accpm 2.01 distinguishes two types of box constraints:

    The fixed box constraints (or natural box constraints)are dictated by the problem instance. They can be used tomodel simple constraints on variables. For example, if somevariable has to be positive, we set the corresponding fixedlower bound to 0. Hence, the natural box constraints definean outer approximation of the feasible domain. When nonatural bounds are available from the context, accpm usessome large default values.The fixed box constraints can also be used in the detectionof unbounded problems. In this case, the sides do not be-have like constraints but like a threshold. If some query

    point approaches one of the box sides, the problem is de-clared unbounded. A 0/1 variable is associated with eachbox side to characterize it as a classical constraint or as athreshold for detection of unbounded problems.The user can define the fixed boxes by modifying the func-tion set fixed box. For each dimension, the user has tofix minimum and maximum values of the decision variables. The movable box constraints are dictated by theusers knowledge and experience of the problem. They de-fine the limits of the localization set, and are included intothe fixed box constraints. The idea is to restrict the searchin an area where the optimal solutions are supposed to

    be. However, there is no reason that these box constraintscomprise all the feasible points. Thus, accpm proposesan automatic mechanism to push the bounds if the querypoint gets too close to some sides of the box. The usercan define the movable boxes by modifying the function

    modify box.

    C. Initial bounds for the objective function

    The function modify bounds has some similarities withthe set fixed box function. If the user has some informa-tion about the lower and/or the upper bound for the objec-tive function, it is advisable to enter these values insteadof the default ones. Lower and upper bounds can often beestimated from natural bounds given in the set fixed boxfunction. Tighter bounds, if correct, are liable to improveefficiency.

    D. The data file

    The first part of the data file comprises a few lines, wherethe main characteristics of the problem (dimension, num-ber of objective components etc.) are written. This parthas exactly the same structure for every application. Theend of the file is dedicated to the specific data, that changesfrom one application to another and can even be empty ifno specific data are required.

    E. The parameter file

    accpm can be applied to solve various convex problems,but the choice of pertinent execution parameters can sub-stantially influence the overall efficiency of the method. Itis up to the user to adjust a set of execution parameters, inorder to fit his/her particular application. These param-eters can be changed directly in the parameter file. Theyare arranged into three blocks. The general parametersconcern the general behaviour of the process. The gener-ator parameters are used to tune the search of an analyticcenter. The display parameters define what is to be dis-played and/or saved (when a backup is demanded).

    For example, the user can set the maximum number ofiterations, the inner representation of the cutting planes(dense, sparse or supersparse structure), the quality of cen-tering for approximate analytic centers, etc. The complete

    description of the parameters can be found in [15].Identification of the best settings is not always obvious;

    sometimes it follows from the analysis of the preliminarytests on a set of smaller problems of the class of interest.To get a feel for it, it is recommended to vary the settingson the problems described in the next section.

    IV. Examples of applications

    The purpose of this section is to review simple examples,which are either of the form of problem (1), or can be recastinto that format.

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    5/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 5

    A. The continuous facility location problem

    The single facility location problem1 is formulated as

    min f(x) =mi=1

    wi ai x , (7)

    where a1, a2, . . . , am are m points inR2 (existing locations),

    with associated nonnegative weights w1, w2, . . . , wm, andx is the decision variable in R2 (new location). In thisexample we use the Euclidean norm, but we could use any

    p-norm, with p 1. The oracle can be defined in terms ofthe function f alone (aggregated version) or as a sum offunctions fi. In both cases the problem is unconstrained;the oracle only generates optimality cuts of the form (3).

    A.1 Simple aggregated oracle

    Let x be the current query point. The computation of thefunction value is immediate; the gradient (or subgradient)value is the two dimensional vector f(x) defined by

    =mi=1

    wi ai

    x ai x

    ,

    with the understanding that aix

    aix = 0, if x = ai. The

    value f(x) is an upper bound.

    A.2 Disaggregation of the oracle

    Letting f(x) =mi=1

    fi(x), we immediately have the func-

    tion values fi(x) = wi ai x at x, and the subgradients

    i =

    wiaixaix

    , if x = ai

    0, otherwise.

    The value f(x) =mi=1

    fi(x) is an upper bound.

    A.3 Continuous location problem with multiple facilities

    To illustrate further possible disaggregations, we con-sider the multiple facility version of the preceding loca-tion problem. In this problem, q new facilities must beinstalled at locations x1, . . . , xq. The objective functionhas two parts: the first one relates each facility to theclients located at ai, i = 1, . . . , m, and the second one

    takes into account the distances between facilities. Lettingx = (x1, . . . , xq) R

    2q, we have

    min f(x) =

    qk=1

    mi=1

    fik(xk) +

    q1k=1

    ql=k+1

    gkl(xk, xl). (8)

    with fik(xk) = wik ai xk , gkl(xk, xl) = vkl xk xl , wik > 0, vkl > 0.

    Each component of (8) gives rise to four possible disag-gregations. For instance, one can either consider the qm

    1see J.E. Beasley OR-notes [2] for a tutorial on this problem.

    elementary functions fik(xk), or the q functionsmi=1

    fik(xk)

    or the m functionsq

    k=1

    fik(xk), or the single aggregated

    functionmi=1

    qk=1

    fik(xk). Similarly, with the other compo-

    nent we can achieve various levels of disaggregation. Thereader is encouraged to extend the implementation of thesingle facility location with various levels of disaggregation.

    B. Constrained nonlinear programming

    Smooth nonlinear programming is not a natural candi-date for a cutting plane method. However, we treat thiscase for its illustrative merit. A simple example is the con-strained quadratic optimization problem:

    (QP) min (x1 1)2 + (x2 3)2

    s.t. (x1 1)2 + (x2 1)2 4,

    (x1 + 1)2 + (x2 + 1)

    2 4,

    4x1 + 2x2 1.

    (9)

    The oracle generates feasibility and optimality cuts, thegradients are easy to compute, and the objective functioncan be disaggregated. We detail the approaches with andwithout disaggregation.

    B.1 Simple oracle for QP

    Let x = (x1, x2) be the query point at current iteration.

    If x is feasible, an optimality cut of the form (3) isconstructed with f(x) = (x1 1)

    2 + (x2 3)2, and =

    2(x11)2(x23)

    . Moreover, f(x) is a new upper bound for the

    optimum. If x is infeasible, a cutting plane of form (2) is con-structed for each violated constraint. For example, if(x1 1)

    2 + (x2 1)2 > 4, the first constraint is vio-

    lated, and the corresponding cutting plane is defined by

    0 = (x1 1)2 + (x2 1)2 4, and =

    2(x11)2(x21)

    .

    B.2 Disaggregated oracle for QP

    Since the objective function is separable, optimality cutscan be disaggregated into one cut for each component ofthe objective.

    Let f1(x) = (x1 1)2 and f2(x) = (x2 3)

    2, so thatf(x) = f1(x) + f2(x).

    When called at a feasible query point x = (x1, x2),the oracle generates two distinct optimality cuts. withfunction values f1(x) and f2(x), and orthogonal gradients

    1 =

    2(x11)0

    and 2 =

    0

    2(x21)

    .

    When called at an unfeasible query point, the oracle re-turns the same feasibility cut as in the aggregated version

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    6/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 6

    B.3 A few comments about disaggregation

    For this simple quadratic problem, we observed that us-ing a disaggregated oracle significantly reduces the numberof iterations. But is it always profitable to introduce mul-tiple cuts simultaneously? A few theoretical results existabout this question. As shown in [8] and [16], the com-plexity estimate of the scheme is multiplied by the number

    of simultaneous cut. Recovering a feasible solution afteradding several cutting planes is also an important issue ititself. However, from a practical point of view, it is advis-able to exploit the particular problem structure (separabil-ity, special matrix structures). The benefits of disaggrega-tion vary a lot from one application to another, and cannotbe estimated in a global way. Moreover, the example of thefacility location problem shows that many possibilities ofdisaggregation arise. Hence, the users knowledge of theapplication or the particular data set appears to be thecornerstone of an efficient implementation.

    C. The cutting stock problem

    The following problem is a simple example of a cuttingplane (or dually, column) generation technique to handlerelaxation of an integer programming problem. We brieflyrecall the definition of the cutting stock problem (see [3] fora detailed example). Rolls of raw material are purchased ina standard size L and sold to customers in smaller rolls ofcommercial sizes. The commercial sizes are li, i = 1, . . . , n,and the corresponding demand for size i is the integer di.

    A cutting pattern is a particular way of cutting the fac-tory roll. It is an nonnegative integer vector a with theproperty that ai, li L. Assume that we can enumer-ate all feasible patterns aj , j = 1, . . . , p, and let A be thematrix (a1, . . . , ap). The cutting stock problem consists in

    minimizing number of factory rolls that are used to meetthe demand for each commercial size. It can be formulatedas the integer problem:

    minpj=1

    j

    s.t. A d,

    N,

    (10)

    where j , j = 1, . . . , p is the number of factory rolls thatare cut according to pattern j.

    There are two sources of difficulties in solving (10). First is an integer vector. To help solving this combinatorialproblem, one may use the dual problem of the linear relax-ation of (10):

    min d, x

    s.t. ATx 1,

    x 0.

    (11)

    The linear program (11) gives a lower bound for the optimal

    solution, which possibly can be used in a branch-and-boundscheme.

    The second difficulty is the number of variables in (10),or, equivalently, the number of constraints in (11). Thisnumber is exponential in the problem dimension, and forpractical instances the matrix A cannot be given in explicitform. However, letting X be the set {x 0 | ATx 1} wesee that the dual problem (11) takes the form min{d, x |x X}, which is precisely (1).

    The oracle tests whether the query point x belongs toX. The answer is positive if for any pattern aj , one hasaj , x 1. One must solve the auxiliary knapsack problem

    max a, x

    s.t. a, l L,

    a Nn.

    (12)

    There exists various algorithms to solve (12). In our

    implementation, we used the method described in [1].Let a denote an optimal solution of (12). If a, x 1,

    then x is feasible and the oracle constructs an optimalitycut with f(x) = d, x and = d. Note that the op-timality cuts all share the same gradient d. The valued, x is an upper bound for (11).

    If a, x > 1, then a is infeasible. The oracle generates afeasibility cut with 0 = a, x 1 and = a.

    D. Variational inequalities

    The variational inequality problem is a very general for-mulation that embraces different domains of operations re-search: convex optimization, fixed points or complementar-ity problems. Variational inequalities have been originallystudied in the context of partial differential equations, butsoon appeared to be the most popular mathematical rep-resentation of equilibrium. We first formulate a cuttingplane approach to solve variational inequalities, and givean example of an economic application.

    D.1 Cutting plane framework for variational inequalities

    Let H(x) be a multi-valued monotone operator definedon a compact convex set Q Rn. The strong formulationof the variational inequality problem is

    find x Q and h

    H(x) : h

    , x x 0, x Q.(13)

    The strong formulation raises issues about existence of so-lutions and computational schemes. Thus, we rather usethe weak formulation

    find x Q : hx, x x 0, x Q, hx H(x). (14)

    The two formulations are closely related, in particular anystrong solution is a weak solution (see [11] and [12] for moredetails).

    Problem (14) can be transformed into a convex nondiffer-entiable optimization problem. To see that, we introduce

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    7/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 7

    the so-called gap function:

    (x) = maxu

    {hu, x u | u Q, hu H(u)}. (15)

    This function is convex and continuous, but nondifferen-tiable. Let Xw be the set of solutions for the weak for-mulation. Clearly, (x) 0, and (x) = 0 if and only ifx Xw.

    Unfortunately, computing (x) amounts to finding theglobal minimum of a non convex problem, a task that mayturn out to be more difficult than solving problem (14). Afortiori, one cannot compute a subgradient of . However,one can easily construct a separating plane in the horizontalspace x. Indeed, given x = x Q and hx H(x), the cuthx, x x 0, x Q defines a subset of Q containing thesolution set Xw. This property is sufficient to implementour cutting plane scheme.

    D.2 Candidate solutions and stopping criteria

    Since the dual gap function cannot be computed, there isno practical stopping criterion based on (14) or (15). How-

    ever, formulation (13) yields an implementable criterion.Indeed, suppose we are given a candidate solution x, wesolve the problem

    max{hx, x x | x Q}, (16)

    for some hx H(x). If the optimal value of (16) is lessthan , we then have an -strong solution.

    It is tempting to use the last iterate in the cutting planescheme as a candidate solution. This choice may turn outto be poor as shown in a simple example in [14]. Following[14], we suggest to use a weighted average of the past iter-

    ates: at iteration k, we define xk = 1

    P

    k1

    i=0i

    k1i=0 ixi,

    with i = 1hi,xkxi . The i are thus the inverse of theslacks of the cutting planes, evaluated at the last iteratexk. This choice has been proved to enforce convergence ina slightly modified version of accpm [14]. It is also shownin [13] that the quality of the analytic center approximationinfluences the overall precision of the method. Therefore,it might be wise in a practical implementation to be moredemanding on the computation of the analytic centers.

    D.3 A Walrasian price equilibrium problem

    We illustrate the concept of variational inequalities withthe resolution of a Walrasian price equilibrium problem.The example is taken from Nagurney [12] [18].

    We consider a pure exchange economy with l commodi-ties, the decision variable is a price vector p1, . . . , pl Rl+.Let z(p) denote the aggregate excess demand z(p) =z1(p), . . . , zl(p). The objective is to establish a Walrasianequilibrium by fixing the price vector p.

    Definition IV.1: A price vector p is a Walrasian equi-librium vector if z(p) 0.

    We make the following assumptions on the excess de-mand z :1. z is defined in a subcone C of Rl+, so that the excessdemand may become unbounded when the price of a certaincommodity vanishes.

    2. z(p) is homogeneous of degree zero in p on C, that isz(p) = z(p) for all p C, > 0. Hence, the prices pcan be normalized so that they take values in the simplex

    Sl =

    p : p Rl+,

    lj=1

    pj = 1

    . Therefore we restrict z to

    D, the intersection of Sl with C.3. z(p) : D Rl is continuous and satisfies the Walras

    law: z(p), p = 0, p D.The following theorem states the equivalence between

    Walrasian equilibrium and the solution of a variationalinequality.

    Theorem IV.2: (Theorem 7.1 of [12]) A price vector p D is a Walrasian equilibrium if and only if it satisfies thevariational inequality

    z(p), p p 0, p Sl (17)The aggregate excess demand functions are assumed de-

    rived from Cobb-Douglas utility functions and are of theform:

    zj(p) =mi=1

    pTWi

    lk=1

    aik

    aij

    pj

    mi=1

    wij , j = 1, . . . , l .

    A and W are m l matrices representing the preferencesand initial endowments of the consumers for each commod-ity. The data can be found in [12].

    D.4 The oracle

    The oracle for variational inequalities performs the fol-lowing operations:

    It checks whether a solution has been found: the excessdemand is computed for every commodity. If it is nonpos-itive, a stopping signal is given out. As soon as feasibilityis detected, variable type is set to value -1 and returned tothe coordinator. It computes the candidate solution from the currentquery point and the list of previous query points. Thiscomputation requires the complete historical acocunt of theprocess to be recorded. From Theorem 7.3 of [12], solving (17) is equivalent tofind a price p such that

    z(p), p p 0, p D .

    This inequality just yields a feasibility cut, with gradientz(p).

    In such an oracle, calculating the gradient is not an obvioustask. On the contrary, once calculated, implementing astopping test based on this gradient is trivial.

    V. How to get ACCPM?

    accpm is free for any academic purposes. The library(for Linux, Solaris or Windows NT/9x), the full tutorialand the examples can be downloaded from the Logilab web-site: http://ecolu-info.unige.ch/logilab/software.

  • 7/30/2019 A brief tutorial on ACCPM.pdf

    8/8

    ORP3 2001, PARIS, SEPTEMBER 26-29. 8

    References

    [1] R. Ahuja, T. Magnanti and J. Orlin, Network flows: theory,algorithms and applications, Prentice Hall, 1993.

    [2] J. E. Beasley, OR-notes, facility location,http://mscmga.ms.ic.ac.uk/jeb/or/facloc.html

    [3] V. Chvatal, Linear programming, Freeman, 1983.[4] O. du Merle, Interior points and cutting planes: development

    and implementation of methods for convex optimization and largescale structured linear programming, Ph.D Thesis, University ofGeneva, 1995.

    [5] J.L Goffin, A. Haurie and J.Ph. Vial, Decomposition and non-differentiable optimization with the projective algorithm, Man-agement Science, 37, 284302, 1992.

    [6] J.L. Goffin and J.Ph. Vial, Interior point methods for nondif-ferentiable optimization, in P. Kishka et al., editor, operationsresearch proceedings, pp. 35-49, Springer Verlag, Berlin, Heidel-berg, New York, 1997.

    [7] J.L. Goffin and J.Ph. Vial, Convex nondifferentiable opti-mization: a survey focussed on the analytic center cutting planemethod, Technical Report 99.02, HEC/Logilab, University ofGeneva, Switzerland, 1999.

    [8] J.L Goffin and J.Ph. Vial. Multiple cuts in the analytic cen-ter cutting plane method, SIAM Journal on Optimization 11,pp 26-6-288, (2000).

    [9] J. Gondzio and O. du Merle, Analytic center cutting planemethod - Users guide for the library, Technical Report 1995.33,HEC/Logilab, University of Geneva, Switzerland, 1995.

    [10] J. Gondzio, O. du Merle, R. Sarkissian and J.Ph. Vial, AC-CPM - A library for convex optimization based on an analyticcenter cutting plane method, European Journal of OperationalResearch, 94 206211, 1996.

    [11] C. Lemarechal, A. Nemirovskii and Yu. Nesterov, New variantsof bundle methods, Mathematical Programming 69, 111147,1995.

    [12] A. Nagurney, Network economics, a variational inequality ap-proach, Kluwer academic publishers, 1993.

    [13] Yu. Nesterov, O. Peton and J.Ph. Vial, Homogeneous ana-lytic center cutting plane methods with approximate centers,Optimization Methods and Software, 11/12, 243273, 1999.

    [14] Yu. Nesterov and J.Ph. Vial, Homogeneous analytic centercutting plane methods for convex problems and variational in-equalities, SIAM Journal on Optimization 9, 707-728, 1999.

    [15] O. Peton and J.Ph. Vial, A tutorial on ACCPM - Users guidefor version 2.01., Technical report 2000.05, HEC/Logilab, Uni-versity of Geneva, Switzerland, 2000.

    [16] O. Peton and J.Ph. Vial. Multiple cuts with a homogeneousanalytic center cutting plane method, Technical report 2001.03,HEC/Logilab, University of Geneva, Switzerland, 2001.

    [17] R. Sarkissian, Telecommunications networks: routing and sur-vivability optimization using a central cutting plane method,

    PhD thesis, Ecole Polytechnique Federale de Lausanne, 1997.[18] L. Zhao and A. Nagurney, A network formalism for pure ex-

    change economic equilibria, School of Management, Universityof Massachussets, Amherst, Massachussets, 1991.