This is the anchor point for all constructs in a FlopC++ model. More...
#include <MP_model.hpp>
Public Types | |
enum | MP_direction { MINIMIZE =1, MAXIMIZE =-1 } |
used when calling the solve() method. More... | |
enum | MP_status { OPTIMAL, PRIMAL_INFEASIBLE, DUAL_INFEASIBLE, ABANDONED, SOLVER_ONLY, ATTACHED, DETACHED } |
Reflects the state of the solution from solve() More... | |
Public Member Functions | |
MP_model (OsiSolverInterface *s, Messenger *m=new NormalMessenger) | |
Constructs an MP_model from an OsiSolverInterface *. More... | |
~MP_model () | |
MP_status | getStatus () const |
Returns the current status of the model-solver interaction. More... | |
void | silent () |
used to silence FlopC++ More... | |
void | verbose () |
used to help understanding and debugging FlopC++'s behavior. More... | |
void | setSolver (OsiSolverInterface *s) |
allows for replacement of the solver used. More... | |
OsiSolverInterface * | operator-> () |
allows access to the OsiSolverInterface * More... | |
MP_model & | add (MP_constraint &c) |
Adds a constrataint block to the model. More... | |
void | maximize () |
Binds the data and calls the solver to maximize the current objective expression. More... | |
void | maximize (const MP_expression &obj) |
Binds the data and calls the solver to maximize the parameter obj objective expression. More... | |
void | minimize () |
Binds the data and calls the solver to minimize the current objective expression. More... | |
void | minimize (const MP_expression &obj) |
Binds the data and calls the solver to minimize the parameter obj objective expression. More... | |
void | minimize_max (MP_set &d, const MP_expression &obj) |
Binds the data and calls the solver to minimize maximum value of the parameter obj objective expression. More... | |
void | setObjective (const MP_expression &o) |
sets the "current objective" to the parameter o More... | |
void | attach (OsiSolverInterface *solver=NULL) |
attaches the symantic representation of a model and data to a particular OsiSolverInterface More... | |
void | detach () |
detaches an OsiSolverInterface object from the model. More... | |
MP_model::MP_status | solve (const MP_model::MP_direction &dir) |
calls the appropriate solving methods in the OsiSolverInterface. More... | |
double | getInfinity () const |
Useful for getting an appropriate value to pass in as "infinity". More... | |
void | add (MP_variable *v) |
Adds a variable to the MP_model. More... | |
void | addRow (const Constraint &c) |
Adds a constraint to the MP_model. More... | |
Messenger * | getMessenger () |
Gets the current messenger. More... | |
Static Public Member Functions | |
static MP_model & | getDefaultModel () |
Can be used to get the default model. More... | |
static MP_model * | getCurrentModel () |
Can be used to get the current model. More... | |
Public Attributes | |
const double * | solution |
Accessors for the results after a call to maximize()/minimize() More... | |
const double * | reducedCost |
const double * | rowPrice |
const double * | rowActivity |
OsiSolverInterface * | Solver |
Private Types | |
typedef std::set< MP_variable * > ::iterator | varIt |
typedef std::set < MP_constraint * >::iterator | conIt |
Private Member Functions | |
MP_model (const MP_model &) | |
MP_model & | operator= (const MP_model &) |
void | add (MP_constraint *c) |
Static Private Member Functions | |
static void | assemble (std::vector< Coef > &v, std::vector< Coef > &av) |
Private Attributes | |
Messenger * | messenger |
MP_expression | Objective |
std::set< MP_constraint * > | Constraints |
std::set< MP_variable * > | Variables |
int | m |
int | n |
int | nz |
int * | Cst |
int * | Clg |
int * | Rnr |
double * | Elm |
double * | bl |
double * | bu |
double * | c |
double * | l |
double * | u |
MP_status | mSolverState |
Static Private Attributes | |
static MP_model & | default_model |
static MP_model * | current_model |
Friends | |
class | MP_constraint |
This is the anchor point for all constructs in a FlopC++ model.
The constructors take an OsiSolverInterface, and (optionally) a replacemente for the Messenger class. There are some built-in changes to the verbosity for output.
The main methods to use are:
Definition at line 89 of file MP_model.hpp.
|
private |
Definition at line 239 of file MP_model.hpp.
|
private |
Definition at line 240 of file MP_model.hpp.
used when calling the solve() method.
Enumerator | |
---|---|
MINIMIZE | |
MAXIMIZE |
Definition at line 93 of file MP_model.hpp.
Reflects the state of the solution from solve()
Definition at line 97 of file MP_model.hpp.
flopc::MP_model::MP_model | ( | OsiSolverInterface * | s, |
Messenger * | m = new NormalMessenger |
||
) |
Constructs an MP_model from an OsiSolverInterface *.
|
inline |
Definition at line 119 of file MP_model.hpp.
|
private |
|
inline |
Returns the current status of the model-solver interaction.
This method will return the current understanding of the model in regard to the solver's state.
Definition at line 130 of file MP_model.hpp.
|
inline |
used to silence FlopC++
Definition at line 134 of file MP_model.hpp.
|
inline |
used to help understanding and debugging FlopC++'s behavior.
Definition at line 139 of file MP_model.hpp.
|
inline |
allows for replacement of the solver used.
Definition at line 145 of file MP_model.hpp.
|
inline |
allows access to the OsiSolverInterface *
Definition at line 150 of file MP_model.hpp.
MP_model& flopc::MP_model::add | ( | MP_constraint & | c | ) |
Adds a constrataint block to the model.
void flopc::MP_model::maximize | ( | ) |
Binds the data and calls the solver to maximize the current objective expression.
void flopc::MP_model::maximize | ( | const MP_expression & | obj | ) |
Binds the data and calls the solver to maximize the parameter obj objective expression.
void flopc::MP_model::minimize | ( | ) |
Binds the data and calls the solver to minimize the current objective expression.
void flopc::MP_model::minimize | ( | const MP_expression & | obj | ) |
Binds the data and calls the solver to minimize the parameter obj objective expression.
void flopc::MP_model::minimize_max | ( | MP_set & | d, |
const MP_expression & | obj | ||
) |
Binds the data and calls the solver to minimize maximum value of the parameter obj objective expression.
void flopc::MP_model::setObjective | ( | const MP_expression & | o | ) |
sets the "current objective" to the parameter o
void flopc::MP_model::attach | ( | OsiSolverInterface * | solver = NULL | ) |
attaches the symantic representation of a model and data to a particular OsiSolverInterface
void flopc::MP_model::detach | ( | ) |
detaches an OsiSolverInterface object from the model.
In essence, this will clean up any intermediate storage. A model may then be attached to another solverInterface.
MP_model::MP_status flopc::MP_model::solve | ( | const MP_model::MP_direction & | dir | ) |
calls the appropriate solving methods in the OsiSolverInterface.
double flopc::MP_model::getInfinity | ( | ) | const |
Useful for getting an appropriate value to pass in as "infinity".
void flopc::MP_model::add | ( | MP_variable * | v | ) |
Adds a variable to the MP_model.
void flopc::MP_model::addRow | ( | const Constraint & | c | ) |
Adds a constraint to the MP_model.
|
static |
Can be used to get the default model.
|
static |
Can be used to get the current model.
|
inline |
Gets the current messenger.
Definition at line 235 of file MP_model.hpp.
|
staticprivate |
|
private |
|
friend |
Definition at line 90 of file MP_model.hpp.
const double* flopc::MP_model::solution |
Accessors for the results after a call to maximize()/minimize()
should these be private with accessors? What if not set yet?
what if not a complete result? What if only one LP in the IP?
Definition at line 211 of file MP_model.hpp.
const double* flopc::MP_model::reducedCost |
Definition at line 212 of file MP_model.hpp.
const double* flopc::MP_model::rowPrice |
Definition at line 213 of file MP_model.hpp.
const double* flopc::MP_model::rowActivity |
Definition at line 214 of file MP_model.hpp.
|
staticprivate |
Definition at line 241 of file MP_model.hpp.
|
staticprivate |
Definition at line 242 of file MP_model.hpp.
|
private |
Definition at line 246 of file MP_model.hpp.
|
private |
Definition at line 251 of file MP_model.hpp.
|
private |
Definition at line 252 of file MP_model.hpp.
|
private |
Definition at line 253 of file MP_model.hpp.
OsiSolverInterface* flopc::MP_model::Solver |
Definition at line 256 of file MP_model.hpp.
|
private |
Definition at line 258 of file MP_model.hpp.
|
private |
Definition at line 259 of file MP_model.hpp.
|
private |
Definition at line 260 of file MP_model.hpp.
|
private |
Definition at line 261 of file MP_model.hpp.
|
private |
Definition at line 262 of file MP_model.hpp.
|
private |
Definition at line 263 of file MP_model.hpp.
|
private |
Definition at line 264 of file MP_model.hpp.
|
private |
Definition at line 265 of file MP_model.hpp.
|
private |
Definition at line 266 of file MP_model.hpp.
|
private |
Definition at line 267 of file MP_model.hpp.
|
private |
Definition at line 268 of file MP_model.hpp.
|
private |
Definition at line 269 of file MP_model.hpp.
|
private |
Definition at line 270 of file MP_model.hpp.