Originally posted by: Zacharie_ALES
Hello,
I try to compare the time to solve a serie of problems when using :
-
cplex with it's default parameter; and
-
cplex with it's default parameter except for all the cuts that I disable.
I was surprised to see that cplex was often quicker in the second case. I was even more surprised to realize that the number of nodes explored was often lower without the cuts. Without any cut the relaxation should be worse and lead to more branching. I really don't understand how the number of nodes can be lower.
I thought this may be due to some parameters that cplex was fixing dynamically so I tried to set all these parameters to the same value in both cases but the results were similar.
Do you have any idea why?
PS: Here is the (quite long) list of parameters that I fixed:
cplex.setParam(IloCplex.IntParam.HeurFreq, -1);
cplex.setParam(IloCplex.IntParam.NodeAlg, IloCplex.Algorithm.Dual);
cplex.setParam(IloCplex.IntParam.RootAlg, IloCplex.Algorithm.Dual);
cplex.setParam(IloCplex.IntParam.SiftAlg, IloCplex.Algorithm.Dual);
cplex.setDeleteMode(IloCplex.DeleteMode.LeaveBasis);
cplex.setParam(IloCplex.IntParam.PPriInd, -1);
cplex.setParam(IloCplex.IntParam.DPriInd, 1);
cplex.setParam(IloCplex.IntParam.CraInd, -1);
cplex.setParam(IloCplex.IntParam.VarSel, -1);
cplex.setParam(IloCplex.IntParam.Threads, 1);
cplex.setParam(IloCplex.IntParam.Symmetry, 0);
cplex.setParam(IloCplex.IntParam.StrongItLim, 10);
cplex.setParam(IloCplex.IntParam.SolnPoolCapacity, 1);
cplex.setParam(IloCplex.IntParam.RINSHeur, -1);
cplex.setParam(IloCplex.IntParam.RepairTries, 0);
cplex.setParam(IloCplex.IntParam.RelaxPreInd, 0);
cplex.setParam(IloCplex.IntParam.ReInv, 100);
cplex.setParam(IloCplex.IntParam.Probe, 1);
cplex.setParam(IloCplex.IntParam.PriceLim, 10);
cplex.setParam(IloCplex.IntParam.PreslvNd, 1);
cplex.setParam(IloCplex.IntParam.PrePass, 0);
cplex.setParam(IloCplex.IntParam.PreDual, -1);
cplex.setParam(IloCplex.IntParam.PerLim, 10);
cplex.setParam(IloCplex.BooleanParam.PerInd, false);
cplex.setParam(IloCplex.IntParam.ParallelMode, -1);
cplex.setParam(IloCplex.IntParam.MIPSearch, 1);
cplex.setParam(IloCplex.IntParam.FPHeur, -1);
cplex.setParam(IloCplex.IntParam.DepInd, 0);
cplex.setParam(IloCplex.IntParam.DiveType, 1);
cplex.setParam(IloCplex.IntParam.CoeRedInd, 0);
cplex.setParam(IloCplex.IntParam.BrDir, 1);
cplex.setParam(IloCplex.IntParam.BndStrenInd, 0);
cplex.setParam(IloCplex.IntParam.BBInterval, 0);
cplex.setParam(IloCplex.IntParam.AggInd, 0);
cplex.setParam(IloCplex.IntParam.AdvInd, 0);
cplex.setParam(IloCplex.IntParam.AggFill, 10);
cplex.setParam(IloCplex.IntParam.AggCutLim,3);
cplex.setParam(IloCplex.IntParam.NodeSel, 0);
#CPLEXOptimizers#DecisionOptimization