Closed bbrunaud closed 6 years ago
Hello, I was trying to test Cplex automatic benders decomposition from CPLEX 12.7 and I could not pass the param CPXPARAM_Benders_Strategy. I noticed that the cpx_params12.7.jl file is generated using:
# grep "#define" cpxconst.h | grep "CPX_PARAM_" | awk '{ printf("\"%s\" => %s,\n",$2,$3) }'
so parameters that start with CPXPARAM without the underscore are not captured. Here is a list of parameters that are currently not being captured.
[Atacama ~]$ grep "#define" /opt/cplex127/cplex/include/ilcplex/cpxconst.h | grep CPXPARAM #define CPXPARAM_H 1 #define CPXPARAM_Advance 1001 #define CPXPARAM_Barrier_Algorithm 3007 #define CPXPARAM_Barrier_ColNonzeros 3009 #define CPXPARAM_Barrier_ConvergeTol 3002 #define CPXPARAM_Barrier_Crossover 3018 #define CPXPARAM_Barrier_Display 3010 #define CPXPARAM_Barrier_Limits_Corrections 3013 #define CPXPARAM_Barrier_Limits_Growth 3003 #define CPXPARAM_Barrier_Limits_Iteration 3012 #define CPXPARAM_Barrier_Limits_ObjRange 3004 #define CPXPARAM_Barrier_Ordering 3014 #define CPXPARAM_Barrier_QCPConvergeTol 3020 #define CPXPARAM_Barrier_StartAlg 3017 #define CPXPARAM_Benders_Strategy 1501 #define CPXPARAM_Benders_Tolerances_feasibilitycut 1509 #define CPXPARAM_Benders_Tolerances_optimalitycut 1510 #define CPXPARAM_Benders_WorkerAlgorithm 1500 #define CPXPARAM_ClockType 1006 #define CPXPARAM_Conflict_Algorithm 1073 #define CPXPARAM_Conflict_Display 1074 #define CPXPARAM_CPUmask 1144 #define CPXPARAM_DetTimeLimit 1127 #define CPXPARAM_DistMIP_Rampup_DetTimeLimit 2164 #define CPXPARAM_DistMIP_Rampup_Duration 2163 #define CPXPARAM_DistMIP_Rampup_TimeLimit 2165 #define CPXPARAM_Emphasis_Memory 1082 #define CPXPARAM_Emphasis_MIP 2058 #define CPXPARAM_Emphasis_Numerical 1083 #define CPXPARAM_Feasopt_Mode 1084 #define CPXPARAM_Feasopt_Tolerance 2073 #define CPXPARAM_LPMethod 1062 #define CPXPARAM_MIP_Cuts_BQP 2195 #define CPXPARAM_MIP_Cuts_Cliques 2003 #define CPXPARAM_MIP_Cuts_Covers 2005 #define CPXPARAM_MIP_Cuts_Disjunctive 2053 #define CPXPARAM_MIP_Cuts_FlowCovers 2040 #define CPXPARAM_MIP_Cuts_Gomory 2049 #define CPXPARAM_MIP_Cuts_GUBCovers 2044 #define CPXPARAM_MIP_Cuts_Implied 2041 #define CPXPARAM_MIP_Cuts_LiftProj 2152 #define CPXPARAM_MIP_Cuts_LocalImplied 2181 #define CPXPARAM_MIP_Cuts_MCFCut 2134 #define CPXPARAM_MIP_Cuts_MIRCut 2052 #define CPXPARAM_MIP_Cuts_PathCut 2051 #define CPXPARAM_MIP_Cuts_RLT 2196 #define CPXPARAM_MIP_Cuts_ZeroHalfCut 2111 #define CPXPARAM_MIP_Display 2012 #define CPXPARAM_MIP_Interval 2013 #define CPXPARAM_MIP_Limits_AggForCut 2054 #define CPXPARAM_MIP_Limits_AuxRootThreads 2139 #define CPXPARAM_MIP_Limits_CutPasses 2056 #define CPXPARAM_MIP_Limits_CutsFactor 2033 #define CPXPARAM_MIP_Limits_EachCutLimit 2102 #define CPXPARAM_MIP_Limits_GomoryCand 2048 #define CPXPARAM_MIP_Limits_GomoryPass 2050 #define CPXPARAM_MIP_Limits_Nodes 2017 #define CPXPARAM_MIP_Limits_PolishTime 2066 #define CPXPARAM_MIP_Limits_Populate 2108 #define CPXPARAM_MIP_Limits_ProbeDetTime 2150 #define CPXPARAM_MIP_Limits_ProbeTime 2065 #define CPXPARAM_MIP_Limits_RepairTries 2067 #define CPXPARAM_MIP_Limits_Solutions 2015 #define CPXPARAM_MIP_Limits_StrongCand 2045 #define CPXPARAM_MIP_Limits_StrongIt 2046 #define CPXPARAM_MIP_Limits_SubMIPNodeLim 2062 #define CPXPARAM_MIP_Limits_TreeMemory 2027 #define CPXPARAM_MIP_OrderType 2032 #define CPXPARAM_MIP_PolishAfter_AbsMIPGap 2126 #define CPXPARAM_MIP_PolishAfter_DetTime 2151 #define CPXPARAM_MIP_PolishAfter_MIPGap 2127 #define CPXPARAM_MIP_PolishAfter_Nodes 2128 #define CPXPARAM_MIP_PolishAfter_Solutions 2129 #define CPXPARAM_MIP_PolishAfter_Time 2130 #define CPXPARAM_MIP_Pool_AbsGap 2106 #define CPXPARAM_MIP_Pool_Capacity 2103 #define CPXPARAM_MIP_Pool_Intensity 2107 #define CPXPARAM_MIP_Pool_RelGap 2105 #define CPXPARAM_MIP_Pool_Replace 2104 #define CPXPARAM_MIP_Strategy_Backtrack 2002 #define CPXPARAM_MIP_Strategy_BBInterval 2039 #define CPXPARAM_MIP_Strategy_Branch 2001 #define CPXPARAM_MIP_Strategy_CallbackReducedLP 2055 #define CPXPARAM_MIP_Strategy_Dive 2060 #define CPXPARAM_MIP_Strategy_File 2016 #define CPXPARAM_MIP_Strategy_FPHeur 2098 #define CPXPARAM_MIP_Strategy_HeuristicFreq 2031 #define CPXPARAM_MIP_Strategy_KappaStats 2137 #define CPXPARAM_MIP_Strategy_LBHeur 2063 #define CPXPARAM_MIP_Strategy_MIQCPStrat 2110 #define CPXPARAM_MIP_Strategy_NodeSelect 2018 #define CPXPARAM_MIP_Strategy_Order 2020 #define CPXPARAM_MIP_Strategy_PresolveNode 2037 #define CPXPARAM_MIP_Strategy_Probe 2042 #define CPXPARAM_MIP_Strategy_RINSHeur 2061 #define CPXPARAM_MIP_Strategy_Search 2109 #define CPXPARAM_MIP_Strategy_StartAlgorithm 2025 #define CPXPARAM_MIP_Strategy_SubAlgorithm 2026 #define CPXPARAM_MIP_Strategy_VariableSelect 2028 #define CPXPARAM_MIP_Tolerances_AbsMIPGap 2008 #define CPXPARAM_MIP_Tolerances_Linearization 2068 #define CPXPARAM_MIP_Tolerances_Integrality 2010 #define CPXPARAM_MIP_Tolerances_LowerCutoff 2006 #define CPXPARAM_MIP_Tolerances_MIPGap 2009 #define CPXPARAM_MIP_Tolerances_ObjDifference 2019 #define CPXPARAM_MIP_Tolerances_RelObjDifference 2022 #define CPXPARAM_MIP_Tolerances_UpperCutoff 2007 #define CPXPARAM_Network_Display 5005 #define CPXPARAM_Network_Iterations 5001 #define CPXPARAM_Network_NetFind 1022 #define CPXPARAM_Network_Pricing 5004 #define CPXPARAM_Network_Tolerances_Feasibility 5003 #define CPXPARAM_Network_Tolerances_Optimality 5002 #define CPXPARAM_OptimalityTarget 1131 #define CPXPARAM_Output_CloneLog 1132 #define CPXPARAM_Output_IntSolFilePrefix 2143 #define CPXPARAM_Output_MPSLong 1081 #define CPXPARAM_Output_WriteLevel 1114 #define CPXPARAM_Parallel 1109 #define CPXPARAM_Preprocessing_Aggregator 1003 #define CPXPARAM_Preprocessing_BoundStrength 2029 #define CPXPARAM_Preprocessing_CoeffReduce 2004 #define CPXPARAM_Preprocessing_Dependency 1008 #define CPXPARAM_Preprocessing_Dual 1044 #define CPXPARAM_Preprocessing_Fill 1002 #define CPXPARAM_Preprocessing_Linear 1058 #define CPXPARAM_Preprocessing_NumPass 1052 #define CPXPARAM_Preprocessing_Presolve 1030 #define CPXPARAM_Preprocessing_QCPDuals 4003 #define CPXPARAM_Preprocessing_QPMakePSD 4010 #define CPXPARAM_Preprocessing_QToLin 4012 #define CPXPARAM_Preprocessing_Reduce 1057 #define CPXPARAM_Preprocessing_Relax 2034 #define CPXPARAM_Preprocessing_RepeatPresolve 2064 #define CPXPARAM_Preprocessing_Symmetry 2059 #define CPXPARAM_QPMethod 1063 #define CPXPARAM_RandomSeed 1124 #define CPXPARAM_Read_APIEncoding 1130 #define CPXPARAM_Read_Constraints 1021 #define CPXPARAM_Read_DataCheck 1056 #define CPXPARAM_Read_FileEncoding 1129 #define CPXPARAM_Read_Nonzeros 1024 #define CPXPARAM_Read_QPNonzeros 4001 #define CPXPARAM_Read_Scale 1034 #define CPXPARAM_Read_Variables 1023 #define CPXPARAM_ScreenOutput 1035 #define CPXPARAM_Sifting_Algorithm 1077 #define CPXPARAM_Sifting_Display 1076 #define CPXPARAM_Sifting_Iterations 1078 #define CPXPARAM_Simplex_Crash 1007 #define CPXPARAM_Simplex_DGradient 1009 #define CPXPARAM_Simplex_Display 1019 #define CPXPARAM_Simplex_Limits_Iterations 1020 #define CPXPARAM_Simplex_Limits_LowerObj 1025 #define CPXPARAM_Simplex_Limits_Perturbation 1028 #define CPXPARAM_Simplex_Limits_Singularity 1037 #define CPXPARAM_Simplex_Limits_UpperObj 1026 #define CPXPARAM_Simplex_Perturbation_Constant 1015 #define CPXPARAM_Simplex_Perturbation_Indicator 1027 #define CPXPARAM_Simplex_PGradient 1029 #define CPXPARAM_Simplex_Pricing 1010 #define CPXPARAM_Simplex_Refactor 1031 #define CPXPARAM_Simplex_Tolerances_Feasibility 1016 #define CPXPARAM_Simplex_Tolerances_Markowitz 1013 #define CPXPARAM_Simplex_Tolerances_Optimality 1014 #define CPXPARAM_SolutionType 1147 #define CPXPARAM_Threads 1067 #define CPXPARAM_TimeLimit 1039 #define CPXPARAM_Tune_DetTimeLimit 1139 #define CPXPARAM_Tune_Display 1113 #define CPXPARAM_Tune_Measure 1110 #define CPXPARAM_Tune_Repeat 1111 #define CPXPARAM_Tune_TimeLimit 1112 #define CPXPARAM_WorkDir 1064 #define CPXPARAM_WorkMem 1065
Thanks for the report; see #157
Closed by #157
Hello, I was trying to test Cplex automatic benders decomposition from CPLEX 12.7 and I could not pass the param CPXPARAM_Benders_Strategy. I noticed that the cpx_params12.7.jl file is generated using:
# grep "#define" cpxconst.h | grep "CPX_PARAM_" | awk '{ printf("\"%s\" => %s,\n",$2,$3) }'
so parameters that start with CPXPARAM without the underscore are not captured. Here is a list of parameters that are currently not being captured.