Ignore:
Timestamp:
May 10, 2005 11:40:19 AM (15 years ago)
Author:
rlh
Message:

updated the user guide

File:
1 edited

Legend:

Unmodified
Added
Removed
  • html/trunk/Cbc/ch02.html

    r554 r557  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. 
    2   Basic Model Classes
    3   </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="index.html" title="CBC User Guide"><link rel="previous" href="ch01s02.html" title="
    4   Prerequisites
    5   "><link rel="next" href="ch02s02.html" title="
    6   First Example
    7   "></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. 
    8   Basic Model Classes
    9   </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="cbcmodelclass"></a>Chapter 2. 
    10   Basic Model Classes
    11   </h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="ch02.html#hierarchy">
    12   Hierarchy and list of classes
     1<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
     2<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Chapter 2. 
     3   The CBC Model Class
     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="index.html" title="CBC User Guide"/><link rel="previous" href="ch01s04.html" title="&#10;Branch-and-Cut Overview&#10;"/><link rel="next" href="ch02s02.html" title="&#10;  Simple Branch-and-Bound Example&#10;  "/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. 
     5   The CBC Model Class
     6  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch01s04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr></table><hr/></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="cbcmodelclass"/>Chapter 2. 
     7   The CBC Model Class
     8  </h2></div></div><div/></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="ch02.html#hierarchy">
     9  Overview
    1310  </a></dt><dt><a href="ch02s02.html">
    14   First Example
     11  Simple Branch-and-Bound Example
    1512  </a></dt><dt><a href="ch02s03.html">
    16   Getting at the Solution (CbcModel methods)
    17   </a></dt><dt><a href="ch02s04.html">Some Useful Set and Get Methods</a></dt><dt><a href="ch02s05.html">
    18   Methods which have a major impact on solution process
    19   </a></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="hierarchy"></a>
    20   Hierarchy and list of classes
    21   </h2></div></div><div></div></div><p>
    22   The class that controls Coin Branch and Cut is CbcModel.  This is where most
    23   of the parameter setting is done.  CbcModel uses other classes some of
    24   which are virtual and may have multiple instances.  More details on the more
    25   useful classes will be given later.
    26   The absolute minimum number of actions for CbcModel is:
    27   <tt class="function">CbcModel(OsiSolverInterface &amp; linearSolver)</tt> as constructor,
    28   and <tt class="function">branchAndBound()</tt> for solving the problem.
    29   </p><div class="table"><a name="id2896498"></a><p class="title"><b>Table 2.1. 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>
    30     Class name
    31     </th><th>
    32     Description
    33     </th><th>
    34     Notes
    35     </th></tr></thead><tbody><tr><td align="left" valign="top">
    36       CbcCompareBase
    37       </td><td align="left" valign="top">
    38       Controls choice of next node on tree
    39       </td><td align="left" valign="top">
    40       Default is CbcCompareDefault, others in CbcCompareActual.hpp include
    41       CbcCompareDepth and CbcCompareObjective.  Very easy for user to
    42       experiment.
    43       </td></tr><tr><td align="left" valign="top">
    44       CbcCutGenerator
    45       </td><td align="left" valign="top">
    46       Is a CglCutGenerator with data to decide when to use.
    47       </td><td align="left" valign="top">
    48       Need to know how to add generator to CbcModel.
    49       Not much need to know about details of class.
    50       </td></tr><tr><td align="left" valign="top">
    51       CbcHeuristic
    52       </td><td align="left" valign="top">
    53       Heuristic to try and get valid solutions
    54       </td><td align="left" valign="top">
    55       User can get a lot of value out of coding this.  There can be
    56       as many as you like.
    57       </td></tr><tr><td align="left" valign="top">
    58       CbcObject
    59       </td><td align="left" valign="top">
    60       Definition of what it means for a variable to be satisfied.
    61       </td><td align="left" valign="top">
    62       Virtual - instances include simple integer, simple integer with pseudocosts,
    63       SOS (type 1 and 2) and lotsizing. (found in CbcBranch..hpp).  An object has to
    64       have a method of generating a branching object which defines an up and down
    65       branch.
    66       </td></tr><tr><td align="left" valign="top">
    67       OsiSolverInterface
    68       </td><td align="left" valign="top">
    69       Defines the solver being used and the LP model.  Is normally
    70       passed across to CbcModel before branch and cut.
    71       </td><td align="left" valign="top">
    72       Virtual class - the user would instantiate a particular solver e.g.
    73       OsiClpSolverInterface or OsiXprSolverInterface.
    74       </td></tr></tbody></table></div><div class="table"><a name="id2897749"></a><p class="title"><b>Table 2.2. 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>
    75     Class name
    76     </th><th>
    77     Description
    78     </th><th>
    79     Notes
    80     </th></tr></thead><tbody><tr><td align="left" valign="top">
    81       CbcBranchDecision
    82       </td><td align="left" valign="top">
    83       Part of code for choosing which variable to branch on.  Most of
    84       work is done by definitions in CbcObject
    85       </td><td align="left" valign="top">
    86       Defaults to CbcBranchDefaultDecision
    87       Not much need to know about.
    88       </td></tr><tr><td align="left" valign="top">
    89       CbcCountRowCut
    90       </td><td align="left" valign="top">
    91       Interface to OsiRowCut but counts use so can gracefully vanish.
    92       </td><td align="left" valign="top">
    93       See OsiRowCut for extra information.
    94       Not much need to know about.
    95       </td></tr><tr><td align="left" valign="top">
    96       CbcNode
    97       </td><td align="left" valign="top">
    98       Controls choice of variable/entity to branch on
    99       </td><td align="left" valign="top">
    100       Controlled via CbcModel parameters.
    101       Not much need to know about.
    102       </td></tr><tr><td align="left" valign="top">
    103       CbcNodeInfo
    104       </td><td align="left" valign="top">
    105       Contains data for bounds, basis etc for one node of tree
    106       </td><td align="left" valign="top">
    107       Not much need to know about (header in CbcNode.hpp).
    108       </td></tr><tr><td align="left" valign="top">
    109       CbcTree
    110       </td><td align="left" valign="top">
    111       How tree is stored
    112       </td><td align="left" valign="top">
    113       Can be changed but unlikely.
    114       Not much need to know about.
    115       </td></tr><tr><td align="left" valign="top">
    116       CoinMessageHandler
    117       </td><td align="left" valign="top">
    118       Deals with message handling
    119       </td><td align="left" valign="top">
    120       User can inherit from to specialize message handling. 
    121       Not much need to know about.
    122       </td></tr><tr><td align="left" valign="top">
    123       CoinWarmStartBasis
    124       </td><td align="left" valign="top">
    125       Representation of a basis to be used by solver
    126       </td><td align="left" valign="top">
    127       Not much need to know about.
    128       </td></tr></tbody></table></div></div><tt class="function">double getIntegerTolerance()</tt> and
    129   <tt class="function">setIntegerTolerance(double)</tt>.  An integer variable
    130   is deemed to be at an integral value if it is no further than this tolerance
    131   away.
    132   </div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
    133   Prerequisites
    134    </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
    135   First Example
     13The Relationship Between OSI and CBC
     14</a></dt><dt><a href="ch02s04.html">
     15  Getting Solution Information
     16  </a></dt><dt><a href="ch02s05.html">
     17   Useful Set and Get Methods in CbcModel
     18  </a></dt><dt><a href="ch02s06.html">
     19  Impacting the Solution Process
     20  </a></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="hierarchy"/>
     21  Overview
     22  </h2></div></div><div/></div><p>
     23  The main class in CBC is <tt class="classname">CbcModel</tt>.  The <tt class="classname">CbcModel</tt> class is where most
     24  of the parameter setting is done. The absolute minimum number of actions taken with <tt class="classname">CbcModel</tt> is two,
     25    </p><div class="itemizedlist"><ul type="disc"><li>
     26    <tt class="function">CbcModel(OsiSolverInterface &amp; linearSolver)</tt> as constructor, and
     27    </li><li>
     28    <tt class="function">branchAndBound()</tt> for solving the problem.   
     29    </li></ul></div><p>
     30  </p></div></div><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s04.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">
     31Branch-and-Cut Overview
     32 </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
     33  Simple Branch-and-Bound Example
    13634  </td></tr></table></div></body></html>
Note: See TracChangeset for help on using the changeset viewer.