jump-dev / CPLEX.jl

A Julia interface to the CPLEX solver
https://www.ibm.com/products/ilog-cplex-optimization-studio
MIT License
134 stars 63 forks source link

Missing parameters in cpx_params dictionaries #156

Closed bbrunaud closed 6 years ago

bbrunaud commented 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
joehuchette commented 6 years ago

Thanks for the report; see #157

joehuchette commented 6 years ago

Closed by #157