Elsevier

Computers & Operations Research

Volume 49, September 2014, Pages 41-46
Computers & Operations Research

The positive edge criterion within COIN-OR׳s CLP

https://doi.org/10.1016/j.cor.2014.03.020Get rights and content

Abstract

This paper presents the first direct implementation of the positive edge criterion using COIN-OR׳s CLP, where it has been combined with the Devex pivot rule. Positive edge is designed to take advantage of degeneracy in linear programming. The original implementation, while yielding strong computational results, suffers from significant overhead caused by CPLEX not allowing modification of its standard pivot rules. We test the method over the same set of highly degenerate problems used by the original authors of positive edge. To test its robustness, we solve a set of linear problems from Mittelmann׳s library which contains instances with a wide range of degeneracy levels. These computational results show that below a degeneracy level of 25%, the positive edge criterion is on average neutral while above this threshold, it reaches an average run time speedup of 2.3, with a maximum at 4.2 on an instance with a 75% degeneracy level.

Introduction

The primal simplex method, despite its remarkable efficiency, struggles when dealing with degenerate linear programs (LPs). Degeneracy slows down the solution process and may even cause infinite cycles. To address the latter, there are various methods designed to avoid cycling, including those by Charnes [4], Bland [2], Ryan and Osborne [17]. The goal of these methods is solely to ensure convergence. Among the efforts that aim at improving the performance of the primal simplex method on degenerate problems, Rogers et al. [16] consider static aggregation of constraints, Shetty and Taylor [18], Pan [13], and Raymond et al. [15] develop dynamic constraint aggregation approaches, and du Merle et al. [6], Oukil et al. [12], and Ben Amor et al. [1] use dual variable stabilization within column generation.

[13] introduces a notion of compatibility in variables that is used to identify nondegenerate pivots. Elhallaoui et al. [7] advance the idea into a method called the improved primal Simplex (IPS). Using the basic concepts of these methods, Raymond et al. [14] design a complement to simplex pivot rules, the positive edge criterion, that takes advantage of degeneracy in linear programming. It acts as a filter and helps in identifying variables that yield non-degenerate pivots in the primal Simplex algorithm. The identification follows from a simple calculation on the original column-vectors of the matrix of constraints and selecting such a variable with a negative reduced cost strictly improves the objective function value. Its computational complexity is the same as for the evaluation of the reduced cost.

The original implementation of the positive edge criterion was done using the commercial solver CPLEX.1 Commercial linear and mixed integer linear programming solvers allow customizing many pre-specified aspects of the solver׳s behavior using callbacks—references to user-defined functions. For example, users may define customized cuts or a specific branch-and-cut tree traversal strategy in integer programming, or determine termination conditions and printing out customized logs in linear programming, by coding their desired action and passing its reference for the solver to use when appropriate. However, typically, it is not possible to write and experiment with customized Simplex pivot rules. Instead, commercial softwares come with a set of predefined, and well optimized, pivot methods one can choose from. Among them are the smallest reduced cost or Dantzig׳s rule [5], the steepest edge rule [19], [9], [8], and the Devex rule [10].

As a result, the positive edge criterion was first implemented and tested in CPLEX using a workaround, which involves solving a partial problem with the help of two external procedures responsible for finding appropriate variables to be added to it (see Section 4.1 for details). Despite the incurred overhead, it demonstrates excellent performance on some benchmark problems, e.g., the PDS set [3]. Nevertheless, it seems to struggle dealing with some others, e.g., the FOME instances.2 A direct implementation of positive edge leads to a better understanding of this complementary selection criterion. In this paper, we examine the efficiency of this new criterion by implementing it into COIN-OR׳s CLP.3 Because, first, it obviously does not possess the limitations of commercial solvers explained above. Second, it has object-oriented structure, in C++, which makes it relatively easy to understand and modify.

This paper is organized as follows. First we present the positive edge criterion in Section 2. In Section 3, we provide some implementation details. We present computational experiments in Section 4 and conclude in Section 5.

Section snippets

The positive edge criterion

In this section we provide our account of the positive edge criterion introduced by Raymond et al. [14]. Consider a linear program (LP) in standard form:minimizexRncxs.t.Ax=b,x0,where cRn, ARm×Rn, bRm, and m<n. Let N{1,,n} and M{1,,m}. We denote by 0 a vector or a matrix with null entries of appropriate contextual dimensions. If B is a subset of an (ordered) index set, xB denotes the sub-vector of x indexed by B. Similarly, we denote by ARC the |R|×|C| submatrix of AAMN whose rows

Implementation

In this section, we first present in Section 3.1 some concerns regarding the implementation of the positive edge criterion. In Section 3.2, we provide low-level details of the code behind the implementation.

Computational experiments

In Section 4.1, we provide the numerical test results of the internal CLP implementation over some of the problems used by Raymond et al. [14], that is, PDS [3] and FOME5 instances. In Section 4.2, to see how CLP equipped with positive edge performs on a general set of LPs, we run tests on relatively large instances of Mittelmann׳s LP benchmark,6 i.e., those that are reported to take more than 10 s to

Conclusion

In this paper, we present an efficient implementation of the positive edge criterion within CLP, an open source implementation of the Simplex method for linear programming. Designed to take advantage of degeneracy, this criterion acts as a filter that identifies non-basic variables yielding non-degenerate pivots in the primal Simplex algorithm. Tested on 31 problems from PDS [3] and Mittelmann׳s LP instances, the computational results show that below a degeneracy level of 25%, this criterion is

References (19)

There are more references available in the full text version of this article.

Cited by (6)

  • Tools for primal degenerate linear programs: IPS, DCA, and PE

    2016, EURO Journal on Transportation and Logistics
  • The positive edge pricing rule for the dual simplex

    2015, Computers and Operations Research
    Citation Excerpt :

    The variables are those that have their corresponding columns in the span of the nondegenerate columns. Towhidi et al. [24] introduced the positive edge pricing rule to prioritize the compatible variables in the primal simplex. Their implementation of the criterion within the COIN-OR LP (CLP) solver [17] produces good results on the most degenerate instances of Mittelmann׳s benchmark1.

  • A linear programming decomposition focusing on the span of the nondegenerate columns

    2015, European Journal of Operational Research
    Citation Excerpt :

    Their results show significant improvement with regards to the devex pricing criterion (Harris, 1973) for the most degenerate Mittelmann instances, but their comparison focuses on CLP, which is known to be less efficient than most commercial LP solvers. More importantly, the articles by Towhidi et al. (2014) and Raymond, Soumis, Metrane et al. (2010) show how a fast compatibility test can be used to cope with degeneracy, but they do not take advantage of degeneracy, since the size of the linear system solved at each simplex pivot is not reduced. Although the dual simplex and barrier algorithms often solve LPs more efficiently than the primal simplex, the latter has a strong advantage when a good feasible solution is available.

View full text