source: html/trunk/Clp/userguide/ch02.html @ 956

Last change on this file since 956 was 956, checked in by ddelanu, 16 years ago

First revision of user guide

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.7 KB
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.65.1"><link rel="home" href="index.html" title="CLP User Manual"><link rel="up" href="index.html" title="CLP User Manual"><link rel="previous" href="ch01.html" title="Chapter 1. 
4    Introduction
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="ch01.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="basicmodelclasses"></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><span class="section"><a href="ch02.html#id4694285">
12  Hierarchy
13  </a></span></dt><dt><span class="section"><a href="ch02s02.html">
14  First Example
15  </a></span></dt><dt><span class="section"><a href="ch02s03.html">
16  Getting at the Solution
17  </a></span></dt><dt><span class="section"><a href="ch02s04.html">
18  Building and Modifying a Model
19  </a></span></dt><dt><span class="section"><a href="ch02s05.html">Tolerances</a></span></dt><dt><span class="section"><a href="ch02s06.html">Some Useful Set and Get Methods</a></span></dt><dt><span class="section"><a href="ch02s07.html">
20  Simplex-specific Methods
21  </a></span></dt><dt><span class="section"><a href="ch02s08.html">
22  Presolve
23  </a></span></dt><dt><span class="section"><a href="ch02s09.html">Status Array</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4694285"></a>
24  Hierarchy
25  </h2></div></div><div></div></div><p>
26  The basic model class hierarchy is simple.  The top three levels of the
27  hierarchy are depicted in the figure below. The first two levels  (i.e.
28  <tt class="classname">ClpModel</tt>, <tt class="classname">ClpSimplex</tt>,
29  <tt class="classname">ClpInterior</tt>) contain all the problem data which defines
30  a model (aka, a problem instance). The third level is less model and more
31  algorithmic.  There is a fourth level (for models with more general
32  objectives than linear ones), but it is beyond the current scope of this
33  document. 
34  </p><div class="mediaobject"><img src="figures/clpbasicmodelhier.gif"></div><p>
35  The class <tt class="classname">ClpModel</tt> contains all problem data.
36  There may be a few pieces of data which could be elsewhere but which are
37  permanent and so they are here.  The main example of this is a status array:
38  it makes the most sense for Simplex but has use for crossing over from any
39  solution.
40  </p><p>
41  <tt class="classname">ClpSimplex</tt> inherits from
42  <tt class="classname">ClpModel</tt>, as does <tt class="classname">ClpInterior</tt>.
43  Extra data is specific to the Simplex Algorithm and can be transient, e.g.
44  scaling arrays.  Normally a user will just be dealing with the
45  <tt class="classname">ClpSimplex</tt> class and not with the
46  <tt class="classname">ClpModel</tt> class.
47  </p><p>
48  From the point of view of most Simplex users, the
49  <tt class="classname">ClpModel</tt> and <tt class="classname">ClpSimplex</tt>
50  classes are all one needs to know about.  There are algorithm-specific classes
51  which inherit from <tt class="classname">ClpSimplex</tt> (e.g.
52  <tt class="classname">ClpSimplexDual</tt> and
53  <tt class="classname">ClpSimplexPrimal</tt>), but they have no member data and
54  very rarely need be visible to user.  So, for example, after instantiating an
55  object <b class="userinput"><tt>model</tt></b> of type <tt class="classname">ClpSimplex</tt>,
56  the user would use <b class="userinput"><tt>model.dual()</tt></b> to invoke dual algorithm.
57  </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01.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">Chapter 1. 
58    Introduction
59   </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
60  First Example
61  </td></tr></table></div></body></html>
Note: See TracBrowser for help on using the repository browser.