#ifndef CPLEX_H #define CPLEX_H #include #ifndef NO_CPLEX #include "../optimizer/DA.h" #include "../optimizer/clique.h" #include "../instance/cinstancereduite.h" #include "../instance/cinstance.h" #include #include #include #include /* Bring in the declarations for the string functions */ #include class DualAscent; // //double cl[CardR], ct[T], dlt[CardR][T], Dt[T], Mint[T], Maxt[T]; //int Affect[CardR][CardRi], Clique[CardR][CardRc], bc[CardRc]; class Cplex{ // protected: public: int nbColonnes; // nombre de colnones int nbCentraleNucl; week_t nbSemaines; double* cl; //cout des colonnes. Taille = nb colonnes double* ct; //cout unitaire prod thermique. Taille = nb semaines double** dlt; //matrice A ; partie production. Taille = nbColonnes x nbSemaines double* dt; //Demande (vecteur b) ; partie production. Taille = nb semaines double* Mint; //Prod thermique min. Taille = nb semaines double* Maxt; // prod thermique max. Taille = nb semaines int** affect; // matrice A ; partie affectation. Taille = nbColonnes x nb centrales nucl int nbClique; // Nombre de contraintes de clique int** clique; // Contraintes de clique. Taille = nbColonnes x nbCliques int* bc; // Second membre des contraintes de clique. Taille = nbClique void contrainte14 (std::vector >& vclique, std::vector& vbc); void contrainte15 (std::vector >& vclique, std::vector& vbc); void contrainte16 (std::vector >& vclique, std::vector& vbc); void contrainte17 (std::vector >& vclique, std::vector& vbc); void contrainte18 (std::vector >& vclique, std::vector& vbc); void contrainte19 (std::vector >& vclique, std::vector& vbc); void contrainte20 (std::vector >& vclique, std::vector& vbc); void contrainte21 (std::vector >& vclique, std::vector& vbc); public: Cplex(int nbCol, week_t nbSem); Cplex(DualAscent& da); std::vector resolution(); int setproblemdata (char **probname_p, int *numcols_p, int *numrows_p, int *objsen_p, double **obj_p, double **rhs_p, char **sense_p, int **matbeg_p, int **matcnt_p, int **matind_p, double **matval_p, double **lb_p, double **ub_p, char **ctype_p); void free_and_null (char **ptr); int NUMNucl; int NUMTps; int NUMAff; int NUMCliq; int NUMROWS; int NUMCOLS; int NUMNZ; ~Cplex(); }; #endif // USE_CPLEX #endif