12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

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.

esult is the same as would be obtained by removing constraint c1 from the model entirely,this is a more satisfactory result. Moreover, the numeric stability of the optimal basis (asindicated by the condition number, discussed in the next section), is vastly improved.The result of the extra precision of the input data is a model that is less likely to be sensitiveto rounding error or other effects of solving problems on finite-precision computers, or inextreme cases will be more likely to produce an answer in keeping with the intended model.The first example, above, is an instance where the data truncation has fundamentallydistorted the problem being solved. Even if the exact-integer data form of the constraint isnot present with the decimal form, the truncated decimal form no longer exactly representsthe intended meaning and, in conjunction with other constraints in your model, could giveunintended answers that are "accurate" in the context of the specific data being fed to theoptimizer.Be particularly wary of data in your model that has been computed (within your program, ortransmitted to your program from another via an input file) using single-precision (32-bit)arithmetic. For example, in C, this situation would arise from using type float instead ofdouble. Such data will be accurate only to about 8 decimal digits, so that (for example) ifyou print the data, you might see values like 0.3333333432674408 instead of0.3333333333333333. <strong>ILOG</strong> <strong>CPLEX</strong> uses double-precision (64-bit) arithmetic in itscomputations, and truncated single-precision data carries the risk that it will convey adifferent meaning than the user intends.The underlying principle behind all the cautions in this section is that information containedin the data needs to reflect actual meaning or the optimizer may reach unstable solutions orencounter algorithmic difficulties.Measuring Problem Sensitivity with Basis Condition NumberIll-conditioned matrices are sensitive to minute changes in problem data. That is, in suchproblems, small changes in data can lead to very large changes in the reported problemsolution. <strong>ILOG</strong> <strong>CPLEX</strong> provides a basis condition number to measure the sensitivity of alinear system to the problem data. You might also think of the basis condition number as thenumber of places in precision that can be lost.For example, if the basis condition number at optimality is 1e+13, then a change in a singlematrix coefficient in the thirteenth place (counting from the right) may dramatically alter thesolution. Furthermore, since many computers provide about 16 places of accuracy in doubleprecision, only three accurate places are left in such a solution. Even if an answer isobtained, perhaps only the first three significant digits are reliable.Because of this effective loss of precision for matrices with high basis condition numbers,<strong>ILOG</strong> <strong>CPLEX</strong> may be unable to select an optimal basis. In other words, a high basiscondition number can make it impossible to find a solution.◆In the Interactive Optimizer, use the command display solution kappa in order tosee the basis condition number of a resident basis matrix.<strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL 187

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

Saved successfully!

Ooh no, something went wrong!