FLOPC++
|
Semantic representation of a linear constraint.This is one of the main public interface classes. It is always constructed through operator overloading between expressions, constants, and variables. There are many 'friend' overloaded operators to do the constuction. The basic idea is to make the constraint look like a paper-model constraint in C++ code. Once constructed, it should be added to the model. More...
#include <MP_constraint.hpp>
Public Member Functions | |
MP_constraint (const MP_set_base &s1=MP_set::getEmpty(), const MP_set_base &s2=MP_set::getEmpty(), const MP_set_base &s3=MP_set::getEmpty(), const MP_set_base &s4=MP_set::getEmpty(), const MP_set_base &s5=MP_set::getEmpty()) | |
construct the MP_constraint with appropriate sets for indexing. More... | |
MP_constraint & | operator() (const MP_index_exp &i1=MP_index_exp::getEmpty(), const MP_index_exp &i2=MP_index_exp::getEmpty(), const MP_index_exp &i3=MP_index_exp::getEmpty(), const MP_index_exp &i4=MP_index_exp::getEmpty(), const MP_index_exp &i5=MP_index_exp::getEmpty()) |
operator int () | |
virtual | ~MP_constraint () |
double | price (int i1=0, int i2=0, int i3=0, int i4=0, int i5=0) const |
void | coefficients (GenerateFunctor &f) |
int | row_number () const |
MP_constraint & | such_that (const MP_boolean &b) |
void | insertVariables (std::set< MP_variable * > &v) |
void | operator= (const Constraint &v) |
void | display (std::string s="") const |
![]() | |
int | size () const |
![]() | |
std::string | getName () const |
void | setName (const std::string &n) |
Public Attributes | |
MP_model * | M |
int | offset |
MP_expression | left |
MP_expression | right |
Sense_enum | sense |
Private Attributes | |
MP_boolean | B |
const MP_set_base & | S1 |
const MP_set_base & | S2 |
const MP_set_base & | S3 |
const MP_set_base & | S4 |
const MP_set_base & | S5 |
MP_index_exp | I1 |
MP_index_exp | I2 |
MP_index_exp | I3 |
MP_index_exp | I4 |
MP_index_exp | I5 |
Additional Inherited Members | |
![]() | |
RowMajor (int s1, int s2, int s3, int s4, int s5) | |
int | f (int i1=0, int i2=0, int i3=0, int i4=0, int i5=0) const |
![]() | |
int | size1 |
int | size2 |
int | size3 |
int | size4 |
int | size5 |
int | size_ |
Semantic representation of a linear constraint.
This is one of the main public interface classes. It is always constructed through operator overloading between expressions, constants, and variables. There are many 'friend' overloaded operators to do the constuction. The basic idea is to make the constraint look like a paper-model constraint in C++ code. Once constructed, it should be added to the model.
The snippet below is an overly simplistic example, but is ok for illustration.
MP_model aModel; // your model
MP_set I; // the set the constraint is defined over.
MP_variable x(I); // your variable
...
MP_constraint cons(I); // construct the right number of constraints.
cons = x <= 3;
// Assign in the semantic rep to it. aModel.add(cons); // add it to the model
There is quite a bit of C++ machinery going on there.
Definition at line 194 of file MP_constraint.hpp.
MP_constraint::MP_constraint | ( | const MP_set_base & | s1 = MP_set::getEmpty() , |
const MP_set_base & | s2 = MP_set::getEmpty() , |
||
const MP_set_base & | s3 = MP_set::getEmpty() , |
||
const MP_set_base & | s4 = MP_set::getEmpty() , |
||
const MP_set_base & | s5 = MP_set::getEmpty() |
||
) |
construct the MP_constraint with appropriate sets for indexing.
Definition at line 48 of file MP_constraint.cpp.
References flopc::MP_model::add(), and flopc::MP_model::current_model.
|
inlinevirtual |
Definition at line 221 of file MP_constraint.hpp.
void MP_constraint::coefficients | ( | GenerateFunctor & | f | ) |
void MP_constraint::display | ( | std::string | s = "" | ) | const |
Definition at line 87 of file MP_constraint.cpp.
References flopc::MP_model::bl, flopc::MP_model::bu, M, offset, flopc::MP_model::rowActivity, flopc::MP_model::rowPrice, and flopc::RowMajor::size().
void MP_constraint::insertVariables | ( | std::set< MP_variable * > & | v | ) |
Definition at line 78 of file MP_constraint.cpp.
|
inline |
Definition at line 216 of file MP_constraint.hpp.
References flopc::RowMajor::f(), I1, I2, I3, I4, I5, and offset.
|
inline |
void MP_constraint::operator= | ( | const Constraint & | v | ) |
Definition at line 22 of file MP_constraint.cpp.
References flopc::Constraint::left, flopc::Constraint::right, and flopc::Constraint::sense.
double MP_constraint::price | ( | int | i1 = 0 , |
int | i2 = 0 , |
||
int | i3 = 0 , |
||
int | i4 = 0 , |
||
int | i5 = 0 |
||
) | const |
Definition at line 44 of file MP_constraint.cpp.
int MP_constraint::row_number | ( | ) | const |
Definition at line 28 of file MP_constraint.cpp.
References flopc::outOfBound.
Referenced by flopc::GenerateFunctor::row_number().
|
inline |
|
private |
Definition at line 245 of file MP_constraint.hpp.
Referenced by coefficients(), and such_that().
|
private |
Definition at line 247 of file MP_constraint.hpp.
Referenced by coefficients(), operator int(), and operator()().
|
private |
Definition at line 247 of file MP_constraint.hpp.
Referenced by coefficients(), operator int(), and operator()().
|
private |
Definition at line 247 of file MP_constraint.hpp.
Referenced by coefficients(), operator int(), and operator()().
|
private |
Definition at line 247 of file MP_constraint.hpp.
Referenced by coefficients(), operator int(), and operator()().
|
private |
Definition at line 247 of file MP_constraint.hpp.
Referenced by coefficients(), operator int(), and operator()().
MP_expression flopc::MP_constraint::left |
Definition at line 242 of file MP_constraint.hpp.
Referenced by coefficients(), and insertVariables().
MP_model* flopc::MP_constraint::M |
Definition at line 240 of file MP_constraint.hpp.
Referenced by flopc::MP_model::add(), and display().
int flopc::MP_constraint::offset |
Definition at line 241 of file MP_constraint.hpp.
Referenced by flopc::MP_model::add(), display(), and operator int().
MP_expression flopc::MP_constraint::right |
Definition at line 242 of file MP_constraint.hpp.
Referenced by coefficients(), and insertVariables().
|
private |
Definition at line 246 of file MP_constraint.hpp.
Referenced by coefficients().
|
private |
Definition at line 246 of file MP_constraint.hpp.
Referenced by coefficients().
|
private |
Definition at line 246 of file MP_constraint.hpp.
Referenced by coefficients().
|
private |
Definition at line 246 of file MP_constraint.hpp.
Referenced by coefficients().
|
private |
Definition at line 246 of file MP_constraint.hpp.
Referenced by coefficients().
Sense_enum flopc::MP_constraint::sense |
Definition at line 243 of file MP_constraint.hpp.