source: html/ch02s07.html @ 2179

Last change on this file since 2179 was 561, checked in by ladanyi, 12 years ago

Cbc static pages moved

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.6 KB
1<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
2<html xmlns=""><head><title>
3  Most (and Least) Useful Classes Used by CBC
4</title><meta name="generator" content="DocBook XSL Stylesheets V1.61.2"/><link rel="home" href="index.html" title="CBC User Guide"/><link rel="up" href="ch02.html" title="Chapter 2. &#10;   The CBC Model Class&#10;  "/><link rel="previous" href="ch02s06.html" title="&#10;  Impacting the Solution Process&#10;  "/><link rel="next" href="ch03.html" title="Chapter 3. &#10;  Selecting a Node in the Search Tree&#10;  "/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">
5  Most (and Least) Useful Classes Used by CBC
6</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
7   The CBC Model Class
8  </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr/></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="mostAndLeastUsefulClasses"/>
9  Most (and Least) Useful Classes Used by CBC
11<tt class="classname">CbcModel</tt> uses other classes in CBC, some of which are virtual and may have multiple instances. Not all classes are created equal. The two tables below list the classes within <tt class="classname">CbcModel</tt> that are of most interest and of least interest.
12</p><div class="table"><a id="id3513720"/><p class="title"><b>Table 2.4. Classes Used by CbcModel - Most Useful</b></p><table summary="Classes Used by CbcModel - Most Useful" border="0"><colgroup><col/><col/><col/></colgroup><thead><tr><th>
13    Class name
14    </th><th>
15    Description
16    </th><th>
17    Notes
18    </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="classname">CbcCompareBase</tt></td><td align="left" valign="top">
19      Controls which node on tree is selected
20      </td><td align="left" valign="top">
21      The default is <tt class="classname">CbcCompareDefault</tt>. Other comparison classes in <tt class="filename">CbcCompareActual.hpp</tt> include
22      <tt class="classname">CbcCompareDepth</tt> and <tt class="classname">CbcCompareObjective</tt>. It is very easy for user to
23      experiment with different comparisons.
24      </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcCutGenerator</tt></td><td align="left" valign="top">
25      A wrapper for <tt class="classname">CglCutGenerator</tt> with additional data to control when the cut generator is used.
26      </td><td align="left" valign="top">
27      Other than knowing how to add a cut generator to <tt class="classname">CbcModel</tt>, there is not much the average user needs to know about this class. </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcHeuristic</tt></td><td align="left" valign="top">
28      Heuristic that attempts to generate valid solutions
29      </td><td align="left" valign="top">
30      Users can get a lot of value out of coding specialized heuristics.  There can be
31      as many different heuristics as you like. </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcObject</tt></td><td align="left" valign="top">
32      Defines what it means for a variable to be satisfied.
33      </td><td align="left" valign="top">
34      Virtual class. The branching model used in CBC is based on the idea of an "object". An object has (i) feasible region, (ii) can be evaluated for infeaibility, (iii) can be branched on, e.g., a method of generating a branching object, which defines an up branch and a down branch and (iv) allows comparsion of the effect of branching. Instances include simple integer, simple integer with pseudocosts, SOS (type 1 and 2), and lotsizing (see CbcBranch....hpp).
35      </td></tr><tr><td align="left" valign="top"><tt class="classname">OsiSolverInterface</tt></td><td align="left" valign="top">
36      Defines the LP solver being used and the LP model. Normally
37      a pointer to the desired <tt class="classname">OsiSolverInteface</tt> is passed to <tt class="classname">CbcModel</tt> before branch and cut.
38      </td><td align="left" valign="top">
39      Virtual class. The user instantiates the solver interface of their choice, e.g.,
40      <tt class="classname">OsiClpSolverInterface</tt>.
41      </td></tr></tbody></table></div>
43There is not much about the classes listed in <a href="ch02s07.html#least" title="Table 2.5. Classes Used by CbcModel - Least Useful">Table 2.5</a> that the average user needs to know about.
44    <div class="table"><a id="least"/><p class="title"><b>Table 2.5. Classes Used by CbcModel - Least Useful</b></p><table summary="Classes Used by CbcModel - Least Useful" border="0"><colgroup><col/><col/><col/></colgroup><thead><tr><th>
45    Class name
46    </th><th>
47    Description
48    </th><th>
49    Notes
50    </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="classname">CbcBranchDecision</tt></td><td align="left" valign="top">
51      Used in choosing which variable to branch on, however, most of
52      the work is done by the definitions in <tt class="classname">CbcObject</tt>.
53      </td><td align="left" valign="top">
54      Defaults to <tt class="classname">CbcBranchDefaultDecision</tt>.
55      </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcCountRowCut</tt></td><td align="left" valign="top">
56      Interface to <tt class="classname">OsiRowCut</tt>. It counts the usage so cuts can gracefully vanish.
57      </td><td align="left" valign="top">
58      See <tt class="classname">OsiRowCut</tt> for more details. </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcNode</tt></td><td align="left" valign="top">
59      Controls which variable/entity is selected to be branch on.
60      </td><td align="left" valign="top">
61      Controlled via <tt class="classname">CbcModel</tt> parameters.  </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcNodeInfo</tt></td><td align="left" valign="top">
62      Contains data on bounds, basis, etc. for one node of the search tree.
63      </td><td align="left" valign="top">
64      Header is located in <tt class="filename">CbcNode.hpp</tt>. </td></tr><tr><td align="left" valign="top"><tt class="classname">CbcTree</tt></td><td align="left" valign="top">
65      Defines how the search tree is stored.
66      </td><td align="left" valign="top">
67      This class can be changed but it is not likely to be modified.</td></tr><tr><td align="left" valign="top"><tt class="classname">CoinMessageHandler</tt></td><td align="left" valign="top">
68      Deals with message handling
69      </td><td align="left" valign="top">
70      The user can inherit from <tt class="classname">CoinMessageHandler</tt> to specialize message handling. 
71      </td></tr><tr><td align="left" valign="top"><tt class="classname">CoinWarmStartBasis</tt></td><td align="left" valign="top">
72      Basis representation to be used by solver
73      </td><td align="left" valign="top"/></tr></tbody></table></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
74  Impacting the Solution Process
75   </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. 
76  Selecting a Node in the Search Tree
77  </td></tr></table></div></body></html>
Note: See TracBrowser for help on using the repository browser.