/home/coin/SVN-release/OS-2.4.0/Bcp/src/TM/BCP_tm_param.cpp

Go to the documentation of this file.
00001 // Copyright (C) 2000, International Business Machines
00002 // Corporation and others.  All Rights Reserved.
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     // Create the list of keywords for parameter file reading
00016     //-------------------------------------------------------------------------
00017     // CharPar
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     //    keys.push_back(make_pair(BCP_string("BCP_"),
00085     //                      BCP_parameter(BCP_CharPar,
00086     //                                    )));
00087 
00088     //-------------------------------------------------------------------------
00089     // IntPar
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     //    keys.push_back(make_pair(BCP_string("BCP_"),
00133     //                      BCP_parameter(BCP_IntPar,
00134     //                                    )));
00135 
00136     //-------------------------------------------------------------------------
00137     // DoublePar
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     //    keys.push_back(make_pair(BCP_string("BCP_"),
00178     //                      BCP_parameter(BCP_DoublePar,
00179     //                                    )));
00180 
00181     //-------------------------------------------------------------------------
00182     // StringPar
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     //    keys.push_back(make_pair(BCP_string("BCP_"),
00196     //                      BCP_parameter(BCP_StringPar,
00197     //                                    )));
00198    
00199     //-------------------------------------------------------------------------
00200     // StringArrayPar
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     //    keys.push_back(make_pair(BCP_string("BCP_"),
00217     //                      BCP_parameter(BCP_StringArrayPar,
00218     //                                    )));
00219 }
00220 
00221 //#############################################################################
00222 
00223 template <>
00224 void BCP_parameter_set<BCP_tm_par>::set_default_entries(){
00225     //-------------------------------------------------------------------------
00226     // CharPar
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     // IntPar
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     // DoublePar
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); // one hour
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); // stick to static
00278     set_entry(LPscheduler_FactorTimeHorizon, 10.0);
00279     set_entry(LPscheduler_OverEstimationRate, 2.0);
00280     set_entry(LPscheduler_MaxNodeIdRatio, 0.2);
00281     //-------------------------------------------------------------------------
00282     // StringPar
00283     set_entry(ReadRootCutsFrom, "");
00284     set_entry(SaveRootCutsTo, "");
00285     set_entry(ExecutableName, "bcpp");
00286     set_entry(LogFileName,"");
00287 }

Generated on Thu Sep 22 03:05:53 2011 by  doxygen 1.4.7