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 |
---|
13 | </a></dt><dt><a href="ch02s02.html"> |
---|
14 | First Example |
---|
15 | </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 |
---|
136 | </td></tr></table></div></body></html> |
---|