Changeset 557 for html/trunk/Cbc/ch02.html
- Timestamp:
- May 10, 2005 11:40:19 AM (16 years ago)
- 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=" Branch-and-Cut Overview "/><link rel="next" href="ch02s02.html" title=" Simple Branch-and-Bound Example "/></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 13 10 </a></dt><dt><a href="ch02s02.html"> 14 FirstExample11 Simple Branch-and-Bound Example 15 12 </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 & 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 13 The 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 & 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"> 31 Branch-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 136 34 </td></tr></table></div></body></html>
Note: See TracChangeset
for help on using the changeset viewer.