Originally posted by: Deanna1125
Thanks for your quick reply. Your answer makes a lot of sense to me. But, it is still not clear to me how intensity level affect the solution pool generated by solve() method. From the CPLEX documentation, I only know that increasing the intensity level will help CPLEX generate more solutions.
For some reason, I need to generate as diverse set of solutions as possible, now I am using "solve()+intensity=4" combination, which currently can serve my purposes fine. To my understanding/guess, unlike the populate method, increasing the intensity level probably won't force CPLEX to explores those nodes in the B&B tree that would be pruned by the default (i.e. intensity=0) optimality based branch-and-cut algorithm (in other words, the B&B tree structure remain the same); the only thing might change is that CPLEX might relax some "mystery" criteria on whether or not to include some of the non-incumbent solutions it finds during the course of optimization, so that more solutions can be included in the pool. If this is case, why the optimization time increased dramatically after I switch from intensity=3 to intensity=4 when calling solve()? To me, unless CPLEX explore more nodes than "normal", the optimization time should not have increased so much. If calling solve() with high intensity level does direct CPLEX to explore more nodes, then what is actual difference between solve() and populate()? What I only know
from the documentation is that populate() will reuse reuse the information computed and stored during MIP optimization only if this parameter has not been increased between calls.
Any clarifications is really appreciated!!
#CPLEXOptimizers#DecisionOptimization