Changeset 412


Ignore:
Timestamp:
Aug 25, 2004 4:36:22 PM (15 years ago)
Author:
ddelanu
Message:

A good deal of editing and clarification. Little to no new content.

Location:
trunk/Docs
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Docs/authors.xml

    r408 r412  
    88    Forrest
    99    </surname>
    10     <email>jjforre@us.ibm.com</email>
     10    <email>jjforre at us dot ibm dot com</email>
    1111    <affiliation>
    1212      <orgname>
     
    2222    de la Nuez
    2323    </surname>
    24     <email>ddelanu@us.ibm.com</email>
     24    <email>dmd57 at columbia dot edu</email>
    2525    <affiliation>
    2626      <orgname>
     
    3636    Lougee-Heimer
    3737    </surname>
    38     <email>robinlh@us.ibm.com</email>
     38    <email>robinlh at us dot ibm dot com</email>
    3939    <affiliation>
    4040      <orgname>
  • trunk/Docs/basicmodelclasses.xml

    r408 r412  
    1010  <para>
    1111  The basic model class hierarchy is simple.  The top three levels of the
    12   hierarchy are depicted in the figure below. The first two levels  (i.e., Clp
    13   Model, Clp Simplex, ClpInterior) contain all the problem data which defines a
    14   model (aka, a problem instance). The third level is less model and more
     12  hierarchy are depicted in the figure below. The first two levels  (i.e.
     13  <classname>ClpModel</classname>, <classname>ClpSimplex</classname>,
     14  <classname>ClpInterior</classname>) contain all the problem data which defines
     15  a model (aka, a problem instance). The third level is less model and more
    1516  algorithmic.  There is a fourth level (for models with more general
    1617  objectives than linear ones), but it is beyond the current scope of this
     
    3031  </mediaobject>
    3132  <para>
    32   The class ClpModel contains all problem data.  There may be a few pieces of
    33   data which could be elsewhere but which are permanent and so they are here.
    34   The main example of this is a status array: it makes the most sense for
    35   Simplex but has use for crossing over from any solution.
    36   </para>
    37   <para>
    38   ClpSimplex inherits from ClpModel, as does ClpInterior.  Extra data is specific
    39   to the Simplex Algorithm and can be transient  e.g., scaling arrays.  Normally
    40   a user will just be dealing with the ClpSimplex class and not with the ClpModel
    41   class.
    42   </para>
    43   <para>
    44   From the point of view of most Simplex users, the ClpModel and ClpSimplex
     33  The class <classname>ClpModel</classname> contains all problem data.
     34  There may be a few pieces of data which could be elsewhere but which are
     35  permanent and so they are here.  The main example of this is a status array:
     36  it makes the most sense for Simplex but has use for crossing over from any
     37  solution.
     38  </para>
     39  <para>
     40  <classname>ClpSimplex</classname> inherits from
     41  <classname>ClpModel</classname>, as does <classname>ClpInterior</classname>.
     42  Extra data is specific to the Simplex Algorithm and can be transient, e.g.
     43  scaling arrays.  Normally a user will just be dealing with the
     44  <classname>ClpSimplex</classname> class and not with the
     45  <classname>ClpModel</classname> class.
     46  </para>
     47  <para>
     48  From the point of view of most Simplex users, the
     49  <classname>ClpModel</classname> and <classname>ClpSimplex</classname>
    4550  classes are all one needs to know about.  There are algorithm-specific classes
    46   which inherit from ClpSimplex (e.g., ClpSimplexDual and ClpSimplexPrimal), but
    47   they have no member data and very rarely need be visible to user.  So, for
    48   example, after instantiating an object <userinput>model</userinput> of type ClpSimplex,
    49   the user would type <userinput>model.dual()</userinput> to invoke dual algorithm.
     51  which inherit from <classname>ClpSimplex</classname> (e.g.
     52  <classname>ClpSimplexDual</classname> and
     53  <classname>ClpSimplexPrimal</classname>), but they have no member data and
     54  very rarely need be visible to user.  So, for example, after instantiating an
     55  object <userinput>model</userinput> of type <classname>ClpSimplex</classname>,
     56  the user would use <userinput>model.dual()</userinput> to invoke dual algorithm.
    5057  </para>
    5158  </section>
     
    8592  <para>
    8693  This sample program creates a default <classname>ClpSimplex</classname> model,
    87   reads an mps file, and if there are no errors, solves it using the primal
    88   algorithm.  Simple, but not terribly useful: there is no way to see the results
    89   of the solve.  There are two main kinds of results -- a status saying what
    90   happened to the model, and arrays filled with the solution values.
     94  reads an MPS file, and if there are no errors, solves it using the primal
     95  algorithm.  Simple, but not terribly useful: there is no way to inspect the
     96  results of the solve.  There are two main kinds of results: a status saying
     97  what happened to the model, and arrays filled with the solution values.
    9198  </para>
    9299  </section>
     
    97104  <para>
    98105  It is often the case with CLP that there is more than one way to do something.
    99   This is a consequence of CLP's mixed heritage as a child of OSL and a cousin of
    100   OSI.  Finding the status of a model exemplifies this situation.
     106  This is a consequence of CLP's mixed heritage as a child of
     107  <ulink url="http://www-306.ibm.com/software/data/bi/osl/">OSL</ulink>
     108  and a cousin of <ulink url="http://www.coin-or.org/faqs.html#OSI">OSI</ulink>.
     109  Finding the status of a model exemplifies this situation.
    101110  </para>
    102111  <para>
     
    312321  </section>
    313322  <section>
    314   <title>Some Useful Sets and Gets</title>
     323  <title>Some Useful Set and Get Methods</title>
    315324  <table frame="none">
    316325  <title>Some Useful Sets and Gets</title>
     
    330339      <entry align="left" valign="top">
    331340      <function>setMaximumIterations(int value)</function><sbr/>
    332       <function>setMaximumSeconds(double value)</function>
     341      <function>int maximumIterations()</function><sbr/>
     342      <function>setMaximumSeconds(double value)</function><sbr/>
     343      <function>double maximumIterations()</function>
    333344      </entry>
    334345      <entry align="left" valign="top">
    335346      These methods tell CLP to stop after a given number of iterations or
    336       seconds.
     347      seconds (and returns these values).
    337348      </entry>
    338349    </row>
     
    371382    <row>
    372383      <entry align="left" valign="top">
    373       <function>infeasibilityRay()</function><sbr/>
    374       <function>unboundedRay()</function>
     384      <function>double * infeasibilityRay()</function><sbr/>
     385      <function>double * unboundedRay()</function>
    375386      </entry>
    376387      <entry align="left" valign="top">
     
    381392    <row>
    382393      <entry align="left" valign="top">
    383       <function>matrix()</function>
     394      <function>CoinPackMatrix * matrix()</function>
    384395      </entry>
    385396      <entry align="left" valign="top">
    386397      There are more options as the user has great flexibility in how the problem
    387       matrix is stored, but the default is as a
    388       <classname>CoinPackedMatrix</classname> and so we have that this method
    389       returns a pointer to a <classname>CoinPackedMatrix</classname> which can
    390       be further manipulated.
    391       </entry>
    392     </row>
    393     <row>
    394       <entry align="left" valign="top">
    395       <function>getNumElements()</function>
     398      matrix is stored, but the default matrix class is
     399      <classname>CoinPackedMatrix</classname> (see
     400      <xref linkend="matrixclasses"/>).
     401      So we have that this method returns a pointer to a
     402      <classname>CoinPackedMatrix</classname> which can be further manipulated.
     403      </entry>
     404    </row>
     405    <row>
     406      <entry align="left" valign="top">
     407      <function>CoinBigIndex getNumElements()</function>
    396408      </entry>
    397409      <entry align="left" valign="top">
     
    401413    <row>
    402414      <entry align="left" valign="top">
    403       <function>setOptimizationDirection(int&nbsp;direction)</function><sbr/>
    404       <function>optimizationDirection()</function>
     415      <function>void setOptimizationDirection(double&nbsp;value)</function><sbr/>
     416      <function>double optimizationDirection()</function>
    405417      </entry>
    406418      <entry align="left" valign="top">
    407419      These methods set and get the objective sense.  The parameter
    408       <parameter>direction</parameter> should be +1 to minimize, -1 to maximize,
     420      <parameter>value</parameter> should be +1 to minimize, -1 to maximize,
    409421      and 0 to ignore.
    410422      </entry>
     
    548560  </table>
    549561  </section>
    550   <section>
     562  <section id="presolve">
    551563  <title>
    552564  Presolve
     
    614626        <row>
    615627          <entry>
    616           State
     628          <type>Status</type><footnote><para><type>Status</type>
     629            is an enumeration.</para></footnote>
    617630          </entry>
    618631          <entry>
  • trunk/Docs/clpexe.xml

    r408 r412  
    55  </title>
    66  <para>
    7   The result of <userinput>make unitTest</userinput> is an executable
     7  The result of <userinput>make unitTest</userinput> (executed in
     8  <filename>COIN/Clp</filename> is an executable
    89  <filename>clp</filename> as well as the CLP and COIN libraries.
    910  This can be used to do various unit tests, but can also be used as a standalone
    10   solver.  As it only has a very simple solution file format you may wish to
    11   modify that part of <filename>Test/ClpMain.cpp</filename> and even offer it to
    12   Clp.
     11  solver.  As it only has a very simple solution file format the user may wish to
     12  modify that part of <filename>COIN/Clp/Test/ClpMain.cpp</filename> and even
     13  offer the modifications as contribution to CLP.
    1314  </para>
    1415  <para>
    1516  The <filename>clp</filename> executable operates in command line mode or
    16   prompted mode.  Entering <userinput>clp</userinput> will bring you to prompt
    17   mode,while <userinput>clp &lt;filename&gt;</userinput> will import an MPS file
     17  prompted mode.  Entering <userinput>clp</userinput> will bring being &quot;prompt
     18  mode&quot;, while <userinput>clp &lt;filename&gt;</userinput> will import an MPS file
    1819  from filename and solve it using the dual simplex method and exit.  Again
    1920  <userinput>clp &lt;filename&gt; -primalsimplex</userinput> will import a file
  • trunk/Docs/doxygen.xml

    r408 r412  
    33<title>Doxygen</title>
    44<para>
    5 There is Doxygen content for CLP available online at <ulink
    6 url="http://www-124.ibm.com/developerworks/opensource/coin/Doxygen/Clp/index.html">
    7 http://www-124.ibm.com/developerworks/opensource/coin/Doxygen/Clp/index.html</ulink>.
     5There is Doxygen content for CLP available online at
     6<ulink url="http://www.coin-or.orgDoxygen/Clp/index.html">
     7http://www.coin-or.orgDoxygen/Clp/index.html</ulink>.
    88</para>
    99</appendix>
  • trunk/Docs/legal.xml

    r408 r412  
    55</copyright>
    66<legalnotice>
    7 COIN, CLP and this documentation are provided under the terms of the
     7CLP and this documentation are provided under the terms of the
    88<ulink url="http://opensource.org/licenses/cpl.php">Common Public License
    99</ulink>.  Any use, reproduction or distribution of the programs constitutes
    10 the recipient's acceptance of the license.  Please see IBM Coporation's
     10the recipient's acceptance of the license.  The
     11<ulink url="http://opensource.org/licenses/cpl.php">CPL</ulink> is approved by
     12the <ulink url="http://opensource.org/">Open Source Initiative</ulink>.  IBM
     13Corporation, the author of the
     14<ulink url="http://opensource.org/licenses/cpl.php">CPL</ulink>, has a
    1115<ulink url="http://www.ibm.com/developerworks/library/os-cplfaq.html">
    12 CPL FAQ</ulink> for more information.
     16CPL FAQ</ulink> available which is based on IBM's understanding of the
     17<ulink url="http://opensource.org/licenses/cpl.php">CPL</ulink>.
    1318</legalnotice>
  • trunk/Docs/moresamples.xml

    r408 r412  
    3838        <entry align="left" valign="top">
    3939        This is one of the simpler drivers.  It sets tolerances to defaults and
    40         is a useful place to find simple use of &lt;sets&gt; and &lt;gets&gt;.
    41         It also prints out a full MPS-like solutions.
     40        is a useful place to find simple use of &quot;sets&quot; and
     41        &quot;gets&quot;.  It also prints out a full MPS-like solutions.
    4242        </entry>
    4343      </row>
     
    5353      <row>
    5454        <entry align="left" valign="top">
     55        <filename>piece.cpp</filename>
     56        </entry>
     57        <entry align="left" valign="top">
     58        This simple example takes a matrix read in by
     59        <classname>CoinMpsIo</classname> (can be used to read in MPS files
     60        without a solver), deletes every second column and solves the
     61        resulting problem.
     62        </entry>
     63      </row>
     64      <row>
     65        <entry align="left" valign="top">
    5566        <filename>network.cpp</filename>
    5667        </entry>
    5768        <entry align="left" valign="top">
    5869        This shows the use of non-standard matrices and how to load a problem
    59         without going throu MPS files.
     70        without the use of MPS files.
    6071        </entry>
    6172      </row>
  • trunk/Docs/notsobasic.xml

    r408 r412  
    44  Not-Quite-So-Basic Model Classes
    55  </title>
    6   <section>
     6  <section id="pivotchoices">
    77  <title>Pivot Choices</title>
    88  <para>
     
    5050  </para>
    5151  </section>
    52   <section>
     52  <section id="matrixclasses">
    5353  <title>Matrix Classes</title>
    5454  <para>
     
    7777  <para>
    7878  The use <function>ClpPlusMinusOneMatrix</function> involves some work as one
    79   cannot simply read-in an MPS file.  The keyt is to use
     79  cannot simply read-in an MPS file.  The key is to use
    8080  <function>loadProblem</function> to pass in a matrix.  So if
    8181  <varname>matrix</varname> was a <function>CoinPackedMatrix</function> one
     
    118118  </para>
    119119  </section>
    120   <section>
     120  <section id="messagehandling">
    121121  <title>Message Handling</title>
    122122  <para>
Note: See TracChangeset for help on using the changeset viewer.