CoinUtils trunk
|
Detect and process forcing constraints and useless constraints. More...
#include <CoinPresolveForcing.hpp>
Classes | |
struct | action |
Public Member Functions | |
forcing_constraint_action (int nactions, const action *actions, const CoinPresolveAction *next) | |
const char * | name () const |
A name for debug printing. | |
void | postsolve (CoinPostsolveMatrix *prob) const |
Apply the postsolve transformation for this particular presolve action. | |
~forcing_constraint_action () | |
Static Public Member Functions | |
static const CoinPresolveAction * | presolve (CoinPresolveMatrix *prob, const CoinPresolveAction *next) |
Detect and process forcing constraints and useless constraints.
A constraint is useless if the bounds on the variables prevent the constraint from ever being violated.
A constraint is a forcing constraint if the bounds on the constraint force the value of an involved variable to one of its bounds. A constraint can force more than one variable.
Definition at line 27 of file CoinPresolveForcing.hpp.
forcing_constraint_action::forcing_constraint_action | ( | int | nactions, |
const action * | actions, | ||
const CoinPresolveAction * | next | ||
) | [inline] |
Definition at line 45 of file CoinPresolveForcing.hpp.
forcing_constraint_action::~forcing_constraint_action | ( | ) |
const char* forcing_constraint_action::name | ( | ) | const [virtual] |
A name for debug printing.
It is expected that the name is not stored in the transform itself.
Implements CoinPresolveAction.
static const CoinPresolveAction* forcing_constraint_action::presolve | ( | CoinPresolveMatrix * | prob, |
const CoinPresolveAction * | next | ||
) | [static] |
void forcing_constraint_action::postsolve | ( | CoinPostsolveMatrix * | prob | ) | const [virtual] |
Apply the postsolve transformation for this particular presolve action.
Implements CoinPresolveAction.