00001
00002
00003
00004 #include "BCP_math.hpp"
00005 #include "BCP_tm_param.hpp"
00006 #include "BCP_parameters.hpp"
00007
00008 #include "BCP_enum.hpp"
00009 #include "BCP_enum_tm.hpp"
00010
00011 using std::make_pair;
00012
00013 template <>
00014 void BCP_parameter_set<BCP_tm_par>::create_keyword_list() {
00015
00016
00017
00018 keys.push_back(make_pair(BCP_string("BCP_DebugLpProcesses"),
00019 BCP_parameter(BCP_CharPar,
00020 DebugLpProcesses)));
00021 keys.push_back(make_pair(BCP_string("BCP_DebugCgProcesses"),
00022 BCP_parameter(BCP_CharPar,
00023 DebugCgProcesses)));
00024 keys.push_back(make_pair(BCP_string("BCP_DebugVgProcesses"),
00025 BCP_parameter(BCP_CharPar,
00026 DebugVgProcesses)));
00027 keys.push_back(make_pair(BCP_string("BCP_DebugCpProcesses"),
00028 BCP_parameter(BCP_CharPar,
00029 DebugCpProcesses)));
00030 keys.push_back(make_pair(BCP_string("BCP_DebugVpProcesses"),
00031 BCP_parameter(BCP_CharPar,
00032 DebugVpProcesses)));
00033 keys.push_back(make_pair(BCP_string("BCP_GenerateVars"),
00034 BCP_parameter(BCP_CharPar,
00035 GenerateVars)));
00036 keys.push_back(make_pair(BCP_string("BCP_ReportWhenDefaultIsExecuted"),
00037 BCP_parameter(BCP_CharPar,
00038 ReportWhenDefaultIsExecuted)));
00039 keys.push_back(make_pair(BCP_string("BCP_TrimTreeBeforeNewPhase"),
00040 BCP_parameter(BCP_CharPar,
00041 TrimTreeBeforeNewPhase)));
00042 keys.push_back(make_pair(BCP_string("BCP_RemoveExploredBranches"),
00043 BCP_parameter(BCP_CharPar,
00044 RemoveExploredBranches)));
00045
00046
00047 keys.push_back(make_pair(BCP_string("BCP_VerbosityShutUp"),
00048 BCP_parameter(BCP_CharPar,
00049 VerbosityShutUp)));
00050 keys.push_back(make_pair(BCP_string("BCP_TmVerb_AllFeasibleSolutionValue"),
00051 BCP_parameter(BCP_CharPar,
00052 TmVerb_AllFeasibleSolutionValue)));
00053 keys.push_back(make_pair(BCP_string("BCP_TmVerb_AllFeasibleSolution"),
00054 BCP_parameter(BCP_CharPar,
00055 TmVerb_AllFeasibleSolution)));
00056 keys.push_back(make_pair(BCP_string("BCP_TmVerb_BetterFeasibleSolutionValue"),
00057 BCP_parameter(BCP_CharPar,
00058 TmVerb_BetterFeasibleSolutionValue)));
00059 keys.push_back(make_pair(BCP_string("BCP_TmVerb_BetterFeasibleSolution"),
00060 BCP_parameter(BCP_CharPar,
00061 TmVerb_BetterFeasibleSolution)));
00062 keys.push_back(make_pair(BCP_string("BCP_TmVerb_BestFeasibleSolution"),
00063 BCP_parameter(BCP_CharPar,
00064 TmVerb_BestFeasibleSolution)));
00065 keys.push_back(make_pair(BCP_string("BCP_TmVerb_NewPhaseStart"),
00066 BCP_parameter(BCP_CharPar,
00067 TmVerb_NewPhaseStart)));
00068 keys.push_back(make_pair(BCP_string("BCP_TmVerb_PrunedNodeInfo"),
00069 BCP_parameter(BCP_CharPar,
00070 TmVerb_PrunedNodeInfo)));
00071 keys.push_back(make_pair(BCP_string("BCP_TmVerb_TimeOfImprovingSolution"),
00072 BCP_parameter(BCP_CharPar,
00073 TmVerb_TimeOfImprovingSolution)));
00074 keys.push_back(make_pair(BCP_string("BCP_TmVerb_TrimmedNum"),
00075 BCP_parameter(BCP_CharPar,
00076 TmVerb_TrimmedNum)));
00077 keys.push_back(make_pair(BCP_string("BCP_TmVerb_FinalStatistics"),
00078 BCP_parameter(BCP_CharPar,
00079 TmVerb_FinalStatistics)));
00080 keys.push_back(make_pair(BCP_string("BCP_TmVerb_ReportDefault"),
00081 BCP_parameter(BCP_CharPar,
00082 TmVerb_ReportDefault)));
00083
00084
00085
00086
00087
00088
00089
00090 keys.push_back(make_pair(BCP_string("BCP_WarmstartInfo"),
00091 BCP_parameter(BCP_IntPar,
00092 WarmstartInfo)));
00093 keys.push_back(make_pair(BCP_string("BCP_MaxHeapSize"),
00094 BCP_parameter(BCP_IntPar,
00095 MaxHeapSize)));
00096 keys.push_back(make_pair(BCP_string("BCP_TmVerb_SingleLineInfoFrequency"),
00097 BCP_parameter(BCP_IntPar,
00098 TmVerb_SingleLineInfoFrequency)));
00099 keys.push_back(make_pair(BCP_string("BCP_TreeSearchStrategy"),
00100 BCP_parameter(BCP_IntPar,
00101 TreeSearchStrategy)));
00102 keys.push_back(make_pair(BCP_string("BCP_NiceLevel"),
00103 BCP_parameter(BCP_IntPar,
00104 NiceLevel)));
00105 keys.push_back(make_pair(BCP_string("BCP_LpProcessNum"),
00106 BCP_parameter(BCP_IntPar,
00107 LpProcessNum)));
00108 keys.push_back(make_pair(BCP_string("BCP_CgProcessNum"),
00109 BCP_parameter(BCP_IntPar,
00110 CgProcessNum)));
00111 keys.push_back(make_pair(BCP_string("BCP_CpProcessNum"),
00112 BCP_parameter(BCP_IntPar,
00113 CpProcessNum)));
00114 keys.push_back(make_pair(BCP_string("BCP_VgProcessNum"),
00115 BCP_parameter(BCP_IntPar,
00116 VgProcessNum)));
00117 keys.push_back(make_pair(BCP_string("BCP_VpProcessNum"),
00118 BCP_parameter(BCP_IntPar,
00119 VpProcessNum)));
00120 keys.push_back(make_pair(BCP_string("BCP_TmTimeout"),
00121 BCP_parameter(BCP_IntPar,
00122 TmTimeout)));
00123 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_MaxNodeIdNum"),
00124 BCP_parameter(BCP_IntPar,
00125 LPscheduler_MaxNodeIdNum)));
00126 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_MaxSbIdNum"),
00127 BCP_parameter(BCP_IntPar,
00128 LPscheduler_MaxSbIdNum)));
00129 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_MinSbIdNum"),
00130 BCP_parameter(BCP_IntPar,
00131 LPscheduler_MinSbIdNum)));
00132
00133
00134
00135
00136
00137
00138 keys.push_back(make_pair(BCP_string("BCP_UnconditionalDiveProbability"),
00139 BCP_parameter(BCP_DoublePar,
00140 UnconditionalDiveProbability)));
00141 keys.push_back(make_pair(BCP_string("BCP_QualityRatioToAllowDiving_HasUB"),
00142 BCP_parameter(BCP_DoublePar,
00143 QualityRatioToAllowDiving_HasUB)));
00144 keys.push_back(make_pair(BCP_string("BCP_QualityRatioToAllowDiving_NoUB"),
00145 BCP_parameter(BCP_DoublePar,
00146 QualityRatioToAllowDiving_NoUB)));
00147 keys.push_back(make_pair(BCP_string("BCP_Granularity"),
00148 BCP_parameter(BCP_DoublePar,
00149 Granularity)));
00150 keys.push_back(make_pair(BCP_string("BCP_MaxRunTime"),
00151 BCP_parameter(BCP_DoublePar,
00152 MaxRunTime)));
00153 keys.push_back(make_pair(BCP_string("BCP_UpperBound"),
00154 BCP_parameter(BCP_DoublePar,
00155 UpperBound)));
00156 keys.push_back(make_pair(BCP_string("BCP_TerminationGap_Absolute"),
00157 BCP_parameter(BCP_DoublePar,
00158 TerminationGap_Absolute)));
00159 keys.push_back(make_pair(BCP_string("BCP_TerminationGap_Relative"),
00160 BCP_parameter(BCP_DoublePar,
00161 TerminationGap_Relative)));
00162 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_OverEstimationStatic"),
00163 BCP_parameter(BCP_DoublePar,
00164 LPscheduler_OverEstimationStatic)));
00165 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_SwitchToRateThreshold"),
00166 BCP_parameter(BCP_DoublePar,
00167 LPscheduler_SwitchToRateThreshold)));
00168 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_FactorTimeHorizon"),
00169 BCP_parameter(BCP_DoublePar,
00170 LPscheduler_FactorTimeHorizon)));
00171 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_OverEstimationRate"),
00172 BCP_parameter(BCP_DoublePar,
00173 LPscheduler_OverEstimationRate)));
00174 keys.push_back(make_pair(BCP_string("BCP_LPscheduler_MaxNodeIdRatio"),
00175 BCP_parameter(BCP_DoublePar,
00176 LPscheduler_MaxNodeIdRatio)));
00177
00178
00179
00180
00181
00182
00183 keys.push_back(make_pair(BCP_string("BCP_ReadRootCutsFrom"),
00184 BCP_parameter(BCP_StringPar,
00185 ReadRootCutsFrom)));
00186 keys.push_back(make_pair(BCP_string("BCP_SaveRootCutsTo"),
00187 BCP_parameter(BCP_StringPar,
00188 SaveRootCutsTo)));
00189 keys.push_back(make_pair(BCP_string("BCP_ExecutableName"),
00190 BCP_parameter(BCP_StringPar,
00191 ExecutableName)));
00192 keys.push_back(make_pair(BCP_string("BCP_LogFileName"),
00193 BCP_parameter(BCP_StringPar,
00194 LogFileName)));
00195
00196
00197
00198
00199
00200
00201 keys.push_back(make_pair(BCP_string("BCP_LpMachine"),
00202 BCP_parameter(BCP_StringArrayPar,
00203 LpMachines)));
00204 keys.push_back(make_pair(BCP_string("BCP_CgMachine"),
00205 BCP_parameter(BCP_StringArrayPar,
00206 CgMachines)));
00207 keys.push_back(make_pair(BCP_string("BCP_VgMachine"),
00208 BCP_parameter(BCP_StringArrayPar,
00209 VgMachines)));
00210 keys.push_back(make_pair(BCP_string("BCP_CpMachine"),
00211 BCP_parameter(BCP_StringArrayPar,
00212 CpMachines)));
00213 keys.push_back(make_pair(BCP_string("BCP_VpMachine"),
00214 BCP_parameter(BCP_StringArrayPar,
00215 VpMachines)));
00216
00217
00218
00219 }
00220
00221
00222
00223 template <>
00224 void BCP_parameter_set<BCP_tm_par>::set_default_entries(){
00225
00226
00227 set_entry(DebugLpProcesses, false);
00228 set_entry(DebugCgProcesses, false);
00229 set_entry(DebugVgProcesses, false);
00230 set_entry(DebugCpProcesses, false);
00231 set_entry(DebugVpProcesses, false);
00232 set_entry(GenerateVars, false);
00233 set_entry(MessagePassingIsSerial, false);
00234 set_entry(ReportWhenDefaultIsExecuted, true);
00235 set_entry(TrimTreeBeforeNewPhase, false);
00236 set_entry(RemoveExploredBranches, false);
00237
00238 set_entry(VerbosityShutUp, false);
00239 set_entry(TmVerb_AllFeasibleSolutionValue, true);
00240 set_entry(TmVerb_AllFeasibleSolution, false);
00241 set_entry(TmVerb_BetterFeasibleSolutionValue, true);
00242 set_entry(TmVerb_BetterFeasibleSolution, false);
00243 set_entry(TmVerb_BestFeasibleSolution, true);
00244 set_entry(TmVerb_NewPhaseStart, true);
00245 set_entry(TmVerb_TrimmedNum, true);
00246 set_entry(TmVerb_TimeOfImprovingSolution, true);
00247 set_entry(TmVerb_PrunedNodeInfo, true);
00248 set_entry(TmVerb_FinalStatistics, true);
00249 set_entry(TmVerb_ReportDefault, true);
00250
00251
00252 set_entry(WarmstartInfo, BCP_WarmstartParent);
00253 set_entry(MaxHeapSize, -1);
00254 set_entry(TmVerb_SingleLineInfoFrequency, 0);
00255 set_entry(TreeSearchStrategy, BCP_BestFirstSearch);
00256 set_entry(NiceLevel, 0);
00257 set_entry(LpProcessNum, 1);
00258 set_entry(CgProcessNum, 0);
00259 set_entry(CpProcessNum, 0);
00260 set_entry(VgProcessNum, 0);
00261 set_entry(VpProcessNum, 0);
00262 set_entry(TmTimeout, -1);
00263 set_entry(LPscheduler_MaxNodeIdNum, 2000);
00264 set_entry(LPscheduler_MaxSbIdNum, 100000);
00265 set_entry(LPscheduler_MinSbIdNum, 1);
00266
00267
00268 set_entry(UnconditionalDiveProbability, 0.02);
00269 set_entry(QualityRatioToAllowDiving_HasUB, 1.2);
00270 set_entry(QualityRatioToAllowDiving_NoUB, 2.0);
00271 set_entry(Granularity, 1e-8);
00272 set_entry(MaxRunTime, 3600.0);
00273 set_entry(TerminationGap_Absolute, 0.0);
00274 set_entry(TerminationGap_Relative, 0.0);
00275 set_entry(UpperBound, BCP_DBL_MAX);
00276 set_entry(LPscheduler_OverEstimationStatic, 2.0);
00277 set_entry(LPscheduler_SwitchToRateThreshold, 1.0);
00278 set_entry(LPscheduler_FactorTimeHorizon, 10.0);
00279 set_entry(LPscheduler_OverEstimationRate, 2.0);
00280 set_entry(LPscheduler_MaxNodeIdRatio, 0.2);
00281
00282
00283 set_entry(ReadRootCutsFrom, "");
00284 set_entry(SaveRootCutsTo, "");
00285 set_entry(ExecutableName, "bcpp");
00286 set_entry(LogFileName,"");
00287 }