The positive edge criterion within COIN-OR's CLP Mehdi Towhidi a , Jacques Desrosiers b,n , François Soumis a a Polytechnique Montréal & GERAD, Canada b HEC Montréal & GERAD, Canada article info Available online 3 April 2014 Keywords: Linear programming Primal Simplex Degeneracy Positive edge abstract This paper presents the rst 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 signicant overhead caused by CPLEX not allowing modication 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. & 2014 Elsevier Ltd. All rights reserved. 1. Introduction The primal simplex method, despite its remarkable efciency, struggles when dealing with degenerate linear programs (LPs). Degen- eracy slows down the solution process and may even cause innite 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 conver- gence. 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 lter and helps in identifying variables that yield non-degenerate pivots in the primal Simplex algorithm. The identication 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-specied aspects of the solver's behavior using callbacks references to user-dened functions. For example, users may dene customized cuts or a specic 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 predened, 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 rst implemented and tested in CPLEX using a workaround, which involves solving a partial problem with the help of two external procedures responsible for nding 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 efciency of this new criterion by implementing it into COIN-OR's CLP. 3 Because, rst, 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. Contents lists available at ScienceDirect journal homepage: www.elsevier.com/locate/caor Computers & Operations Research http://dx.doi.org/10.1016/j.cor.2014.03.020 0305-0548/& 2014 Elsevier Ltd. All rights reserved. n Corresponding author. 1 url: http://www-01.ibm.com/software/integration/optimization/cplex-optimizer/ 2 url: http://www.gamsworld.org/performance/plib/ 3 url: https://projects.coin-or.org/Clp Computers & Operations Research 49 (2014) 4146