Originally posted by: AGV-GDM-PT
Hi,
I am trying to find the multiple optimal solutions for a given problem with CPLEX. For doing so, I am using the population pool and setting the parameters as follows:
status = CPXsetintparam (env, CPX_PARAM_SOLNPOOLREPLACE, CPX_SOLNPOOL_OBJ);
status = CPXsetdblparam (env, CPX_PARAM_SOLNPOOLAGAP, 0.0);
status = CPXsetdblparam (env, CPX_PARAM_SOLNPOOLGAP, 0);
status = CPXsetintparam (env, CPX_PARAM_SOLNPOOLINTENSITY, 4);
status = CPXsetintparam (env, CPX_PARAM_SOLNPOOLCAPACITY, 2100000000);
In a second phase, I change the objective function of the problem and add the previous function as a constraint that forces it not to be worse than the optimal (hierarchical optimization).
Everything seemed to work well until I tested an instance that in the second phase could find more optimal solutions than in the first one.
e.g.
********Phase 1*********
max f1
subj to: set of constraints 1
(4 optimal solutions found)
******Phase 2******
max f2
subj to: set of constraints 1 + f1 >= optimal
(10 optimal solutions found)
The problem is quite small and I confirmed that the extra optimal solutions in 2 are also optimal solutions for 1.
Could I get any help from somebody?
Thanks
#CPLEXOptimizers#DecisionOptimization