#ifndef __TUNING_H__ #define __TUNING_H__ #include "config.h" /** tests unitaires */ // ajouter toujours UNIT_TEST //#define UNIT_TEST // choix du module à tester //#define TEST_VITERBI //#define TESTDA //#define TEST_PMAX //#define PRODUIT_SOLUTION_A_CHAQUE_PASSE //#define NO_CPLEX /** traitement des erreurs */ //#define CATCH_EXCEPTION /** verbosité */ /* général */ //#define _RELEASE_ // #define VERBOSE_TEMPS // #define VERBOSE_PASSES /* graphe */ // #define VERBOSE_COUT_THERMIQUES // #define __DUMP_GRAPHE__ // #define __DEBUG_VITERBI__ // #define VERBOSE_VITERBI #define VERBOSE_NB_NOEUDS // #define VERBOSE_CREATION_NOEUD // #define DEBUG_CREATION_NOEUDS #define VERBOSE_NB_ARCS // #define VERBOSE_CREATION_ARCS // #define DEBUG_COUT_ARCS /* plans */ // #define VERBOSE_PLANS // #define _DEBUG_BO_ // #define FICHIER_PLAN // #define VERBOSE_NUMEROS_PLANS // #define VERBOSE_PLANS_REJETES // #define EXPORTE_PLANS_PAR_SCENARIO /* dual ascent */ // #define _DEBUG_ZD // #define _DEBUG_LAMBDA // #define PMAX_POUR_DEM #define BORNE_SUP_VERSION_2 // #define _DEBUG_BORNESUP // #define VERBOSE_SUMPROD // #define VERBOSE_BORNE_SUP // #define VERBOSE_COUT_COLONNES // #define VERBOSE_DUALS /* filtre aval */ #define VERBOSE_AJOUT_PAS_DE_TEMPS /* cplex */ // #define DEBUG_CLIQUES // #define VERBOSE_SOLUTION_STATUS // #define VERBOSE_CPLEX_INTERNAL #define CPLEX_WITH_NAMES #define WRITE_CPLEX_FILE // écrire mip.lp sur le disque /** type d'instance réduite */ // moyenne sur les scenarios, par semaine #define RED_MOYENNE #define TEST_MOYENNE_PAR_SCENARIO /** * * paramétrages * */ /// peut-on sauter une campagne k et prévoir les outages 0 ... k-1, k+1, ... ? // #define SAUT_CAMPAGNE_AUTORISE /// temps limite par défaut : 3600 secondes #define DEFAULT_TIME_LIMIT 3600 /// pas de pavage pour les niveaux de fuel de début d'arc : FACTEUR_DE_PAVAGE * EMAX(powerplant,semaine) #define DEFAULT_FACTEUR_DE_PAVAGE ((coeff_t)1.0) /// répartir la modulation sur toutes les semaines à coût réduit positif #define _MODUL_REPARTIE_ /// rejeter les plans de production en double #define OPTION_REJETE_PLANS_EXISTANTS /// rejeter les plans de production à coûts réduits positifs // #define OPTION_REJETE_COUTS_REDUITS_POSITIFS /// vecteur des u_i initial à 0 plutôt qu'à (coût max de rechage + 1) #define U_INITIAL_ZERO /** mode multithread par défaut (recouvert par -DMULTITHREAD_MODE=true/false lors de la compilation) * et par inversé par -mt lors du lancement du programme */ #define DEFAULT_MULTITHREAD_MODE true /** * * stratégies pour l'optimisation * A passer avec l'option -strat * */ enum strategies_t { toujoursDualAscent_sansCliques, // jamaisDualAscent_avecCliques, // Cliques_puis_DualAscent_AvecCliques_quand_plus_de_nouveaux_plans, // Cliques_puis_DualAscent_SansCliques_quand_plus_de_nouveaux_plans, // Cliques_et_DualAscent_alternes }; //#define STRATEGIE_PAR_DEFAUT Cliques_et_DualAscent_alternes #define STRATEGIE_PAR_DEFAUT toujoursDualAscent_sansCliques enum duals_t { d_dualascent, d_cplexduals_scenarios, d_cplexduals, d_cplexduals_1ct, d_cplexduals_ct, d_cplexduals_dt }; #define DUALS_PAR_DEFAUT d_cplexduals enum selecteur_t { sel_1ct, sel_ct, sel_cts, sel_1cts }; #define SELECTEUR_PAR_DEFAUT sel_ct enum filtreaval_t { fa_manuel, fa_cplex, fa_cplex_reste_libre, fa_cplex_ultime, fa_cplex_ultime_1passe }; #define FILTRE_AVAL_PAR_DEFAUT fa_cplex_ultime #endif