#include <Model.h>
Membres publics | |
Model () | |
Model (const Model &) | |
Model & | operator= (const Model &) |
Constraint | Add (const ConstraintBuilder &, const std::string &nom="") |
Constraint | Add (const ConstraintBuilder &constraint, const Nom &_nom) |
void | Maximize (const Expr &expr, const std::string &nom="") |
void | Minimize (const Expr &expr, const std::string &nom="") |
Expr | GetObjectif () const |
void | SetProblemName (const std::string name="") |
string | GetProblemName () const |
bool | IsRelaxed () const |
void | SetRelaxed (bool _isRelaxed) |
bool | RelaxInt2Float (NumVar numVar=NumVar()) |
bool | RelaxBool2Float (NumVar numVar=NumVar()) |
void | SetNumVarValues (const std::list< std::string > &noms, const std::list< float > &values) |
void | SetConstraintValues (const std::list< std::string > &noms, const std::list< float > &values) |
void | GetInfluentLagrangianParam (std::list< LagrangianParam > &listViolated, std::list< LagrangianParam > &listSlacked) |
std::vector< LagrangianParam > | GetAllLagrangianParams () |
float | EvalueConstraint (VarId id) const |
void | UnrelaxModel () |
std::ostream & | Out (std::ostream &flux=std::cout, const std::string &newline="") |
std::ostream & | OutDimensions (std::ostream &flux=std::cout, const std::string &newline="") |
std::ostream & | OutNumVarValues (bool withoutNullValue=true, std::ostream &flux=std::cout, const std::string &newline="") const |
std::ostream & | OutConstraintValues (std::ostream &flux=std::cout, const std::string &newline="") const |
Constraint | GetConstraint (VarId id) const |
Constraint | GetConstraint (const std::string &) |
bool | RelaxConstraint (VarId id, float lagrangianValue=-Infinity) |
bool | Relax (const std::string &name, float lagrangianValue=-Infinity) |
void | RenameConstraint (VarId id, const std::string &name) |
VarId | GetMaxVarId () const |
VarId | GetMaxConstraintId () const |
bool | LoadLP (const std::string &, bool verbose=false) |
void | RemoveVariable (VarId varId) |
void | RemoveConstraint (VarId varId) |
void | AddToConstraint (VarId, const Expr &) |
void | SetSecondMember (VarId, float) |
float | GetSecondMember (VarId) const |
void | Clear () |
void | Normalize (bool withoutStrict=true) |
void | PrintDual (const std::string &) const |
Model | GetDual () const |
void | InitSolver (API _API=GLPK, const std::string &_fLP="./tmp.solver.lp", const std::string &_path="") |
float | Solve () |
void | SolveInfos (std::string &_operation, std::string &_informations) |
double | MatriceOccupation () |
void | SetAPI (API _API) |
void | PushOptions (const std::string &_str) |
void | RemoveOptions () |
void | ShowMe (bool withoutNullValue=true) |
void | PrintFraction () |
void | EndFraction () |
std::string | AddComment (const std::string &comment) |
void | SetComment (VarId id, const std::string &comment) |
std::string | GetComment (VarId id) const |
void | SortieHTML (const std::string &fileName, const std::string &matrixPNG="") |
void | SortieLATEX (const std::string &fileName) |
Membres protégés | |
float | GetLagrangianParamValue (VarId) const |
void | SetLagrangianParamValue (VarId, float) |
VarId | AddVar (const MuteVar &muteVar, const std::string &) |
VarId | GetVarId (const std::string &) const |
MuteVar | GetMuteVar (VarId varId) const |
NumVar | GetNumVar (VarId varId) const |
std::string | GetName (VarId varId) const |
void | SetName (VarId varId, const std::string &name) |
float | GetMuteVarLB (VarId varId) const |
void | SetMuteVarLB (VarId varId, float _value) |
float | GetMuteVarUB (VarId varId) const |
void | SetMuteVarUB (VarId varId, float _value) |
void | SetMuteVarLBStrict (VarId varId, bool _value) |
void | SetMuteVarUBStrict (VarId varId, bool _value) |
MuteVar::VarType | GetType (VarId varId) const |
void | SetType (VarId varId, MuteVar::VarType _type) |
VarId | AddExpr (Expr &expr, MatriceCreuse< float > &A) |
Expr | GetRelaxedConstraintExpr (VarId id, bool relaxed=true) |
void | ComputeObjectif () |
std::ostream & | SurchargeFlux (std::ostream &) const |
std::ostream & | SurchargeFluxRelaxed (std::ostream &) const |
VarId | GetConstraintId (const std::string &) |
Amis (friends) | |
class | LagrangianParam |
class | Constraint |
class | NumVar |
std::ostream & | operator<< (std::ostream &, const Model &) |
Elle contient: -un entier permettant l'attribution d'un numero a chaque variable -un entier permettant l'attribution d'un numero a chaque contrainte -une base de donnee sur les variables du vecteur inconnu -une Matrice creuse representant les contraintes lineaires -une base de donnee sur les contraintes lineaires -une base de donnee de commentaires -un booleen caracterisant le type de fonction objectif -un booleen specifiant si le programme linéaire est relache -un booleen specifiant si l'utilisateur desire un affichage fractionnaire -un booleen specifiant si la solution est optimale -un booleen specifiant si le probleme a ete resolu -un booleen specifiant si le probleme a ete normalise -la fonction objectif sous la forme d'une expression -la valeur de la fonction objectif apres resolution -le nom de la fonction objectif -le nom du programme linéaire -une interface avec les solveurs -un convertisseur pour l'aaffichage fractionnaire
Ce modele est independant d'un environnement Ce modele peut etre modifié par la création de variable et l'ajout de contraintes.
Les variables peuvent etre modifiee par le biais de la classe NumVar.
L'operateur << permet d'afficher le probleme sous la forme d'un fichier LP.
|
Constructeur par défaut |
|
Constructeur par copie |
|
Add une contrainte au modele
|
|
Ajout d'un commentaire avant la prochaine contrainte si un commentaire était déjà la, il sera écrasé, mais aussi retourné
|
|
Fonction permettant d'ajouter la partie linéaire d'une contrainte au modele Il suffit juste de modifier le coefficient de la matrice adéquat pour chaque variable,
|
|
Ajoute une expression linéaire à la parite linéaire de la contrainte
|
|
AddVar permet la création d'une nouvelle variable referencé dans le modele.
|
|
Nettoye le modele |
|
Permet de d'avoir l'evaluation de l'expression linéaire d'une contrainte utile dans la resolution lagrangienne
|
|
Renvoie un vecteur contenant tous les multiplicateurs de lagrange du modele
|
|
Récupère une contrainte à partir de son nom
|
|
Permet d'obtenir la contrainte en fonction de son identifiant
|
|
Renvoie l'identifiant de la contrainte en fonction du nom Cette recherche est lente car le nom peut etre n'importe ou dans le stockage optimiser pour les recherches suivant l'identifiant. En cas d'echec on retourne 0
|
|
Permet de calculer le dual du programme dans un Model
|
|
Remplie les listes listViolated et listSlacked par les coefficients de lagrange correspondant aux contraintes respectivement violées et laches
|
|
Recupere le coefficient du multiplicatuer de Lagrange asssocié à la contrainte
|
|
Geter de la variable associée a l'identifiant passé en argument
|
|
Geter de la borne inférieure de la variable associée à l'identifiant passé en argument
|
|
Geter de la borne supérieure de la variable associée à l'identifiant passé en argument
|
|
Geter du nom de la variable associée à l'identifiant passé en argument
|
|
Geter de la variable associée a l'identifiant passé en argument
|
|
Permet de d'avoir l'expression relaxée une contrainte
|
|
retourne le coefficient de la contrainte d'identifiant VarId
|
|
Geter du type de la variable associée à l'identifiant passé en argument
|
|
Chargement d'un fichier LP à partir duquel on va charger le modele
|
|
Définit la fonction à maximiser
|
|
Définit la fonction à minimiser
|
|
operateur de copie |
|
Sortie graphique sous forme brute
|
|
Affiche les valeurs des contraintes et leurs états |
|
Sortie graphique des dimensions du problème |
|
Sortie sur cout des valeurs des variables
|
|
Permet de récuperer le dual du programme linéaire dans un fichier
|
|
Relaxe une contrainte en la multipliant par un multiplicateur de Lagrange et en l'additionnant à la fonction objectif
|
|
Relaxe les contraintes sur les types de variables ici les variables boolennes si la variable en parametre est la variable nulle on relaxe toutes les varaibles autrement dit RelaxBool2Float() relaxe toutes les variables
|
|
Relaxe une contrainte
|
|
Relaxe les contraintes sur les types de variables ici les variables entieres si la variable en parametre est la variable nulle on relaxe toutes les varaibles autrement dit RelaxInt2Float() relaxe toutes les variables
|
|
Enlève une contrainte du modèle
|
|
Enlève une variable du modèle
|
|
Renomme une contrainte
|
|
Definit le solver |
|
Définit un commentaire pour la contrainte d'identifiant id si un commentaire était déjà la, il sera écrasé
|
|
Définit les valeurs des contraintes en fonctions de deux listes correspondant aux nouveaux couples valeur-nom
|
|
Definit le coefficient du multiplicateur de Lagrange asssocié à la contrainte
|
|
Seter de la borne inférieure de la variable associée à l'identifiant passé en argument
|
|
Seter du caractère strict de borne inférieure de la variable associée à l'identifiant passé en argument
|
|
Seter de la borne supérieure de la variable associée à l'identifiant passé en argument
|
|
Seter du caractère strict de borne supérieure de la variable associée à l'identifiant passé en argument
|
|
Seter du nom de la variable associée à l'identifiant passé en argument
|
|
Définit les valeurs des contraintes en fonctions de deux listes correspondant aux nouveaux couples valeur-nom
|
|
Change le coefficient de la contrainte d'identifiant VarId
|
|
Seter du type de la variable associée à l'identifiant passé en argument
|
|
Affiche les principales caractéristiques du problème
|
|
Resoud le Modele |
|
Création d'un document au format html
|
|
Création d'un document au format LaTeX
|
|
Sortie graphique sous forme de flux dans le format LP
|
|
Sortie graphique sous forme de flux dans le format LP du probleme relaxé
|
|
Nettoie le problème relaxé pour qu'il retrouve son aspect d'origine |
|
Surcharge de l'operateur de flux
|