10.07.2015 Views

CPLEX 11

CPLEX 11

CPLEX 11

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>CPLEX</strong> <strong>11</strong> 5and integer variables, even though there may exist several solutions that have the same values for all binary andinteger variables but different values for continuous variables.Likewise, for the same reason, the populate procedure does not generate all possible solutions for unboundedmodels. As soon as the proof of unboundedness is obtained, the populate procedure stops.Cplex uses numerical methods of finite-precision arithmetic. Consequently, the feasibility of a solution dependson the value given to tolerances. Two parameters define the tolerances that assess the feasibility of a solution:• the integrality tolerance EpInt• the feasibility tolerance EpRHSA solution may be considered feasible for one pair of values for these two parameters, and infeasible for a differentpair. This phenomenon is especially noticeable in models with numeric difficulties, for example, in models withBig M coefficients.Since the definition of a feasible solution is subject to tolerances, the total number of solutions to a model mayvary, depending on the approach used to enumerate solutions, and on precisely which tolerances are used. In mostmodels, this tolerance issue is not problematic. But, in the presence of numeric difficulties, Cplex may createsolutions that are slightly infeasible or integer infeasible, and therefore create more solutions than expected.Filtering the Solution PoolFiltering allows you to control properties of the solutions generated and stored in the solution pool. Cplex providestwo predefined ways to filter solutions.If you want to filter solutions based on their difference as compared to a reference solution, use a diversity filter.This filter is practical for most purposes. However, if you require finer control of which solutions to keep andwhich to eliminate, use the incumbent filter.Diversity FilterA diversity filter allows you to generate solutions that are similar to (or different from) a set of reference valuesthat you specify for a set of binary variables using dot option divflt and lower and upper bounds divfltlo anddivfltup. In particular, you can use a diversity filter to generate more solutions that are similar to an existingsolution or to an existing partial solution. If you need more than one diversity filter, for example, to generatesolutions that share the characteristics of several different solutions, additional filters can be specified through aCplex Filter File using parameter ReadFLT. Details can be found in the example model solnpool in the GAMSmodel library.Incumbent FilterIf you need to enforce more complex constraints on solutions (e.g. if you need to enforce nonlinear constraints),you can use the incumbent filtering. The incumbent checking routine is part of the GAMS BCH Facility. It willaccept or reject incumbents independent of a solution pool. During the populate or regular optimize procedure,the incumbent checking routine specified by the parameter userincbcall is called each time a new solution isfound, even if the new solution does not improve the objective value of the incumbent. The incumbent filter allowsyour application to accept or reject the new solution based on your own criteria. If the GAMS program specifiedby userincbcall terminates normally, the solution is rejected. If this program returns with a compilation orexecution error, the incumbent is accepted.Accessing the Solution PoolThe GAMS/Cplex link produces, if properly instructed, a GDX file with name specified in SolnPool that containsa set Index with elements file1, file2, ... The associated text of these elements contain the file names of the

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!