![]() |
The Lemke pivoting algorithm for solving LCPs.TODO. More...
#include <Lemke.h>
Inherits blaze::Solver.
Public Member Functions | |
Constructors | |
Lemke () | |
Default constructor for the Lemke class. | |
Solver functions | |
bool | solve (LCP &lcp) |
TODO. More... | |
bool | solve (LCP &lcp, const VecN &d) |
TODO. More... | |
Get functions | |
size_t | getMaxIterations () const |
Returns the maximum number of iterations the solver may spend solving the problem. More... | |
size_t | getLastIterations () const |
Returns the number of iterations spent in the last solution process. More... | |
real | getLastPrecision () const |
Returns the precision of the solution after the solution process. More... | |
real | getThreshold () const |
Returns the threshold that classifies a solution as good enough. More... | |
Set functions | |
void | setMaxIterations (size_t maxIterations) |
Sets the maximum number of iterations the solver may spend solving the problem. More... | |
void | setThreshold (real threshold) |
Sets the threshold which classifies a solution as good enough. More... | |
Protected Attributes | |
Member variables | |
size_t | maxIterations_ |
The maximum number of iterations. More... | |
size_t | lastIterations_ |
The number of iterations spent in the last solution process. | |
real | lastPrecision_ |
The precision of the solution after the solution process. | |
real | threshold_ |
Precision threshold for the solution. | |
Private Attributes | |
Member variables | |
DynamicVector< ptrdiff_t > | basics_ |
TODO. | |
DynamicVector< ptrdiff_t > | nonbasics_ |
TODO. | |
MatMxN | M_ |
TODO. | |
MatMxN | Q_ |
TODO. | |
Utility functions | |
void | printTableau (std::ostream &os) const |
TODO. More... | |
bool | isComponentwiseNonnegative (const VecN &v) const |
TODO. More... | |
bool | isComponentwisePositive (const VecN &v) const |
TODO. More... | |
bool | isLexicographicallyLess (size_t i1, real f1, size_t i2, real f2) const |
TODO. More... | |
bool | isLexicographicallyGreater (size_t i1, real f1, size_t i2, real f2) const |
TODO. More... | |
void | pivot (size_t block, size_t drive) |
TODO. More... | |
The Lemke pivoting algorithm for solving LCPs.
TODO.
|
inlineinherited |
Returns the number of iterations spent in the last solution process.
|
inlineinherited |
Returns the precision of the solution after the solution process.
The solver is not enforced to compute the precision after the solution. Instead it can just report infinity as the last precision.
|
inlineinherited |
Returns the maximum number of iterations the solver may spend solving the problem.
|
inlineinherited |
Returns the threshold that classifies a solution as good enough.
|
private |
TODO.
v | TODO |
TODO < 0
|
private |
TODO.
v | TODO |
TODO <= 0
|
private |
TODO.
i1 | TODO |
f1 | TODO |
i2 | TODO |
f2 | TODO |
TODO
TODO.
i1 | TODO |
f1 | TODO |
i2 | TODO |
f2 | TODO |
TODO
TODO.
block | TODO |
drive | TODO |
TODO
void blaze::Lemke::printTableau | ( | std::ostream & | os | ) | const |
TODO.
TODO
|
inlineinherited |
Sets the maximum number of iterations the solver may spend solving the problem.
maxIterations | The maximum number of iterations spent in the solver. |
|
inlineinherited |
Sets the threshold which classifies a solution as good enough.
threshold | The threshold for the solution quality. |
bool blaze::Lemke::solve | ( | LCP & | lcp | ) |
TODO.
lcp | TODO |
TODO
TODO.
lcp | TODO |
d | TODO |
TODO
|
protectedinherited |
The maximum number of iterations.
This is the maximum number of iterations the solver will spend for solving the given problem.