Modelib: Modelib::Model class Reference

Page principale | Liste des namespaces | Hiérarchie des classes | Liste par ordre alphabétique | Liste des composants | Liste des fichiers | Membres des namespaces | Composants | Déclarations

# Référence de la classe Modelib::Model

Classe répresentant le programme lineaire en lui meme. Plus de détails...

`#include <Model.h>`

Diagramme de collaboration de Modelib::Model:

[Légende]
Liste de tous les membres

## 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 | EvalConstraint (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)
bool | LoadMPS (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
std::ostream & | SurchargeMPSFlux (std::ostream &, bool verbose) const
VarId | GetConstraintId (const std::string &)
## Attributs Privés
VarId | hacheVarId
VarId | hacheConstraintId
std::map< VarId, Paire > | unknowMap
MatriceCreuse< float > | A
map< VarId, InternalConstraint > | constraintMap
map< VarId, std::string > | comments
bool | isMax
bool | isRelaxed
bool | isFract
bool | isOptimal
bool | isSolved
bool | isNormalized
unsigned | MIPVar
Expr | objectif
float | objectifActivity
std::string | objectifName
std::string | problemName
SolverAPI | solverAPI
FractionConvert | _fract
## Amis (friends)
class | LagrangianParam
class | Constraint
class | NumVar
std::ostream & | operator<< (std::ostream &, const Model &)
std::ostream & | ToMPS (std::ostream &, const Model &, bool verbose=true)

## Description détaillée

Classe répresentant le programme lineaire en lui meme.

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.

Définition à la ligne 91 du fichier Model.h.

## Documentation des contructeurs et destructeurs

Modelib::Model::Model | ( |  | ) | `[inline]`

| Constructeur par défaut Définition à la ligne 166 du fichier Model.h. Références hacheConstraintId, hacheVarId, isFract, isNormalized, isOptimal, isRelaxed, isSolved, MIPVar, et objectifActivity.

Modelib::Model::Model | ( | const Model & | m | ) |

| Constructeur par copie Définition à la ligne 46 du fichier Model.cpp.

## Documentation des méthodes

Constraint Modelib::Model::Add | ( | const ConstraintBuilder & | constraint,
|  | const Nom & | _nom
| ) | `[inline]`

| Définition à la ligne 176 du fichier Model.h. Références Add().

Voici le graphique d'appel pour cette fonction:

Constraint Modelib::Model::Add | ( | const ConstraintBuilder & | c,
|  | const std::string & | nom = ""
| ) |

  | Add une contrainte au modele Paramètres:
  c | la contrainte à ajouter
  nom | le nom de la contrainte
Renvoie: le type de matrice dans laquelle a été insérer la contrainte Définition à la ligne 453 du fichier Model.cpp. Références A, AddExpr(), Constraint, Modelib::ConstraintBuilder::expressions, Modelib::ConstraintBuilder::IsBound(), Modelib::MatriceCreuse< float >::nbLignes, Modelib::Expr::nodeList, Modelib::ConstraintBuilder::operateurs, Modelib::NumVar::SetLowerBound(), Modelib::NumVar::SetLowerBoundStrict(), Modelib::NumVar::SetUpperBound(), Modelib::NumVar::SetUpperBoundStrict(), Modelib::Expr::Simplify(), et Modelib::VarId. Référencé par Add(), main(), et Modelib::FichierProbleme::operator>>().

Voici le graphique d'appel pour cette fonction:

std::string Modelib::Model::AddComment | ( | const std::string & | comment | ) |

  | Ajout d'un commentaire avant la prochaine contrainte si un commentaire était déjà la, il sera écrasé, mais aussi retourné Paramètres:
  comment | la chaine de commentaire sans le "\" l'ancien commentaire
Définition à la ligne 2330 du fichier Model.cpp. Références comments, et hacheConstraintId.

VarId Modelib::Model::AddExpr | ( | Expr & | expr,
|  | MatriceCreuse< float > & | A
| ) | `[protected]`

  | 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, à savoir celui d'indice (l'identifiant de variable, numéro de contrainte) Paramètres:
  expr | l'expression à ajouter au modèle
  A | la matrice qui correspond au type de contrainte d'ou provient l'expression
Définition à la ligne 422 du fichier Model.cpp. Références Modelib::NumVar::GetModel(), Modelib::MatriceCreuse< T >::GetNbLignes(), Modelib::NumVar::GetVarId(), hacheConstraintId, Modelib::Expr::nodeList, Modelib::MatriceCreuse< T >::Set(), unknowMap, et Modelib::VarId. Référencé par Add().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::AddToConstraint | ( | VarId | id,
|  | const Expr & | expr
| ) |

  | Ajoute une expression linéaire à la parite linéaire de la contrainte Paramètres:
  id | l'identifiant de la contrainte
  expr | l'expression linéaire à rajouter
Définition à la ligne 2026 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::Get(), Modelib::NumVar::GetModel(), Modelib::NumVar::GetVarId(), Modelib::MatriceCreuse< float >::matrix, Modelib::Expr::nodeList, Modelib::MatriceCreuse< float >::Set(), unknowMap, et Modelib::VarId. Référencé par Modelib::Constraint::AddExpr().

Voici le graphique d'appel pour cette fonction:

VarId Modelib::Model::AddVar | ( | const MuteVar & | muteVar,
|  | const std::string & | _nom
| ) | `[protected]`

| AddVar permet la création d'une nouvelle variable referencé dans le modele. Seule la classe NumVar appelle cette fonction. Elle est d'ailleurs déclarée en friend spécialement pour pouvoir utiliser cette fonction Renvoie: l'identifiant attribué à la variable Définition à la ligne 151 du fichier Model.cpp. Références Modelib::MuteVar::GetType(), hacheVarId, MIPVar, unknowMap, et Modelib::VarId.

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::Clear | ( |  | ) |

| Nettoye le modele Définition à la ligne 2153 du fichier Model.cpp. Références A, comments, hacheConstraintId, hacheVarId, isFract, isNormalized, isOptimal, isRelaxed, isSolved, Modelib::MatriceCreuse< float >::matrix, MIPVar, Modelib::MatriceCreuse< float >::nbCols, Modelib::MatriceCreuse< float >::nbLignes, objectif, objectifActivity, problemName, et unknowMap.

void Modelib::Model::ComputeObjectif | ( |  | ) | `[protected]`

void Modelib::Model::EndFraction | ( |  | ) | `[inline]`

| Définition à la ligne 264 du fichier Model.h. Références isFract.

float Modelib::Model::EvalConstraint | ( | VarId | id | ) | const

  | Permet de d'avoir l'evaluation de l'expression linÃ©aire d'une contrainte utile dans la resolution lagrangienne Paramètres:
  id | l'identifiant de la contrainte
Renvoie: l'expression de la contrainte relaxÃ©e Définition à la ligne 1355 du fichier Model.cpp. Références A, GetMuteVar(), Modelib::MuteVar::GetValue(), Modelib::MatriceCreuse< float >::matrix, et Modelib::VarId. Référencé par SetConstraintValues().

Voici le graphique d'appel pour cette fonction:

std::vector< LagrangianParam > Modelib::Model::GetAllLagrangianParams | ( |  | ) |

| Renvoie un vecteur contenant tous les multiplicateurs de lagrange du modele Renvoie: Un vecteur de taille egal au nombre de contrainte du probleme Définition à la ligne 1608 du fichier Model.cpp. Références LagrangianParam.

std::string Modelib::Model::GetComment | ( | VarId | id | ) | const

| Définition à la ligne 2358 du fichier Model.cpp. Références comments, et Modelib::VarId. Référencé par Modelib::FichierProbleme::operator>>().

Constraint Modelib::Model::GetConstraint | ( | const std::string & | name | ) |

  | Récupère une contrainte à partir de son nom Paramètres:
  name | le nom de la contrainte
Renvoie: La contrainte correspondante au nom Définition à la ligne 2068 du fichier Model.cpp. Références GetConstraint(), et GetConstraintId().

Voici le graphique d'appel pour cette fonction:

Constraint Modelib::Model::GetConstraint | ( | VarId | id | ) | const

  | Permet d'obtenir la contrainte en fonction de son identifiant Paramètres:
  id | l'identifiant de contrainte
Renvoie: La contrainte correspondant à l'identifiant Définition à la ligne 1299 du fichier Model.cpp. Références Constraint, et Modelib::VarId. Référencé par GetConstraint(), et Modelib::LagrangianParam::LagrangianParam().

VarId Modelib::Model::GetConstraintId | ( | const std::string & | name | ) | `[protected]`

  | 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 Paramètres:
  name | le nom de la contrainte
Renvoie: L'identifiant de la contrainte nommée name Définition à la ligne 2081 du fichier Model.cpp. Références Modelib::VarId. Référencé par GetConstraint(), et Relax().

Model Modelib::Model::GetDual | ( |  | ) | const

| Permet de calculer le dual du programme dans un Model Renvoie: Le Model correspondant au programme linéaire Définition à la ligne 2254 du fichier Model.cpp. Références A, Modelib::InternalConstraint::activity, Modelib::InternalConstraint::b, constraintMap, Modelib::Infinity, isMax, Modelib::MatriceCreuse< float >::matrix, Modelib::InternalConstraint::name, Modelib::Expr::nodeList, Modelib::Paire::nom, NumVar, objectif, objectifName, problemName, Modelib::MatriceCreuse< float >::Set(), SetSecondMember(), solverAPI, unknowMap, et Modelib::Paire::variable. Référencé par PrintDual().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::GetInfluentLagrangianParam | ( | std::list< LagrangianParam > & | listViolated,
|  | std::list< LagrangianParam > & | listSlacked
| ) |

  | Remplie les listes listViolated et listSlacked par les coefficients de lagrange correspondant aux contraintes respectivement violÃ©es et laches Paramètres:
  listViolated | liste des contraintes violees
  listSlacked | liste des contraintes laches
Définition à la ligne 1588 du fichier Model.cpp. Références LagrangianParam.

float Modelib::Model::GetLagrangianParamValue | ( | VarId | id | ) | const`[protected]`

  | Recupere le coefficient du multiplicatuer de Lagrange asssocié à la contrainte Paramètres:
  id | li'dentifiant de contrainte
Définition à la ligne 84 du fichier Model.cpp. Références Modelib::VarId. Référencé par Modelib::LagrangianParam::GetValue().

VarId Modelib::Model::GetMaxConstraintId | ( |  | ) | const`[inline]`

| Définition à la ligne 218 du fichier Model.h. Références hacheConstraintId, et Modelib::VarId.

VarId Modelib::Model::GetMaxVarId | ( |  | ) | const`[inline]`

| Définition à la ligne 217 du fichier Model.h. Références hacheVarId, et Modelib::VarId.

MuteVar Modelib::Model::GetMuteVar | ( | VarId | varId | ) | const`[protected]`

  | Geter de la variable associée a l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: la variable Définition à la ligne 184 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par EvalConstraint(), Modelib::NumVar::GetType(), Modelib::NumVar::GetValue(), Modelib::NumVar::IsLowerBoundStrict(), et Modelib::NumVar::IsUpperBoundStrict().

float Modelib::Model::GetMuteVarLB | ( | VarId | varId | ) | const`[protected]`

  | Geter de la borne inférieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: la borne inférieure Définition à la ligne 260 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::GetLowerBound().

float Modelib::Model::GetMuteVarUB | ( | VarId | varId | ) | const`[protected]`

  | Geter de la borne supérieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: la borne supérieure Définition à la ligne 291 du fichier Model.cpp. Références Modelib::Infinity, unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::GetUpperBound().

std::string Modelib::Model::GetName | ( | VarId | varId | ) | const`[protected]`

  | Geter du nom de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: le nom de la variable Définition à la ligne 210 du fichier Model.cpp. Références Modelib::defaultGetName, unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::GetName(), et Modelib::NumVar::NumVar().

NumVar Modelib::Model::GetNumVar | ( | VarId | varId | ) | const`[protected]`

  | Geter de la variable associée a l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: la variable sous le formar NumVar Définition à la ligne 200 du fichier Model.cpp. Références NumVar, et Modelib::VarId.

Expr Modelib::Model::GetObjectif | ( |  | ) | const`[inline]`

| Définition à la ligne 183 du fichier Model.h. Références objectif.

string Modelib::Model::GetProblemName | ( |  | ) | const`[inline]`

| Définition à la ligne 186 du fichier Model.h. Références problemName. Référencé par Modelib::FichierProbleme::operator>>().

Expr Modelib::Model::GetRelaxedConstraintExpr | ( | VarId | id,
|  | bool | relaxed = true
| ) | `[protected]`

  | Permet de d'avoir l'expression relaxée une contrainte Paramètres:
  id | l'identifiant de la contrainte
Renvoie: l'expression de la contrainte relaxée Définition à la ligne 1388 du fichier Model.cpp. Références A, Modelib::Expr::ASS(), Modelib::Expr::isParametric, LagrangianParam, Modelib::MatriceCreuse< float >::matrix, NumVar, Modelib::Expr::Size(), et Modelib::VarId. Référencé par Modelib::Constraint::GetExpr(), Modelib::Constraint::GetRelaxedExpr(), et RelaxConstraint().

Voici le graphique d'appel pour cette fonction:

float Modelib::Model::GetSecondMember | ( | VarId | id | ) | const

  | retourne le coefficient de la contrainte d'identifiant VarId Paramètres:
  id | l'identifiant de la contrainte
Renvoie: Le coefficient de la contrainte Définition à la ligne 2140 du fichier Model.cpp. Références Modelib::Infinity, et Modelib::VarId. Référencé par Modelib::Constraint::GetSecondMember().

MuteVar::VarType Modelib::Model::GetType | ( | VarId | varId | ) | const`[protected]`

  | Geter du type de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
Renvoie: le type de la variable (sous le format MuteVar::VarType) Définition à la ligne 356 du fichier Model.cpp. Références unknowMap, et Modelib::VarId.

VarId Modelib::Model::GetVarId | ( | const std::string & |  | ) | const`[protected]`

| Définition à la ligne 234 du fichier Model.cpp. Références unknowMap, et Modelib::VarId.

void Modelib::Model::InitSolver | ( | API | _API = GLPK,
|  | const std::string & | _fLP = "./tmp.solver.lp",
|  | const std::string & | _path = ""
| ) | `[inline]`

| Définition à la ligne 235 du fichier Model.h. Références Modelib::API, Modelib::SolverAPI::Init(), SetAPI(), et solverAPI. Référencé par main().

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::IsRelaxed | ( |  | ) | const`[inline]`

| Définition à la ligne 188 du fichier Model.h. Références isRelaxed. Référencé par Modelib::operator<<().

bool Modelib::Model::LoadLP | ( | const std::string & | _name,
|  | bool | verbose = false
| ) |

  | Chargement d'un fichier LP à partir duquel on va charger le modele Paramètres:
  _name | le nom du fichier LP de destination
  verbose | un flag d'affichage
Renvoie: Vrai si le chargement c'est bien passé Définition à la ligne 1874 du fichier Model.cpp. Références Modelib::FichierLP::Open(). Référencé par main().

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::LoadMPS | ( | const std::string & | _name,
|  | bool | verbose = false
| ) |

  | Chargement d'un fichier MPS à partir duquel on va charger le modele Paramètres:
  _name | le nom du fichier MPS de destination
  verbose | un flag d'affichage
Renvoie: Vrai si le chargement c'est bien passé Définition à la ligne 1906 du fichier Model.cpp. Références Modelib::FichierMPS::Open().

Voici le graphique d'appel pour cette fonction:

double Modelib::Model::MatriceOccupation | ( |  | ) | `[inline]`

| Définition à la ligne 250 du fichier Model.h. Références A, Modelib::MatriceCreuse< float >::GetNbCols(), Modelib::MatriceCreuse< float >::GetNbLignes(), et Modelib::MatriceCreuse< float >::GetSize().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::Maximize | ( | const Expr & | expr,
|  | const std::string & | name = ""
| ) |

  | Définit la fonction à maximiser Paramètres:
  expr | l'expression à maximiser
  nom | le nom de l'expression à maximiser
Définition à la ligne 394 du fichier Model.cpp. Références objectif, et Modelib::Expr::Simplify(). Référencé par main(), et Modelib::FichierProbleme::operator>>().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::Minimize | ( | const Expr & | expr,
|  | const std::string & | name = ""
| ) |

  | Définit la fonction à minimiser Paramètres:
  expr | l'expression à minimiser
  nom | le nom de l'expression à maximiser
Définition à la ligne 406 du fichier Model.cpp. Références objectif, et Modelib::Expr::Simplify(). Référencé par Modelib::FichierProbleme::operator>>().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::Normalize | ( | bool | withoutStrict = true | ) |

| Définition à la ligne 2177 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::GetNbLignes(), Modelib::MatriceCreuse< float >::matrix, objectif, et unknowMap.

Voici le graphique d'appel pour cette fonction:

Model & Modelib::Model::operator= | ( | const Model & | m | ) |

| operateur de copie Définition à la ligne 52 du fichier Model.cpp. Références A, constraintMap, hacheVarId, isFract, isMax, isOptimal, isRelaxed, isSolved, Modelib::MatriceCreuse< float >::matrix, MIPVar, Modelib::MatriceCreuse< float >::nbCols, Modelib::MatriceCreuse< float >::nbLignes, objectif, objectifActivity, objectifName, problemName, solverAPI, et unknowMap.

std::ostream & Modelib::Model::Out | ( | std::ostream & | flux = std::cout,
|  | const std::string & | newline = ""
| ) |

  | Sortie graphique sous forme brute Paramètres:
  flux | le flux de destination
  newline | le chaine a mettre en bout de ligne
Définition à la ligne 631 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::GetNbCols(), Modelib::MatriceCreuse< float >::GetNbLignes(), objectif, et Modelib::MatriceCreuse< float >::Out().

Voici le graphique d'appel pour cette fonction:

std::ostream & Modelib::Model::OutConstraintValues | ( | std::ostream & | flux = std::cout,
|  | const std::string & | newline = ""
| ) | const

| Affiche les valeurs des contraintes et leurs états Définition à la ligne 1800 du fichier Model.cpp. Références _fract, Modelib::FractionConvert::Approx(), et isFract. Référencé par ShowMe().

Voici le graphique d'appel pour cette fonction:

std::ostream & Modelib::Model::OutDimensions | ( | std::ostream & | flux = std::cout,
|  | const std::string & | newline = ""
| ) |

| Sortie graphique des dimensions du problème Définition à la ligne 829 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::GetNbCols(), Modelib::MatriceCreuse< float >::GetNbLignes(), Modelib::MatriceCreuse< float >::matrix, Modelib::MatriceCreuse< float >::nbCols, Modelib::MatriceCreuse< float >::nbLignes, objectif, Modelib::Expr::Size(), et unknowMap.

Voici le graphique d'appel pour cette fonction:

std::ostream & Modelib::Model::OutNumVarValues | ( | bool | withoutNullValue = true,
|  | std::ostream & | flux = std::cout,
|  | const std::string & | newline = ""
| ) | const

  | Sortie sur cout des valeurs des variables Paramètres:
  withoutNullValue | qui spécifie si les variables nulles doivent etre affichees
Définition à la ligne 1733 du fichier Model.cpp. Références _fract, Modelib::FractionConvert::Approx(), Modelib::Infinity, isFract, et unknowMap. Référencé par ShowMe().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::PrintDual | ( | const std::string & | fileName | ) | const

  | Permet de récuperer le dual du programme linéaire dans un fichier Paramètres:
  fileName | le fichier de sortie
Définition à la ligne 2314 du fichier Model.cpp. Références GetDual().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::PrintFraction | ( |  | ) | `[inline]`

| Définition à la ligne 263 du fichier Model.h. Références isFract.

void Modelib::Model::PushOptions | ( | const std::string & | _str | ) | `[inline]`

| Définition à la ligne 258 du fichier Model.h. Références Modelib::SolverAPI::Options(), et solverAPI.

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::Relax | ( | const std::string & | name,
|  | float | lagrangianValue = -Infinity
| ) |

  | Relaxe une contrainte en la multipliant par un multiplicateur de Lagrange et en l'additionnant à la fonction objectif Paramètres:
  nom | le nom de la contrainte
  mult | le multiplicateur de Lagrange
Renvoie: vrai si l'operation s'est bien déroulé Définition à la ligne 1434 du fichier Model.cpp. Références GetConstraintId(), RelaxConstraint(), et Modelib::VarId.

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::RelaxBool2Float | ( | NumVar | numVar = NumVar() | ) |

  | 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 Paramètres:
  la | variable a relaxee
Renvoie: vrai si l'operation s'est bien déroulée Définition à la ligne 1486 du fichier Model.cpp. Références Modelib::NumVar::GetVarId(), unknowMap, et Modelib::VarId.

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::RelaxConstraint | ( | VarId | id,
|  | float | lagrangianValue = -Infinity
| ) |

  | Relaxe une contrainte Paramètres:
  id | l'identifiant de contrainte
  lagrangianValue |
Renvoie: Vrai si la contrainte a ete relaxee avec succes Définition à la ligne 1318 du fichier Model.cpp. Références GetRelaxedConstraintExpr(), Modelib::Infinity, Modelib::Expr::isParametric, isRelaxed, objectif, Modelib::Expr::sansConstantes, et Modelib::VarId. Référencé par Relax(), et Modelib::Constraint::Relax().

Voici le graphique d'appel pour cette fonction:

bool Modelib::Model::RelaxInt2Float | ( | NumVar | numVar = NumVar() | ) |

  | 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 Paramètres:
  la | variable a relaxee
Renvoie: vrai si l'operation s'est bien déroulée Définition à la ligne 1454 du fichier Model.cpp. Références Modelib::NumVar::GetVarId(), unknowMap, et Modelib::VarId.

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::RemoveConstraint | ( | VarId | id | ) |

  | Enlève une contrainte du modèle Paramètres:
  id | la contrainte du modèle
Définition à la ligne 1986 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::matrix, et Modelib::VarId.

void Modelib::Model::RemoveOptions | ( |  | ) | `[inline]`

| Définition à la ligne 259 du fichier Model.h. Références Modelib::SolverAPI::RemoveOptions(), et solverAPI.

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::RemoveVariable | ( | VarId | varId | ) |

  | Enlève une variable du modèle Paramètres:
  varId | l'identifiant de la variable dans le modèle
Définition à la ligne 1945 du fichier Model.cpp. Références A, Modelib::MatriceCreuse< float >::matrix, unknowMap, et Modelib::VarId.

void Modelib::Model::RenameConstraint | ( | VarId | id,
|  | const std::string & | name
| ) |

  | Renomme une contrainte Paramètres:
  id | l'identifiant de la contrainte à renommer
  name | son nouveau nom
Définition à la ligne 2110 du fichier Model.cpp. Références Modelib::VarId. Référencé par Modelib::Constraint::Rename().

void Modelib::Model::SetAPI | ( | API | _API | ) |

| Definit le solver Définition à la ligne 1546 du fichier Model.cpp. Références Modelib::API, Modelib::SolverAPI::SetAPI(), et solverAPI. Référencé par InitSolver().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::SetComment | ( | VarId | id,
|  | const std::string & | comment
| ) |

  | Définit un commentaire pour la contrainte d'identifiant id si un commentaire était déjà la, il sera écrasé Paramètres:
  id | l'identifiant de la contrainte
  comment | la chaine de commentaire sans le "\"
Définition à la ligne 2349 du fichier Model.cpp. Références comments, et Modelib::VarId. Référencé par Modelib::FichierProbleme::operator>>().

void Modelib::Model::SetConstraintValues | ( | const std::list< std::string > & | noms,
|  | const std::list< float > & | values
| ) |

  | Définit les valeurs des contraintes en fonctions de deux listes correspondant aux nouveaux couples valeur-nom Paramètres:
  noms | la liste des noms de variables à changer
  values | la listes de leurs valeurs reciproques
Définition à la ligne 1677 du fichier Model.cpp. Références EvalConstraint(). Référencé par Solve().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::SetLagrangianParamValue | ( | VarId | id,
|  | float | value
| ) | `[protected]`

  | Definit le coefficient du multiplicateur de Lagrange asssocié à la contrainte Paramètres:
  id | li'dentifiant de contrainte
Définition à la ligne 98 du fichier Model.cpp. Références Modelib::VarId. Référencé par Modelib::LagrangianParam::SetValue().

void Modelib::Model::SetMuteVarLB | ( | VarId | varId,
|  | float | _value
| ) | `[protected]`

  | Seter de la borne inférieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  _value | la nouvelle value de la borne inférieure
Définition à la ligne 275 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetLowerBound().

void Modelib::Model::SetMuteVarLBStrict | ( | VarId | varId,
|  | bool | _value
| ) | `[protected]`

  | Seter du caractère strict de borne inférieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  _value | la nouvelle value du caractère strict de la borne inférieure
Définition à la ligne 324 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetLowerBoundStrict().

void Modelib::Model::SetMuteVarUB | ( | VarId | varId,
|  | float | _value
| ) | `[protected]`

  | Seter de la borne supérieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  _value | la nouvelle value de la borne supérieure
Définition à la ligne 307 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetUpperBound().

void Modelib::Model::SetMuteVarUBStrict | ( | VarId | varId,
|  | bool | _value
| ) | `[protected]`

  | Seter du caractère strict de borne supérieure de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  _value | la nouvelle value du caractère strict de la borne supérieure
Définition à la ligne 340 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetUpperBoundStrict().

void Modelib::Model::SetName | ( | VarId | varId,
|  | const std::string & | name
| ) | `[protected]`

  | Seter du nom de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  le | nom de la variable
Définition à la ligne 225 du fichier Model.cpp. Références unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetName().

void Modelib::Model::SetNumVarValues | ( | const std::list< std::string > & | noms,
|  | const std::list< float > & | values
| ) |

  | Définit les valeurs des contraintes en fonctions de deux listes correspondant aux nouveaux couples valeur-nom Paramètres:
  noms | la liste des noms de variables à changer
  values | la listes de leurs valeurs reciproques
Définition à la ligne 1627 du fichier Model.cpp. Références unknowMap. Référencé par Solve().

void Modelib::Model::SetProblemName | ( | const std::string | name = "" | ) | `[inline]`

| Définition à la ligne 185 du fichier Model.h. Références problemName. Référencé par Modelib::FichierProbleme::operator>>().

void Modelib::Model::SetRelaxed | ( | bool | _isRelaxed | ) | `[inline]`

| Définition à la ligne 189 du fichier Model.h. Références isRelaxed.

void Modelib::Model::SetSecondMember | ( | VarId | id,
|  | float | bid
| ) |

  | Change le coefficient de la contrainte d'identifiant VarId Paramètres:
  id | l'identifiant de la contrainte
  bid | le nouveau coefficient de la contrainte
Définition à la ligne 2125 du fichier Model.cpp. Références Modelib::VarId. Référencé par GetDual(), et Modelib::Constraint::SetSecondMember().

void Modelib::Model::SetType | ( | VarId | varId,
|  | MuteVar::VarType | _type
| ) | `[protected]`

  | Seter du type de la variable associée à l'identifiant passé en argument Paramètres:
  varId | l'identifiant
  le | nouveau type de la variable (sous le format MuteVar::VarType)
Définition à la ligne 371 du fichier Model.cpp. Références MIPVar, unknowMap, et Modelib::VarId. Référencé par Modelib::NumVar::SetType().

void Modelib::Model::ShowMe | ( | bool | withoutNullValue = true | ) |

  | Affiche les principales caractéristiques du problème Paramètres:
  withoutNullValue | permet de ne pas afficher les variables de valeurs nulles
Définition à la ligne 1936 du fichier Model.cpp. Références OutConstraintValues(), et OutNumVarValues().

Voici le graphique d'appel pour cette fonction:

float Modelib::Model::Solve | ( |  | ) |

| Resoud le Modele Définition à la ligne 1552 du fichier Model.cpp. Références Modelib::Expr::GetConstant(), Modelib::SolverAPI::GetConstraintNoms(), Modelib::SolverAPI::GetfLP(), Modelib::SolverAPI::GetNumVarNoms(), Modelib::SolverAPI::IsOptimal(), isOptimal, Modelib::SolverAPI::IsSolved(), isSolved, MIPVar, objectif, objectifActivity, Modelib::SolverAPI::OutConstraintValues(), Modelib::SolverAPI::OutNumVarValues(), SetConstraintValues(), Modelib::SolverAPI::SetMIP(), SetNumVarValues(), Modelib::SolverAPI::Solve(), et solverAPI. Référencé par main().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::SolveInfos | ( | std::string & | _operation,
|  | std::string & | _informations
| ) | `[inline]`

| Définition à la ligne 244 du fichier Model.h. Références Modelib::SolverAPI::Infos(), et solverAPI.

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::SortieHTML | ( | const std::string & | fileName,
|  | const std::string & | matrixPNG = ""
| ) |

| Référencé par main().

void Modelib::Model::SortieLATEX | ( | const std::string & | fileName | ) |

std::ostream & Modelib::Model::SurchargeFlux | ( | std::ostream & | flux | ) | const`[protected]`

  | Sortie graphique sous forme de flux dans le format LP Paramètres:
  o | le flux à surcharger
Renvoie: le flux surchargé Définition à la ligne 650 du fichier Model.cpp. Références A, comments, Modelib::Infinity, Modelib::MatriceCreuse< float >::matrix, Modelib::MatriceCreuse< float >::nbLignes, objectif, problemName, unknowMap, et Modelib::VarId. Référencé par Modelib::operator<<().

std::ostream & Modelib::Model::SurchargeFluxRelaxed | ( | std::ostream & | flux | ) | const`[protected]`

  | Sortie graphique sous forme de flux dans le format LP du probleme relaxé Paramètres:
  o | le flux à surcharger
Renvoie: le flux surchargé Définition à la ligne 850 du fichier Model.cpp. Références A, comments, Modelib::Expr::GetConstant(), Modelib::Infinity, Modelib::MatriceCreuse< float >::matrix, Modelib::MatriceCreuse< float >::nbLignes, objectif, problemName, unknowMap, et Modelib::VarId. Référencé par Modelib::operator<<().

Voici le graphique d'appel pour cette fonction:

std::ostream & Modelib::Model::SurchargeMPSFlux | ( | std::ostream & | flux,
|  | bool | verbose
| ) | const`[protected]`

  | Surcharge de l'operateur de flux Paramètres:
  flux | le flux à surcharger
  m | le modele à afficher
Renvoie: Le flux surchargé Définition à la ligne 1063 du fichier Model.cpp. Références A, Modelib::NumVar::GetModel(), Modelib::NumVar::GetVarId(), Modelib::Infinity, Modelib::MatriceCreuse< float >::matrix, Modelib::MatriceCreuse< float >::nbLignes, Modelib::Expr::nodeList, objectif, problemName, unknowMap, et Modelib::VarId. Référencé par Modelib::ToMPS().

Voici le graphique d'appel pour cette fonction:

void Modelib::Model::UnrelaxModel | ( |  | ) |

| Nettoie le problème relaxé pour qu'il retrouve son aspect d'origine Définition à la ligne 1515 du fichier Model.cpp. Références Modelib::Expr::isParametric, isRelaxed, objectif, Modelib::Expr::sansConstantes, Modelib::Expr::Simplify(), et unknowMap.

Voici le graphique d'appel pour cette fonction:

## Documentation des fonctions amies et associées

friend class Constraint`[friend]`

| Définition à la ligne 132 du fichier Model.h. Référencé par Add(), et GetConstraint().

friend class LagrangianParam`[friend]`

| Définition à la ligne 128 du fichier Model.h. Référencé par GetAllLagrangianParams(), GetInfluentLagrangianParam(), et GetRelaxedConstraintExpr().

friend class NumVar`[friend]`

| Définition à la ligne 135 du fichier Model.h. Référencé par GetDual(), GetNumVar(), et GetRelaxedConstraintExpr().

std::ostream& operator<< | ( | std::ostream & | flux,
|  | const Model & | m
| ) | `[friend]`

  | Surcharge de l'operateur de flux Paramètres:
  flux | le flux à surcharger
  m | le modele à afficher
Renvoie: Le flux surchargé Définition à la ligne 1046 du fichier Model.cpp.

std::ostream& ToMPS | ( | std::ostream & | flux,
|  | const Model & | m,
|  | bool | verbose = true
| ) | `[friend]`

  | Surcharge de l'operateur de flux Paramètres:
  flux | le flux à surcharger
  m | le modele à afficher
Renvoie: Le flux surchargé Définition à la ligne 1289 du fichier Model.cpp.

## Documentation des données imbriquées

FractionConvert Modelib::Model::_fract`[private]`

| Définition à la ligne 116 du fichier Model.h. Référencé par OutConstraintValues(), et OutNumVarValues().

MatriceCreuse<float> Modelib::Model::A`[private]`

| Définition à la ligne 96 du fichier Model.h. Référencé par Add(), AddToConstraint(), Clear(), EvalConstraint(), GetDual(), GetRelaxedConstraintExpr(), MatriceOccupation(), Normalize(), operator=(), Out(), OutDimensions(), RemoveConstraint(), RemoveVariable(), SurchargeFlux(), SurchargeFluxRelaxed(), et SurchargeMPSFlux().

map<VarId, std::string> Modelib::Model::comments`[private]`

| Définition à la ligne 98 du fichier Model.h. Référencé par AddComment(), Clear(), GetComment(), SetComment(), SurchargeFlux(), et SurchargeFluxRelaxed().

map<VarId, InternalConstraint> Modelib::Model::constraintMap`[private]`

| Définition à la ligne 97 du fichier Model.h. Référencé par GetDual(), et operator=().

VarId Modelib::Model::hacheConstraintId`[private]`

| Définition à la ligne 94 du fichier Model.h. Référencé par AddComment(), AddExpr(), Clear(), GetMaxConstraintId(), et Model().

VarId Modelib::Model::hacheVarId`[private]`

| Définition à la ligne 93 du fichier Model.h. Référencé par AddVar(), Clear(), GetMaxVarId(), Model(), et operator=().

bool Modelib::Model::isFract`[private]`

| Définition à la ligne 102 du fichier Model.h. Référencé par Clear(), EndFraction(), Model(), operator=(), OutConstraintValues(), OutNumVarValues(), et PrintFraction().

bool Modelib::Model::isMax`[private]`

| Définition à la ligne 100 du fichier Model.h. Référencé par GetDual(), et operator=().

bool Modelib::Model::isNormalized`[private]`

| Définition à la ligne 105 du fichier Model.h. Référencé par Clear(), et Model().

bool Modelib::Model::isOptimal`[private]`

| Définition à la ligne 103 du fichier Model.h. Référencé par Clear(), Model(), operator=(), et Solve().

bool Modelib::Model::isRelaxed`[private]`

| Définition à la ligne 101 du fichier Model.h. Référencé par Clear(), IsRelaxed(), Model(), operator=(), RelaxConstraint(), SetRelaxed(), et UnrelaxModel().

bool Modelib::Model::isSolved`[private]`

| Définition à la ligne 104 du fichier Model.h. Référencé par Clear(), Model(), operator=(), et Solve().

unsigned Modelib::Model::MIPVar`[private]`

| Définition à la ligne 106 du fichier Model.h. Référencé par AddVar(), Clear(), Model(), operator=(), SetType(), et Solve().

Expr Modelib::Model::objectif`[private]`

| Définition à la ligne 108 du fichier Model.h. Référencé par Clear(), GetDual(), GetObjectif(), Maximize(), Minimize(), Normalize(), operator=(), Out(), OutDimensions(), RelaxConstraint(), Solve(), SurchargeFlux(), SurchargeFluxRelaxed(), SurchargeMPSFlux(), et UnrelaxModel().

float Modelib::Model::objectifActivity`[private]`

| Définition à la ligne 109 du fichier Model.h. Référencé par Clear(), Model(), operator=(), et Solve().

std::string Modelib::Model::objectifName`[private]`

| Définition à la ligne 110 du fichier Model.h. Référencé par GetDual(), et operator=().

std::string Modelib::Model::problemName`[private]`

| Définition à la ligne 111 du fichier Model.h. Référencé par Clear(), GetDual(), GetProblemName(), operator=(), SetProblemName(), SurchargeFlux(), SurchargeFluxRelaxed(), et SurchargeMPSFlux().

SolverAPI Modelib::Model::solverAPI`[private]`

| Définition à la ligne 114 du fichier Model.h. Référencé par GetDual(), InitSolver(), operator=(), PushOptions(), RemoveOptions(), SetAPI(), Solve(), et SolveInfos().

std::map< VarId, Paire > Modelib::Model::unknowMap`[private]`

| Définition à la ligne 95 du fichier Model.h. Référencé par AddExpr(), AddToConstraint(), AddVar(), Clear(), GetDual(), GetMuteVar(), GetMuteVarLB(), GetMuteVarUB(), GetName(), GetType(), GetVarId(), Normalize(), operator=(), OutDimensions(), OutNumVarValues(), RelaxBool2Float(), RelaxInt2Float(), RemoveVariable(), SetMuteVarLB(), SetMuteVarLBStrict(), SetMuteVarUB(), SetMuteVarUBStrict(), SetName(), SetNumVarValues(), SetType(), SurchargeFlux(), SurchargeFluxRelaxed(), SurchargeMPSFlux(), et UnrelaxModel().

La documentation associée à cette classe a été générée à partir des fichiers suivants :

- /Model.h
- /Model.cpp