The positive edge criterion within COIN-OR׳s CLP
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:where , , , and . Let and . 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, denotes the sub-vector of x indexed by B. Similarly, we denote by the submatrix of 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)
- et al.
On the choice of explicit stabilizing terms in column generation
Discrete Appl Math
(2009) - et al.
Stabilized column generation
Discrete Math
(1999) - et al.
Stabilized column generation for highly degenerate multiple-depot vehicle scheduling problems
Comput Oper Res
(2007) A basis-deficiency-allowing variation of the simplex method for linear programming
Comput Math Appl
(1998)- et al.
A new version of the Improved Primal Simplex for degenerate linear programs
Comput Oper Res
(2010) - et al.
Solving large-scale linear programs by aggregation
Comput Oper Res
(1987) New finite pivoting rules for the Simplex method
Math Oper Res
(1977)- et al.
Empirical evaluation of the KORBX algorithms for military airlift applications
Oper Res
(1990) Optimality and degeneracy in linear programming
Econometrica
(1952)
Cited by (6)
Tools for primal degenerate linear programs: IPS, DCA, and PE
2016, EURO Journal on Transportation and LogisticsThe positive edge pricing rule for the dual simplex
2015, Computers and Operations ResearchCitation 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 ResearchCitation 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.
Vector space decomposition for solving large-scale linear programs
2018, Operations ResearchIntegral simplex using decomposition with primal cutting planes
2017, Mathematical ProgrammingImproved primal simplex: A more general theoretical framework and an extended experimental analysis
2015, INFORMS Journal on Computing