#ifndef CDUALCPLEXSCENARIO_H #define CDUALCPLEXSCENARIO_H #include #include #include //class CPlexMutable; using std::vector; using std::pair; using std::string; /** @author Antoine Rozenknop */ class CDualCplexScenario : public CDualCalc { public: CDualCplexScenario(scenario_t, bool internal_silent, bool silent, bool writeToFile); ~CDualCplexScenario(); virtual vector< euros_par_kWh > calculeDuals() const; virtual void ajoutcolonne(CPlan* cplan); /// retrait d'un plan de production nucléaire virtual void retraitColonne(const CPlan* cplan); void set_dates_ref(const vector > & dates_ref) {m_dates_ref = dates_ref;} void set_recharges_ref(const vector > & recharges_ref) {m_recharges_ref = recharges_ref;} virtual void ajoute_thermiques(); virtual void ajoute_contraintes(); virtual void ajoute_deltas(); virtual vector getReducedCosts() const; virtual vector getResults() const; virtual void printResults() const; /// récupère la valeur de la fonction objectif virtual double getObjectiveValue() const ; /// récupère les valeurs des duales corresponant aux contraintes 14 à 21 /// et les stocke dans les contraintes virtual void collecte_duales_14_a_21() const; pair,vector> getDualsDates(powerplants2_t i); vector> getMoyenneDates(); pair,vector> getDualsRecharges(powerplants2_t i); vector> getMoyenneRecharges(); void set_name(string s) {m_cplex->set_name(s);} /// retourne une solution entière sous forme de vecteur des indices des colonnes nucléaires vector resolution_entiers(); protected: CPlexMutable * m_cplex ; scenario_t m_s; vector > m_dates_ref ; // dates de références passées par le maître ("a barre" du papier) vector > m_recharges_ref ; // recharges de références passées par le maître ("a barre" du papier) static int m_iteration; }; #endif