Originally posted by: EdKlotz
1. Keep in mind that enumerating all feasible solutions can be extremely time consuming; basically the branch and cut algorithm can only prune infeasible nodes, making the search process potentially a lot slow. So first, I would suggest you make sure that the conditions you want to assess cannot be added as constraints or lazy constraints into the model. Keep in mind that CPLEX supports logical constraints, quadratic constraints, and piecewise linear functions, so you can model a lot of nonlinear conditions using some of these tools. However, if you really need to check all solutions, you could try using CPLEX's solution pool/populate method to force CPLEX to do this, then use an incumbent callback function to test the conditions. Specifically, you will not to set the solution pool intensity parameter to configure the populate method to enumerate all feasible solutions. See the user manual on the solution pool for more information.
2. I think you need to use an incumbent callback and a lazy constraint callback to do this. Take a look at some of the example programs that illustrate how these callbacks are used.
#CPLEXOptimizers#DecisionOptimization