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.

As memory gets tight, you may observe warning messages from <strong>ILOG</strong> <strong>CPLEX</strong> as itattempts various operations in spite of limited memory. In such a situation, if <strong>ILOG</strong> <strong>CPLEX</strong>does not find a solution shortly, it terminates the process with an error message.The information about a tree that <strong>ILOG</strong> <strong>CPLEX</strong> accumulates in memory can be substantial.In particular, <strong>ILOG</strong> <strong>CPLEX</strong> saves a basis for every unexplored node. Furthermore, when<strong>ILOG</strong> <strong>CPLEX</strong> uses the best bound or best estimate strategies of node selection, the list ofunexplored nodes itself can become very long for large or difficult problems. How large theunexplored node list can be depends on the actual amount of memory available, the size ofthe problem, and algorithm selected.A less frequent cause of memory consumption is the generation of cutting planes. Gomoryfractional cuts, and, in rare instances, Mixed Integer Rounding cuts, are the ones most likelyto be dense and thus use significant memory at default automatic settings. You can tryturning off these cuts, or any of the cuts you see listed as being generated for your model (inthe cuts summary at the end of the node log), or simply all cuts, through the use of parametersettings discussed in the section on cuts in this manual; doing this carries the risk that thiswill make the model harder to solve and only delay the eventual exhaustion of availablememory during branching. Since generation of cutting planes is not a frequent cause ofmemory consumption, apply these recommendations only as a last resort, after trying toresolve the problem with less drastic measures.Certainly, if you increase the amount of available memory, you extend the problem-solvingcapability of <strong>ILOG</strong> <strong>CPLEX</strong>. Unfortunately, when a problem fails because of insufficientmemory, it is difficult to project how much further the process needed to go and how muchmore memory is needed to solve the problem. For these reasons, the following suggestionsaim at avoiding memory failure whenever possible and recovering gracefully otherwise.Reset the Tree Memory ParameterTo avoid a failure due to running out of memory, set the working memory parameter,WorkMem, to a value significantly lower than the available memory on your computer (inmegabytes), to instruct <strong>ILOG</strong> <strong>CPLEX</strong> to begin compressing the storage of nodes before itconsumes all of available memory. See the related topic Use Node Files for Storage onpage 293, for other choices of what should happen when WorkMem is exceeded. That topicexplains how to indicate to <strong>CPLEX</strong> that it should use disk for working storage.Because the storage of nodes can require a lot of space, it may also be advisable to set a treelimit on the size of the entire tree being stored so that not all of your disk will be filled upwith working storage. The call to the MIP optimizer will be stopped once the size of the treeexceeds the value of TreLim, the tree limit parameter. At default settings, the limit is infinity(1e +75 ), but you can set it to a lower value (in megabytes).Use Node Files for StorageAs noted in Using Node Files on page 270, <strong>ILOG</strong> <strong>CPLEX</strong> offers a node-file storage-featureto store some parts of the branch & cut tree in files as it progresses through its search. Thisfeature allows <strong>ILOG</strong> <strong>CPLEX</strong> to explore more nodes within a smaller amount of computer<strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL 293

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

Saved successfully!

Ooh no, something went wrong!