#ifndef DA_H_INCLUDED #define DA_H_INCLUDED #include #include #include #include #include #include #include #include #include "../instance/indices.h" #include "../instance/cinstance.h" #include "../instance/cinstancereduite.h" #include "cgraphe.h" #include "cplan.h" #include "clique.h" #include using namespace std; class Cplex; class DualAscent { public : // Matrice A de taille 260 + 51 X nombre de colonnes vector< vector * > A ; vector > recharge; //recharge[col][k] = quantité refuelée à la k-ème campagne, sur la col-ième colonne double a(int i, int j) const { return (*A[i])[j];} // vecteur de cout des colonnes vector cost ; // fuel remaining vector reste; // reste[col] = fuel restant en fin de scénar // vecteur de demande de production + affectation des colonnes vector b ; // vecteur de production MAX remplie par toutes les centrales nucléaires si elles fonctionnaient toutes à PMAX + affectation colonne vector b_PMAX ; // mêmes informations pour la colonne themique vector * therm_A ; vector therm_recharge ; double therm_cost ; double therm_reste ; // fonction DualAscent(vector dem, powerplants2_t nb_centrales) { b = dem ; b_PMAX = dem; // Ajout Affectation sur b et b_PMAX b_PMAX.resize( dem.size() + nb_centrales , 1 ); b.resize( dem.size() + nb_centrales , 1 ); double coutTherm = 0; double b_PMAX_coutTherm =0; for (week_t w=(week_t) 0;w