I need the robust C++ source code of the simplex algorithm (is a popular algorithm for numerical solution of the linear programming problem).
Please, no links to wikipedia. I need good source code in C++, using templates, clear user-friendly names and work very well.
Preferably algorithm must check the unstable floating-point calculation.
While degeneracy is the rule in practice and stalling is common, cycling is rare in practice. A discussion of an example of practical cycling occurs in Padberg. Bland's rule prevents cycling and thus guarantees that the simplex algorithm always terminates.
Simplex method is an approach to solving linear programming models by hand using slack variables, tableaus, and pivot variables as a means to finding the optimal solution of an optimization problem. Simplex tableau is used to perform row operations on the linear programming model as well as for checking optimality.
Therefore, the most negative number in the bottom row corresponds to the most positive coefficient in the objective function and indicates the direction we should head. The pivot column is the column with the most negative number in its bottom row. If there are no negatives in the bottom row, stop, you are done.
The objective function of the minimization problem reaches its minimum if and only if the objective function of its dual reaches its maximum. And when they do, they are equal.
This one is a C++ library: http://soplex.zib.de. But the license has some restrictions regarding commercial use.
This one has a liberal license, but is in C: http://aldebaran.devinci.fr/~cagnol/promotion2007/cs302/gsl/multimin/simplex.c.html Probably you can write a thin wrapper.
The Computational Infrastucture for Operations Research (COIN-OR) provides open-source software for the operations research community, especially around numerical optimization. The CLP project, managed by John Forrest from IBM, implements the simplex algorithm for linear programming in C++.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With