Integer Programming Models Fabio Furini December 10, 2014 Integer Programming Models 1
Outline 1 Combinatorial Auctions 2 The Lockbox Problem 3 Constructing an Index Fund Integer Programming Models 2
Integer Programming Models Constructing financial models Integer Programming Models 3
Combinatorial Auctions An auction is a process of buying and selling goods or services by offering them up for bid, taking bids, and then selling the item to the highest bidder. In economic theory, an auction may refer to any mechanism or set of trading rules for exchange. the value that a bidder has for a set of items may not be the sum of the values that he has for individual items Examples are equity trading, electricity markets, pollution right auctions and auctions for airport landing slots. To take this into account, combinatorial auctions allow the bidders to submit bids on combinations of items. Integer Programming Models 4
Combinatorial Auctions Problem data: let M = {1, 2,..., m} be the set of items that the auctioneer has to sell a bid is a pair B j = (S j, p j ) where S j M is a nonempty set of items and p j is the price offer for this set Suppose that the auctioneer has received n bids B1, B2,..., B n How should the auctioneer determine the winners in order to maximize his revenue? Integer Programming Models 5
Combinatorial Auctions The auctioneer maximizes his revenue by solving the integer program: x j = { 1 if bid Bj wins 0 otherwise max n p j x j (1) j=1 j:i S j x j 1 i = 1,..., m (2) x j {0, 1} j = 1,..., n (3) The constraints impose that each item i is sold at most once. Integer Programming Models 6
Combinatorial Auctions For example, if there are four items for sale and the following bids have been received: B 1 = ({1}, 6) B 2 = ({2}, 3) B 3 = ({3, 4}, 12) B 4 = ({1, 3}, 12) B 5 = ({2, 4}, 8) B 6 = ({1, 3, 4}, 16) The winners can be determined by the following integer program: max 6x 1 + 3x 2 + 12x 3 + 12x 4 + 8x 5 + 16x 6 (4) x 1 + x 4 + x 6 1 (5) x 2 + x 5 1 (6) x 3 + x 4 + x 6 1 (7) x 3 + x 5 + x 6 1 (8) x j {0, 1} j = 1,..., 6 (9) Integer Programming Models 7
The Lockbox Problem Consider a national firm that receives checks from all over the United States. Due to the vagaries of the U.S. Postal Service, as well as the banking system, there is a variable delay from when the check is postmarked and when the check clears For instance, a check mailed in Pittsburgh sent to a Pittsburgh address might clear in just 2 days. A similar check sent to Los Angeles might take 4 days to clear. In order to speed up this clearing, firms open offices (called lockboxes) in different cities to handle the checks. Which lockboxes should we open? Integer Programming Models 8
The Lockbox Problem We receive payments from 4 regions (West, Mid-west, East, and South) The average daily value from each region is as follows: 300,000 from the West 120,000 from the Midwest 360,000 from the East 180,000 from the South We are considering opening lock- boxes in (and/or): L.A. Cincinnati Boston Houston Operating a lockbox costs 90,000 per year. Integer Programming Models 9
The Lockbox Problem The average days from mailing to clearing is given in the table: From To L.A. Cincinnati Boston Houston West 2 4 6 6 Midwest 4 2 5 5 East 6 5 2 5 South 7 5 6 3 Table: Average days from mailing to clearing First we must calculate the losses due to lost interest for each possible assignment. For example, if the West sends to Boston, then on average there will be 1,800,000 (= 6 300, 000) in process on any given day. Assuming an investment rate of 10%, this corresponds to a yearly loss of 180,000. Integer Programming Models 10
The Lockbox Problem We can calculate the losses for the other possibilities in a similar fashion to get the table: From To L.A. Cincinnati Boston Houston West 60 120 180 180 Midwest 48 24 60 60 East 216 180 72 180 South 126 90 108 54 Table: losses Integer Programming Models 11
The Lockbox Problem n = number of lockboxes (j = 1,..., n) m = number of regions (i = 1,..., m) α ij = annual cost of assigning region i to the lockbox j β j = annual cost of lockbox j { 1 if lockbox j is opened y j = 0 otherwise { 1 if region i sends to lockbox j x ij = 0 otherwise Integer Programming Models 12
The Lockbox Problem n m n min α ij x ij + β j y j j=1 i=1 j=1 n x ij = 1 j=1 m x j my j i=1 x ij {0, 1} y j {0, 1} i = 1,..., m j = 1,..., n i = 1,..., m, j = 1,..., n j = 1,..., n Integer Programming Models 13
The Lockbox Problem min 60x 11 + 120x 12 + 180x 13 + 180x 14 +48x 21 + 24x 22 + 60x 23 + 60x 24 +216x 31 + 180x 32 + 72x 33 + 180x 34 +126x 41 + 90x 42 + 108x 43 + 54x 44 +90y 1 + 90y 2 + 90y 3 + 90y 4 x 11 + x 12 + x 13 + x 14 = 1 x 21 + x 22 + x 23 + x 24 = 1 x 31 + x 32 + x 33 + x 34 = 1 x 41 + x 42 + x 43 + x 44 = 1 x 11 + x 21 + x 31 + x 41 4y 1 0 x 12 + x 22 + x 32 + x 42 4y 2 0 x 13 + x 23 + x 33 + x 43 4y 3 0 x 14 + x 24 + x 34 + x 44 4y 4 0 x ij {0, 1} i = 1,..., 4, j = 1,..., 4 y j {0, 1} j = 1,..., 4 Integer Programming Models 14
The Lockbox Problem The above is a correct 01 programming formulation of the lockbox problem. There are other formulations, however. For instance, consider the sixteen constraints of the form: x ij y j i = 1,..., m, j = 1,..., n (10) Different formulations can have very different properties with respect to their associated linear program. One very active research area is to take common problems and find good reformulations. Integer Programming Models 15
Constructing an Index Fund Different possibilities of portfolio management: active portfolio management tries to achieve superior performance by using forecasting techniques passive portfolio management avoids any forecasting techniques and rather relies on diversification to achieve a desired performance There are 2 types of passive management strategies: buy and hold: assets are selected on the basis of some fundamental criteria and there is no active selling or buying of these stocks afterwards indexing: the goal is to choose a portfolio that mirrors the movements of a broad market population or a market index. Such a portfolio is called an index fund. Integer Programming Models 16
Index fund Definition Given a target population of n stocks, one selects q stocks and their weights in the index fund, to represent the target population as closely as possible. In the last twenty years, an increasing number of investors, both large and small, have established index funds. The rising popularity of index funds can be justified both theoretically and empirically Integer Programming Models 17
Constructing an Index Fund Market Efficiency: If the market is efficient, no superior risk-adjusted returns can be achieved by stock picking strategies since the prices reflect all the information available in the marketplace. An index fund captures the efficiency of the market via diversification. Empirical Performance: Considerable empirical literature provides strong evidence that, on average, money managers have consistently underperformed the major indexes (luck is an explanation for good performance). Transaction Cost: Actively managed funds incur transaction costs, which reduce the overall performance of these funds. In addition, active management implies significant research costs. Integer Programming Models 18
Index fund Additional features Additional features: Here we take the point of view of a fund manager who wants to construct an index fund. Strategies for forming index funds involve choosing a broad market index as a proxy for an entire market, e.g. the Standard and Poor list of 500 stocks (S&P 500) A pure indexing approach consists in purchasing all the issues in the index, with the same exact weights as in the index. In most instances, this approach is impractical (many small positions) and expensive (rebalancing costs may be incurred frequently) Integer Programming Models 19
Index fund Additional features We propose a large-scale deterministic model for aggregating a broad market index of stocks into a smaller more manageable index fund. This approach will produce a portfolio that closely replicates the underlying market population. We present a model that: clusters the assets into groups of similar assets selects one representative asset from each group to be included in the index fund portfolio The model is based on the following data: ρ ij = similarity between stock i and stock j (11) Integer Programming Models 20
Index fund Typical features ρ ii = 1 ρ ij 1 for i j ρ ij is larger for more similar stocks An example is the correlation between the returns of stocks i and j Decision variables: { 1 if stock j is in the index fund y j = 0 otherwise { 1 if j is the most similar stock to stock i in the index fund x ij = 0 otherwise Integer Programming Models 21
Index fund (IF ) n n max ρ ij x ij (12) i=1 j=1 n y j = q (13) j=1 n x ij = 1 i = 1,..., n (14) j=1 x ij y j i = 1,..., n, j = 1,..., n (15) x ij {0, 1} i = 1,..., n, j = 1,..., n (16) y j {0, 1} j = 1,..., n (17) Integer Programming Models 22
Index fund Once the model has been solved and a set of q stocks has been selected for the index fund, a weight w j is calculated for each j in the fund: w j = n V i x ij (18) i=1 where V i is the market value of stock i. So w j is the total market value of the stocks represented by stock j in the fund The fraction of the index fund to be invested in stock j is proportional to the stocks weight w j w j q f =1 w f Note that, instead of the objective function used, one could have used an objective function that takes the weights w j directly into account n n i=1 j=1 V iρ ij x ij Integer Programming Models 23
Index fund Solution strategies Branch-and-bound is a natural candidate for solving the model, however that the formulation can be very large. Indeed, for the S&P 500, there are 250,000 variables x ij and 250,000 constraints x ij y j The linear programming relaxation needed to get upper bounds in the branch-and-bound algorithm is difficult to solve Instead of the linear programming relaxation, one can use the Lagrangian relaxation Integer Programming Models 24
Index fund Lagrangian Relaxation max L(u) = n n n n ρ ij x ij + u i (1 x ij ) i=1 j=1 i=1 j=1 n y j = q j=1 x ij y j x ij {0, 1} y j {0, 1} i = 1,..., n, j = 1,..., n i = 1,..., n, j = 1,..., n j = 1,..., n where u = (u1,..., u n ) is the vector of the Lagrangian Multipliers Integer Programming Models 25
Index fund Property 1: L(u) Z, where Z is the maximum for the model Proof: Let x be the optimal solution of the problem IF, then x is also a feasible solution of L(u) for each u 0. the quantity (Ax b) is 0, then: c T x + u(ax b) L(u) proving that L(u) Z. c T x L(u) The objective function L(u) may be equivalently stated as: max L(u) = n n n (ρ ij u i )x ij + u i (19) i=1 j=1 i=1 Integer Programming Models 26
Index fund (ρ ij u i ) + = { (ρij u i ) if ρ ij - u i 0 0 otherwise C j = n (ρ ij u i ) + (20) i=1 n n max L(u) = C j y j + u i (21) j=1 i=1 n y j = q (22) j=1 y j {0, 1} j = 1,..., n (23) Integer Programming Models 27
Index fund Property 3: In an optimal solution of the Lagrangian relax, y j is equal to 1 for the q largest values of C j, and the remaining y j are equal to 0. Interestingly, the set of q stocks corresponding to the q largest values of C j can also be used as a heuristic solution for the model Specifically, construct an index fund containing these q stocks and assign each stock i = 1,..., n to the most similar stock in this fund This solution is feasible to the model, although not necessarily optimal. So for any vector u, we can compute quickly both a lower bound and an upper bound on the optimum value of the model How does one minimize L(u)? Integer Programming Models 28
Index fund Since L(u) is non-differentiable and convex, one can use the subgradient method At each iteration, a revised set of Lagrange multipliers u and an accompanying lower bound and upper bound to the model are computed The algorithm terminates when these two bounds match or when a maximum number of iterations is reached It can be proved that min L(u) is equal to the value of the linear programming relaxation of the model In general, this is not true and therefore it is not possible to match the upper and lower bounds If one wants to solve the integer program to optimality, one can use a branch-and-bound algorithm, using the upper bound min L(u) for pruning the nodes. Integer Programming Models 29
fabio.furini@dauphine.fr Integer Programming Models 30