A brief tutorial on ACCPM - CiteSeerX

3 downloads 203 Views 216KB Size Report
Abstract— The aim of this tutorial is to help users to for- mulate and ..... ai−¯x. = 0, if ¯x = ai. The value f(¯x) is an upper bound. A.2 Disaggregation of the oracle.
ORP3 2001, PARIS, SEPTEMBER 26-29.

1

A brief tutorial on ACCPM Olivier P´eton, Jean–Philippe Vial Abstract— The aim of this tutorial is to help users to formulate and solve a large variety of problems through the analytic center cutting plane method. We first briefly review the class of problems that are solvable by accpm and sketch the principles that underlie accpm. We discuss the organization of accpm as a general cutting plane method, and present its three modules: the oracle, the coordinator and the query point generator. The main interface is between the oracle that is problem-dependent, and thus programmed by the user, and the last two modules whose internal functions are hidden in most part to the user. We finally present some examples of optimization problems that can be solved by accpm, directly or after some reformulation. Keywords— Convex non-differentiable optimization, cutting planes, analytic center.

Introduction

T

HIS paper is an abridged version of the complete tutorial [15] on the latest release of the Analytic Center Cutting Plane Method (accpm). This software is aimed to solve a large variety of convex problems via a cutting plane approach. The thrust of version 2.01 is the interface between the user and the cutting plane method. In this new context, the description of the problem characteristics and some execution parameters have been made more accessible to non specialist users. The release provides templates for this file in the C language, via some illustrative examples. The core of accpm 2.01 remains the same as in the earlier versions (see [9] and [10] for the user’s guide of the precedent 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 cutting plane approach to convex optimization. Section 2 gives the canonical structure underlying the new accpm interface. In section 3, we give some practical implementation issues. The last section is dedicated to some examples, which may help the user to devise his/her own applications. I. Mathematical programming framework accpm is a general purpose method to solve convex problems that can be formulated under the following general format: min{f (x) = f0 (x) +

p X

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

i=1

Assumption I.1:

4. The sets Xt ⊂ Rn , t = 1, . . . , r, are convex. The linear part f0 as well as the functions fj can be omitted. However, the convexity assumptions have to be satisfied. Non-convexity may lead to the failure of the method. Some supplementary information is required about the problem to be solved. In our framework, we isolate the information in a procedure called oracle. Thus, we add another assumption: Assumption I.2: The functions fj (x), j = 0, . . . , p, and the sets Xt , t = 1, . . . , r are described by an oracle. The numerical methods which are formulated in terms of oracle fall into a black-box concept: the only problemdedicated information is obtained through the oracle. A. The oracle The typical input of an oracle consists of a so-called query point (or test point) x ¯. The output consists of local information about the problem at the query point: objective function f (¯ x), element of the sub-differential ∂f (¯ x), or the Hessian f 00 (¯ x). The nature of this information depends on the feasibility of the query point. Given a query point x ¯ ∈ X0 , the oracle output takes one of the following forms: • Feasibility cut: A feasibility cut is a hyperplane that does not intersect the set of feasible solutions of (1). For some t ∈ 1, . . . , r, x ¯ 6∈ Xt : the oracle returns the vector (γ0 , γ) ∈ R × Rn and the feasibility cut hγ, x − x ¯i + γ0 ≤ 0, for all x ∈ Xt .

(2)

Optimality cuts: An optimality cut is a hyperplane that does not intersect the set of optimal solutions of (1). If x ¯ ∈ X is feasible, the oracle returns p function values fj (¯ x), and p subgradients γj ∈ ∂fj (¯ x), that define the valid inequalities



fj (¯ x)+hγj , x− x ¯i ≤ fj (x), for all x ∈ X, j = 1, . . . , p. (3) Observing that the function value f (¯ x) is an upper bound for the optimal soluton of (1), we can define a supplementary optimality cut: f (x) ≤ f (¯ x). B. Localization set Let (x1 , . . . , xK ) be a sequence of query points. The set K is partitioned into IK ∪ JK where IK JK

= =

{k | xk is infeasible (feasibility cut)}, {k | xk is feasible (optimality cut)}.

(4) (5)

1. The function f0 is linear. 2. The functions fj : Rn 7→ R, j = 1, . . . , p are convex. 3. The set X0 is a bounded polyhedron defined by some linear inequalities hB, xi ≤ b.

If JK 6= ∅, we define the upper bound θ¯K = min f (xk ).

Hec/Logilab, University of Geneva, 40 bd du Pont d’Arve, CH1211 Geneva 4, Switzerland, [email protected], [email protected]

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

k∈JK

ORP3 2001, PARIS, SEPTEMBER 26-29.

2

lies in Rp × Rn ; it contains the set of optimal points and is named thereafter the localization set. We denote it LK and represent it by the following inequalities: fj (xk ) + hγjk , x − xk i ≤ γ0k + hγ k , x − xk i ≤ z1 + . . . + zp ≤ hB, xi ≤

zj , j = 1, . . . , p, k ∈ JK ,(6a) 0, k ∈ IK θ¯K , b,

(6b) (6c) (6d)

The first set is made of optimality constraints (6a), which state that the point (zi , x) in the epigraph of fj lies above a supporting hyperplane of fj at xk . The constraints in the 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 constraints in the last set (6d) are fixed. They are given at the outset, and usually take the form of box constraints on the variable x.

it exists) of the problem min{−

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 oracle returns (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 a query point in LK . accpm selects the analytic center of LK , but the user may try other alternatives. Let us stress that the oracle (step 4) is totally problemdependent, while the choice of the query point (step 2) depends on the particular cutting plane method. More precisely, the user will be fully responsible of the implementation of step 4, and possibly of step 1. The other steps (2, 3 and 5) are performed automatically by the software and are beyond the scope of this tutorial. The lower and 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 choosing the query point in the localization set. To give a handy definition of the analytic center, let us use a compact representation of the localization set {y | AT y ≤ c}. The analytic center of this polyhedron is the unique solution (if

log si | s = c − AT y > 0}.

i=1

We thus make the assumption: Assumption I.3: The polyhedron {y | AT y ≤ c} is bounded and has a non-empty interior. The analytic center is also the unique solution of the nonlinear system of equations (first order optimality conditions) AT y + s Aw wi si

= c, = 0, = 1,

∀i = 1, . . . , K,

where w is the dual vector. The uniqueness of the analytic center is guaranteed by the strong convexity of the K P logarithmic barrier − log si . i=1

II. Canonical structure of the cutting plane methods

C. Generic cutting plane method Most of the cutting plane methods for convex optimization share a common structure (see the examples of center of gravity, inscribed ellipsoid, volumetric center, etc. in [17]). We sketch below the basic step of a generic cutting plane method:

K X

In the present section, we give a description of the structure that has been used in the implementation of accpm. The original accpm library [9] has been designed to be included in larger applications, and thus comprises no interface with the problem to be solved. The user has to rewrite a 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 and the oracle. The coordinator is general enough to handle a large 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 cutting plane method which computes a new query point at each iteration. • The oracle is the part of a cutting plane method which supplies the query point generator with new cutting plane(s) at each iteration. • The coordinator is the part of a cutting plane method which links the generator with the oracle, and controls the process convergence. •

Initialization

query point lower bound

query point

ORACLE

COORDINATOR cutting plane(s) in user’s format upper bound

QUERY POINT GENERATOR cutting plane(s) in ACCPM format upper bound

Print results and statistics

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.

ORP3 2001, PARIS, SEPTEMBER 26-29.

A. The coordinator The coordinator is the backbone of the cutting plane process. By calling the oracle or the generator, collecting output data and changing their format, the coordinator plays the role of an intermediate between the other two modules. 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 starts with a Phase I, whose objective is to find a feasible point by minimizing the constraints violation. The constraints of the original problem are omitted, and the objective function is replaced by a convex indicator function h(¯ x) which is 0 for any feasible query point x ¯, and positive otherwise. Note that solving this new formulation with accpm generates optimality cuts. The phase stops as soon as a feasible solution is found. If the initial point is feasible, Phase I is skipped. Phase II Once a feasible point is found, accpm initializes the lower and upper bounds, turns the optimality cuts of Phase I into feasibility cuts, and goes on until an optimal solution is found. For pure feasibility problems, there is no Phase II. Note that both feasible and unfeasible iterates can be encountered 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 data file (problem dimension, number of cuts, number of components in the objective function...) and allocates memory for the data structures. 2. Control of the convergence: At each iteration, a duality gap is computed from the lower and upper bounds. The program stops as soon as this gap satisfies a stopping criterion defined in the data file. 3. Historical account of the process: Some applications can be handled by accpm only if the complete sequence of query points is kept in memory. Moreover, for other applications, a historical acocunt of the process may provide useful information when the user wants to tune the execution parameters properly or retrieve some intermediate solutions. Thus, the complete process has to be recorded on user’s request. 4. Time calculation: The coordinator calculates the time spent in the oracle and in the generator. These two modules concentrate almost all the 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 oracle with a new candidate solution at each iteration. accpm

3

chooses as a query point an approximate analytic center of the current localization set. Only minor changes in this module have been performed in version 2.01. One important issue is that the user has no need to know the internal mechanism of the generator. Only a few execution parameters are to be defined; they have been all made accessible in a separate file. The generator receives two distinct inputs from the coordinator: an upper bound for the objective function and a collection of new cutting planes (feasibility or optimality cuts). The generator updates the localization set with these new cuts, and returns three outputs: • an approximation of the analytic center of the new localization set, • a lower bound for the objective, • the dual variables. C. The oracle The oracle takes the current query point as an input and returns one or several cutting planes to the coordinator. The cutting planes can be either feasibility or optimality cuts, but not both simultaneously. Recall that the oracle is the only module that contains some problem-dedicated information. Thus, only this module has to be partially rewritten by the user. Version 2.01 comprises a few differences with the previous one: • The oracle per se is one single function. However, the file containing the oracle function also contains some additional functions that may be changed by the user (see next section). • In the oracle, the user is only asked to give a natural description of the cutting planes (function value, gradient or subgradient, upper bound, type of cut). The cuts are generated one by one, and transformed into the appropriate format by a special function called CPM build cut. This function creates a new cut and appends it to a data structure called Newcut, which contains all the cuts generated at the current iteration. The structure is unchanged compared to the former accpm library. For more details about it, see [9]. The oracle returns a pointer to Newcut. • The function headers in the oracle file cannot be modified by the user. In most cases, the present variables suffice to formulate a large variety of oracles. Most often, some of them are even not used. However, some non-classical applications may require supplementary inputs. To compensate the drawbacks of this rigid structure and handle as many cases as possible, a special structure, called my variables is introduced. It is intended to include any variable of interest and can be modified for convenience by the user. • After the initialization, the process always begins with an oracle call. This allows the user to include some preprocessing, supplementary initialization operations, or to introduce some special cutting planes at the first oracle call. • An additional feature of the oracle is to produce a stopping signal, which is characterized by an artificial cut type, denoted -1. This turns out to be useful for the user to

ORP3 2001, PARIS, SEPTEMBER 26-29.

implement new stopping criteria within the oracle code. III. Important implementation issues The user’s work is limited to the following files: the oracle.C or oracle.cpp file, containing all the functions 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 structure is predefined as empty), • the data file, a text file containing the application’s main characteristics, and some specific data, • the parameter file, a text file containing the list of changeable execution parameters for accpm. •

A. The CPM oracle function This is the main function in file oracle.C (or oracle.cpp). It returns the cutting plane(s) by the way of a pointer to the structure Newcut. The main variables that define a particular cutting plane are f (value of the objective function, or value of the violated constraint), and gradient ((sub)gradient of the objective/constraint function at the query point). Since the oracle generates either optimality or feasibility cuts, one variable type is sufficient to describe the whole set of cuts. It has one of the three following values: 0 for feasibility cuts, 1 for optimality cuts, and -1 to transmit a stopping signal to the coordinator.

4

be. However, there is no reason that these box constraints comprise all the feasible points. Thus, accpm proposes an automatic mechanism to push the bounds if the query point gets too close to some sides of the box. The user can define the movable boxes by modifying the function modify box. C. Initial bounds for the objective function The function modify bounds has some similarities with the set fixed box function. If the user has some information about the lower and/or the upper bound for the objective function, it is advisable to enter these values instead of the default ones. Lower and upper bounds can often be estimated from natural bounds given in the set fixed box function. Tighter bounds, if correct, are liable to improve efficiency. D. The data file The first part of the data file comprises a few lines, where the main characteristics of the problem (dimension, number of objective components etc.) are written. This part has exactly the same structure for every application. The end of the file is dedicated to the specific data, that changes from one application to another and can even be empty if no specific data are required.

B. The box constraints The boundedness of the localization set is guaranteed if X0 is bounded. Since X0 is the whole space in some applications, the implementation assumes the existence of box constraints 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 to model simple constraints on variables. For example, if some variable has to be positive, we set the corresponding fixed lower bound to 0. Hence, the natural box constraints define an outer approximation of the feasible domain. When no natural bounds are available from the context, accpm uses some large default values. The fixed box constraints can also be used in the detection of unbounded problems. In this case, the sides do not behave like constraints but like a threshold. If some query point approaches one of the box sides, the problem is declared unbounded. A 0/1 variable is associated with each box side to characterize it as a classical constraint or as a threshold for detection of unbounded problems. The user can define the fixed boxes by modifying the function set fixed box. For each dimension, the user has to fix minimum and maximum values of the decision variables. • The movable box constraints are dictated by the user’s knowledge and experience of the problem. They define the limits of the localization set, and are included into the fixed box constraints. The idea is to restrict the search in an area where the optimal solutions are supposed to

E. The parameter file accpm can be applied to solve various convex problems, but the choice of pertinent execution parameters can substantially influence the overall efficiency of the method. It is up to the user to adjust a set of execution parameters, in order to fit his/her particular application. These parameters can be changed directly in the parameter file. They are arranged into three blocks. The general parameters concern the general behaviour of the process. The generator parameters are used to tune the search of an analytic center. The display parameters define what is to be displayed and/or saved (when a backup is demanded). For example, the user can set the maximum number of iterations, the inner representation of the cutting planes (dense, sparse or supersparse structure), the quality of centering 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 preliminary tests on a set of smaller problems of the class of interest. To get a feel for it, it is recommended to vary the settings on 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 recast into that format.

ORP3 2001, PARIS, SEPTEMBER 26-29.

5

A. The continuous facility location problem

elementary functions fik (xk ), or the q functions

The single facility location problem1 is formulated as min f (x) =

m X

or the m functions i

wi k a − x k,

(7)

i=1

q m P P

function

i=1 k=1

where a1 , a2 , . . . , am are m points in R2 (existing locations), with associated nonnegative weights w1 , w2 , . . . , wm , and x is the decision variable in R2 (new location). In this example we use the Euclidean norm, but we could use any p-norm, with p ≥ 1. The oracle can be defined in terms of the function f alone (aggregated version) or as a sum of functions fi . In both cases the problem is unconstrained; the oracle only generates optimality cuts of the form (3). A.1 Simple aggregated oracle

q P

fik (xk ), or the single aggregated

k=1

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

Smooth nonlinear programming is not a natural candidate for a cutting plane method. However, we treat this case for its illustrative merit. A simple example is the constrained quadratic optimization problem: (QP )

ai − x ¯ γ¯ = wi i , ka −x ¯k i=1

min

(x1 − 1)2 + (x2 − 3)2

s.t.

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



4,

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



4,

i

x with the understanding that kaai −¯ ¯ = ai . The −¯ xk = 0, if x value f (¯ x) is an upper bound.

i=1

The value f (¯ x) =

m P i=1

A.3 Continuous location problem with multiple facilities To illustrate further possible disaggregations, we consider the multiple facility version of the preceding location problem. In this problem, q new facilities must be installed at locations x1 , . . . , xq . The objective function has two parts: the first one relates each facility to the clients located at ai , i = 1, . . . , m, and the second one takes into account the distances between facilities. Letting x = (x1 , . . . , xq ) ∈ R2q , we have min f (x) =

q X m X k=1 i=1

fik (xk ) +

q−1 X q X

gkl (xk , xl ).

(8)

k=1 l=k+1

with fik (xk ) = wik k ai − xk k, gkl (xk , xl ) = vkl k xk − xl k , wik > 0, vkl > 0. Each component of (8) gives rise to four possible disaggregations. For instance, one can either consider the qm 1 see

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

4x1 + 2x2

(9)

≤ −1.

The oracle generates feasibility and optimality cuts, the gradients are easy to compute, and the objective function can be disaggregated. We detail the approaches with and without disaggregation. B.1 Simple oracle for QP Let x ¯ = (¯ x1 , x ¯2 ) be the query point at current iteration. If x ¯ is feasible, an optimality cut of the form (3) is constructed x) = (¯ x1 − 1)2 + (¯ x2 − 3)2 , and γ = ³ ´ with f (¯ •

2(¯ x1 −1) 2(¯ x2 −3)

fi (¯ x) is an upper bound.

fik (xk )

B. Constrained nonlinear programming

m X

tion values fi (¯ x) = wi k ai − x ¯ k at x ¯, and the subgradients   i   wi ai −x , if x ¯ 6= ai ka −xk γ¯i =    0, otherwise.

i=1

nent we can achieve various levels of disaggregation. The reader is encouraged to extend the implementation of the single facility location with various levels of disaggregation.

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

A.2 Disaggregation of the oracle m P Letting f (x) = fi (x), we immediately have the func-

m P

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

optimum. ¯ is infeasible, a cutting plane of form (2) is con• If x structed for each violated constraint. For example, if (¯ x1 − 1)2 + (¯ x2 − 1)2 > 4, the first constraint is violated, and the corresponding cutting plane by ³ is defined ´ x1 −1) γ0 = (¯ x1 − 1)2 + (¯ x2 − 1)2 − 4, and γ = 2(¯ . 2(¯ x2 −1) B.2 Disaggregated oracle for QP Since the objective function is separable, optimality cuts can be disaggregated into one cut for each component of the objective. Let f1 (¯ x) = (¯ x1 − 1)2 and f2 (¯ x) = (¯ x2 − 3)2 , so that f (x) = f1 (x) + f2 (x). When called at a feasible query point x ¯ = (¯ x1 , x ¯2 ), the oracle generates two distinct optimality cuts. with function x) and³f2 (¯ x), and ³ values ´ f1 (¯ ´ orthogonal gradients γ1 =

2(¯ x1 −1) 0

and γ2 =

0 2(¯ x2 −1)

.

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

ORP3 2001, PARIS, SEPTEMBER 26-29.

6

B.3 A few comments about disaggregation For this simple quadratic problem, we observed that using a disaggregated oracle significantly reduces the number of iterations. But is it always profitable to introduce multiple cuts simultaneously? A few theoretical results exist about this question. As shown in [8] and [16], the complexity estimate of the scheme is multiplied by the number of simultaneous cut. Recovering a feasible solution after adding several cutting planes is also an important issue it itself. However, from a practical point of view, it is advisable to exploit the particular problem structure (separability, special matrix structures). The benefits of disaggregation vary a lot from one application to another, and cannot be estimated in a global way. Moreover, the example of the facility location problem shows that many possibilities of disaggregation arise. Hence, the user’s knowledge of the application or the particular data set appears to be the cornerstone of an efficient implementation. C. The cutting stock problem The following problem is a simple example of a cutting plane (or dually, column) generation technique to handle relaxation of an integer programming problem. We briefly recall the definition of the cutting stock problem (see [3] for a detailed example). Rolls of raw material are purchased in a standard size L and sold to customers in smaller rolls of commercial 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 factory roll. It is an nonnegative integer vector a with the property that hai , li i ≤ L. Assume that we can enumerate all feasible patterns aj , j = 1, . . . , p, and let A be the matrix (a1 , . . . , ap ). The cutting stock problem consists in minimizing number of factory rolls that are used to meet the demand for each commercial size. It can be formulated as the integer problem: min

p P

σj

j=1

s.t.

Aσ ≥ d,

(10)

σ ∈ N, where σ j , j = 1, . . . , p is the number of factory rolls that are cut according to pattern j. There are two sources of difficulties in solving (10). First σ is an integer vector. To help solving this combinatorial problem, one may use the dual problem of the linear relaxation of (10):

max ha, x ¯i s.t. ha, li ≤ L,

(12)

a ∈ Nn . 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 h¯ a, x ¯i ≤ 1, then x ¯ is feasible and the oracle constructs an optimality cut with f (¯ x) = −hd, x ¯i and γ = −d. Note that the optimality cuts all share the same gradient −d. The value −hd, x ¯i is an upper bound for (11). If h¯ a, x ¯i > 1, then a ¯ is infeasible. The oracle generates a feasibility cut with γ0 = h¯ a, x ¯i − 1 and γ = a ¯. D. Variational inequalities The variational inequality problem is a very general formulation that embraces different domains of operations research: convex optimization, fixed points or complementarity problems. Variational inequalities have been originally studied in the context of partial differential equations, but soon appeared to be the most popular mathematical representation of equilibrium. We first formulate a cutting plane approach to solve variational inequalities, and give an example of an economic application. D.1 Cutting plane framework for variational inequalities Let H(x) be a multi-valued monotone operator defined on a compact convex set Q ⊂ Rn . The strong formulation of the variational inequality problem is find x∗ ∈ Q and h∗ ∈ H(x∗ ) : hh∗ , x∗ − xi ≤ 0, ∀x ∈ Q. (13) The strong formulation raises issues about existence of solutions and computational schemes. Thus, we rather use the weak formulation find x∗ ∈ Q : hhx , x∗ − xi ≤ 0, ∀x ∈ Q, hx ∈ H(x). (14)

min −hd, xi s.t. AT x ≤ 1,

solution, which possibly can be used in a branch-and-bound scheme. The second difficulty is the number of variables in (10), or, equivalently, the number of constraints in (11). This number is exponential in the problem dimension, and for practical instances the matrix A cannot be given in explicit form. However, letting X be the set {x ≥ 0 | AT x ≤ 1} we see that the dual problem (11) takes the form min{h−d, xi | x ∈ X}, which is precisely (1). The oracle tests whether the query point x ¯ belongs to X. The answer is positive if for any pattern aj , one has haj , x ¯i ≤ 1. One must solve the auxiliary knapsack problem

(11)

x ≥ 0. The linear program (11) gives a lower bound for the optimal

The two formulations are closely related, in particular any strong solution is a weak solution (see [11] and [12] for more details). Problem (14) can be transformed into a convex nondifferentiable optimization problem. To see that, we introduce

ORP3 2001, PARIS, SEPTEMBER 26-29.

7

the so-called gap function: ϕ(x) = max{hhu , x − ui | u ∈ Q, hu ∈ H(u)}. u

(15)

This function is convex and continuous, but nondifferentiable. Let Xw∗ be the set of solutions for the weak formulation. Clearly, ϕ(x) ≥ 0, and ϕ(x) = 0 if and only if x ∈ Xw∗ . Unfortunately, computing −ϕ(x) amounts to finding the global minimum of a non convex problem, a task that may turn out to be more difficult than solving problem (14). A fortiori, one cannot compute a subgradient of ϕ. However, one can easily construct a separating plane in the horizontal space x. Indeed, given x = x ¯ ∈ Q and hx¯ ∈ H(¯ x), the cut hhx¯ , x − x ¯i ≤ 0, x ∈ Q defines a subset of Q containing the ∗ solution set Xw . This property is sufficient to implement our cutting plane scheme. D.2 Candidate solutions and stopping criteria Since the dual gap function cannot be computed, there is no practical stopping criterion based on (14) or (15). However, formulation (13) yields an implementable criterion. Indeed, suppose we are given a candidate solution x ¯, we solve the problem max{hhx¯ , x ¯ − xi | x ∈ Q},

j=1

D, the intersection of S l with C. 3. z(p) : D 7→ Rl is continuous and satisfies the Walras law: hz(p), pi = 0, ∀p ∈ D. The following theorem states the equivalence between Walrasian equilibrium and the solution of a variational inequality. Theorem IV.2: (Theorem 7.1 of [12]) A price vector p∗ ∈ D is a Walrasian equilibrium if and only if it satisfies the variational inequality hz(p∗ ), p − p∗ i ≤ 0, ∀p ∈ S l (17) The aggregate excess demand functions are assumed derived from Cobb-Douglas utility functions and are of the form: Ã ! m m X X pT W i aij zj (p) = − wji , ∀j = 1, . . . , l. l P p j i i=1 i=1 ak k=1

(16)

for some hx¯ ∈ H(¯ x). If the optimal value of (16) is less than ², we then have an ²-strong solution. It is tempting to use the last iterate in the cutting plane scheme as a candidate solution. This choice may turn out to be poor as shown in a simple example in [14]. Following [14], we suggest to use a weighted average of the ´ Ppast iter³ k−1 1 ates: at iteration k, we define x ¯k = Pk−1 µ i=0 µi xi , i=0

2. z(p) is homogeneous of degree zero in p on C, that is z(αp) = z(p) for all p ∈ C, α > 0. Hence, the prices p can be(normalized so that they ) take values in the simplex l P S l = p : p ∈ Rl+ , pj = 1 . Therefore we restrict z to

i

with µi = hhi ,x1k −xi i . The µi are thus the inverse of the slacks of the cutting planes, evaluated at the last iterate xk . This choice has been proved to enforce convergence in a slightly modified version of accpm [14]. It is also shown in [13] that the quality of the analytic center approximation influences the overall precision of the method. Therefore, it might be wise in a practical implementation to be more demanding on the computation of the analytic centers. D.3 A Walrasian price equilibrium problem We illustrate the concept of variational inequalities with the resolution of a Walrasian price equilibrium problem. The example is taken from Nagurney [12] [18]. We consider a pure exchange economy with l commodities, 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 Walrasian equilibrium by fixing the price vector p. Definition IV.1: A price vector p∗ is a Walrasian equilibrium vector if z(p∗ ) ≤ 0. We make the following assumptions on the excess demand z : 1. z is defined in a subcone C of Rl+ , so that the excess demand may become unbounded when the price of a certain commodity vanishes.

A and W are m × l matrices representing the preferences and initial endowments of the consumers for each commodity. The data can be found in [12]. D.4 The oracle The oracle for variational inequalities performs the following operations: • It checks whether a solution has been found: the excess demand is computed for every commodity. If it is nonpositive, a stopping signal is given out. As soon as feasibility is detected, variable type is set to value -1 and returned to the coordinator. • It computes the candidate solution from the current query point and the list of previous query points. This computation requires the complete historical acocunt of the process to be recorded. • ¿From Theorem 7.3 of [12], solving (17) is equivalent to find a price p∗ such that hz(p), p − p∗ i ≤ 0, ∀p ∈ D. This inequality just yields a feasibility cut, with gradient z(p). In such an oracle, calculating the gradient is not an obvious task. On the contrary, once calculated, implementing a stopping 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 tutorial and the examples can be downloaded from the Logilab website: http://ecolu-info.unige.ch/logilab/software.

ORP3 2001, PARIS, SEPTEMBER 26-29.

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. Chv` atal, “Linear programming”, Freeman, 1983. [4] O. du Merle, “Interior points and cutting planes: development and implementation of methods for convex optimization and large scale structured linear programming”, Ph.D Thesis, University of Geneva, 1995. [5] J.–L Goffin, A. Haurie and J.–Ph. Vial, “Decomposition and nondifferentiable optimization with the projective algorithm”, Management Science, 37, 284–302, 1992. [6] J.–L. Goffin and J.–Ph. Vial, “Interior point methods for nondifferentiable optimization”, in P. Kishka et al., editor, operations research proceedings, pp. 35-49, Springer Verlag, Berlin, Heidelberg, New York, 1997. [7] J.–L. Goffin and J.–Ph. Vial, “Convex nondifferentiable optimization: a survey focussed on the analytic center cutting plane method”, Technical Report 99.02, HEC/Logilab, University of Geneva, Switzerland, 1999. [8] J.–L Goffin and J.–Ph. Vial. “Multiple cuts in the analytic center cutting plane method”, SIAM Journal on Optimization 11, pp 26-6-288, (2000). [9] J. Gondzio and O. du Merle, “Analytic center cutting plane method - User’s 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, “ACCPM - A library for convex optimization based on an analytic center cutting plane method”, European Journal of Operational Research, 94 206–211, 1996. echal, A. Nemirovskii and Yu. Nesterov, “New variants [11] C. Lemar´ of bundle methods”, Mathematical Programming 69, 111–147, 1995. [12] A. Nagurney, “Network economics, a variational inequality approach”, Kluwer academic publishers, 1993. [13] Yu. Nesterov, O. P´ eton and J.–Ph. Vial, “Homogeneous analytic center cutting plane methods with approximate centers”, Optimization Methods and Software, 11/12, 243–273, 1999. [14] Yu. Nesterov and J.–Ph. Vial, “Homogeneous analytic center cutting plane methods for convex problems and variational inequalities”, SIAM Journal on Optimization 9, 707-728, 1999. [15] O. P´ eton and J.–Ph. Vial, “A tutorial on ACCPM - User’s guide for version 2.01.”, Technical report 2000.05, HEC/Logilab, University of Geneva, Switzerland, 2000. [16] O. P´ eton and J.–Ph. Vial. “Multiple cuts with a homogeneous analytic center cutting plane method”, Technical report 2001.03, HEC/Logilab, University of Geneva, Switzerland, 2001. [17] R. Sarkissian, “Telecommunications networks: routing and survivability optimization using a central cutting plane method”, ´ PhD thesis, Ecole Polytechnique F´ ed´ erale de Lausanne, 1997. [18] L. Zhao and A. Nagurney, “A network formalism for pure exchange economic equilibria”, School of Management, University of Massachussets, Amherst, Massachussets, 1991.

8