The first draft of simplex algorithm, simple tests.
What we have now corresponds to "formal simplex algorithm", described in
Cormen's "Intro to Algorithms". It will work *only* if the initial
problem has (0,0,0,...,0) as feasible solution (consequently, it will
work unpredictably if problem was unfeasible or did not have zero-vector as
feasible solution). Moreover, it might cycle.
TODO (first priority)
1. Implement initialize_simplex() procedure, that shall check for
feasibility and generate initial feasible solution. (in particular, code
should pass all 4 tests implemented at the moment)
2. Implement Bland's rule to avoid cycling.
3. Make the code more clear.
4. Implement several non-trivial tests (??) and check algorithm against
them. Debug if necessary.
TODO (second priority)
1. Concentrate on stability and speed (make difficult tests)
2013-06-28 14:28:57 +02:00
|
|
|
#ifdef __GNUC__
|
|
|
|
# pragma GCC diagnostic ignored "-Wmissing-declarations"
|
|
|
|
# if defined __clang__ || defined __APPLE__
|
|
|
|
# pragma GCC diagnostic ignored "-Wmissing-prototypes"
|
|
|
|
# pragma GCC diagnostic ignored "-Wextra"
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef __OPENCV_TEST_PRECOMP_HPP__
|
|
|
|
#define __OPENCV_TEST_PRECOMP_HPP__
|
|
|
|
|
|
|
|
#include "opencv2/ts.hpp"
|
|
|
|
#include "opencv2/optim.hpp"
|
2014-07-04 16:48:15 +02:00
|
|
|
#include "opencv2/imgcodecs.hpp"
|
The first draft of simplex algorithm, simple tests.
What we have now corresponds to "formal simplex algorithm", described in
Cormen's "Intro to Algorithms". It will work *only* if the initial
problem has (0,0,0,...,0) as feasible solution (consequently, it will
work unpredictably if problem was unfeasible or did not have zero-vector as
feasible solution). Moreover, it might cycle.
TODO (first priority)
1. Implement initialize_simplex() procedure, that shall check for
feasibility and generate initial feasible solution. (in particular, code
should pass all 4 tests implemented at the moment)
2. Implement Bland's rule to avoid cycling.
3. Make the code more clear.
4. Implement several non-trivial tests (??) and check algorithm against
them. Debug if necessary.
TODO (second priority)
1. Concentrate on stability and speed (make difficult tests)
2013-06-28 14:28:57 +02:00
|
|
|
|
|
|
|
#endif
|