Changeset 966 for html


Ignore:
Timestamp:
Oct 19, 2004 2:13:43 PM (15 years ago)
Author:
ddelanu
Message:

Temporary version, trying to fix problems in server change, real release to follow

Location:
html/trunk/Clp/userguide
Files:
4 added
21 edited

Legend:

Unmodified
Added
Removed
  • html/trunk/Clp/userguide/apa.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix A. FAQ</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="ch06.html" title="Chapter 6. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix A. FAQ</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch06.html" title="Chapter 6. 
    22  Messages
    3   "><link rel="next" href="apb.html" title="Appendix B. Doxygen"></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">Appendix A. FAQ</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch06.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apb.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4768528"></a>Appendix A. FAQ</h2></div></div><div></div></div><div class="qandaset"><dl><dt>Q: <a href="apa.html#id4768607">
     3  "><link rel="next" href="apb.html" title="Appendix B. Doxygen"></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">Appendix A. FAQ</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch06.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apb.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4782528"></a>Appendix A. FAQ</h2></div></div></div><div class="qandaset"><dl><dt>Q: <a href="apa.html#id4782607">
    44  What is CLP?
    5   </a></dt><dt>Q: <a href="apa.html#id4768566">
     5  </a></dt><dt>Q: <a href="apa.html#id4782566">
    66  What are some of the features of CLP?
    7   </a></dt><dt>Q: <a href="apa.html#id4769481">
     7  </a></dt><dt>Q: <a href="apa.html#id4783559">
     8  How do I obtain and install CLP?
     9  </a></dt><dt>Q: <a href="apa.html#id4783595">
     10  Is CLP reliable?
     11  </a></dt><dt>Q: <a href="apa.html#id4783627">
     12  On which platforms does CLP run?   
     13  </a></dt><dt>Q: <a href="apa.html#id4783678">
     14  Is there any documentation for CLP? 
     15  </a></dt><dt>Q: <a href="apa.html#id4783716">
     16  Is CLP as fast as OSL?
     17  </a></dt><dt>Q: <a href="apa.html#id4783737">
     18  When will version 1.0 of CLP be available? 
     19  </a></dt><dt>Q: <a href="apa.html#id4783768">
    820  The barrier method sounds interesting, what are some of the details?
    9   </a></dt><dt>Q: <a href="apa.html#id4769507">
    10   How do I obtain and install CLP?
    11   </a></dt><dt>Q: <a href="apa.html#id4769543">
    12   Is CLP reliable?
    13   </a></dt><dt>Q: <a href="apa.html#id4769570">
    14   On which platforms does CLP run?   
    15   </a></dt><dt>Q: <a href="apa.html#id4769621">
    16   Is there any documentation for CLP? 
    17   </a></dt><dt>Q: <a href="apa.html#id4769654">
    18   Is CLP as fast as OSL?
    19   </a></dt><dt>Q: <a href="apa.html#id4769675">
    20   When will version 1.0 of CLP be available? 
    21   </a></dt><dt>Q: <a href="apa.html#id4769707">
     21  </a></dt><dt>Q: <a href="apa.html#id4783794">
     22  Which Cholesky factorizations codes are supported by CLP's barrier method?
     23  </a></dt><dt>Q: <a href="apa.html#id4783858">
     24  When will CLP have a good native ordering?
     25  </a></dt><dt>Q: <a href="apa.html#id4783879">
     26  Is the barrier code as mature as the simplex code?
     27  </a></dt><dt>Q: <a href="apa.html#id4783904">
     28  Which algorithm should I use for quadratic programming and should I keep an
     29  eye open for any issues?
     30  </a></dt><dt>Q: <a href="apa.html#id4783936">
    2231  What can the community do to help?
    23   </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id4768607"></a><a name="id4768609"></a><b>Q:</b></td><td align="left" valign="top"><p>
     32  </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id4782607"></a><a name="id4782610"></a><b>Q:</b></td><td align="left" valign="top"><p>
    2433  What is <a href="http://www.coin-or.org/Clp/" target="_top">CLP</a>?
    2534  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     
    2938  CLP is written in C++, and is primarily intended to be used as a callable
    3039  library (though a rudimentary stand-alone executable exists).
    31   The first release was version .90.  The current release is version .99.8.
    32   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4768566"></a><a name="id4768569"></a><b>Q:</b></td><td align="left" valign="top"><p>
     40  The first release was version .90.  The current release is version .99.9.
     41  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4782566"></a><a name="id4782568"></a><b>Q:</b></td><td align="left" valign="top"><p>
    3342  What are some of the features of CLP?
    3443  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    3544  (DN 08/27/04) CLP includes primal and dual Simplex solvers.  Both dual and primal algorithms
    3645  can use matrix storage methods provided by the user (0-1 and network matrices
    37   already supported in addition the default sparse matrix). The dual algorithm
    38   has Dantzig and Steepest edge row pivot choices and new ones may be provided by
     46  are already supported in addition to the default sparse matrix). The dual algorithm
     47  has Dantzig and Steepest edge row pivot choices; new ones may be provided by
    3948  the user. The same is true for the column pivot choice of the primal algorithm.
    4049  The primal can also use a non linear cost which should work for piecewise
    4150  linear convex functions.  CLP also includes a barrier method for solving LPs.
    42   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769481"></a><a name="id4769483"></a><b>Q:</b></td><td align="left" valign="top"><p>
     51  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783559"></a><a name="id4783561"></a><b>Q:</b></td><td align="left" valign="top"><p>
     52  How do I obtain and install CLP?
     53  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     54  (DN 08/27/04) Please see the
     55  <a href="http://www.coin-or.org/faqs.html" target="_top">COIN-OR FAQ</a>
     56  for details on how to
     57  <a href="http://www.coin-or.org/faqs.html#ObtainSrcCode" target="_top">obtain</a>
     58  and
     59  <a href="http://www.coin-or.org/faqs.html#BuildCode" target="_top">install</a>
     60  COIN-OR modules.
     61  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783595"></a><a name="id4783597"></a><b>Q:</b></td><td align="left" valign="top"><p>
     62  Is CLP reliable?
     63  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     64  (DN 09/07/04) CLP has been tested on many problems of up to 1.5 million
     65  constraints and has shown itself as reliable as OSL. It is also being tested
     66  in the context of
     67  <a href="http://www.coin-or.org/faqs.html#SBB" target="_top">SBB</a>
     68  ("Simple Branch and Bound", which is used to solve integer
     69  programs), but more testing is needed before it can get to version 1.0.
     70  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783627"></a><a name="id4783629"></a><b>Q:</b></td><td align="left" valign="top"><p>
     71  On which platforms does CLP run?   
     72  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     73  (DN 08/27/04) CLP compiles and has been tested (to varying degrees) on the following
     74  platforms:
     75  </p><div class="itemizedlist"><ul type="disc"><li><p>
     76  Linux using g++ version 3.1.1 (or later)
     77  </p></li><li><p>
     78  Windows using Microsoft Visual C++ 6
     79  </p></li><li><p>
     80  Windows using cygwin
     81  </p></li><li><p>
     82  AIX using xIC (not supported in the current Makefile)
     83  </p></li></ul></div></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783678"></a><a name="id4783680"></a><b>Q:</b></td><td align="left" valign="top"><p>
     84  Is there any documentation for CLP? 
     85  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     86  (DN 09/16/04) An early release of a User Guide is available on the
     87  <a href="http://www.coin-or.org/Clp/documentation.html" target="_top">CLP documentation webpage</a>.
     88  Also available is a list of
     89  <a href="http://www.coin-or.org/Doxygen/Clp/" target="_top">CLP class descriptions</a> generated
     90  by <a href="http://www.doxygen.org" target="_top">Doxygen</a>.
     91  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783716"></a><a name="id4783718"></a><b>Q:</b></td><td align="left" valign="top"><p>
     92  Is CLP as fast as OSL?
     93  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     94   (DN 08/27/04) CLP uses sparse matrix techniques designed for very large
     95   problems. The design criteria were for it not to be too slow. Some speed
     96   has been sacrificed to make the code less opaque OSL (not difficult!).
     97  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783737"></a><a name="id4783739"></a><b>Q:</b></td><td align="left" valign="top"><p>
     98  When will version 1.0 of CLP be available? 
     99  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     100  (DN 08/27/04) It is expected that version 1.0 will be released in time for the 2004
     101  <a href="http://www.informs.org" target="_top">INFORMS</a>
     102  <a href="http://www.informs.org/Conf/Denver2004/" target="_top">Annual Meeting</a>
     103  (24-27 October, 2004).
     104  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783768"></a><a name="id4783771"></a><b>Q:</b></td><td align="left" valign="top"><p>
    43105  The barrier method sounds interesting, what are some of the details?
    44106  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     
    48110  expected to have a reasonable factorization implementation by the release of
    49111  CLP version 1.0.  However, the sparse factorization requires a good ordering
    50   algorithm, which the user is expected to provide the ordering code, and
    51   perhaps a better factorization code as well.
    52   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769507"></a><a name="id4769509"></a><b>Q:</b></td><td align="left" valign="top"><p>
    53   How do I obtain and install CLP?
     112  algorithm, which the user is expected to provide (perhaps a better
     113  factorization code as well).
     114  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783794"></a><a name="id4783796"></a><b>Q:</b></td><td align="left" valign="top"><p>
     115  Which Cholesky factorizations codes are supported by CLP's barrier method?
    54116  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    55   (DN 08/27/04) Please see the
    56   <a href="http://www.coin-or.org/faqs.html/" target="_top">COIN-OR FAQ</a>
    57   for details on how to
    58   <a href="http://www.coin-or.org/faqs.html/#ObtainSrcCode" target="_top">obtain</a>
    59   and
    60   <a href="http://www.coin-or.org/faqs.html/#BuildCode" target="_top">install</a>
    61   COIN-OR modules.
    62   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769543"></a><a name="id4769546"></a><b>Q:</b></td><td align="left" valign="top"><p>
    63   Is CLP reliable?
     117  (DN 09/16/04) The Cholesky interface is flexible enough so that a variety of Cholesky
     118  ordering and factorization codes can be used.  Interfaces are provided to each
     119  of the following:
     120  </p><div class="itemizedlist"><ul type="disc"><li><p>
     121  Anshul Gupta's WSSMP parallel enabled ordering and factorization code
     122  </p></li><li><p>
     123  Sivan Toledo's TAUCS parallel enabled factorization code (the package includes
     124  third party ordering codes)
     125  </p></li><li><p>
     126  University of Florida's Approximate Minimum Degree (AMD) ordering code (the
     127  CLP native factorization code is used with this ordering code)
     128  </p></li><li><p>
     129  CLP native code: very weak ordering but competitive nonparallel factorization
     130  </p></li><li><p>
     131  Fast dense factorization
     132  </p></li></ul></div><p>
     133  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783858"></a><a name="id4783860"></a><b>Q:</b></td><td align="left" valign="top"><p>
     134  When will CLP have a good native ordering?
    64135  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    65   (DN 08/27/04) CLP has been tested on many problems of up to 1.5 million constraints and has
    66   shown itself as reliable as OSL. It is also being tested in the context of
    67   <a href="http://www.coin-or.org/faqs.html#SBB" target="_top">SBB</a>, but more testing
    68   is needed before it can get to version 1.0.
    69   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769570"></a><a name="id4769572"></a><b>Q:</b></td><td align="left" valign="top"><p>
    70   On which platforms does CLP run?   
     136  (DN 09/16/04) The best outcome would be to have an existing ordering code available as part
     137  of the COIN distribution under the CPL.  However, if this is not possible, the
     138  native ordering will be made respectable.
     139  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783879"></a><a name="id4783881"></a><b>Q:</b></td><td align="left" valign="top"><p>
     140  Is the barrier code as mature as the simplex code?
    71141  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    72   (DN 08/27/04) CLP compiles and has been tested (to varying degrees) on the following
    73   platforms:
    74   </p><div class="itemizedlist"><ul type="disc"><li><p>
    75   Linux using g++ version 3.1.1 (or later).
    76   </p></li><li><p>
    77   Windows using Microsoft Visual C++ 6
    78   </p></li><li><p>
    79   Windows using cygwin
    80   </p></li><li><p>
    81   AIX using xIC (not supported in the current Makefile)
    82   </p></li></ul></div></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769621"></a><a name="id4769623"></a><b>Q:</b></td><td align="left" valign="top"><p>
    83   Is there any documentation for CLP? 
     142  (DN 09/16/04) The simplex code has been exposed to user testing for more than a year and
     143  and the principal author, John Forrest, knows more about simplex algorithms
     144  than interior point algorithms, so the answer is "no".  However, it
     145  performs well on test sets and seems to be more reliable than some
     146  commercially available codes (including OSL).
     147  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783904"></a><a name="id4783906"></a><b>Q:</b></td><td align="left" valign="top"><p>
     148  Which algorithm should I use for quadratic programming and should I keep an
     149  eye open for any issues?
    84150  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    85   (DN 08/27/04) A User Guide should be available in time for the release of version 1.0 of CLP.
    86   Also available is a list of
    87   <a href="http://www.coin-or.org/Doxygen/Clp/" target="_top">CLP class descriptions</a>.
    88   More on CLP documentation is available on the
    89   <a href="http://www.coin-or.org/Clp/documentation.html" target="_top">CLP documentation webpage</a>.
    90   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769654"></a><a name="id4769657"></a><b>Q:</b></td><td align="left" valign="top"><p>
    91   Is CLP as fast as OSL?
    92   </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    93    (DN 08/27/04) It uses sparse techniques designed for very large problems. The design
    94    criteria were for it not to be too slow. Some speed has been sacrificed
    95    to make the code less opaque than OSL (not difficult!).
    96   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769675"></a><a name="id4769677"></a><b>Q:</b></td><td align="left" valign="top"><p>
    97   When will version 1.0 of CLP be available? 
    98   </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    99   (DN 08/27/04) It is expected that version 1.0 will be released in time for the 2004
    100   <a href="http://www.informs.org" target="_top">INFORMS</a>
    101   <a href="http://www.informs.org/Conf/Denver2004/" target="_top">Annual Meeting</a>
    102   (24-27 October, 2004).
    103   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4769707"></a><a name="id4769709"></a><b>Q:</b></td><td align="left" valign="top"><p>
     151  (DN 09/16/04) The interior point algorithm for quadratic programming is much more elegant
     152  and normally much faster than the quadratic simplex code.  Caution is
     153  suggested with the presolve as not all bugs have been found and squashed when
     154  a quadratic objective is used.  One may wish to switch off the crossover to a
     155  basic feasible solution as the simplex code can be slow.  The sequential
     156  linear code is useful as a "crash" to the simplex code; its
     157  convergence is poor but, say, 100 iterations could set up the problem well for
     158  the simplex code.
     159  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4783936"></a><a name="id4783938"></a><b>Q:</b></td><td align="left" valign="top"><p>
    104160  What can the community do to help?
    105161  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    106   (DN 08/27/04) A lot!  A good first step would be to join the CLP
     162  (DN 09/09/04) A lot!  A good first step would be to join the CLP
    107163  <a href="http://www.coin-or.org/mail.html" target="_top">mailing lists</a>.  Some
    108164  other possibilities:
     
    114170  Add non-English language support in your own favo(u)rite language.
    115171  </p></li><li><p>
    116   Improve the Clp executable
     172  Improve the CLP executable.  In particular it would be nice to be able to link
     173  the executable's online help system with the existing CLP Samples (e.g. entering
     174  <b class="userinput"><tt>presol???</tt></b> would give the user references to all
     175  CLP Sample files which use presolve).
    117176  </p></li><li><p>
    118   Etc.
     177  Implement a dual Simplex method for QPs (quadratic programs)
     178  </p></li><li><p>
     179  Implement a parametric Simplex method
     180  </p></li><li><p>
     181  Implement a true network Simplex method (network matrix and factorization
     182  are already in place, but the method is not)
     183  </p></li><li><p>
     184  Fill the holes in the barrier method mentioned above.
    119185  </p></li></ul></div></td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch06.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="apb.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. 
    120186  Messages
  • html/trunk/Clp/userguide/apb.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix B. Doxygen</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="apa.html" title="Appendix A. FAQ"><link rel="next" href="apc.html" title="Appendix C. Revision History"></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">Appendix B. Doxygen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apa.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apc.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4769461"></a>Appendix B. Doxygen</h2></div></div><div></div></div><p>
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix B. Doxygen</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="apa.html" title="Appendix A. FAQ"><link rel="next" href="apc.html" title="Appendix C. Revision History"></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">Appendix B. Doxygen</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apa.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apc.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="doxygen"></a>Appendix B. Doxygen</h2></div></div></div><p>
    22There is Doxygen content for CLP available online at
    33<a href="http://www.coin-or.org/Doxygen/Clp/index.html" target="_top">
    4 http://www.coin-or.org/Doxygen/Clp/index.html</a>.
     4http://www.coin-or.org/Doxygen/Clp/index.html</a>.  A local version of the
     5Doxygen content can be generated from the CLP distribution.  To do so, in the
     6directory <tt class="filename">COIN/Clp</tt>, enter <b class="userinput"><tt>make doc</tt></b>.
     7The Doxygen content will be created in the directory
     8<tt class="filename">COIN/Clp/Doc/html</tt>.  The same can be done for
     9the COIN core, from the <tt class="filename">COIN/Coin</tt> directory.
    510</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apa.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="apc.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix A. FAQ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix C. Revision History</td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/apc.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix C. Revision History</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="apb.html" title="Appendix B. Doxygen"></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">Appendix C. Revision History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apb.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4769431"></a>Appendix C. Revision History</h2></div></div><div></div></div><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.3</td><td align="left">19 Aug 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Major overhaul, including transition from MS Word to DocBook
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix C. Revision History</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="apb.html" title="Appendix B. Doxygen"></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">Appendix C. Revision History</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="apb.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> </td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4782498"></a>Appendix C. Revision History</h2></div></div></div><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Oct 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Second official release, including some corrections,
     2  clarifications, and several improvements (better treatment of clp
     3  executable and Samples).
     4  </td></tr><tr><td align="left">Revision 0.3</td><td align="left">19 Aug 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Major overhaul, including transition from MS Word to DocBook
    25    XML.
    36  </td></tr><tr><td align="left">Revision 0.2</td><td align="left">23 Feb 2004</td><td align="left">RLH</td></tr><tr><td align="left" colspan="3">Revisions to make it clearer to the non-author reader.</td></tr><tr><td align="left">Revision 0.1</td><td align="left">Nov 2003</td><td align="left">JF</td></tr><tr><td align="left" colspan="3">First draft</td></tr></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="apb.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Appendix B. Doxygen </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/ch01.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 1. 
    22    Introduction
    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="index.html" title="CLP User Manual"><link rel="next" href="ch02.html" title="Chapter 2. 
    4   Basic Model Classes
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="index.html" title="CLP User Guide"><link rel="next" href="ch01s02.html" title="
     4  Prerequisites
    55  "></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 1. 
    66    Introduction
    7   </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
     7  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
    88    Introduction
    9   </h2></div></div><div></div></div><p>
     9  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch01.html#id4704440">
     10  Welcome to CLP!
     11  </a></span></dt><dt><span class="section"><a href="ch01s02.html">
     12  Prerequisites
     13  </a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4704440"></a>
     14  Welcome to CLP!
     15  </h2></div></div></div><p>
    1016  The COIN  Linear Program code or CLP is an open-source simplex solver written
    1117  in C++.  It is primarily meant to be used as a callable library, but a
    12   basic stand-alone executable version is also available.  This
    13   is the first edition of the User Guide, and is to be considered a work in
    14   progress.
     18  basic, stand-alone <a href="ch05.html" title="Chapter 5. 
     19  The CLP Executable
     20  ">executable</a> version is also
     21  available.
    1522  </p><p>
    16   This document is designed to be used in conjunction with the Samples
    17   subdirectory of the Clp directory (i.e. <tt class="filename">COIN/Clp/Samples</tt>).
    18   In the rare event that this document conflicts with the observed behavior of
    19   the source code, the comments in the header files (found in
    20   <tt class="filename">COIN/Clp/include</tt>) are the ultimate reference.
    21   </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.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="ch02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">CLP User Manual </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. 
    22   Basic Model Classes
     23  There are a number of resources available to help new CLP users get started.
     24  This document is designed to be used in conjunction with the files in the
     25  Samples subdirectory of the main CLP directory (<tt class="filename">COIN/Clp/Samples</tt>).
     26  The Samples illustrate how to use CLP and may also serve as useful starting points
     27  for user projects.  In the rare event that either this document or the available
     28  <a href="apb.html" title="Appendix B. Doxygen">Doxygen content</a> conflicts with the observed
     29  behavior of the source code, the comments in the header files, found in
     30  <tt class="filename">COIN/Clp/include</tt>, are the ultimate reference.
     31  </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.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="ch01s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">CLP User Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
     32  Prerequisites
    2333  </td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/ch02.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 2. 
    22  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
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch01s02.html" title="
     4  Prerequisites
    55  "><link rel="next" href="ch02s02.html" title="
    66  First Example
    77  "></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. 
    88  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. 
     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="basicmodelclasses"></a>Chapter 2. 
    1010  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">
     11  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch02.html#hierarchy">
    1212  Hierarchy
    1313  </a></span></dt><dt><span class="section"><a href="ch02s02.html">
     
    2121  </a></span></dt><dt><span class="section"><a href="ch02s08.html">
    2222  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>
     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="hierarchy"></a>
    2424  Hierarchy
    25   </h2></div></div><div></div></div><p>
    26   The basic model class hierarchy is simple.  The top three levels of the
     25  </h2></div></div></div><p>
     26  The basic CLP model class hierarchy is simple.  The top three levels of the
    2727  hierarchy are depicted in the figure below. The first two levels  (i.e.
    2828  <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. 
     29  <tt class="classname">ClpInterior</tt>) contain all the problem data which define
     30  a model (that is, a problem instance). The third level contains most of the
     31  algorithmic aspects of CLP.  There is a fourth level (for models with more general
     32  objectives than linear ones), but a description of it is beyond the current scope
     33  of this document.
    3434  </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
     35  Most Simplex users need only concern themselves with the classes
     36  <tt class="classname">ClpModel</tt> and <tt class="classname">ClpSimplex</tt>.  There
     37  are algorithm-specific classes which inherit from
     38  <tt class="classname">ClpSimplex</tt> (e.g. <tt class="classname">ClpSimplexDual</tt>
     39  and <tt class="classname">ClpSimplexPrimal</tt>), but they have no member data and
     40  rarely need be visible to the user.  These  classes are cast at algorithm
     41  time.  So, for example, after instantiating an object
     42  <b class="userinput"><tt>model</tt></b> of type <tt class="classname">ClpSimplex</tt>,
     43  a user only need call <b class="userinput"><tt>model.dual()</tt></b> to invoke the dual
     44  simplex method.
     45  </p></div></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">
     46  Prerequisites
    5947   </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
    6048  First Example
  • html/trunk/Clp/userguide/ch02s02.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
    22  First Example
    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="ch02.html" title="Chapter 2. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    44  Basic Model Classes
    5   "><link rel="previous" href="ch02.html" title="Chapter 2. 
     5  "><link rel="prev" href="ch02.html" title="Chapter 2. 
    66  Basic Model Classes
    77  "><link rel="next" href="ch02s03.html" title="
     
    1111  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    1212  Basic Model Classes
    13   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4757757"></a>
     13  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="firstexample"></a>
    1414  First Example
    15   </h2></div></div><div></div></div><p>
    16   Below is our first CLP example code.  It is short enough to present in full.
    17   Most of the remaining examples in this Guide will take the form of small code
    18   fragments.
    19   </p><div class="example"><a name="id4757769"></a><p class="title"><b>Example 2.1. minimum.cpp</b></p><pre class="programlisting">
     15  </h2></div></div></div><p>
     16  Below is our first CLP sample program.  It is short enough to present in full
     17  (this code can be found in the CLP Samples directory, see
     18  <a href="ch04.html" title="Chapter 4. 
     19More Samples
     20">Chapter 4, <i>
     21More Samples
     22</i></a>).  Most of the remaining examples in this Guide
     23  will take the form of small code fragments.
     24  </p><div class="example"><a name="id4768485"></a><p class="title"><b>Example 2.1. minimum.cpp</b></p><pre class="programlisting">
    2025   
    2126// Copyright (C) 2002, International Business Machines
     
    3843     
    3944  </pre></div><p>
    40   This sample program creates a default <tt class="classname">ClpSimplex</tt> model,
     45  This sample program creates a <tt class="classname">ClpSimplex</tt> model,
    4146  reads an MPS file, and if there are no errors, solves it using the primal
    42   algorithm.  Simple, but not terribly useful: there is no way to inspect the
    43   results of the solve.  There are two main kinds of results: a status saying
    44   what happened to the model, and arrays filled with the solution values.
     47  algorithm.  The program is easy to follow, but it is not terribly useful:
     48  it does not attempt to inspect the results of the solve.  There are two main
     49  kinds of results: a "status" describing what happened to the model
     50  during the solve, and arrays filled with solution values.  Both will be
     51  addressed in this chapter.
    4552  </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch02.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch02.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s03.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. 
    4653  Basic Model Classes
  • html/trunk/Clp/userguide/ch02s03.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
    22  Getting at the Solution
    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="ch02.html" title="Chapter 2. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    44  Basic Model Classes
    5   "><link rel="previous" href="ch02s02.html" title="
     5  "><link rel="prev" href="ch02s02.html" title="
    66  First Example
    77  "><link rel="next" href="ch02s04.html" title="
     
    1111  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s02.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    1212  Basic Model Classes
    13   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4757809"></a>
     13  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s04.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gettingsolution"></a>
    1414  Getting at the Solution
    15   </h2></div></div><div></div></div><p>
     15  </h2></div></div></div><p>
    1616  It is often the case with CLP that there is more than one way to do something.
    1717  This is a consequence of CLP's mixed heritage as a child of
     
    2727  <tt class="function">isIterationLimitReached()</tt> or the feared
    2828  <tt class="function">isAbandoned()</tt>.  Should one prefer the OSL way of doing
    29   things, model.status() returns as it would in OSL-land, so 0 means optimal,
     29  things, model.status() returns as it would in OSL, so 0 means optimal,
    3030  1 means  primal infeasible etc.
    3131  </p><p>
    32   Similarly, to pick up the solution values, we can inhabit the virtuous OSI-land
    33   or the not-quite-so-virtuous CLP-land.  By this it is meant that there are
    34   const and non-const forms of arrays.  It is easier to deal with the non-const
    35   versions, so most of the later elaborate algorithms use them.
    36   </p><div class="table"><a name="id4757888"></a><p class="title"><b>Table 2.1. 
     32  Similarly, to pick up the solution values, one could inhabit the virtuous
     33  world of OSI, or the not-quite-so-virtuous world of OSL and "pure"
     34  CLP.  By this it is meant that const and non-const forms of arrays are used,
     35  respectively.  It is easier to deal with the non-const versions, so most of
     36  the elaborate algorithms in CLP and its
     37  <a href="ch04.html" title="Chapter 4. 
     38More Samples
     39">Samples</a> use them.
     40  </p><div class="table"><a name="id4768629"></a><p class="title"><b>Table 2.1. 
    3741  Methods for getting solution information
    3842  </b></p><table summary="
     
    4347      OSI-style (virtuous)
    4448      </th><th>
    45       CLP style (less virtuous)
     49      CLP-style (less virtuous)
    4650      </th></tr></thead><tbody><tr><td align="left" valign="top">
    4751      Primal column solution
    48       </td><td align="left" valign="top"><tt class="function">const double * getColSolution()</tt></td><td align="left" valign="top"><tt class="function">double * primalColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     52      </td><td align="left" valign="top">
     53      <tt class="function">const double * getColSolution()</tt>
     54      </td><td align="left" valign="top">
     55      <tt class="function">double * primalColumnSolution()</tt>
     56      </td></tr><tr><td align="left" valign="top">
    4957      Dual row solution
    50       </td><td align="left" valign="top"><tt class="function">const double * getRowPrice()</tt></td><td align="left" valign="top"><tt class="function">double * dualColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     58      </td><td align="left" valign="top">
     59      <tt class="function">const double * getRowPrice()</tt>
     60      </td><td align="left" valign="top">
     61      <tt class="function">double * dualColumnSolution()</tt>
     62      </td></tr><tr><td align="left" valign="top">
    5163      Primal row solution
    52       </td><td align="left" valign="top"><tt class="function">const double * getRowActivity()</tt></td><td align="left" valign="top"><tt class="function">double * primalRowSolution()</tt></td></tr><tr><td align="left" valign="top">
     64      </td><td align="left" valign="top">
     65      <tt class="function">const double * getRowActivity()</tt>
     66      </td><td align="left" valign="top">
     67      <tt class="function">double * primalRowSolution()</tt>
     68      </td></tr><tr><td align="left" valign="top">
    5369      Dual row solution
    54       </td><td align="left" valign="top"><tt class="function">const double * getReducedCost()</tt></td><td align="left" valign="top"><tt class="function">double * dualColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     70      </td><td align="left" valign="top">
     71      <tt class="function">const double * getReducedCost()</tt>
     72      </td><td align="left" valign="top">
     73      <tt class="function">double * dualColumnSolution()</tt>
     74      </td></tr><tr><td align="left" valign="top">
    5575      Number of rows in model
    56       </td><td align="left" valign="top"><tt class="function">int getNumRows()</tt></td><td align="left" valign="top"><tt class="function">int numberRows()</tt></td></tr><tr><td align="left" valign="top">
     76      </td><td align="left" valign="top">
     77      <tt class="function">int getNumRows()</tt>
     78      </td><td align="left" valign="top">
     79      <tt class="function">int numberRows()</tt>
     80      </td></tr><tr><td align="left" valign="top">
    5781      Number of columns in model
    58       </td><td align="left" valign="top"><tt class="function">int getNumCols()</tt></td><td align="left" valign="top"><tt class="function">int numberColumns()</tt></td></tr></tbody></table></div><p>
     82      </td><td align="left" valign="top">
     83      <tt class="function">int getNumCols()</tt>
     84      </td><td align="left" valign="top">
     85      <tt class="function">int numberColumns()</tt>
     86      </td></tr></tbody></table></div><p>
    5987  The reader  may have noted a preference for "number" over
    6088  "num" and "column" over "col".  This may be a
    6189  reaction to when one of the authors was young and 5 or 6 letters was the
    62   maximum in FORTRAN for any name or to early days with Osl when seven characters
    63   were allowed but the first three had to be "EKK"! 
     90  maximum in FORTRAN for any name or to early days with OSL when seven characters
     91  were allowed but the first three had to be "ekk"! 
    6492  </p><p>
    65   Using the above-listed functions, our initial example might be continued as follows:
    66   </p><div class="example"><a name="id4758173"></a><p class="title"><b>Example 2.2. 
     93  Using the above-listed functions, our
     94  <a href="ch02s02.html" title="
     95  First Example
     96  ">initial example</a> might be continued as follows:
     97  </p><div class="example"><a name="id4768922"></a><p class="title"><b>Example 2.2. 
    6798  Possible extension of minimum.cpp
    6899  </b></p><pre class="programlisting">
     
    92123  dual solutions.  How to additionally print row and column names is
    93124  illustrated in the <tt class="filename">defaults.cpp</tt> file in the
    94   "Samples" directory (the "Samples" are properly addressed
     125  "Samples" directory (the Samples are properly addressed
    95126  in <a href="ch04.html" title="Chapter 4. 
    96127More Samples
     
    101132  tolerance value to the default value).
    102133  </p><p>
    103   The remainder of this chapter will show some more of the basic tasks a user
    104   might want to perform.  Apart from presolve we will only be looking at actions
     134  The remainder of this chapter will show  more of the basic CLP tasks a user
     135  might wish to perform.  Apart from presolve we will only be looking at actions
    105136  which can be performed when including the single header file
    106137  <tt class="filename">COIN/Clp/include/ClpSimplex.hpp</tt>.
  • html/trunk/Clp/userguide/ch02s04.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
    22  Building and Modifying a Model
    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="ch02.html" title="Chapter 2. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    44  Basic Model Classes
    5   "><link rel="previous" href="ch02s03.html" title="
     5  "><link rel="prev" href="ch02s03.html" title="
    66  Getting at the Solution
    77  "><link rel="next" href="ch02s05.html" title="Tolerances"></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">
     
    99  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s03.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    1010  Basic Model Classes
    11   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s05.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4758347"></a>
     11  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s05.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="buildandmodify"></a>
    1212  Building and Modifying a Model
    13   </h2></div></div><div></div></div><p>
     13  </h2></div></div></div><p>
    1414  Rather than reading a model from an MPS file we can load a model from arrays
    1515  in memory.  There are various <tt class="function">loadProblem</tt> methods which
     
    1919  is 0 or 1 to say integer and we can drop existing information by
    2020  <tt class="function">deleteIntegerInformation()</tt>.  There are various ways of
    21   changing the size of a model.  The simplest is
     21  changing the size of a model.  The simplest is by the use of the method
    2222  <tt class="function">resize(newNumberRows,newNumberColumns)</tt> - this will either
    23   truncate model or add default rows or columns - a default row has lower bound
    24   of -infinity and upper bound of +infinity, while a default column has zero cost,
    25   zero lower bound and an upper bound of +infinity.
     23  truncate the model or add "default" rows or columns - a default row
     24  has lower bound of -infinity and upper bound of +infinity, while a default
     25  column has zero cost, zero lower bound and an upper bound of +infinity.
    2626  </p><p>
    2727  Normally we would use <tt class="function">deleteRows</tt>,
    2828  <tt class="function">addRows</tt>, <tt class="function">deleteColumns</tt> and
    29   <tt class="function">addColumns</tt>, where the add ones will also add in the
    30   elements.  A potentially very useful way of modifying a model is strictly a
     29  <tt class="function">addColumns</tt>, where the <tt class="function">add</tt> methods
     30  will also add in the elements.  A potentially very useful way of modifying a model is strictly a
    3131  constructor.  Given a large model and a list of rows and a list of columns it
    3232  constructs the model as a subset of the large model.  It is possible to change
  • html/trunk/Clp/userguide/ch02s05.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Tolerances</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="ch02.html" title="Chapter 2. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Tolerances</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    22  Basic Model Classes
    3   "><link rel="previous" href="ch02s04.html" title="
     3  "><link rel="prev" href="ch02s04.html" title="
    44  Building and Modifying a Model
    55  "><link rel="next" href="ch02s06.html" title="Some Useful Set and Get Methods"></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">Tolerances</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s04.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    66  Basic Model Classes
    7   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s06.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4758436"></a>Tolerances</h2></div></div><div></div></div><p>
     7  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s06.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tolerances"></a>Tolerances</h2></div></div></div><p>
    88  There are set and get methods for tolerances, for example,
    99  <tt class="function">double primalTolerance()</tt> and
  • html/trunk/Clp/userguide/ch02s06.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Some Useful Set and Get Methods</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="ch02.html" title="Chapter 2. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Some Useful Set and Get Methods</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    22  Basic Model Classes
    3   "><link rel="previous" href="ch02s05.html" title="Tolerances"><link rel="next" href="ch02s07.html" title="
     3  "><link rel="prev" href="ch02s05.html" title="Tolerances"><link rel="next" href="ch02s07.html" title="
    44  Simplex-specific Methods
    55  "></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">Some Useful Set and Get Methods</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s05.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    66  Basic Model Classes
    7   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s07.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4758484"></a>Some Useful Set and Get Methods</h2></div></div><div></div></div><div class="table"><a name="id4758490"></a><p class="title"><b>Table 2.2. Some Useful Set and Get Methods</b></p><table summary="Some Useful Set and Get Methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     7  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s07.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setsandgets"></a>Some Useful Set and Get Methods</h2></div></div></div><div class="table"><a name="id4769146"></a><p class="title"><b>Table 2.2. Some Useful Set and Get Methods</b></p><table summary="Some Useful Set and Get Methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
    88    Method(s)
    99    </th><th>
    1010    Description
    11     </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="function">setMaximumIterations(int value)</tt><br><tt class="function">int maximumIterations()</tt><br><tt class="function">setMaximumSeconds(double value)</tt><br><tt class="function">double maximumIterations()</tt></td><td align="left" valign="top">
     11    </th></tr></thead><tbody><tr><td align="left" valign="top">
     12      <tt class="function">setMaximumIterations(int value)</tt><br>
     13      <tt class="function">int maximumIterations()</tt><br>
     14      <tt class="function">setMaximumSeconds(double value)</tt><br>
     15      <tt class="function">double maximumIterations()</tt>
     16      </td><td align="left" valign="top">
    1217      These methods tell CLP to stop after a given number of iterations or
    1318      seconds (and returns these values).
    14       </td></tr><tr><td align="left" valign="top"><tt class="function">double objectiveValue()</tt></td><td align="left" valign="top">
     19      </td></tr><tr><td align="left" valign="top">
     20      <tt class="function">double objectiveValue()</tt>
     21      </td><td align="left" valign="top">
    1522      This method returns the objective value.
    16       </td></tr><tr><td align="left" valign="top"><tt class="function">const double * getObjCoefficients()</tt><br><tt class="function">double * objective()</tt></td><td align="left" valign="top">
     23      </td></tr><tr><td align="left" valign="top">
     24      <tt class="function">const double * getObjCoefficients()</tt><br>
     25      <tt class="function">double * objective()</tt>
     26      </td><td align="left" valign="top">
    1727      These methods return the objective coefficients.
    18       </td></tr><tr><td align="left" valign="top"><tt class="function">const double * getRowLower()</tt><br><tt class="function">double * rowLower()</tt><br><tt class="function">const double * getRowUpper()</tt><br><tt class="function">double * rowUpper()</tt><br><tt class="function">const double * getColLower()</tt><br><tt class="function">double * columnLower()</tt><br><tt class="function">const double * getColUpper()</tt><br><tt class="function">double * columnUpper()</tt></td><td align="left" valign="top">
     28      </td></tr><tr><td align="left" valign="top">
     29      <tt class="function">const double * getRowLower()</tt><br>
     30      <tt class="function">double * rowLower()</tt><br>
     31      <tt class="function">const double * getRowUpper()</tt><br>
     32      <tt class="function">double * rowUpper()</tt><br>
     33      <tt class="function">const double * getColLower()</tt><br>
     34      <tt class="function">double * columnLower()</tt><br>
     35      <tt class="function">const double * getColUpper()</tt><br>
     36      <tt class="function">double * columnUpper()</tt>
     37      </td><td align="left" valign="top">
    1938      These methods give lower and upper bounds on row and column activities.
    20       </td></tr><tr><td align="left" valign="top"><tt class="function">double * infeasibilityRay()</tt><br><tt class="function">double * unboundedRay()</tt></td><td align="left" valign="top">
     39      </td></tr><tr><td align="left" valign="top">
     40      <tt class="function">double * infeasibilityRay()</tt><br>
     41      <tt class="function">double * unboundedRay()</tt>
     42      </td><td align="left" valign="top">
    2143      If the problem was primal or dual infeasible, these methods will give a
    2244      pointer to a ray proving infeasibility.
    23       </td></tr><tr><td align="left" valign="top"><tt class="function">CoinPackMatrix * matrix()</tt></td><td align="left" valign="top">
     45      </td></tr><tr><td align="left" valign="top">
     46      <tt class="function">CoinPackMatrix * matrix()</tt>
     47      </td><td align="left" valign="top">
    2448      There are more options as the user has great flexibility in how the problem
    2549      matrix is stored, but the default matrix class is
     
    2852      So we have that this method returns a pointer to a
    2953      <tt class="classname">CoinPackedMatrix</tt> which can be further manipulated.
    30       </td></tr><tr><td align="left" valign="top"><tt class="function">CoinBigIndex getNumElements()</tt><sup>[<a name="id4758792" href="#ftn.id4758792">a</a>]</sup></td><td align="left" valign="top">
     54      </td></tr><tr><td align="left" valign="top">
     55      <tt class="function">CoinBigIndex getNumElements()</tt>
     56      <sup>[<a name="id4769448" href="#ftn.id4769448">a</a>]</sup>
     57      </td><td align="left" valign="top">
    3158      Returns the number of elements in the problem matrix.
    32       </td></tr><tr><td align="left" valign="top"><tt class="function">void setOptimizationDirection(double value)</tt><br><tt class="function">double optimizationDirection()</tt></td><td align="left" valign="top">
     59      </td></tr><tr><td align="left" valign="top">
     60      <tt class="function">void setOptimizationDirection(double value)</tt><br>
     61      <tt class="function">double optimizationDirection()</tt>
     62      </td><td align="left" valign="top">
    3363      These methods set and get the objective sense.  The parameter
    3464      <i class="parameter"><tt>value</tt></i> should be +1 to minimize, -1 to maximize,
    3565      and 0 to ignore.
    36       </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4758792" href="#id4758792">a</a>] </sup>
     66      </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4769448" href="#id4769448">a</a>] </sup>
    3767        <span class="type">CoinBigIndex</span> is a <tt class="function">typedef</tt> which in
    3868        most cases is the same as <span class="type">int</span>.
  • html/trunk/Clp/userguide/ch02s07.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
    22  Simplex-specific Methods
    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="ch02.html" title="Chapter 2. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    44  Basic Model Classes
    5   "><link rel="previous" href="ch02s06.html" title="Some Useful Set and Get Methods"><link rel="next" href="ch02s08.html" title="
     5  "><link rel="prev" href="ch02s06.html" title="Some Useful Set and Get Methods"><link rel="next" href="ch02s08.html" title="
    66  Presolve
    77  "></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">
     
    99  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s06.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    1010  Basic Model Classes
    11   </th><td width="20%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4758869"></a>
     11  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s08.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="simplexspecific"></a>
    1212  Simplex-specific Methods
    13   </h2></div></div><div></div></div><p>
     13  </h2></div></div></div><p>
    1414  Some of the most commonly-used methods when working with Simplex are listed in
    1515  the table below.
    16   </p><div class="table"><a name="id4758879"></a><p class="title"><b>Table 2.3. Common Simplex-specific methods</b></p><table summary="Common Simplex-specific methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     16  </p><div class="table"><a name="id4769539"></a><p class="title"><b>Table 2.3. Common Simplex-specific methods</b></p><table summary="Common Simplex-specific methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
    1717    Method(s)
    1818    </th><th>
    1919    Description
    20     </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="function">primal(int mode=0)</tt></td><td align="left" valign="top">
     20    </th></tr></thead><tbody><tr><td align="left" valign="top">
     21      <tt class="function">primal(int mode=0)</tt>
     22      </td><td align="left" valign="top">
    2123      This applies the primal algorithm. If <i class="parameter"><tt>mode</tt></i> is
    2224      set to the default of 0, then the method uses the status variables to
     
    2527      current values and one pass of variables is done to clean up the basis
    2628      with an equal or better objective value.
    27       </td></tr><tr><td align="left" valign="top"><tt class="function">dual(int mode=0)</tt></td><td align="left" valign="top">
     29      </td></tr><tr><td align="left" valign="top">
     30      <tt class="function">dual(int mode=0)</tt>
     31      </td><td align="left" valign="top">
    2832      This applies the dual algorithm. if <i class="parameter"><tt>mode</tt></i> is set
    2933      to the default of 0, then the method uses the status variables to
     
    3236      variables is done to clean up the duals with an equal or better objective
    3337      value.
    34       </td></tr><tr><td align="left" valign="top"><tt class="function">scaling(int mode=1)</tt></td><td align="left" valign="top">
     38      </td></tr><tr><td align="left" valign="top">
     39      <tt class="function">scaling(int mode=1)</tt>
     40      </td><td align="left" valign="top">
    3541      This method toggles scaling on (<i class="parameter"><tt>mode</tt></i> set to 1)
    3642      and off (<i class="parameter"><tt>mode</tt></i> set to 0).
    37       </td></tr><tr><td align="left" valign="top"><tt class="function">int crash(double gap,int mode)</tt></td><td align="left" valign="top">
     43      </td></tr><tr><td align="left" valign="top">
     44      <tt class="function">int crash(double gap,int mode)</tt>
     45      </td><td align="left" valign="top">
    3846      This method attemps to improve on an all slack basis.
    3947      For dual this will move variables to the dual feasible bound
     
    4452      preferred or positive if primal.  ±1 means an all slack basis seemed
    4553      best, while ±2 means some work was done.
    46       </td></tr><tr><td align="left" valign="top"><tt class="function">perturb(int mode)</tt></td><td align="left" valign="top">
     54      </td></tr><tr><td align="left" valign="top">
     55      <tt class="function">perturb(int mode)</tt>
     56      </td><td align="left" valign="top">
    4757      This method toggles perturbation on (<i class="parameter"><tt>mode</tt></i> set to 1)
    4858      and off (<i class="parameter"><tt>mode</tt></i> set to 0).  It should be considered
    4959      a work in progress, although on some problems it gives very good results.
    50       </td></tr><tr><td align="left" valign="top"><tt class="function">factorizationFrequency()</tt><br><tt class="function">setFactorizationFrequency(int value)</tt></td><td align="left" valign="top">
     60      </td></tr><tr><td align="left" valign="top">
     61      <tt class="function">factorizationFrequency()</tt><br>
     62      <tt class="function">setFactorizationFrequency(int value)</tt>
     63      </td><td align="left" valign="top">
    5164      These are "get" and "set" methods for the basis matrix
    5265      factorization frequency.  The default is to refactor every 200 iterations,
    5366      but it may make more sense to use something such as 100 + the number of
    5467      rows divided by 50.
    55       </td></tr><tr><td align="left" valign="top"><tt class="function">dualBound()</tt><br><tt class="function">setDualBound(double value)</tt></td><td align="left" valign="top">
     68      </td></tr><tr><td align="left" valign="top">
     69      <tt class="function">dualBound()</tt><br>
     70      <tt class="function">setDualBound(double value)</tt>
     71      </td><td align="left" valign="top">
    5672      These are "get" and "set" methods for the
    5773      "dual bound".  The CLP dual algorithm declares all problems
     
    6177      In essence, this gives a composite dual rather than a pure
    6278      Phase I- Phase II method.
    63       </td></tr><tr><td align="left" valign="top"><tt class="function">infeasibilityCost()</tt><br><tt class="function">setInfeasibilityCost(double value)</tt></td><td align="left" valign="top">
     79      </td></tr><tr><td align="left" valign="top">
     80      <tt class="function">infeasibilityCost()</tt><br>
     81      <tt class="function">setInfeasibilityCost(double value)</tt>
     82      </td><td align="left" valign="top">
    6483      These are the primal analogs to the "dual bound" methods.
    65       </td></tr><tr><td align="left" valign="top"><tt class="function">numberPrimalInfeasibilities()</tt><br><tt class="function">sumPrimalInfeasibilities()</tt></td><td align="left" valign="top">
     84      </td></tr><tr><td align="left" valign="top">
     85      <tt class="function">numberPrimalInfeasibilities()</tt><br>
     86      <tt class="function">sumPrimalInfeasibilities()</tt>
     87      </td><td align="left" valign="top">
    6688      After a solve, there may be infeasibilities.  These methods serve to
    6789      check for said infeasibilities.  One could check the solution explicitly
  • html/trunk/Clp/userguide/ch02s08.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>
    22  Presolve
    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="ch02.html" title="Chapter 2. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    44  Basic Model Classes
    5   "><link rel="previous" href="ch02s07.html" title="
     5  "><link rel="prev" href="ch02s07.html" title="
    66  Simplex-specific Methods
    77  "><link rel="next" href="ch02s09.html" title="Status Array"></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">
     
    1111  </th><td width="20%" align="right"> <a accesskey="n" href="ch02s09.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="presolve"></a>
    1212  Presolve
    13   </h2></div></div><div></div></div><p>
     13  </h2></div></div></div><p>
    1414  The header file for the use of CLP's presolve functionality is
    1515  <tt class="filename">COIN/Clp/include/Presolve.hpp</tt>.  The sample program below
  • html/trunk/Clp/userguide/ch02s09.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Status Array</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="ch02.html" title="Chapter 2. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Status Array</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch02.html" title="Chapter 2. 
    22  Basic Model Classes
    3   "><link rel="previous" href="ch02s08.html" title="
     3  "><link rel="prev" href="ch02s08.html" title="
    44  Presolve
    55  "><link rel="next" href="ch03.html" title="Chapter 3. 
     
    77  "></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">Status Array</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s08.html">Prev</a> </td><th width="60%" align="center">Chapter 2. 
    88  Basic Model Classes
    9   </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4759340"></a>Status Array</h2></div></div><div></div></div><p>
     9  </th><td width="20%" align="right"> <a accesskey="n" href="ch03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="statusarray"></a>Status Array</h2></div></div></div><p>
    1010  The astute reader may have noticed that the status array has been mentioned
    1111  once or twice.  The beginning user will not need to look at it   Nevertheless,
     
    1313  The possible state of a variable are listed in the following table (each may
    1414  have to be preceded by ClpSimplex::):
    15   </p><div class="table"><a name="id4759355"></a><p class="title"><b>Table 2.4. Possible states of a variable</b></p><table summary="Possible states of a variable" border="0"><colgroup><col><col></colgroup><thead><tr><th><span class="type">Status</span><sup>[<a name="id4759377" href="#ftn.id4759377">a</a>]</sup></th><th>
     15  </p><div class="table"><a name="id4770018"></a><p class="title"><b>Table 2.4. Possible states of a variable</b></p><table summary="Possible states of a variable" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     16          <span class="type">Status</span><sup>[<a name="id4770039" href="#ftn.id4770039">a</a>]</sup>
     17          </th><th>
    1618          Description
    17           </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="constant">basic</tt></td><td align="left" valign="top">
     19          </th></tr></thead><tbody><tr><td align="left" valign="top">
     20          <tt class="constant">basic</tt>
     21          </td><td align="left" valign="top">
    1822          In basis
    19           </td></tr><tr><td align="left" valign="top"><tt class="constant">isFree</tt></td><td align="left" valign="top">
     23          </td></tr><tr><td align="left" valign="top">
     24          <tt class="constant">isFree</tt>
     25          </td><td align="left" valign="top">
    2026          Not in basis, has infinite bounds
    21           </td></tr><tr><td align="left" valign="top"><tt class="constant">isFixed</tt></td><td align="left" valign="top">
     27          </td></tr><tr><td align="left" valign="top">
     28          <tt class="constant">isFixed</tt>
     29          </td><td align="left" valign="top">
    2230          Not in basis, bounds are equal
    23           </td></tr><tr><td align="left" valign="top"><tt class="constant">atUpperBound</tt></td><td align="left" valign="top">
     31          </td></tr><tr><td align="left" valign="top">
     32          <tt class="constant">atUpperBound</tt>
     33          </td><td align="left" valign="top">
    2434          At upper bound, not in basis
    25           </td></tr><tr><td align="left" valign="top"><tt class="constant">atLowerBound</tt></td><td align="left" valign="top">
     35          </td></tr><tr><td align="left" valign="top">
     36          <tt class="constant">atLowerBound</tt>
     37          </td><td align="left" valign="top">
    2638          At lower bound, not in basis
    27           </td></tr><tr><td align="left" valign="top"><tt class="constant">superBasic</tt></td><td align="left" valign="top">
     39          </td></tr><tr><td align="left" valign="top">
     40          <tt class="constant">superBasic</tt>
     41          </td><td align="left" valign="top">
    2842          Between bounds, but not basic or free
    29           </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4759377" href="#id4759377">a</a>] </sup><span class="type">Status</span>
     43          </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4770039" href="#id4770039">a</a>] </sup><span class="type">Status</span>
    3044            is an enumeration.</p></div></td></tr></tbody></table></div><p>
    3145  To get or set the status of a variable is a simple task:
  • html/trunk/Clp/userguide/ch03.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 3. 
    22  Not-Quite-So-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="ch02s09.html" title="Status Array"><link rel="next" href="ch03s02.html" title="Matrix Classes"></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 3. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch02s09.html" title="Status Array"><link rel="next" href="ch03s02.html" title="Matrix Classes"></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 3. 
    44  Not-Quite-So-Basic Model Classes
    55  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch02s09.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch03s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="notsobasic"></a>Chapter 3. 
    66  Not-Quite-So-Basic Model Classes
    7   </h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch03.html#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="ch03s02.html">Matrix Classes</a></span></dt><dt><span class="section"><a href="ch03s03.html">Message Handling</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pivotchoices"></a>Pivot Choices</h2></div></div><div></div></div><p>
     7  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch03.html#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="ch03s02.html">Matrix Classes</a></span></dt><dt><span class="section"><a href="ch03s03.html">Message Handling</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pivotchoices"></a>Pivot Choices</h2></div></div></div><p>
    88  In the dual algorithm, any infeasible basic variable may be chosen to leave the
    99  basis.  Similarly in the primal algorithm, any non-basic variable with a
  • html/trunk/Clp/userguide/ch03s02.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Matrix Classes</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="ch03.html" title="Chapter 3. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Matrix Classes</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch03.html" title="Chapter 3. 
    22  Not-Quite-So-Basic Model Classes
    3   "><link rel="previous" href="ch03.html" title="Chapter 3. 
     3  "><link rel="prev" href="ch03.html" title="Chapter 3. 
    44  Not-Quite-So-Basic Model Classes
    55  "><link rel="next" href="ch03s03.html" title="Message Handling"></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">Matrix Classes</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03.html">Prev</a> </td><th width="60%" align="center">Chapter 3. 
    66  Not-Quite-So-Basic Model Classes
    7   </th><td width="20%" align="right"> <a accesskey="n" href="ch03s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="matrixclasses"></a>Matrix Classes</h2></div></div><div></div></div><p>
     7  </th><td width="20%" align="right"> <a accesskey="n" href="ch03s03.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="matrixclasses"></a>Matrix Classes</h2></div></div></div><p>
    88  The next abstract class of interest is <tt class="function">ClpMatrixBase</tt>.
    99  CLP encapsulates its knowledge of how a matrix is stored in this class.  The
  • html/trunk/Clp/userguide/ch03s03.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Message Handling</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="ch03.html" title="Chapter 3. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Message Handling</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="ch03.html" title="Chapter 3. 
    22  Not-Quite-So-Basic Model Classes
    3   "><link rel="previous" href="ch03s02.html" title="Matrix Classes"><link rel="next" href="ch04.html" title="Chapter 4. 
     3  "><link rel="prev" href="ch03s02.html" title="Matrix Classes"><link rel="next" href="ch04.html" title="Chapter 4. 
    44More Samples
    55"></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">Message Handling</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s02.html">Prev</a> </td><th width="60%" align="center">Chapter 3. 
    66  Not-Quite-So-Basic Model Classes
    7   </th><td width="20%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="messagehandling"></a>Message Handling</h2></div></div><div></div></div><p>
     7  </th><td width="20%" align="right"> <a accesskey="n" href="ch04.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="messagehandling"></a>Message Handling</h2></div></div></div><p>
    88  Strictly speaking, message handling is a general COIN topic, but it won't hurt
    99  to repeat a few important things here.
     
    3232  <tt class="function">print</tt> method.  Below follows an example which would
    3333  print only a message for optimality (or infeasibility):
    34   </p><div class="example"><a name="id4762022"></a><p class="title"><b>Example 3.1. Sophisticated message handling</b></p><pre class="programlisting">
     34  </p><div class="example"><a name="id4772712"></a><p class="title"><b>Example 3.1. Sophisticated message handling</b></p><pre class="programlisting">
    3535  class DerivedHandler :
    3636   public CoinMessageHandler {
  • html/trunk/Clp/userguide/ch04.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 4. 
    22More Samples
    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="ch03s03.html" title="Message Handling"><link rel="next" href="ch05.html" title="Chapter 5. 
    4   The CLP Executable
    5   "></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 4. 
     3</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch03s03.html" title="Message Handling"><link rel="next" href="ch04s02.html" title="Common CLP Tasks in the Samples"></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 4. 
    64More Samples
    7 </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch05.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="moreexamples"></a>Chapter 4. 
     5</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch03s03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch04s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="moreexamples"></a>Chapter 4. 
    86More Samples
    9 </h2></div></div><div></div></div><p>
    10 CLP includes a number of <tt class="filename">.cpp</tt> sample files.  They can be
    11 found in the <tt class="filename">COIN/Clp/Samples</tt> directory.  Below is a table
    12 listing some of the sample files with a short description for each.
    13 </p><div class="table"><a name="id4761596"></a><p class="title"><b>Table 4.1. Contents of the Samples directory</b></p><table summary="Contents of the Samples directory" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
    14         Filename       
     7</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch04.html#id4772901">CLP's Samples Directory</a></span></dt><dd><dl><dt><span class="section"><a href="ch04.html#minimumcppdesc">minimum.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#defaultscppdesc">defaults.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#drivercppdesc">driver.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#networkcppdesc">network.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#testbarriercppdesc">testBarrier.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774185">dualCuts.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774208">decompose.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774225">driver2.cpp</a></span></dt></dl></dd><dt><span class="section"><a href="ch04s02.html">Common CLP Tasks in the Samples</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4772901"></a>CLP's Samples Directory</h2></div></div></div><p>
     8The CLP dsitribution includes a number of <tt class="filename">.cpp</tt> sample files.
     9Users are encouraged to use them as starting points for their own CLP projects.
     10The files can be found in the <tt class="filename">COIN/Clp/Samples/</tt> directory.
     11For the latest information on compiling and running these samples, please see
     12the file <tt class="filename">COIN/Clp/Samples/INSTALL</tt>.  Below is a list of
     13some of the most useful sample files with a short description for each file.
     14</p><div class="table"><a name="id4772294"></a><p class="title"><b>Table 4.1. Basic Samples</b></p><table summary="Basic Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     15        Source file       
    1516        </th><th align="left" valign="bottom">
    1617        Description
    17         </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="filename">minimum.cpp</tt></td><td align="left" valign="top">
    18         This is a CLP &lt;Hello, world&gt; program.  It reads an MPS file, and
    19         solves the problem.
    20         </td></tr><tr><td align="left" valign="top"><tt class="filename">defaults.cpp</tt></td><td align="left" valign="top">
    21         This is one of the simpler drivers.  It sets tolerances to defaults and
    22         is a useful place to find simple use of "sets" and
    23         "gets".  It also prints out a full MPS-like solutions.
    24         </td></tr><tr><td align="left" valign="top"><tt class="filename">driver.cpp</tt></td><td align="left" valign="top">
    25         This is designed to be the file that people modify to get a useful
    26         driver.  It does presolve.
    27         </td></tr><tr><td align="left" valign="top"><tt class="filename">piece.cpp</tt></td><td align="left" valign="top">
    28         This simple example takes a matrix read in by
    29         <tt class="classname">CoinMpsIo</tt> (can be used to read in MPS files
    30         without a solver), deletes every second column and solves the
    31         resulting problem.
    32         </td></tr><tr><td align="left" valign="top"><tt class="filename">network.cpp</tt></td><td align="left" valign="top">
     18        </th></tr></thead><tbody><tr><td align="left" valign="top">
     19        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/minimum.cpp" target="_top"><tt class="filename">minimum.cpp</tt></a>
     20        </td><td align="left" valign="top">
     21        This is a CLP "Hello, world" program.  It reads a problem
     22        from an MPS file, and solves the problem.
     23        [<a href="ch04.html#minimumcppdesc" title="minimum.cpp">More...</a>]
     24        </td></tr><tr><td align="left" valign="top">
     25        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     26        </td><td align="left" valign="top">
     27        This is one of the simpler driver programs available.  It sets
     28        tolerances to defaults and is a good place to find straightforward uses
     29        of "set" and    "get" methods.  It also prints out full
     30        MPS-like solutions.
     31        [<a href="ch04.html#defaultscppdesc" title="defaults.cpp">More...</a>]
     32        </td></tr><tr><td align="left" valign="top">
     33        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver.cpp" target="_top"><tt class="filename">driver.cpp</tt></a>
     34        </td><td align="left" valign="top">
     35        This is designed to be a file that a user could modify to get a useful
     36        driver program for his or her project.  In particular, it demonstrates
     37        the use of CLP's  presolve functionality.
     38        [<a href="ch04.html#drivercppdesc" title="driver.cpp">More...</a>]
     39        </td></tr><tr><td align="left" valign="top">
     40        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/network.cpp" target="_top"><tt class="filename">network.cpp</tt></a>
     41        </td><td align="left" valign="top">
    3342        This shows the use of non-standard matrices and how to load a problem
    3443        without the use of MPS files.
    35         </td></tr><tr><td align="left" valign="top"><tt class="filename">decompose.cpp</tt></td><td align="left" valign="top">
     44        [<a href="ch04.html#networkcppdesc" title="network.cpp">More...</a>]
     45        </td></tr><tr><td align="left" valign="top">
     46        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testBarrier.cpp" target="_top"><tt class="filename">testBarrier.cpp</tt></a>
     47        </td><td align="left" valign="top">
     48        This is a basic driver file for the barrier method of CLP, similar to
     49        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/minimum.cpp" target="_top"><tt class="filename">minimum.cpp</tt></a>.  The barrier method is not currently addressed in this
     50        guide.
     51        [<a href="ch04.html#testbarriercppdesc" title="testBarrier.cpp">More...</a>]
     52        </td></tr></tbody></table></div><div class="table"><a name="id4773491"></a><p class="title"><b>Table 4.2. Advanced Samples</b></p><table summary="Advanced Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     53        Source file       
     54        </th><th align="left" valign="bottom">
     55        Description
     56        </th></tr></thead><tbody><tr><td align="left" valign="top">
     57        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver2.cpp" target="_top"><tt class="filename">driver2.cpp</tt></a>
     58        </td><td align="left" valign="top">
     59        This sample, in addition to some tasks common to other samples, does
     60        some advanced message handling and presolve.
     61        </td></tr><tr><td align="left" valign="top">
     62        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/dualCuts.cpp" target="_top"><tt class="filename">dualCuts.cpp</tt></a>
     63        </td><td align="left" valign="top">
     64        This sample implements a method of treating a problem as a collection
     65        of cuts.
     66        </td></tr><tr><td align="left" valign="top">
     67        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/decompose.cpp" target="_top"><tt class="filename">decompose.cpp</tt></a>
     68        </td><td align="left" valign="top">
    3669        This does full Dantzig-Wolfe decomposition.  It illustrates
    3770        the use of many models, adding columns, et cetera.
    38         </td></tr><tr><td align="left" valign="top"><tt class="filename">sprint.cpp</tt></td><td align="left" valign="top">
     71        </td></tr><tr><td align="left" valign="top">
     72        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/sprint.cpp" target="_top"><tt class="filename">sprint.cpp</tt></a>
     73        </td><td align="left" valign="top">
    3974        This solves a long, thin problem by solving smaller subsets.  It is a
    4075        simplified version of work done by one of the authors on aircrew
    4176        scheduling problems.  It shows the use of two models and their
    4277        synchronization.  A more general version can be found in
    43         <tt class="filename">COIN/Clp/ClpSolve.cpp</tt></td></tr><tr><td align="left" valign="top"><tt class="filename">sprint2.cpp</tt></td><td align="left" valign="top">
     78        <tt class="filename">COIN/Clp/ClpSolve.cpp</tt>
     79        </td></tr><tr><td align="left" valign="top">
     80        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/sprint2.cpp" target="_top"><tt class="filename">sprint2.cpp</tt></a>
     81        </td><td align="left" valign="top">
    4482        This is similar to <tt class="filename">sprint.cpp</tt> but is designed for
    4583        solving large problems with little choice.  The idea is that if
     
    4785        problem size so that a series of solves can get close to the optimal
    4886        solution much faster than would a naïve solve of the full problem.
    49         </td></tr></tbody></table></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s03.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="ch05.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Message Handling </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. 
    50   The CLP Executable
    51   </td></tr></table></div></body></html>
     87        </td></tr></tbody></table></div><p>
     88The remaining Samples listed here are considered unsupported in that they are of
     89a more esoteric nature and are sometimes contributed as a result of an
     90individual's request.  The are to be found in
     91<tt class="filename">COIN/Clp/Samples/Contributed</tt>.
     92</p><div class="table"><a name="id4773721"></a><p class="title"><b>Table 4.3. Unsupported Samples</b></p><table summary="Unsupported Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     93        Source file       
     94        </th><th align="left" valign="bottom">
     95        Description
     96        </th></tr></thead><tbody><tr><td align="left" valign="top">
     97        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testBasis.cpp" target="_top"><tt class="filename">testBasis.cpp</tt></a>
     98        </td><td align="left" valign="top">
     99        This sample takes a problem, changes any inequality constraints to
     100        equality constraints, solves the problem, and creates the optimal basis.
     101        </td></tr><tr><td align="left" valign="top">
     102        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testGub.cpp" target="_top"><tt class="filename">testGub.cpp</tt></a>
     103        </td><td align="left" valign="top">
     104        This sample illustrates the use of the GUB ("Generalized Upper
     105        Bound") technique.
     106        </td></tr><tr><td align="left" valign="top">
     107        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/ekk.cpp" target="_top"><tt class="filename">ekk.cpp</tt></a>
     108        </td><td align="left" valign="top">
     109        This sample can be used to compare CLP and OSL.  It uses an additional
     110        file in the Samples directory, <tt class="filename">ekk_interface.cpp</tt>.
     111        These sample files are not likely to be interesting to new CLP users
     112        who do not have experience with OSL.
     113        </td></tr><tr><td align="left" valign="top">
     114        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/hello.cpp" target="_top"><tt class="filename">hello.cpp</tt></a>
     115        </td><td align="left" valign="top">
     116        This sample creates a text-based picture of a matrix on screen
     117        (limited to an 80x80 matrix).  It's not terribly useful but it does
     118        illustrate one way to step through the elements of a matrix.
     119        </td></tr><tr><td align="left" valign="top">
     120        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/piece.cpp" target="_top"><tt class="filename">piece.cpp</tt></a>
     121        </td><td align="left" valign="top">
     122        This sample takes a matrix read in by <tt class="classname">CoinMpsIo</tt>
     123        (can be used to read in MPS files without a solver), deletes every
     124        second column and solves the resulting problem.
     125        </td></tr><tr><td align="left" valign="top">
     126        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/useVolume.cpp" target="_top"><tt class="filename">useVolume.cpp</tt></a>
     127        </td><td align="left" valign="top">
     128        The Volume Algorithm is another solver available as part of the COIN-OR
     129        distribution.  This sample shows how to use the Volume Algorithm with
     130        CLP.
     131        </td></tr></tbody></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="minimumcppdesc"></a>minimum.cpp</h3></div></div></div><p>
     132This sample is examined in more detail in <a href="ch02s02.html" title="
     133  First Example
     134  ">the section called &#8220;
     135  First Example
     136  &#8221;</a>.
     137</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="defaultscppdesc"></a>defaults.cpp</h3></div></div></div><p>
     138This sample begins by reading an MPS file.  The default MPS file is
     139<tt class="filename">COIN/Mps/Sample/p0033.mps</tt>; this can be over-riden by a
     140command-line specification of a (path and) file name).  The sample then sets
     141the pivot algorithm to be exact devex.  It "gets" the default
     142infeasibility cost and "sets" it to that value (and prints it to
     143standard out).  This sort of getting and setting of various parameters
     144constitutes a common theme in this sample, with the purpose of illustrating
     145usage of some of the more common get and set methods available in CLP.
     146</p><p>
     147At this point the model is solved by the primal method.  A sequence of sets,
     148gets and prints is then followed by a number of calls to methods which give
     149specific information about the status of the problem (for example, the code
     150checks that the current solution has been proven to be optimal by
     151<tt class="code">assert(model.isProvenOptimal())</tt>).
     152</p><p>
     153Next, a copy of the original model is made.  More sets and gets are
     154performed to demonstrate the use of additional options (including
     155the setting of the default message handling as well as changing of the
     156"log level" (amount of output)).  The model is solved again a
     157number of times between changes of the optimization direction (i.e. changing
     158from min to max or vice versa).  The remaining lines of this sample serve to
     159display solution and problem information in much the same way as is done in
     160driver.cpp.
     161</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="drivercppdesc"></a>driver.cpp</h3></div></div></div><p>
     162This sample begins by reading an MPS file.  The default MPS file is
     163<tt class="filename">COIN/Mps/Sample/p0033.mps</tt>; this can be over-riden by a
     164command-line specification of a (path and) file name).  A second command-line
     165argument can specify that either the "primal" or "dual"
     166method (or even the "barrier", see below) should be used by CLP.
     167</p><p>
     168Once the problem has been
     169read, there are two options for how to solve it, one of which must be chosen at
     170compile-time (<tt class="code">STYLE1</tt> being defined or not determines this
     171choice).  The second manner is more flexible and involves more specific
     172directions being given to CLP, including the ability to specify that the barrier
     173method should be used.
     174</p><p>
     175At this point in the sample, the problem is solved by CLP, and some basic ouput
     176is generated.  If more output is desired, at compile-time, an
     177<tt class="code">exit(0)</tt> statement must either be removed or commented.  There are
     178two levels of additional output, the first of which is suppressed  by a
     179<tt class="code">#if 0</tt> directive which may be modified at compile-time if desired.
     180This first level of output only involves non-zero columns, whereas the second
     181provides additional information.
     182</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="networkcppdesc"></a>network.cpp</h3></div></div></div><p>
     183This handy sample reads a network problem generated by
     184<a href="http://www.netlib.org/lp/generators/netgen" target="_top">netgen</a>, converts
     185it to an LP using CLP's network matrix type, and solves.  This entirely avoids
     186the use of an MPS file, as the LP is built in memory from the network data file
     187created by netgen.  Also, the factorization frequency is changed, and the
     188problem is solved more than once (demonstrating the change of optimization sense
     189as well as switching from dual to primal methods).
     190</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="testbarriercppdesc"></a>testBarrier.cpp</h3></div></div></div><p>
     191This straightfoward sample begins by reading a problem from an MPS file.  It
     192then chooses a Cholesky factorization and solves the problem using the
     193predictor corrector barrier method.  It then copies the problem and performs a
     194crossover to a simplex solution in the new copy.
     195</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4774185"></a>dualCuts.cpp</h3></div></div></div><p>
     196This sample begins with only the equality constraints of a problem.  The
     197inequalities are considered to be part of a pool of available cuts in much the
     198same way as is done in integer programming.  However, in this case, the cuts are
     199not "generated", they are simply the inequalities of the problem.
     200</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4774208"></a>decompose.cpp</h3></div></div></div><p>
     201More on this sample coming soon!
     202</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4774225"></a>driver2.cpp</h3></div></div></div><p>
     203More on this sample coming soon!
     204</p></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch03s03.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="ch04s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Message Handling </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Common CLP Tasks in the Samples</td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/ch05.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 5. 
    22  The CLP Executable
    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="ch04.html" title="Chapter 4. 
    4 More Samples
    5 "><link rel="next" href="ch06.html" title="Chapter 6. 
    6   Messages
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch04s02.html" title="Common CLP Tasks in the Samples"><link rel="next" href="ch05s02.html" title="
     4  Online Help and Basic Usage
    75  "></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 5. 
    86  The CLP Executable
    9   </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch06.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clpexe"></a>Chapter 5. 
     7  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s02.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch05s02.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clpexe"></a>Chapter 5. 
    108  The CLP Executable
    11   </h2></div></div><div></div></div><p>
     9  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="ch05.html#id4776091">Quick Start</a></span></dt><dt><span class="section"><a href="ch05s02.html">
     10  Online Help and Basic Usage
     11  </a></span></dt><dt><span class="section"><a href="ch05s03.html">A Sample Session</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4776091"></a>Quick Start</h2></div></div></div><p>
    1212  The result of <b class="userinput"><tt>make unitTest</tt></b> (executed in
    1313  <tt class="filename">COIN/Clp</tt>) is an executable
    1414  <tt class="filename">clp</tt> as well as the CLP and COIN libraries.
    15   This can be used to do various unit tests, but can also be used as a standalone
    16   solver.  As it only has a very simple solution file format the user may wish to
    17   modify that part of <tt class="filename">COIN/Clp/Test/ClpMain.cpp</tt> and even
    18   offer the modifications as contribution to CLP.
     15  The executable can be used to perform various unit tests, but can also be used
     16  as a standalone solver.  As the executable has a very simple solution file format,
     17  the user may wish to modify <tt class="filename">COIN/Clp/Test/ClpMain.cpp</tt>,
     18  which contains the source of the executable (modifications could even be
     19  offered as a contribution to CLP).
    1920  </p><p>
    2021  The <tt class="filename">clp</tt> executable operates in command line mode or
    21   prompted mode.  Entering <b class="userinput"><tt>clp</tt></b> will bring being "prompt
    22   mode", while <b class="userinput"><tt>clp &lt;filename&gt;</tt></b> will import an MPS file
    23   from filename and solve it using the dual simplex method and exit.  Again
    24   <b class="userinput"><tt>clp &lt;filename&gt; -primalsimplex</tt></b> will import a file
    25   and solve using the primal simplex method.  A dash
    26   ("<b class="userinput"><tt>-</tt></b>") by itself changes to prompt mode.  In
    27   command line mode "<b class="userinput"><tt>-</tt></b>" is needed (apart from
    28   first parameter which is taken as file name).  So the following are equivalent
    29   and maximize a problem using dual and write a solution to file
     22  prompted mode.  Entering <b class="userinput"><tt>clp</tt></b> will invoke the prompted
     23  mode, while <b class="userinput"><tt>clp &lt;filename&gt;</tt></b> will import a problem
     24  in MPS format from <tt class="filename">filename</tt>, solve it using the dual
     25  simplex method and exit. The command
     26  <b class="userinput"><tt>clp &lt;filename&gt; -primalsimplex</tt></b> instructs the
     27  executable tp import a file and solve using the primal simplex method.  An
     28  additional solitary dash ("<b class="userinput"><tt>-</tt></b>") starts the
     29  prompt mode once the execution of the initial command has been completed.  The
     30  "<b class="userinput"><tt>-</tt></b>" is necessary as part of the command;
     31  invoking prompt mode as a separate command will result in the loss of problem
     32  information related to the initial command.  So, the following sequences of commands
     33  are equivalent in the sense that both maximize a problem using the dual
     34  simplex method and write a solution to file:
    3035  <tt class="filename">solfile</tt>:
    3136  </p><div class="blockquote"><blockquote class="blockquote"><div class="literallayout"><p><br>
    32     <tt class="prompt">$</tt> <b class="userinput"><tt>clp <i class="replaceable"><tt>filename</tt></i> -maximize -dualsimplex -solution solfile</tt></b><br>
     37    <tt class="prompt">$</tt> <b class="userinput"><tt><span><b class="command">clp</b></span> <i class="replaceable"><tt>filename</tt></i> -maximize -dualsimplex -solution solfile</tt></b><br>
    3338    </p></div></blockquote></div><p>
    3439  </p><div class="blockquote"><blockquote class="blockquote"><div class="literallayout"><p><br>
    35     <tt class="prompt">$</tt> <b class="userinput"><tt>clp <i class="replaceable"><tt>filename</tt></i> -maximize -</tt></b><br>
    36     <tt class="prompt">Clp:</tt><b class="userinput"><tt>duals</tt></b><br>
    37     <tt class="prompt">Clp:</tt><b class="userinput"><tt>solution solfile</tt></b><br>
    38     <tt class="prompt">Clp:</tt><b class="userinput"><tt>quit</tt></b><br>
     40    <tt class="prompt">$</tt> <b class="userinput"><tt><span><b class="command">clp</b></span> <i class="replaceable"><tt>filename</tt></i> -maximize -</tt></b><br>
     41    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">duals</b></span></tt></b><br>
     42    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">solution</b></span> solfile</tt></b><br>
     43    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">quit</b></span></tt></b><br>
    3944    </p></div></blockquote></div><p>
    4045  </p><p>
    41   The executable has some command-completion functionality as well as some inline
    42   help.  Below is a table with some examples which summarize these capabilities.
    43   </p><div class="table"><a name="id4763197"></a><p class="title"><b>Table 5.1. Command examples for the clp executable</b></p><table summary="Command examples for the clp executable" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left">
    44         Command    
    45         </th><th align="left">
    46         Result
    47         </th></tr></thead><tbody><tr><td><span><b class="command">?</b></span></td><td>
    48         Gives a list of all  commands
    49         </td></tr><tr><td><span><b class="command">p?</b></span></td><td>
    50         Gives a list of all commands which begin with &lt;p&gt;.
    51         </td></tr><tr><td><span><b class="command">p??</b></span></td><td>
    52         Gives a list of all commands which begin with &lt;p&gt;., with a short
    53         explanation for each.
    54         </td></tr><tr><td><span><b class="command">primals??</b></span></td><td>
    55         If is this is enough to uniquely determine a command (in this example,
    56         <span><b class="command">primalS</b></span>, for primal simplex), a long explanation
    57         is given.
    58         </td></tr></tbody></table></div><p>
    59   In addition, matching a name without a ? will either execute the command or give
    60   the value of the corresponding parameter.  So,
    61   <span><b class="command">primalweight</b></span> will give the current value of  the
    62   primalWeight parameter while <span><b class="command">primalw 1.0e7</b></span> will change
    63   it to 1.0e7.
    64   </p><p>
    65   The executable is at a very early stage and comments will graciously
    66   welcomed.
    67   </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04.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="ch06.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. 
    68 More Samples
    69  </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. 
    70   Messages
     46  The executable is at a very early stage of development.  Comments and
     47  suggestions would be appreciated.
     48  </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s02.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="ch05s02.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Common CLP Tasks in the Samples </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 
     49  Online Help and Basic Usage
    7150  </td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/ch06.html

    r956 r966  
    11<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 6. 
    22  Messages
    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="ch05.html" title="Chapter 5. 
    4   The CLP Executable
    5   "><link rel="next" href="apa.html" title="Appendix A. FAQ"></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 6. 
     3  </title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="up" href="index.html" title="CLP User Guide"><link rel="prev" href="ch05s03.html" title="A Sample Session"><link rel="next" href="apa.html" title="Appendix A. FAQ"></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 6. 
    64  Messages
    7   </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch05.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="messages"></a>Chapter 6. 
     5  </th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch05s03.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="apa.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="messages"></a>Chapter 6. 
    86  Messages
    9   </h2></div></div><div></div></div><p>
     7  </h2></div></div></div><p>
    108  Some of the more common messages and codes passed by CLP are listed in the
    119  tables below.  This is list is not meant to exhaustive.  The notation is as
     
    1816    <tt class="computeroutput">%g</tt> or <tt class="computeroutput">%f</tt>
    1917    is a floating point value
    20     </li></ul></div><div class="table"><a name="id4760738"></a><p class="title"><b>Table 6.1. 
     18    </li></ul></div><div class="table"><a name="id4775903"></a><p class="title"><b>Table 6.1. 
    2119  COIN Messages passed at or above logging level 1
    2220  </b></p><table summary="
     
    2624      </th><th align="center">
    2725      Area
    28       </th><th> </th><th align="left">
     26      </th><th align="left">
     27      </th><th align="left">
    2928      Text and notes
    3029      </th></tr></thead><tbody><tr><td align="left">
     
    3231      </td><td align="center">
    3332      MPSREAD
    34       </td><td> </td><td align="left"><tt class="computeroutput">At line %d %s</tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     33      </td><td align="left">
     34      </td><td align="left">
     35      <tt class="computeroutput">At line %d %s</tt>
     36      </td></tr><tr><td colspan="3" align="left">
     37      </td><td align="left">
     38      <p>
    3539      This just prints out NAME line, ROW line, etc
    36       </p></td></tr><tr><td align="left">
     40      </p>
     41      </td></tr><tr><td align="left">
    3742      2
    3843      </td><td align="center">
    3944      MPSREAD
    40       </td><td> </td><td align="left"><tt class="computeroutput">Problem %s has %d rows, %d columns and %d elements
    41       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     45      </td><td align="left">
     46      </td><td align="left">
     47      <tt class="computeroutput">Problem %s has %d rows, %d columns and %d elements
     48      </tt>
     49      </td></tr><tr><td colspan="3" align="left">
     50      </td><td align="left">
     51      <p>
    4252      This gives statistics after reading an MPS file
    43       </p></td></tr><tr><td align="left">
     53      </p>
     54      </td></tr><tr><td align="left">
    4455      8
    4556      </td><td align="center">
    4657      MPSREAD
    47       </td><td> </td><td align="left"><tt class="computeroutput">%s read with %d errors
    48       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     58      </td><td align="left">
     59      </td><td align="left">
     60      <tt class="computeroutput">%s read with %d errors
     61      </tt>
     62      </td></tr><tr><td colspan="3" align="left">
     63      </td><td align="left">
     64      <p>
    4965      This gives error statistics for file
    50       </p></td></tr><tr><td align="left">
     66      </p>
     67      </td></tr><tr><td align="left">
    5168      505
    5269      </td><td align="center">
    5370      PRESOLVE
    54       </td><td> </td><td align="left"><tt class="computeroutput">
     71      </td><td align="left">
     72      </td><td align="left">
     73      <tt class="computeroutput">
    5574      Presolved poblem not optimal, resolve after postsolve
    56       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     75      </tt>
     76      </td></tr><tr><td colspan="3" align="left">
     77      </td><td align="left">
     78      <p>
    5779      This could be because it was not feasible or because of maximum
    5880      iterations.  If this message occurs then consider using primal clean up
    59       </p></td></tr><tr><td align="left">
     81      </p>
     82      </td></tr><tr><td align="left">
    6083      506
    6184      </td><td align="center">
    6285      PRESOLVE
    63       </td><td> </td><td align="left"><tt class="computeroutput">
     86      </td><td align="left">
     87      </td><td align="left">
     88      <tt class="computeroutput">
    6489      Presolve %d (%d) rows, %d (%d) columns and %d (%d) elements
    65       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     90      </tt>
     91      </td></tr><tr><td colspan="3" align="left">
     92      </td><td align="left">
     93      <p>
    6694      The first number is the number after presolve and the number
    6795      in parentheses is amount of reduction
    68       </p></td></tr><tr><td align="left">
     96      </p>
     97      </td></tr><tr><td align="left">
    6998      510
    7099      </td><td align="center">
    71100      PRESOLVE
    72       </td><td> </td><td align="left"><tt class="computeroutput">
     101      </td><td align="left">
     102      </td><td align="left">
     103      <tt class="computeroutput">
    73104      Presolve is modifying %d integer bounds and re-presolving
    74       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     105      </tt>
     106      </td></tr><tr><td colspan="3" align="left">
     107      </td><td align="left">
     108      <p>
    75109      If presolve determines at the end that an integer variable have its bounds
    76110      changed then it will repeat the entrire presolve
    77       </p></td></tr><tr><td align="left">
     111      </p>
     112      </td></tr><tr><td align="left">
    78113      511
    79114      </td><td align="center">
    80115      PRESOLVE
    81       </td><td> </td><td align="left"><tt class="computeroutput">
     116      </td><td align="left">
     117      </td><td align="left">
     118      <tt class="computeroutput">
    82119      After Postsolve, objective %g, infeasibilities - dual %g (%d),
    83120      primal %g (%d)
    84       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     121      </tt>
     122      </td></tr><tr><td colspan="3" align="left">
     123      </td><td align="left">
     124      <p>
    85125      This gives the state after postsolve - this gives the objective value
    86126      and the sum of dual and primal infeasibilities with the number of
    87127      infeasibilities in parentheses.  Hopefully these should be zero
    88       </p></td></tr><tr><td align="left">
     128      </p>
     129      </td></tr><tr><td align="left">
    89130      512
    90131      </td><td align="center">
    91132      PRESOLVE
    92       </td><td> </td><td align="left"><tt class="computeroutput">
     133      </td><td align="left">
     134      </td><td align="left">
     135      <tt class="computeroutput">
    93136      Presolved model was optimal, full model needs cleaning up
    94       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     137      </tt>
     138      </td></tr><tr><td colspan="3" align="left">
     139      </td><td align="left">
     140      <p>
    95141      If the numbers in previous message (511) were large then maybe we need to
    96142      know, if small then that's life
    97       </p></td></tr></tbody></table></div><div class="table"><a name="id4764385"></a><p class="title"><b>Table 6.2. 
     143      </p>
     144      </td></tr></tbody></table></div><div class="table"><a name="id4778385"></a><p class="title"><b>Table 6.2. 
    98145  CLP Messages passed at or above logging level 1
    99146  </b></p><table summary="
     
    103150      </th><th align="center">
    104151      Area
    105       </th><th> </th><th align="left">
     152      </th><th align="left">
     153      </th><th align="left">
    106154      Text and notes
    107155      </th></tr></thead><tbody><tr><td align="left">
     
    109157      </td><td align="center">
    110158      SIMPLEX
    111       </td><td> </td><td align="left"><tt class="computeroutput">
     159      </td><td align="left">
     160      </td><td align="left">
     161      <tt class="computeroutput">
    112162      Primal infeasible - objective value %g
    113       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     163      </tt>
     164      </td></tr><tr><td colspan="3" align="left">
     165      </td><td align="left">
     166      <p>
    114167      You may need to look at previous messages or use methods.  Such as
    115168      sumPrimalInfeasibilities() to find cause
    116       </p></td></tr><tr><td align="left">
     169      </p>
     170      </td></tr><tr><td align="left">
    117171      2
    118172      </td><td align="center">
    119173      SIMPLEX
    120       </td><td> </td><td align="left"><tt class="computeroutput">
     174      </td><td align="left">
     175      </td><td align="left">
     176      <tt class="computeroutput">
    121177      Dual infeasible - objective value %g
    122       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     178      </tt>
     179      </td></tr><tr><td colspan="3" align="left">
     180      </td><td align="left">
     181      <p>
    123182      You may need to look at previous messages or use methods.  Such as
    124183      sumDualInfeasibilities() to find cause
    125       </p></td></tr><tr><td align="left">
     184      </p>
     185      </td></tr><tr><td align="left">
    126186      3
    127187      </td><td align="center">
    128188      SIMPLEX
    129       </td><td> </td><td align="left"><tt class="computeroutput">
     189      </td><td align="left">
     190      </td><td align="left">
     191      <tt class="computeroutput">
    130192      Stopped - objective value %g
    131       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     193      </tt>
     194      </td></tr><tr><td colspan="3" align="left">
     195      </td><td align="left">
     196      <p>
    132197      The algorithm stopped as requested by the user.
    133       </p></td></tr><tr><td align="left">
     198      </p>
     199      </td></tr><tr><td align="left">
    134200      4
    135201      </td><td align="center">
    136202      SIMPLEX
    137       </td><td> </td><td align="left"><tt class="computeroutput">
     203      </td><td align="left">
     204      </td><td align="left">
     205      <tt class="computeroutput">
    138206      Stopped due to errors - objective value %g
    139       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     207      </tt>
     208      </td></tr><tr><td colspan="3" align="left">
     209      </td><td align="left">
     210      <p>
    140211      Switch on log level 2 to see information on size of elements etc.  If they
    141212      look reasonable then maybe we need to know.
    142       </p></td></tr><tr><td align="left">
     213      </p>
     214      </td></tr><tr><td align="left">
    143215      5
    144216      </td><td align="center">
    145217      SIMPLEX
    146       </td><td> </td><td align="left"><tt class="computeroutput">
     218      </td><td align="left">
     219      </td><td align="left">
     220      <tt class="computeroutput">
    147221      %d Obj %g Primal inf %g (%d) Dual inf %g (%d)
    148       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     222      </tt>
     223      </td></tr><tr><td colspan="3" align="left">
     224      </td><td align="left">
     225      <p>
    149226      At each re-factorization this gives the number of iterations and the value
    150227      of the objective function.  If there are primal infeasibilities then the
    151228      sum and number are given and similarly for dual infeasibilities.
    152229      (This is a simplified form of message.)
    153       </p></td></tr><tr><td align="left">
     230      </p>
     231      </td></tr><tr><td align="left">
    154232      14
    155233      </td><td align="center">
    156234      SIMPLEX
    157       </td><td> </td><td align="left"><tt class="computeroutput">
     235      </td><td align="left">
     236      </td><td align="left">
     237      <tt class="computeroutput">
    158238      Perturbing problem by %g % of %g
    159       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     239      </tt>
     240      </td></tr><tr><td colspan="3" align="left">
     241      </td><td align="left">
     242      <p>
    160243      There is more to this message but if the user sees this then s/he has
    161244      chosen to perturb the problem or the algorithm has decided to do so.
    162245      If the numbers look too large the user may wish to think again.
    163       </p></td></tr><tr><td align="left">
     246      </p>
     247      </td></tr><tr><td align="left">
    164248      19
    165249      </td><td align="center">
    166250      SIMPLEX
    167       </td><td> </td><td align="left"><tt class="computeroutput">
     251      </td><td align="left">
     252      </td><td align="left">
     253      <tt class="computeroutput">
    168254      %d variables/rows fixed as scaled bounds too close
    169       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     255      </tt>
     256      </td></tr><tr><td colspan="3" align="left">
     257      </td><td align="left">
     258      <p>
    170259      If this occurs look carefully at your input data
    171       </p></td></tr><tr><td align="left">
     260      </p>
     261      </td></tr><tr><td align="left">
    172262      24
    173263      </td><td align="center">
    174264      SIMPLEX
    175       </td><td> </td><td align="left"><tt class="computeroutput">
     265      </td><td align="left">
     266      </td><td align="left">
     267      <tt class="computeroutput">
    176268      Matrix will be packed to eliminate small elements
    177       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     269      </tt>
     270      </td></tr><tr><td colspan="3" align="left">
     271      </td><td align="left">
     272      <p>
    178273      If this occurs the user should look carefully at data.
    179       </p></td></tr><tr><td align="left">
     274      </p>
     275      </td></tr><tr><td align="left">
    180276      26
    181277      </td><td align="center">
    182278      SIMPLEX
    183       </td><td> </td><td align="left"><tt class="computeroutput">
     279      </td><td align="left">
     280      </td><td align="left">
     281      <tt class="computeroutput">
    184282      Matrix will be packed to eliminate %d duplicate elements
    185       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     283      </tt>
     284      </td></tr><tr><td colspan="3" align="left">
     285      </td><td align="left">
     286      <p>
    186287      If this occurs the user should look carefully at data.
    187       </p></td></tr><tr><td align="left">
     288      </p>
     289      </td></tr><tr><td align="left">
    188290      28
    189291      </td><td align="center">
    190292      SIMPLEX
    191       </td><td> </td><td align="left"><tt class="computeroutput">
     293      </td><td align="left">
     294      </td><td align="left">
     295      <tt class="computeroutput">
    192296      Crash put %d variables in basis, %d dual infeasibilities
    193       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     297      </tt>
     298      </td></tr><tr><td colspan="3" align="left">
     299      </td><td align="left">
     300      <p>
    194301     
    195       </p></td></tr><tr><td align="left">
     302      </p>
     303      </td></tr><tr><td align="left">
    196304      29
    197305      </td><td align="center">
    198306      SIMPLEX
    199       </td><td> </td><td align="left"><tt class="computeroutput">
     307      </td><td align="left">
     308      </td><td align="left">
     309      <tt class="computeroutput">
    200310      End of values pass after %d iterations
    201       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     311      </tt>
     312      </td></tr><tr><td colspan="3" align="left">
     313      </td><td align="left">
     314      <p>
    202315      ??? If primal(1) or dual(1) the a sweep through model is made and this
    203316      signals end of pass.
    204       </p></td></tr></tbody></table></div><div class="table"><a name="id4765069"></a><p class="title"><b>Table 6.3. 
     317      </p>
     318      </td></tr></tbody></table></div><div class="table"><a name="id4779069"></a><p class="title"><b>Table 6.3. 
    205319  COIN Messages passed at or above logging level 0
    206320  </b></p><table summary="
     
    210324      </th><th align="center">
    211325      Area
    212       </th><th> </th><th align="left">
     326      </th><th align="left">
     327      </th><th align="left">
    213328      Text and notes
    214329      </th></tr></thead><tbody><tr><td align="left">
     
    216331      </td><td align="center">
    217332      MPSREAD
    218       </td><td> </td><td align="left"><tt class="computeroutput">
     333      </td><td align="left">
     334      </td><td align="left">
     335      <tt class="computeroutput">
    219336      Illegal value for %s of %g
    220       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     337      </tt>
     338      </td></tr><tr><td colspan="3" align="left">
     339      </td><td align="left">
     340      <p>
    221341      String will be "infinity" if setInfinity passed bad value,
    222342      or "default integer bound" if setDefaultBound passed bad value.
    223       </p></td></tr><tr><td align="left">
     343      </p>
     344      </td></tr><tr><td align="left">
    224345      3002
    225346      </td><td align="center">
    226347      MPSREAD
    227       </td><td> </td><td align="left"><tt class="computeroutput">
     348      </td><td align="left">
     349      </td><td align="left">
     350      <tt class="computeroutput">
    228351      Bad image at line %d &lt; %s &gt;
    229       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     352      </tt>
     353      </td></tr><tr><td colspan="3" align="left">
     354      </td><td align="left">
     355      <p>
    230356      This gives line number and the offending line
    231       </p></td></tr><tr><td align="left">
     357      </p>
     358      </td></tr><tr><td align="left">
    232359      3003
    233360      </td><td align="center">
    234361      MPSREAD
    235       </td><td> </td><td align="left"><tt class="computeroutput">
     362      </td><td align="left">
     363      </td><td align="left">
     364      <tt class="computeroutput">
    236365      Duplicate objective at line %d &lt; %s &gt;
    237       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     366      </tt>
     367      </td></tr><tr><td colspan="3" align="left">
     368      </td><td align="left">
     369      <p>
    238370      An objective row appears twice in one column
    239       </p></td></tr><tr><td align="left">
     371      </p>
     372      </td></tr><tr><td align="left">
    240373      3004
    241374      </td><td align="center">
    242375      MPSREAD
    243       </td><td> </td><td align="left"><tt class="computeroutput">
     376      </td><td align="left">
     377      </td><td align="left">
     378      <tt class="computeroutput">
    244379      Duplicate row %s at line %d %s
    245       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     380      </tt>
     381      </td></tr><tr><td colspan="3" align="left">
     382      </td><td align="left">
     383      <p>
    246384      The named row appears twice in one column.
    247       </p></td></tr><tr><td align="left">
     385      </p>
     386      </td></tr><tr><td align="left">
    248387      3005
    249388      </td><td align="center">
    250389      MPSREAD
    251       </td><td> </td><td align="left"><tt class="computeroutput">
     390      </td><td align="left">
     391      </td><td align="left">
     392      <tt class="computeroutput">
    252393      No match for row %s at line %d &lt; %s &gt;
    253       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     394      </tt>
     395      </td></tr><tr><td colspan="3" align="left">
     396      </td><td align="left">
     397      <p>
    254398      The named row did not appear in ROWS section.
    255       </p></td></tr><tr><td align="left">
     399      </p>
     400      </td></tr><tr><td align="left">
    256401      3006
    257402      </td><td align="center">
    258403      MPSREAD
    259       </td><td> </td><td align="left"><tt class="computeroutput">
     404      </td><td align="left">
     405      </td><td align="left">
     406      <tt class="computeroutput">
    260407      No match for column at line %d &lt; %s &gt;
    261       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     408      </tt>
     409      </td></tr><tr><td colspan="3" align="left">
     410      </td><td align="left">
     411      <p>
    262412      The named column (in BOUNDS section) did not appear in COLUMNS section.
    263       </p></td></tr><tr><td align="left">
     413      </p>
     414      </td></tr><tr><td align="left">
    264415      6001
    265416      </td><td align="center">
    266417      MPSREAD
    267       </td><td> </td><td align="left"><tt class="computeroutput">
     418      </td><td align="left">
     419      </td><td align="left">
     420      <tt class="computeroutput">
    268421      Unable to open mps input file %s
    269       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     422      </tt>
     423      </td></tr><tr><td colspan="3" align="left">
     424      </td><td align="left">
     425      <p>
    270426     
    271       </p></td></tr><tr><td align="left">
     427      </p>
     428      </td></tr><tr><td align="left">
    272429      6002
    273430      </td><td align="center">
    274431      MPSREAD
    275       </td><td> </td><td align="left"><tt class="computeroutput">
     432      </td><td align="left">
     433      </td><td align="left">
     434      <tt class="computeroutput">
    276435      Unknown image %s at line %d of file %s
    277       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     436      </tt>
     437      </td></tr><tr><td colspan="3" align="left">
     438      </td><td align="left">
     439      <p>
    278440      The Mps reader could not make sense of the image file specified.
    279       </p></td></tr><tr><td align="left">
     441      </p>
     442      </td></tr><tr><td align="left">
    280443      6003
    281444      </td><td align="center">
    282445      MPSREAD
    283       </td><td> </td><td align="left"><tt class="computeroutput">
     446      </td><td align="left">
     447      </td><td align="left">
     448      <tt class="computeroutput">
    284449      Consider the possibility of a compressed file which zlib is unable to read.
    285       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     450      </tt>
     451      </td></tr><tr><td colspan="3" align="left">
     452      </td><td align="left">
     453      <p>
    286454      Some .gz files can not be read by zlib.  Using gunzip and then gzip
    287455      normally cures problem.
    288       </p></td></tr><tr><td align="left">
     456      </p>
     457      </td></tr><tr><td align="left">
    289458      6004
    290459      </td><td align="center">
    291460      MPSREAD
    292       </td><td> </td><td align="left"><tt class="computeroutput">
     461      </td><td align="left">
     462      </td><td align="left">
     463      <tt class="computeroutput">
    293464      EOF on file %s
    294       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     465      </tt>
     466      </td></tr><tr><td colspan="3" align="left">
     467      </td><td align="left">
     468      <p>
    295469      The Mps reader did not find expected section marker.     
    296       </p></td></tr><tr><td align="left">
     470      </p>
     471      </td></tr><tr><td align="left">
    297472      6005
    298473      </td><td align="center">
    299474      MPSREAD
    300       </td><td> </td><td align="left"><tt class="computeroutput">
     475      </td><td align="left">
     476      </td><td align="left">
     477      <tt class="computeroutput">
    301478      Returning as too many errors
    302       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     479      </tt>
     480      </td></tr><tr><td colspan="3" align="left">
     481      </td><td align="left">
     482      <p>
    303483      The reader has put out 100 messages and is giving up.
    304       </p></td></tr><tr><td align="left">
     484      </p>
     485      </td></tr><tr><td align="left">
    305486      507
    306487      </td><td align="center">
    307488      PRESOLVE
    308       </td><td> </td><td align="left"><tt class="computeroutput">
     489      </td><td align="left">
     490      </td><td align="left">
     491      <tt class="computeroutput">
    309492      Presolve determined that the problem is infeasible with tolerance of %g
    310       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     493      </tt>
     494      </td></tr><tr><td colspan="3" align="left">
     495      </td><td align="left">
     496      <p>
    311497      If you want you can try with a larger tolerance
    312       </p></td></tr><tr><td align="left">
     498      </p>
     499      </td></tr><tr><td align="left">
    313500      508
    314501      </td><td align="center">
    315502      PRESOLVE
    316       </td><td> </td><td align="left"><tt class="computeroutput">
     503      </td><td align="left">
     504      </td><td align="left">
     505      <tt class="computeroutput">
    317506      Presolve thinks problem is unbounded
    318       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     507      </tt>
     508      </td></tr><tr><td colspan="3" align="left">
     509      </td><td align="left">
     510      <p>
    319511      Perhaps the user should maximize if initially minimizing or vice versa.
    320       </p></td></tr><tr><td align="left">
     512      </p>
     513      </td></tr><tr><td align="left">
    321514      509
    322515      </td><td align="center">
    323516      PRESOLVE
    324       </td><td> </td><td align="left"><tt class="computeroutput">
     517      </td><td align="left">
     518      </td><td align="left">
     519      <tt class="computeroutput">
    325520      Presolve thinks problem is infeasible AND unbounded???
    326       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     521      </tt>
     522      </td></tr><tr><td colspan="3" align="left">
     523      </td><td align="left">
     524      <p>
    327525      If you get this message we want to know
    328       </p></td></tr></tbody></table></div><div class="table"><a name="id4765848"></a><p class="title"><b>Table 6.4. 
     526      </p>
     527      </td></tr></tbody></table></div><div class="table"><a name="id4779848"></a><p class="title"><b>Table 6.4. 
    329528  CLP Messages passed at or above logging level 0
    330529  </b></p><table summary="
     
    334533      </th><th align="center">
    335534      Area
    336       </th><th> </th><th align="left">
     535      </th><th align="left">
     536      </th><th align="left">
    337537      Text and notes
    338538      </th></tr></thead><tbody><tr><td align="left">
     
    340540      </td><td align="center">
    341541      SIMPLEX
    342       </td><td> </td><td align="left"><tt class="computeroutput">
     542      </td><td align="left">
     543      </td><td align="left">
     544      <tt class="computeroutput">
    343545      Not solving empty problem - %d rows, %d columns and %d elements
    344       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     546      </tt>
     547      </td></tr><tr><td colspan="3" align="left">
     548      </td><td align="left">
     549      <p>
    345550      Test problem size before solving.
    346       </p></td></tr><tr><td align="left">
     551      </p>
     552      </td></tr><tr><td align="left">
    347553      6002
    348554      </td><td align="center">
    349555      SIMPLEX
    350       </td><td> </td><td align="left"><tt class="computeroutput">
     556      </td><td align="left">
     557      </td><td align="left">
     558      <tt class="computeroutput">
    351559      %d bad bound pairs or bad objectives were found
    352       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     560      </tt>
     561      </td></tr><tr><td colspan="3" align="left">
     562      </td><td align="left">
     563      <p>
    353564      Either the value in the objective was too large or a lower bound was
    354565      greater than an upper bound.
    355       </p></td></tr><tr><td align="left">
     566      </p>
     567      </td></tr><tr><td align="left">
    356568      6003
    357569      </td><td align="center">
    358570      SIMPLEX
    359       </td><td> </td><td align="left"><tt class="computeroutput">
     571      </td><td align="left">
     572      </td><td align="left">
     573      <tt class="computeroutput">
    360574      Matrix has %d large values, first at column %d, row %d is %g
    361       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     575      </tt>
     576      </td></tr><tr><td colspan="3" align="left">
     577      </td><td align="left">
     578      <p>
    362579      Some of the values in matrix are ridiculous.
    363       </p></td></tr><tr><td align="left">
     580      </p>
     581      </td></tr><tr><td align="left">
    364582      6004
    365583      </td><td align="center">
    366584      SIMPLEX
    367       </td><td> </td><td align="left"><tt class="computeroutput">
     585      </td><td align="left">
     586      </td><td align="left">
     587      <tt class="computeroutput">
    368588      Can't get out of loop ...
    369       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     589      </tt>
     590      </td></tr><tr><td colspan="3" align="left">
     591      </td><td align="left">
     592      <p>
    370593     
    371       </p></td></tr></tbody></table></div><p>
     594      </p>
     595      </td></tr></tbody></table></div><p>
    372596  There are also messages available at log level 2 (the most likely useful relate
    373597  to scaling), and will be addressed in a future version of this User Guide.
    374   </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05.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="apa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. 
    375   The CLP Executable
    376    </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. FAQ</td></tr></table></div></body></html>
     598  </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch05s03.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="apa.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">A Sample Session </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. FAQ</td></tr></table></div></body></html>
  • html/trunk/Clp/userguide/clpuserguide.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>CLP User Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="clpuserguide"></a>CLP User Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>CLP User Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="clpuserguide"></a>CLP User Guide</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">
    22    John
    33    </span> <span class="surname">
     
    1717    </span></h3><div class="affiliation"><span class="orgname">
    1818      IBM Research
    19       <br></span></div><tt class="email">&lt;<a href="mailto:robinlh%20at%20us%20dot%20ibm%20dot%20com">robinlh at us dot ibm dot com</a>&gt;</tt></div></div></div><div><p class="copyright">Copyright © 2004 IBM Coportation</p></div><div><div class="legalnotice">
     19      <br></span></div><tt class="email">&lt;<a href="mailto:robinlh%20at%20us%20dot%20ibm%20dot%20com">robinlh at us dot ibm dot com</a>&gt;</tt></div></div></div><div><p class="copyright">Copyright © 2004 IBM Coportation</p></div><div><div class="legalnotice"><a name="id4689599"></a>
    2020CLP and this documentation are provided under the terms of the
    2121<a href="http://opensource.org/licenses/cpl.php" target="_top">Common Public License
    22 </a>.  Any use, reproduction or distribution of the programs constitutes
     22 ("CPL")</a>.  Any use, reproduction or distribution of the programs constitutes
    2323the recipient's acceptance of the license.  The
    2424<a href="http://opensource.org/licenses/cpl.php" target="_top">CPL</a> is approved by
     
    2929CPL FAQ</a> available which is based on IBM's understanding of the
    3030<a href="http://opensource.org/licenses/cpl.php" target="_top">CPL</a>.
    31 </div></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1.
     31</div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="#intro">1.
    3232    Introduction
    33   </a></span></dt><dt><span class="chapter"><a href="#basicmodelclasses">2.
     33  </a></span></dt><dd><dl><dt><span class="section"><a href="#id4688972">
     34  Welcome to CLP!
     35  </a></span></dt><dt><span class="section"><a href="#id4689382">
     36  Prerequisites
     37  </a></span></dt></dl></dd><dt><span class="chapter"><a href="#basicmodelclasses">2.
    3438  Basic Model Classes
    35   </a></span></dt><dd><dl><dt><span class="section"><a href="#id4675266">
     39  </a></span></dt><dd><dl><dt><span class="section"><a href="#hierarchy">
    3640  Hierarchy
    37   </a></span></dt><dt><span class="section"><a href="#id4674791">
     41  </a></span></dt><dt><span class="section"><a href="#firstexample">
    3842  First Example
    39   </a></span></dt><dt><span class="section"><a href="#id4674842">
     43  </a></span></dt><dt><span class="section"><a href="#gettingsolution">
    4044  Getting at the Solution
    41   </a></span></dt><dt><span class="section"><a href="#id4738863">
     45  </a></span></dt><dt><span class="section"><a href="#buildandmodify">
    4246  Building and Modifying a Model
    43   </a></span></dt><dt><span class="section"><a href="#id4738952">Tolerances</a></span></dt><dt><span class="section"><a href="#id4739000">Some Useful Set and Get Methods</a></span></dt><dt><span class="section"><a href="#id4739385">
     47  </a></span></dt><dt><span class="section"><a href="#tolerances">Tolerances</a></span></dt><dt><span class="section"><a href="#setsandgets">Some Useful Set and Get Methods</a></span></dt><dt><span class="section"><a href="#simplexspecific">
    4448  Simplex-specific Methods
    4549  </a></span></dt><dt><span class="section"><a href="#presolve">
    4650  Presolve
    47   </a></span></dt><dt><span class="section"><a href="#id4739858">Status Array</a></span></dt></dl></dd><dt><span class="chapter"><a href="#notsobasic">3.
     51  </a></span></dt><dt><span class="section"><a href="#statusarray">Status Array</a></span></dt></dl></dd><dt><span class="chapter"><a href="#notsobasic">3.
    4852  Not-Quite-So-Basic Model Classes
    4953  </a></span></dt><dd><dl><dt><span class="section"><a href="#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="#matrixclasses">Matrix Classes</a></span></dt><dt><span class="section"><a href="#messagehandling">Message Handling</a></span></dt></dl></dd><dt><span class="chapter"><a href="#moreexamples">4.
    5054More Samples
    51 </a></span></dt><dt><span class="chapter"><a href="#clpexe">5.
     55</a></span></dt><dd><dl><dt><span class="section"><a href="#id4757090">CLP's Samples Directory</a></span></dt><dd><dl><dt><span class="section"><a href="#minimumcppdesc">minimum.cpp</a></span></dt><dt><span class="section"><a href="#defaultscppdesc">defaults.cpp</a></span></dt><dt><span class="section"><a href="#drivercppdesc">driver.cpp</a></span></dt><dt><span class="section"><a href="#networkcppdesc">network.cpp</a></span></dt><dt><span class="section"><a href="#testbarriercppdesc">testBarrier.cpp</a></span></dt><dt><span class="section"><a href="#id4758374">dualCuts.cpp</a></span></dt><dt><span class="section"><a href="#id4758398">decompose.cpp</a></span></dt><dt><span class="section"><a href="#id4758414">driver2.cpp</a></span></dt></dl></dd><dt><span class="section"><a href="#id4758428">Common CLP Tasks in the Samples</a></span></dt></dl></dd><dt><span class="chapter"><a href="#clpexe">5.
    5256  The CLP Executable
    53   </a></span></dt><dt><span class="chapter"><a href="#messages">6.
     57  </a></span></dt><dd><dl><dt><span class="section"><a href="#id4760280">Quick Start</a></span></dt><dt><span class="section"><a href="#id4760804">
     58  Online Help and Basic Usage
     59  </a></span></dt><dt><span class="section"><a href="#id4760964">A Sample Session</a></span></dt></dl></dd><dt><span class="chapter"><a href="#messages">6.
    5460  Messages
    55   </a></span></dt><dt><span class="appendix"><a href="#id4749045">A. FAQ</a></span></dt><dt><span class="appendix"><a href="#id4749978">B. Doxygen</a></span></dt><dt><span class="appendix"><a href="#id4749947">C. Revision History</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#id4738404">
     61  </a></span></dt><dt><span class="appendix"><a href="#id4766717">A. FAQ</a></span></dt><dt><span class="appendix"><a href="#doxygen">B. Doxygen</a></span></dt><dt><span class="appendix"><a href="#id4768638">C. Revision History</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="#id4752818">
    5662  Methods for getting solution information
    57   </a></dt><dt>2.2. <a href="#id4739006">Some Useful Set and Get Methods</a></dt><dt>2.3. <a href="#id4739396">Common Simplex-specific methods</a></dt><dt>2.4. <a href="#id4739872">Possible states of a variable</a></dt><dt>4.1. <a href="#id4742112">Contents of the Samples directory</a></dt><dt>5.1. <a href="#id4743714">Command examples for the clp executable</a></dt><dt>6.1. <a href="#id4741255">
     63  </a></dt><dt>2.2. <a href="#id4753335">Some Useful Set and Get Methods</a></dt><dt>2.3. <a href="#id4753729">Common Simplex-specific methods</a></dt><dt>2.4. <a href="#id4754207">Possible states of a variable</a></dt><dt>4.1. <a href="#id4756483">Basic Samples</a></dt><dt>4.2. <a href="#id4757680">Advanced Samples</a></dt><dt>4.3. <a href="#id4757910">Unsupported Samples</a></dt><dt>4.4. <a href="#id4758440">Contents of the Samples directory</a></dt><dt>5.1. <a href="#id4760816">Command examples for the clp executable</a></dt><dt>6.1. <a href="#id4760092">
    5864  COIN Messages passed at or above logging level 1
    59   </a></dt><dt>6.2. <a href="#id4744902">
     65  </a></dt><dt>6.2. <a href="#id4762574">
    6066  CLP Messages passed at or above logging level 1
    61   </a></dt><dt>6.3. <a href="#id4745586">
     67  </a></dt><dt>6.3. <a href="#id4763258">
    6268  COIN Messages passed at or above logging level 0
    63   </a></dt><dt>6.4. <a href="#id4746365">
     69  </a></dt><dt>6.4. <a href="#id4764037">
    6470  CLP Messages passed at or above logging level 0
    65   </a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="#id4674803">minimum.cpp</a></dt><dt>2.2. <a href="#id4738689">
     71  </a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="#id4752674">minimum.cpp</a></dt><dt>2.2. <a href="#id4753111">
    6672  Possible extension of minimum.cpp
    67   </a></dt><dt>2.3. <a href="#presolveexample">Presolve code fragment</a></dt><dt>3.1. <a href="#id4742539">Sophisticated message handling</a></dt></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
     73  </a></dt><dt>2.3. <a href="#presolveexample">Presolve code fragment</a></dt><dt>3.1. <a href="#id4756901">Sophisticated message handling</a></dt></dl></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="intro"></a>Chapter 1. 
    6874    Introduction
    69   </h2></div></div><div></div></div><p>
     75  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id4688972">
     76  Welcome to CLP!
     77  </a></span></dt><dt><span class="section"><a href="#id4689382">
     78  Prerequisites
     79  </a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4688972"></a>
     80  Welcome to CLP!
     81  </h2></div></div></div><p>
    7082  The COIN  Linear Program code or CLP is an open-source simplex solver written
    7183  in C++.  It is primarily meant to be used as a callable library, but a
    72   basic stand-alone executable version is also available.  This
    73   is the first edition of the User Guide, and is to be considered a work in
    74   progress.
     84  basic, stand-alone <a href="#clpexe" title="Chapter 5. 
     85  The CLP Executable
     86  ">executable</a> version is also
     87  available.
    7588  </p><p>
    76   This document is designed to be used in conjunction with the Samples
    77   subdirectory of the Clp directory (i.e. <tt class="filename">COIN/Clp/Samples</tt>).
    78   In the rare event that this document conflicts with the observed behavior of
    79   the source code, the comments in the header files (found in
    80   <tt class="filename">COIN/Clp/include</tt>) are the ultimate reference.
    81   </p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="basicmodelclasses"></a>Chapter 2. 
     89  There are a number of resources available to help new CLP users get started.
     90  This document is designed to be used in conjunction with the files in the
     91  Samples subdirectory of the main CLP directory (<tt class="filename">COIN/Clp/Samples</tt>).
     92  The Samples illustrate how to use CLP and may also serve as useful starting points
     93  for user projects.  In the rare event that either this document or the available
     94  <a href="#doxygen" title="Appendix B. Doxygen">Doxygen content</a> conflicts with the observed
     95  behavior of the source code, the comments in the header files, found in
     96  <tt class="filename">COIN/Clp/include</tt>, are the ultimate reference.
     97  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4689382"></a>
     98  Prerequisites
     99  </h2></div></div></div><p>
     100  CLP is written in C++, so it is expected that users of CLP will be writing
     101  C++ programs which use CLP as a library.  Thus a working knowledge of
     102  <a href="http://www.cplusplus.com/doc/tutorial/" target="_top">C++</a>, including basic
     103  object-oriented programming terminology is assumed in this document.  In
     104  addition, the user should be familiar with the fundamental concepts of
     105  <a href="http://carbon.cudenver.edu/~hgreenbe/courseware/LPshort/intro.html" target="_top">
     106  Linear Programming</a>.
     107  </p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="basicmodelclasses"></a>Chapter 2. 
    82108  Basic Model Classes
    83   </h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id4675266">
     109  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#hierarchy">
    84110  Hierarchy
    85   </a></span></dt><dt><span class="section"><a href="#id4674791">
     111  </a></span></dt><dt><span class="section"><a href="#firstexample">
    86112  First Example
    87   </a></span></dt><dt><span class="section"><a href="#id4674842">
     113  </a></span></dt><dt><span class="section"><a href="#gettingsolution">
    88114  Getting at the Solution
    89   </a></span></dt><dt><span class="section"><a href="#id4738863">
     115  </a></span></dt><dt><span class="section"><a href="#buildandmodify">
    90116  Building and Modifying a Model
    91   </a></span></dt><dt><span class="section"><a href="#id4738952">Tolerances</a></span></dt><dt><span class="section"><a href="#id4739000">Some Useful Set and Get Methods</a></span></dt><dt><span class="section"><a href="#id4739385">
     117  </a></span></dt><dt><span class="section"><a href="#tolerances">Tolerances</a></span></dt><dt><span class="section"><a href="#setsandgets">Some Useful Set and Get Methods</a></span></dt><dt><span class="section"><a href="#simplexspecific">
    92118  Simplex-specific Methods
    93119  </a></span></dt><dt><span class="section"><a href="#presolve">
    94120  Presolve
    95   </a></span></dt><dt><span class="section"><a href="#id4739858">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="id4675266"></a>
     121  </a></span></dt><dt><span class="section"><a href="#statusarray">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="hierarchy"></a>
    96122  Hierarchy
    97   </h2></div></div><div></div></div><p>
    98   The basic model class hierarchy is simple.  The top three levels of the
     123  </h2></div></div></div><p>
     124  The basic CLP model class hierarchy is simple.  The top three levels of the
    99125  hierarchy are depicted in the figure below. The first two levels  (i.e.
    100126  <tt class="classname">ClpModel</tt>, <tt class="classname">ClpSimplex</tt>,
    101   <tt class="classname">ClpInterior</tt>) contain all the problem data which defines
    102   a model (aka, a problem instance). The third level is less model and more
    103   algorithmic.  There is a fourth level (for models with more general
    104   objectives than linear ones), but it is beyond the current scope of this
    105   document. 
     127  <tt class="classname">ClpInterior</tt>) contain all the problem data which define
     128  a model (that is, a problem instance). The third level contains most of the
     129  algorithmic aspects of CLP.  There is a fourth level (for models with more general
     130  objectives than linear ones), but a description of it is beyond the current scope
     131  of this document.
    106132  </p><div class="mediaobject"><img src="figures/clpbasicmodelhier.gif"></div><p>
    107   The class <tt class="classname">ClpModel</tt> contains all problem data.
    108   There may be a few pieces of data which could be elsewhere but which are
    109   permanent and so they are here.  The main example of this is a status array:
    110   it makes the most sense for Simplex but has use for crossing over from any
    111   solution.
    112   </p><p>
    113   <tt class="classname">ClpSimplex</tt> inherits from
    114   <tt class="classname">ClpModel</tt>, as does <tt class="classname">ClpInterior</tt>.
    115   Extra data is specific to the Simplex Algorithm and can be transient, e.g.
    116   scaling arrays.  Normally a user will just be dealing with the
    117   <tt class="classname">ClpSimplex</tt> class and not with the
    118   <tt class="classname">ClpModel</tt> class.
    119   </p><p>
    120   From the point of view of most Simplex users, the
    121   <tt class="classname">ClpModel</tt> and <tt class="classname">ClpSimplex</tt>
    122   classes are all one needs to know about.  There are algorithm-specific classes
    123   which inherit from <tt class="classname">ClpSimplex</tt> (e.g.
    124   <tt class="classname">ClpSimplexDual</tt> and
    125   <tt class="classname">ClpSimplexPrimal</tt>), but they have no member data and
    126   very rarely need be visible to user.  So, for example, after instantiating an
    127   object <b class="userinput"><tt>model</tt></b> of type <tt class="classname">ClpSimplex</tt>,
    128   the user would use <b class="userinput"><tt>model.dual()</tt></b> to invoke dual algorithm.
    129   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4674791"></a>
     133  Most Simplex users need only concern themselves with the classes
     134  <tt class="classname">ClpModel</tt> and <tt class="classname">ClpSimplex</tt>.  There
     135  are algorithm-specific classes which inherit from
     136  <tt class="classname">ClpSimplex</tt> (e.g. <tt class="classname">ClpSimplexDual</tt>
     137  and <tt class="classname">ClpSimplexPrimal</tt>), but they have no member data and
     138  rarely need be visible to the user.  These  classes are cast at algorithm
     139  time.  So, for example, after instantiating an object
     140  <b class="userinput"><tt>model</tt></b> of type <tt class="classname">ClpSimplex</tt>,
     141  a user only need call <b class="userinput"><tt>model.dual()</tt></b> to invoke the dual
     142  simplex method.
     143  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="firstexample"></a>
    130144  First Example
    131   </h2></div></div><div></div></div><p>
    132   Below is our first CLP example code.  It is short enough to present in full.
    133   Most of the remaining examples in this Guide will take the form of small code
    134   fragments.
    135   </p><div class="example"><a name="id4674803"></a><p class="title"><b>Example 2.1. minimum.cpp</b></p><pre class="programlisting">
     145  </h2></div></div></div><p>
     146  Below is our first CLP sample program.  It is short enough to present in full
     147  (this code can be found in the CLP Samples directory, see
     148  <a href="#moreexamples" title="Chapter 4. 
     149More Samples
     150">Chapter 4, <i>
     151More Samples
     152</i></a>).  Most of the remaining examples in this Guide
     153  will take the form of small code fragments.
     154  </p><div class="example"><a name="id4752674"></a><p class="title"><b>Example 2.1. minimum.cpp</b></p><pre class="programlisting">
    136155   
    137156// Copyright (C) 2002, International Business Machines
     
    154173     
    155174  </pre></div><p>
    156   This sample program creates a default <tt class="classname">ClpSimplex</tt> model,
     175  This sample program creates a <tt class="classname">ClpSimplex</tt> model,
    157176  reads an MPS file, and if there are no errors, solves it using the primal
    158   algorithm.  Simple, but not terribly useful: there is no way to inspect the
    159   results of the solve.  There are two main kinds of results: a status saying
    160   what happened to the model, and arrays filled with the solution values.
    161   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4674842"></a>
     177  algorithm.  The program is easy to follow, but it is not terribly useful:
     178  it does not attempt to inspect the results of the solve.  There are two main
     179  kinds of results: a "status" describing what happened to the model
     180  during the solve, and arrays filled with solution values.  Both will be
     181  addressed in this chapter.
     182  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="gettingsolution"></a>
    162183  Getting at the Solution
    163   </h2></div></div><div></div></div><p>
     184  </h2></div></div></div><p>
    164185  It is often the case with CLP that there is more than one way to do something.
    165186  This is a consequence of CLP's mixed heritage as a child of
     
    175196  <tt class="function">isIterationLimitReached()</tt> or the feared
    176197  <tt class="function">isAbandoned()</tt>.  Should one prefer the OSL way of doing
    177   things, model.status() returns as it would in OSL-land, so 0 means optimal,
     198  things, model.status() returns as it would in OSL, so 0 means optimal,
    178199  1 means  primal infeasible etc.
    179200  </p><p>
    180   Similarly, to pick up the solution values, we can inhabit the virtuous OSI-land
    181   or the not-quite-so-virtuous CLP-land.  By this it is meant that there are
    182   const and non-const forms of arrays.  It is easier to deal with the non-const
    183   versions, so most of the later elaborate algorithms use them.
    184   </p><div class="table"><a name="id4738404"></a><p class="title"><b>Table 2.1. 
     201  Similarly, to pick up the solution values, one could inhabit the virtuous
     202  world of OSI, or the not-quite-so-virtuous world of OSL and "pure"
     203  CLP.  By this it is meant that const and non-const forms of arrays are used,
     204  respectively.  It is easier to deal with the non-const versions, so most of
     205  the elaborate algorithms in CLP and its
     206  <a href="#moreexamples" title="Chapter 4. 
     207More Samples
     208">Samples</a> use them.
     209  </p><div class="table"><a name="id4752818"></a><p class="title"><b>Table 2.1. 
    185210  Methods for getting solution information
    186211  </b></p><table summary="
     
    191216      OSI-style (virtuous)
    192217      </th><th>
    193       CLP style (less virtuous)
     218      CLP-style (less virtuous)
    194219      </th></tr></thead><tbody><tr><td align="left" valign="top">
    195220      Primal column solution
    196       </td><td align="left" valign="top"><tt class="function">const double * getColSolution()</tt></td><td align="left" valign="top"><tt class="function">double * primalColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     221      </td><td align="left" valign="top">
     222      <tt class="function">const double * getColSolution()</tt>
     223      </td><td align="left" valign="top">
     224      <tt class="function">double * primalColumnSolution()</tt>
     225      </td></tr><tr><td align="left" valign="top">
    197226      Dual row solution
    198       </td><td align="left" valign="top"><tt class="function">const double * getRowPrice()</tt></td><td align="left" valign="top"><tt class="function">double * dualColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     227      </td><td align="left" valign="top">
     228      <tt class="function">const double * getRowPrice()</tt>
     229      </td><td align="left" valign="top">
     230      <tt class="function">double * dualColumnSolution()</tt>
     231      </td></tr><tr><td align="left" valign="top">
    199232      Primal row solution
    200       </td><td align="left" valign="top"><tt class="function">const double * getRowActivity()</tt></td><td align="left" valign="top"><tt class="function">double * primalRowSolution()</tt></td></tr><tr><td align="left" valign="top">
     233      </td><td align="left" valign="top">
     234      <tt class="function">const double * getRowActivity()</tt>
     235      </td><td align="left" valign="top">
     236      <tt class="function">double * primalRowSolution()</tt>
     237      </td></tr><tr><td align="left" valign="top">
    201238      Dual row solution
    202       </td><td align="left" valign="top"><tt class="function">const double * getReducedCost()</tt></td><td align="left" valign="top"><tt class="function">double * dualColumnSolution()</tt></td></tr><tr><td align="left" valign="top">
     239      </td><td align="left" valign="top">
     240      <tt class="function">const double * getReducedCost()</tt>
     241      </td><td align="left" valign="top">
     242      <tt class="function">double * dualColumnSolution()</tt>
     243      </td></tr><tr><td align="left" valign="top">
    203244      Number of rows in model
    204       </td><td align="left" valign="top"><tt class="function">int getNumRows()</tt></td><td align="left" valign="top"><tt class="function">int numberRows()</tt></td></tr><tr><td align="left" valign="top">
     245      </td><td align="left" valign="top">
     246      <tt class="function">int getNumRows()</tt>
     247      </td><td align="left" valign="top">
     248      <tt class="function">int numberRows()</tt>
     249      </td></tr><tr><td align="left" valign="top">
    205250      Number of columns in model
    206       </td><td align="left" valign="top"><tt class="function">int getNumCols()</tt></td><td align="left" valign="top"><tt class="function">int numberColumns()</tt></td></tr></tbody></table></div><p>
     251      </td><td align="left" valign="top">
     252      <tt class="function">int getNumCols()</tt>
     253      </td><td align="left" valign="top">
     254      <tt class="function">int numberColumns()</tt>
     255      </td></tr></tbody></table></div><p>
    207256  The reader  may have noted a preference for "number" over
    208257  "num" and "column" over "col".  This may be a
    209258  reaction to when one of the authors was young and 5 or 6 letters was the
    210   maximum in FORTRAN for any name or to early days with Osl when seven characters
    211   were allowed but the first three had to be "EKK"! 
     259  maximum in FORTRAN for any name or to early days with OSL when seven characters
     260  were allowed but the first three had to be "ekk"! 
    212261  </p><p>
    213   Using the above-listed functions, our initial example might be continued as follows:
    214   </p><div class="example"><a name="id4738689"></a><p class="title"><b>Example 2.2. 
     262  Using the above-listed functions, our
     263  <a href="#firstexample" title="
     264  First Example
     265  ">initial example</a> might be continued as follows:
     266  </p><div class="example"><a name="id4753111"></a><p class="title"><b>Example 2.2. 
    215267  Possible extension of minimum.cpp
    216268  </b></p><pre class="programlisting">
     
    240292  dual solutions.  How to additionally print row and column names is
    241293  illustrated in the <tt class="filename">defaults.cpp</tt> file in the
    242   "Samples" directory (the "Samples" are properly addressed
     294  "Samples" directory (the Samples are properly addressed
    243295  in <a href="#moreexamples" title="Chapter 4. 
    244296More Samples
     
    249301  tolerance value to the default value).
    250302  </p><p>
    251   The remainder of this chapter will show some more of the basic tasks a user
    252   might want to perform.  Apart from presolve we will only be looking at actions
     303  The remainder of this chapter will show  more of the basic CLP tasks a user
     304  might wish to perform.  Apart from presolve we will only be looking at actions
    253305  which can be performed when including the single header file
    254306  <tt class="filename">COIN/Clp/include/ClpSimplex.hpp</tt>.
    255   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4738863"></a>
     307  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="buildandmodify"></a>
    256308  Building and Modifying a Model
    257   </h2></div></div><div></div></div><p>
     309  </h2></div></div></div><p>
    258310  Rather than reading a model from an MPS file we can load a model from arrays
    259311  in memory.  There are various <tt class="function">loadProblem</tt> methods which
     
    263315  is 0 or 1 to say integer and we can drop existing information by
    264316  <tt class="function">deleteIntegerInformation()</tt>.  There are various ways of
    265   changing the size of a model.  The simplest is
     317  changing the size of a model.  The simplest is by the use of the method
    266318  <tt class="function">resize(newNumberRows,newNumberColumns)</tt> - this will either
    267   truncate model or add default rows or columns - a default row has lower bound
    268   of -infinity and upper bound of +infinity, while a default column has zero cost,
    269   zero lower bound and an upper bound of +infinity.
     319  truncate the model or add "default" rows or columns - a default row
     320  has lower bound of -infinity and upper bound of +infinity, while a default
     321  column has zero cost, zero lower bound and an upper bound of +infinity.
    270322  </p><p>
    271323  Normally we would use <tt class="function">deleteRows</tt>,
    272324  <tt class="function">addRows</tt>, <tt class="function">deleteColumns</tt> and
    273   <tt class="function">addColumns</tt>, where the add ones will also add in the
    274   elements.  A potentially very useful way of modifying a model is strictly a
     325  <tt class="function">addColumns</tt>, where the <tt class="function">add</tt> methods
     326  will also add in the elements.  A potentially very useful way of modifying a model is strictly a
    275327  constructor.  Given a large model and a list of rows and a list of columns it
    276328  constructs the model as a subset of the large model.  It is possible to change
     
    280332  model in reverse order.  This can be useful to form a model with piecewise
    281333  linear costs by duplicating columns and then modifying bounds and costs.
    282   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4738952"></a>Tolerances</h2></div></div><div></div></div><p>
     334  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tolerances"></a>Tolerances</h2></div></div></div><p>
    283335  There are set and get methods for tolerances, for example,
    284336  <tt class="function">double primalTolerance()</tt> and
     
    294346  that the above was stated as for minimization; signs are reversed for
    295347  maximization.)
    296   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4739000"></a>Some Useful Set and Get Methods</h2></div></div><div></div></div><div class="table"><a name="id4739006"></a><p class="title"><b>Table 2.2. Some Useful Set and Get Methods</b></p><table summary="Some Useful Set and Get Methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     348  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setsandgets"></a>Some Useful Set and Get Methods</h2></div></div></div><div class="table"><a name="id4753335"></a><p class="title"><b>Table 2.2. Some Useful Set and Get Methods</b></p><table summary="Some Useful Set and Get Methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
    297349    Method(s)
    298350    </th><th>
    299351    Description
    300     </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="function">setMaximumIterations(int value)</tt><br><tt class="function">int maximumIterations()</tt><br><tt class="function">setMaximumSeconds(double value)</tt><br><tt class="function">double maximumIterations()</tt></td><td align="left" valign="top">
     352    </th></tr></thead><tbody><tr><td align="left" valign="top">
     353      <tt class="function">setMaximumIterations(int value)</tt><br>
     354      <tt class="function">int maximumIterations()</tt><br>
     355      <tt class="function">setMaximumSeconds(double value)</tt><br>
     356      <tt class="function">double maximumIterations()</tt>
     357      </td><td align="left" valign="top">
    301358      These methods tell CLP to stop after a given number of iterations or
    302359      seconds (and returns these values).
    303       </td></tr><tr><td align="left" valign="top"><tt class="function">double objectiveValue()</tt></td><td align="left" valign="top">
     360      </td></tr><tr><td align="left" valign="top">
     361      <tt class="function">double objectiveValue()</tt>
     362      </td><td align="left" valign="top">
    304363      This method returns the objective value.
    305       </td></tr><tr><td align="left" valign="top"><tt class="function">const double * getObjCoefficients()</tt><br><tt class="function">double * objective()</tt></td><td align="left" valign="top">
     364      </td></tr><tr><td align="left" valign="top">
     365      <tt class="function">const double * getObjCoefficients()</tt><br>
     366      <tt class="function">double * objective()</tt>
     367      </td><td align="left" valign="top">
    306368      These methods return the objective coefficients.
    307       </td></tr><tr><td align="left" valign="top"><tt class="function">const double * getRowLower()</tt><br><tt class="function">double * rowLower()</tt><br><tt class="function">const double * getRowUpper()</tt><br><tt class="function">double * rowUpper()</tt><br><tt class="function">const double * getColLower()</tt><br><tt class="function">double * columnLower()</tt><br><tt class="function">const double * getColUpper()</tt><br><tt class="function">double * columnUpper()</tt></td><td align="left" valign="top">
     369      </td></tr><tr><td align="left" valign="top">
     370      <tt class="function">const double * getRowLower()</tt><br>
     371      <tt class="function">double * rowLower()</tt><br>
     372      <tt class="function">const double * getRowUpper()</tt><br>
     373      <tt class="function">double * rowUpper()</tt><br>
     374      <tt class="function">const double * getColLower()</tt><br>
     375      <tt class="function">double * columnLower()</tt><br>
     376      <tt class="function">const double * getColUpper()</tt><br>
     377      <tt class="function">double * columnUpper()</tt>
     378      </td><td align="left" valign="top">
    308379      These methods give lower and upper bounds on row and column activities.
    309       </td></tr><tr><td align="left" valign="top"><tt class="function">double * infeasibilityRay()</tt><br><tt class="function">double * unboundedRay()</tt></td><td align="left" valign="top">
     380      </td></tr><tr><td align="left" valign="top">
     381      <tt class="function">double * infeasibilityRay()</tt><br>
     382      <tt class="function">double * unboundedRay()</tt>
     383      </td><td align="left" valign="top">
    310384      If the problem was primal or dual infeasible, these methods will give a
    311385      pointer to a ray proving infeasibility.
    312       </td></tr><tr><td align="left" valign="top"><tt class="function">CoinPackMatrix * matrix()</tt></td><td align="left" valign="top">
     386      </td></tr><tr><td align="left" valign="top">
     387      <tt class="function">CoinPackMatrix * matrix()</tt>
     388      </td><td align="left" valign="top">
    313389      There are more options as the user has great flexibility in how the problem
    314390      matrix is stored, but the default matrix class is
     
    317393      So we have that this method returns a pointer to a
    318394      <tt class="classname">CoinPackedMatrix</tt> which can be further manipulated.
    319       </td></tr><tr><td align="left" valign="top"><tt class="function">CoinBigIndex getNumElements()</tt><sup>[<a name="id4739309" href="#ftn.id4739309">a</a>]</sup></td><td align="left" valign="top">
     395      </td></tr><tr><td align="left" valign="top">
     396      <tt class="function">CoinBigIndex getNumElements()</tt>
     397      <sup>[<a name="id4753637" href="#ftn.id4753637">a</a>]</sup>
     398      </td><td align="left" valign="top">
    320399      Returns the number of elements in the problem matrix.
    321       </td></tr><tr><td align="left" valign="top"><tt class="function">void setOptimizationDirection(double value)</tt><br><tt class="function">double optimizationDirection()</tt></td><td align="left" valign="top">
     400      </td></tr><tr><td align="left" valign="top">
     401      <tt class="function">void setOptimizationDirection(double value)</tt><br>
     402      <tt class="function">double optimizationDirection()</tt>
     403      </td><td align="left" valign="top">
    322404      These methods set and get the objective sense.  The parameter
    323405      <i class="parameter"><tt>value</tt></i> should be +1 to minimize, -1 to maximize,
    324406      and 0 to ignore.
    325       </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4739309" href="#id4739309">a</a>] </sup>
     407      </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4753637" href="#id4753637">a</a>] </sup>
    326408        <span class="type">CoinBigIndex</span> is a <tt class="function">typedef</tt> which in
    327409        most cases is the same as <span class="type">int</span>.
    328         </p></div></td></tr></tbody></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4739385"></a>
     410        </p></div></td></tr></tbody></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="simplexspecific"></a>
    329411  Simplex-specific Methods
    330   </h2></div></div><div></div></div><p>
     412  </h2></div></div></div><p>
    331413  Some of the most commonly-used methods when working with Simplex are listed in
    332414  the table below.
    333   </p><div class="table"><a name="id4739396"></a><p class="title"><b>Table 2.3. Common Simplex-specific methods</b></p><table summary="Common Simplex-specific methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     415  </p><div class="table"><a name="id4753729"></a><p class="title"><b>Table 2.3. Common Simplex-specific methods</b></p><table summary="Common Simplex-specific methods" border="0"><colgroup><col><col></colgroup><thead><tr><th>
    334416    Method(s)
    335417    </th><th>
    336418    Description
    337     </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="function">primal(int mode=0)</tt></td><td align="left" valign="top">
     419    </th></tr></thead><tbody><tr><td align="left" valign="top">
     420      <tt class="function">primal(int mode=0)</tt>
     421      </td><td align="left" valign="top">
    338422      This applies the primal algorithm. If <i class="parameter"><tt>mode</tt></i> is
    339423      set to the default of 0, then the method uses the status variables to
     
    342426      current values and one pass of variables is done to clean up the basis
    343427      with an equal or better objective value.
    344       </td></tr><tr><td align="left" valign="top"><tt class="function">dual(int mode=0)</tt></td><td align="left" valign="top">
     428      </td></tr><tr><td align="left" valign="top">
     429      <tt class="function">dual(int mode=0)</tt>
     430      </td><td align="left" valign="top">
    345431      This applies the dual algorithm. if <i class="parameter"><tt>mode</tt></i> is set
    346432      to the default of 0, then the method uses the status variables to
     
    349435      variables is done to clean up the duals with an equal or better objective
    350436      value.
    351       </td></tr><tr><td align="left" valign="top"><tt class="function">scaling(int mode=1)</tt></td><td align="left" valign="top">
     437      </td></tr><tr><td align="left" valign="top">
     438      <tt class="function">scaling(int mode=1)</tt>
     439      </td><td align="left" valign="top">
    352440      This method toggles scaling on (<i class="parameter"><tt>mode</tt></i> set to 1)
    353441      and off (<i class="parameter"><tt>mode</tt></i> set to 0).
    354       </td></tr><tr><td align="left" valign="top"><tt class="function">int crash(double gap,int mode)</tt></td><td align="left" valign="top">
     442      </td></tr><tr><td align="left" valign="top">
     443      <tt class="function">int crash(double gap,int mode)</tt>
     444      </td><td align="left" valign="top">
    355445      This method attemps to improve on an all slack basis.
    356446      For dual this will move variables to the dual feasible bound
     
    361451      preferred or positive if primal.  ±1 means an all slack basis seemed
    362452      best, while ±2 means some work was done.
    363       </td></tr><tr><td align="left" valign="top"><tt class="function">perturb(int mode)</tt></td><td align="left" valign="top">
     453      </td></tr><tr><td align="left" valign="top">
     454      <tt class="function">perturb(int mode)</tt>
     455      </td><td align="left" valign="top">
    364456      This method toggles perturbation on (<i class="parameter"><tt>mode</tt></i> set to 1)
    365457      and off (<i class="parameter"><tt>mode</tt></i> set to 0).  It should be considered
    366458      a work in progress, although on some problems it gives very good results.
    367       </td></tr><tr><td align="left" valign="top"><tt class="function">factorizationFrequency()</tt><br><tt class="function">setFactorizationFrequency(int value)</tt></td><td align="left" valign="top">
     459      </td></tr><tr><td align="left" valign="top">
     460      <tt class="function">factorizationFrequency()</tt><br>
     461      <tt class="function">setFactorizationFrequency(int value)</tt>
     462      </td><td align="left" valign="top">
    368463      These are "get" and "set" methods for the basis matrix
    369464      factorization frequency.  The default is to refactor every 200 iterations,
    370465      but it may make more sense to use something such as 100 + the number of
    371466      rows divided by 50.
    372       </td></tr><tr><td align="left" valign="top"><tt class="function">dualBound()</tt><br><tt class="function">setDualBound(double value)</tt></td><td align="left" valign="top">
     467      </td></tr><tr><td align="left" valign="top">
     468      <tt class="function">dualBound()</tt><br>
     469      <tt class="function">setDualBound(double value)</tt>
     470      </td><td align="left" valign="top">
    373471      These are "get" and "set" methods for the
    374472      "dual bound".  The CLP dual algorithm declares all problems
     
    378476      In essence, this gives a composite dual rather than a pure
    379477      Phase I- Phase II method.
    380       </td></tr><tr><td align="left" valign="top"><tt class="function">infeasibilityCost()</tt><br><tt class="function">setInfeasibilityCost(double value)</tt></td><td align="left" valign="top">
     478      </td></tr><tr><td align="left" valign="top">
     479      <tt class="function">infeasibilityCost()</tt><br>
     480      <tt class="function">setInfeasibilityCost(double value)</tt>
     481      </td><td align="left" valign="top">
    381482      These are the primal analogs to the "dual bound" methods.
    382       </td></tr><tr><td align="left" valign="top"><tt class="function">numberPrimalInfeasibilities()</tt><br><tt class="function">sumPrimalInfeasibilities()</tt></td><td align="left" valign="top">
     483      </td></tr><tr><td align="left" valign="top">
     484      <tt class="function">numberPrimalInfeasibilities()</tt><br>
     485      <tt class="function">sumPrimalInfeasibilities()</tt>
     486      </td><td align="left" valign="top">
    383487      After a solve, there may be infeasibilities.  These methods serve to
    384488      check for said infeasibilities.  One could check the solution explicitly
     
    387491      </td></tr></tbody></table></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="presolve"></a>
    388492  Presolve
    389   </h2></div></div><div></div></div><p>
     493  </h2></div></div></div><p>
    390494  The header file for the use of CLP's presolve functionality is
    391495  <tt class="filename">COIN/Clp/include/Presolve.hpp</tt>.  The sample program below
     
    427531  example whether to treat as an integer problem or whether to keep row and
    428532  column names.
    429   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4739858"></a>Status Array</h2></div></div><div></div></div><p>
     533  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="statusarray"></a>Status Array</h2></div></div></div><p>
    430534  The astute reader may have noticed that the status array has been mentioned
    431535  once or twice.  The beginning user will not need to look at it   Nevertheless,
     
    433537  The possible state of a variable are listed in the following table (each may
    434538  have to be preceded by ClpSimplex::):
    435   </p><div class="table"><a name="id4739872"></a><p class="title"><b>Table 2.4. Possible states of a variable</b></p><table summary="Possible states of a variable" border="0"><colgroup><col><col></colgroup><thead><tr><th><span class="type">Status</span><sup>[<a name="id4739893" href="#ftn.id4739893">a</a>]</sup></th><th>
     539  </p><div class="table"><a name="id4754207"></a><p class="title"><b>Table 2.4. Possible states of a variable</b></p><table summary="Possible states of a variable" border="0"><colgroup><col><col></colgroup><thead><tr><th>
     540          <span class="type">Status</span><sup>[<a name="id4754228" href="#ftn.id4754228">a</a>]</sup>
     541          </th><th>
    436542          Description
    437           </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="constant">basic</tt></td><td align="left" valign="top">
     543          </th></tr></thead><tbody><tr><td align="left" valign="top">
     544          <tt class="constant">basic</tt>
     545          </td><td align="left" valign="top">
    438546          In basis
    439           </td></tr><tr><td align="left" valign="top"><tt class="constant">isFree</tt></td><td align="left" valign="top">
     547          </td></tr><tr><td align="left" valign="top">
     548          <tt class="constant">isFree</tt>
     549          </td><td align="left" valign="top">
    440550          Not in basis, has infinite bounds
    441           </td></tr><tr><td align="left" valign="top"><tt class="constant">isFixed</tt></td><td align="left" valign="top">
     551          </td></tr><tr><td align="left" valign="top">
     552          <tt class="constant">isFixed</tt>
     553          </td><td align="left" valign="top">
    442554          Not in basis, bounds are equal
    443           </td></tr><tr><td align="left" valign="top"><tt class="constant">atUpperBound</tt></td><td align="left" valign="top">
     555          </td></tr><tr><td align="left" valign="top">
     556          <tt class="constant">atUpperBound</tt>
     557          </td><td align="left" valign="top">
    444558          At upper bound, not in basis
    445           </td></tr><tr><td align="left" valign="top"><tt class="constant">atLowerBound</tt></td><td align="left" valign="top">
     559          </td></tr><tr><td align="left" valign="top">
     560          <tt class="constant">atLowerBound</tt>
     561          </td><td align="left" valign="top">
    446562          At lower bound, not in basis
    447           </td></tr><tr><td align="left" valign="top"><tt class="constant">superBasic</tt></td><td align="left" valign="top">
     563          </td></tr><tr><td align="left" valign="top">
     564          <tt class="constant">superBasic</tt>
     565          </td><td align="left" valign="top">
    448566          Between bounds, but not basic or free
    449           </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4739893" href="#id4739893">a</a>] </sup><span class="type">Status</span>
     567          </td></tr></tbody><tbody class="footnotes"><tr><td colspan="2"><div class="footnote"><p><sup>[<a name="ftn.id4754228" href="#id4754228">a</a>] </sup><span class="type">Status</span>
    450568            is an enumeration.</p></div></td></tr></tbody></table></div><p>
    451569  To get or set the status of a variable is a simple task:
     
    461579  </pre></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="notsobasic"></a>Chapter 3. 
    462580  Not-Quite-So-Basic Model Classes
    463   </h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="#matrixclasses">Matrix Classes</a></span></dt><dt><span class="section"><a href="#messagehandling">Message Handling</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pivotchoices"></a>Pivot Choices</h2></div></div><div></div></div><p>
     581  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="#matrixclasses">Matrix Classes</a></span></dt><dt><span class="section"><a href="#messagehandling">Message Handling</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="pivotchoices"></a>Pivot Choices</h2></div></div></div><p>
    464582  In the dual algorithm, any infeasible basic variable may be chosen to leave the
    465583  basis.  Similarly in the primal algorithm, any non-basic variable with a
     
    498616  The partial pricing scheme (for long, thin problems) currently does not
    499617  exist.  This could be implemented by anyone who is interested.
    500   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="matrixclasses"></a>Matrix Classes</h2></div></div><div></div></div><p>
     618  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="matrixclasses"></a>Matrix Classes</h2></div></div></div><p>
    501619  The next abstract class of interest is <tt class="function">ClpMatrixBase</tt>.
    502620  CLP encapsulates its knowledge of how a matrix is stored in this class.  The
     
    557675  time.  Minor modifications may be needed but it should work quite smoothly
    558676  (there is already a dummy "refresh" method which would be used).
    559   </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="messagehandling"></a>Message Handling</h2></div></div><div></div></div><p>
     677  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="messagehandling"></a>Message Handling</h2></div></div></div><p>
    560678  Strictly speaking, message handling is a general COIN topic, but it won't hurt
    561679  to repeat a few important things here.
     
    584702  <tt class="function">print</tt> method.  Below follows an example which would
    585703  print only a message for optimality (or infeasibility):
    586   </p><div class="example"><a name="id4742539"></a><p class="title"><b>Example 3.1. Sophisticated message handling</b></p><pre class="programlisting">
     704  </p><div class="example"><a name="id4756901"></a><p class="title"><b>Example 3.1. Sophisticated message handling</b></p><pre class="programlisting">
    587705  class DerivedHandler :
    588706   public CoinMessageHandler {
     
    605723  </pre></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="moreexamples"></a>Chapter 4. 
    606724More Samples
    607 </h2></div></div><div></div></div><p>
    608 CLP includes a number of <tt class="filename">.cpp</tt> sample files.  They can be
    609 found in the <tt class="filename">COIN/Clp/Samples</tt> directory.  Below is a table
    610 listing some of the sample files with a short description for each.
    611 </p><div class="table"><a name="id4742112"></a><p class="title"><b>Table 4.1. Contents of the Samples directory</b></p><table summary="Contents of the Samples directory" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
    612         Filename       
     725</h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id4757090">CLP's Samples Directory</a></span></dt><dd><dl><dt><span class="section"><a href="#minimumcppdesc">minimum.cpp</a></span></dt><dt><span class="section"><a href="#defaultscppdesc">defaults.cpp</a></span></dt><dt><span class="section"><a href="#drivercppdesc">driver.cpp</a></span></dt><dt><span class="section"><a href="#networkcppdesc">network.cpp</a></span></dt><dt><span class="section"><a href="#testbarriercppdesc">testBarrier.cpp</a></span></dt><dt><span class="section"><a href="#id4758374">dualCuts.cpp</a></span></dt><dt><span class="section"><a href="#id4758398">decompose.cpp</a></span></dt><dt><span class="section"><a href="#id4758414">driver2.cpp</a></span></dt></dl></dd><dt><span class="section"><a href="#id4758428">Common CLP Tasks in the Samples</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4757090"></a>CLP's Samples Directory</h2></div></div></div><p>
     726The CLP dsitribution includes a number of <tt class="filename">.cpp</tt> sample files.
     727Users are encouraged to use them as starting points for their own CLP projects.
     728The files can be found in the <tt class="filename">COIN/Clp/Samples/</tt> directory.
     729For the latest information on compiling and running these samples, please see
     730the file <tt class="filename">COIN/Clp/Samples/INSTALL</tt>.  Below is a list of
     731some of the most useful sample files with a short description for each file.
     732</p><div class="table"><a name="id4756483"></a><p class="title"><b>Table 4.1. Basic Samples</b></p><table summary="Basic Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     733        Source file       
    613734        </th><th align="left" valign="bottom">
    614735        Description
    615         </th></tr></thead><tbody><tr><td align="left" valign="top"><tt class="filename">minimum.cpp</tt></td><td align="left" valign="top">
    616         This is a CLP &lt;Hello, world&gt; program.  It reads an MPS file, and
    617         solves the problem.
    618         </td></tr><tr><td align="left" valign="top"><tt class="filename">defaults.cpp</tt></td><td align="left" valign="top">
    619         This is one of the simpler drivers.  It sets tolerances to defaults and
    620         is a useful place to find simple use of "sets" and
    621         "gets".  It also prints out a full MPS-like solutions.
    622         </td></tr><tr><td align="left" valign="top"><tt class="filename">driver.cpp</tt></td><td align="left" valign="top">
    623         This is designed to be the file that people modify to get a useful
    624         driver.  It does presolve.
    625         </td></tr><tr><td align="left" valign="top"><tt class="filename">piece.cpp</tt></td><td align="left" valign="top">
    626         This simple example takes a matrix read in by
    627         <tt class="classname">CoinMpsIo</tt> (can be used to read in MPS files
    628         without a solver), deletes every second column and solves the
    629         resulting problem.
    630         </td></tr><tr><td align="left" valign="top"><tt class="filename">network.cpp</tt></td><td align="left" valign="top">
     736        </th></tr></thead><tbody><tr><td align="left" valign="top">
     737        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/minimum.cpp" target="_top"><tt class="filename">minimum.cpp</tt></a>
     738        </td><td align="left" valign="top">
     739        This is a CLP "Hello, world" program.  It reads a problem
     740        from an MPS file, and solves the problem.
     741        [<a href="#minimumcppdesc" title="minimum.cpp">More...</a>]
     742        </td></tr><tr><td align="left" valign="top">
     743        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     744        </td><td align="left" valign="top">
     745        This is one of the simpler driver programs available.  It sets
     746        tolerances to defaults and is a good place to find straightforward uses
     747        of "set" and    "get" methods.  It also prints out full
     748        MPS-like solutions.
     749        [<a href="#defaultscppdesc" title="defaults.cpp">More...</a>]
     750        </td></tr><tr><td align="left" valign="top">
     751        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver.cpp" target="_top"><tt class="filename">driver.cpp</tt></a>
     752        </td><td align="left" valign="top">
     753        This is designed to be a file that a user could modify to get a useful
     754        driver program for his or her project.  In particular, it demonstrates
     755        the use of CLP's  presolve functionality.
     756        [<a href="#drivercppdesc" title="driver.cpp">More...</a>]
     757        </td></tr><tr><td align="left" valign="top">
     758        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/network.cpp" target="_top"><tt class="filename">network.cpp</tt></a>
     759        </td><td align="left" valign="top">
    631760        This shows the use of non-standard matrices and how to load a problem
    632761        without the use of MPS files.
    633         </td></tr><tr><td align="left" valign="top"><tt class="filename">decompose.cpp</tt></td><td align="left" valign="top">
     762        [<a href="#networkcppdesc" title="network.cpp">More...</a>]
     763        </td></tr><tr><td align="left" valign="top">
     764        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testBarrier.cpp" target="_top"><tt class="filename">testBarrier.cpp</tt></a>
     765        </td><td align="left" valign="top">
     766        This is a basic driver file for the barrier method of CLP, similar to
     767        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/minimum.cpp" target="_top"><tt class="filename">minimum.cpp</tt></a>.  The barrier method is not currently addressed in this
     768        guide.
     769        [<a href="#testbarriercppdesc" title="testBarrier.cpp">More...</a>]
     770        </td></tr></tbody></table></div><div class="table"><a name="id4757680"></a><p class="title"><b>Table 4.2. Advanced Samples</b></p><table summary="Advanced Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     771        Source file       
     772        </th><th align="left" valign="bottom">
     773        Description
     774        </th></tr></thead><tbody><tr><td align="left" valign="top">
     775        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver2.cpp" target="_top"><tt class="filename">driver2.cpp</tt></a>
     776        </td><td align="left" valign="top">
     777        This sample, in addition to some tasks common to other samples, does
     778        some advanced message handling and presolve.
     779        </td></tr><tr><td align="left" valign="top">
     780        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/dualCuts.cpp" target="_top"><tt class="filename">dualCuts.cpp</tt></a>
     781        </td><td align="left" valign="top">
     782        This sample implements a method of treating a problem as a collection
     783        of cuts.
     784        </td></tr><tr><td align="left" valign="top">
     785        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/decompose.cpp" target="_top"><tt class="filename">decompose.cpp</tt></a>
     786        </td><td align="left" valign="top">
    634787        This does full Dantzig-Wolfe decomposition.  It illustrates
    635788        the use of many models, adding columns, et cetera.
    636         </td></tr><tr><td align="left" valign="top"><tt class="filename">sprint.cpp</tt></td><td align="left" valign="top">
     789        </td></tr><tr><td align="left" valign="top">
     790        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/sprint.cpp" target="_top"><tt class="filename">sprint.cpp</tt></a>
     791        </td><td align="left" valign="top">
    637792        This solves a long, thin problem by solving smaller subsets.  It is a
    638793        simplified version of work done by one of the authors on aircrew
    639794        scheduling problems.  It shows the use of two models and their
    640795        synchronization.  A more general version can be found in
    641         <tt class="filename">COIN/Clp/ClpSolve.cpp</tt></td></tr><tr><td align="left" valign="top"><tt class="filename">sprint2.cpp</tt></td><td align="left" valign="top">
     796        <tt class="filename">COIN/Clp/ClpSolve.cpp</tt>
     797        </td></tr><tr><td align="left" valign="top">
     798        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/sprint2.cpp" target="_top"><tt class="filename">sprint2.cpp</tt></a>
     799        </td><td align="left" valign="top">
    642800        This is similar to <tt class="filename">sprint.cpp</tt> but is designed for
    643801        solving large problems with little choice.  The idea is that if
     
    645803        problem size so that a series of solves can get close to the optimal
    646804        solution much faster than would a naïve solve of the full problem.
    647         </td></tr></tbody></table></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clpexe"></a>Chapter 5. 
     805        </td></tr></tbody></table></div><p>
     806The remaining Samples listed here are considered unsupported in that they are of
     807a more esoteric nature and are sometimes contributed as a result of an
     808individual's request.  The are to be found in
     809<tt class="filename">COIN/Clp/Samples/Contributed</tt>.
     810</p><div class="table"><a name="id4757910"></a><p class="title"><b>Table 4.3. Unsupported Samples</b></p><table summary="Unsupported Samples" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     811        Source file       
     812        </th><th align="left" valign="bottom">
     813        Description
     814        </th></tr></thead><tbody><tr><td align="left" valign="top">
     815        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testBasis.cpp" target="_top"><tt class="filename">testBasis.cpp</tt></a>
     816        </td><td align="left" valign="top">
     817        This sample takes a problem, changes any inequality constraints to
     818        equality constraints, solves the problem, and creates the optimal basis.
     819        </td></tr><tr><td align="left" valign="top">
     820        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/testGub.cpp" target="_top"><tt class="filename">testGub.cpp</tt></a>
     821        </td><td align="left" valign="top">
     822        This sample illustrates the use of the GUB ("Generalized Upper
     823        Bound") technique.
     824        </td></tr><tr><td align="left" valign="top">
     825        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/ekk.cpp" target="_top"><tt class="filename">ekk.cpp</tt></a>
     826        </td><td align="left" valign="top">
     827        This sample can be used to compare CLP and OSL.  It uses an additional
     828        file in the Samples directory, <tt class="filename">ekk_interface.cpp</tt>.
     829        These sample files are not likely to be interesting to new CLP users
     830        who do not have experience with OSL.
     831        </td></tr><tr><td align="left" valign="top">
     832        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/hello.cpp" target="_top"><tt class="filename">hello.cpp</tt></a>
     833        </td><td align="left" valign="top">
     834        This sample creates a text-based picture of a matrix on screen
     835        (limited to an 80x80 matrix).  It's not terribly useful but it does
     836        illustrate one way to step through the elements of a matrix.
     837        </td></tr><tr><td align="left" valign="top">
     838        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/piece.cpp" target="_top"><tt class="filename">piece.cpp</tt></a>
     839        </td><td align="left" valign="top">
     840        This sample takes a matrix read in by <tt class="classname">CoinMpsIo</tt>
     841        (can be used to read in MPS files without a solver), deletes every
     842        second column and solves the resulting problem.
     843        </td></tr><tr><td align="left" valign="top">
     844        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/useVolume.cpp" target="_top"><tt class="filename">useVolume.cpp</tt></a>
     845        </td><td align="left" valign="top">
     846        The Volume Algorithm is another solver available as part of the COIN-OR
     847        distribution.  This sample shows how to use the Volume Algorithm with
     848        CLP.
     849        </td></tr></tbody></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="minimumcppdesc"></a>minimum.cpp</h3></div></div></div><p>
     850This sample is examined in more detail in <a href="#firstexample" title="
     851  First Example
     852  ">the section called &#8220;
     853  First Example
     854  &#8221;</a>.
     855</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="defaultscppdesc"></a>defaults.cpp</h3></div></div></div><p>
     856This sample begins by reading an MPS file.  The default MPS file is
     857<tt class="filename">COIN/Mps/Sample/p0033.mps</tt>; this can be over-riden by a
     858command-line specification of a (path and) file name).  The sample then sets
     859the pivot algorithm to be exact devex.  It "gets" the default
     860infeasibility cost and "sets" it to that value (and prints it to
     861standard out).  This sort of getting and setting of various parameters
     862constitutes a common theme in this sample, with the purpose of illustrating
     863usage of some of the more common get and set methods available in CLP.
     864</p><p>
     865At this point the model is solved by the primal method.  A sequence of sets,
     866gets and prints is then followed by a number of calls to methods which give
     867specific information about the status of the problem (for example, the code
     868checks that the current solution has been proven to be optimal by
     869<tt class="code">assert(model.isProvenOptimal())</tt>).
     870</p><p>
     871Next, a copy of the original model is made.  More sets and gets are
     872performed to demonstrate the use of additional options (including
     873the setting of the default message handling as well as changing of the
     874"log level" (amount of output)).  The model is solved again a
     875number of times between changes of the optimization direction (i.e. changing
     876from min to max or vice versa).  The remaining lines of this sample serve to
     877display solution and problem information in much the same way as is done in
     878driver.cpp.
     879</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="drivercppdesc"></a>driver.cpp</h3></div></div></div><p>
     880This sample begins by reading an MPS file.  The default MPS file is
     881<tt class="filename">COIN/Mps/Sample/p0033.mps</tt>; this can be over-riden by a
     882command-line specification of a (path and) file name).  A second command-line
     883argument can specify that either the "primal" or "dual"
     884method (or even the "barrier", see below) should be used by CLP.
     885</p><p>
     886Once the problem has been
     887read, there are two options for how to solve it, one of which must be chosen at
     888compile-time (<tt class="code">STYLE1</tt> being defined or not determines this
     889choice).  The second manner is more flexible and involves more specific
     890directions being given to CLP, including the ability to specify that the barrier
     891method should be used.
     892</p><p>
     893At this point in the sample, the problem is solved by CLP, and some basic ouput
     894is generated.  If more output is desired, at compile-time, an
     895<tt class="code">exit(0)</tt> statement must either be removed or commented.  There are
     896two levels of additional output, the first of which is suppressed  by a
     897<tt class="code">#if 0</tt> directive which may be modified at compile-time if desired.
     898This first level of output only involves non-zero columns, whereas the second
     899provides additional information.
     900</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="networkcppdesc"></a>network.cpp</h3></div></div></div><p>
     901This handy sample reads a network problem generated by
     902<a href="http://www.netlib.org/lp/generators/netgen" target="_top">netgen</a>, converts
     903it to an LP using CLP's network matrix type, and solves.  This entirely avoids
     904the use of an MPS file, as the LP is built in memory from the network data file
     905created by netgen.  Also, the factorization frequency is changed, and the
     906problem is solved more than once (demonstrating the change of optimization sense
     907as well as switching from dual to primal methods).
     908</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="testbarriercppdesc"></a>testBarrier.cpp</h3></div></div></div><p>
     909This straightfoward sample begins by reading a problem from an MPS file.  It
     910then chooses a Cholesky factorization and solves the problem using the
     911predictor corrector barrier method.  It then copies the problem and performs a
     912crossover to a simplex solution in the new copy.
     913</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4758374"></a>dualCuts.cpp</h3></div></div></div><p>
     914This sample begins with only the equality constraints of a problem.  The
     915inequalities are considered to be part of a pool of available cuts in much the
     916same way as is done in integer programming.  However, in this case, the cuts are
     917not "generated", they are simply the inequalities of the problem.
     918</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4758398"></a>decompose.cpp</h3></div></div></div><p>
     919More on this sample coming soon!
     920</p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id4758414"></a>driver2.cpp</h3></div></div></div><p>
     921More on this sample coming soon!
     922</p></div></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4758428"></a>Common CLP Tasks in the Samples</h2></div></div></div><p>
     923Below is a listing of a number of common CLP tasks, such as loading a problem
     924from an MPS file, matched with a list of each Sample file which illustrates the
     925performance of a given task.
     926</p><div class="table"><a name="id4758440"></a><p class="title"><b>Table 4.4. Contents of the Samples directory</b></p><table summary="Contents of the Samples directory" border="0"><colgroup><col><col><col></colgroup><thead><tr><th align="left" valign="bottom">
     927        CLP Task(s)
     928        </th><th>
     929        Method(s)
     930        </th><th align="left" valign="bottom">
     931        Sample(s)
     932        </th></tr></thead><tbody><tr><td>
     933        Read problem from MPS file
     934        </td><td>
     935        <div class="literallayout"><p><tt class="function">int readMps(const char *filename)</tt></p></div>
     936        </td><td>
     937        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>, <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver.cpp" target="_top"><tt class="filename">driver.cpp</tt></a>, <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/minimum.cpp" target="_top"><tt class="filename">minimum.cpp</tt></a>
     938        </td></tr><tr><td>
     939        Solve by primal method
     940        </td><td>
     941        <div class="literallayout"><p><tt class="function">int primal()</tt></p></div>
     942        </td><td>
     943        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/driver.cpp" target="_top"><tt class="filename">driver.cpp</tt></a>
     944        </td></tr><tr><td>
     945        Choose pivot rule
     946        </td><td>
     947        <div class="literallayout"><p><tt class="function">void setPrimalColumnPivotAlgorithm(ClpPrimalColumnPivot &amp;choice)</tt><br>
     948        <tt class="function">void setDualRowPivotAlgorithm(ClpDualRowPivot &amp;choice)</tt></p></div>
     949        </td><td>
     950        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     951        </td></tr><tr><td>
     952        Get/set infeasibility cost
     953        </td><td>
     954        <div class="literallayout"><p><tt class="function">void setInfeasibilityCost(double value)</tt><br>
     955        <tt class="function">void setInfeasibilityCost(double value)</tt></p></div>
     956        </td><td>
     957        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     958        </td></tr><tr><td>
     959        Get string/"double"/integer information
     960        </td><td>
     961        <div class="literallayout"><p><tt class="function">bool getStrParam(ClpStrParam key, std::string &amp;value) const</tt><br>
     962        <tt class="function">bool getDblParam(ClpDblParam key, double &amp;value) const</tt><br>
     963        <tt class="function">bool  getIntParam (ClpIntParam key, int &amp;value) const </tt></p></div>
     964        </td><td>
     965        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     966        </td></tr><tr><td>
     967        Set maximum number of iterations
     968        </td><td>
     969        <div class="literallayout"><p><tt class="function">void setMaximumIterations(int value)</tt></p></div>
     970        </td><td>
     971        <a href="http://www-124.ibm.com/developerworks/opensource/cvs/coin/COIN/Clp/Samples/defaults.cpp" target="_top"><tt class="filename">defaults.cpp</tt></a>
     972        </td></tr><tr><td>
     973        Check solution status
     974        </td><td>
     975        <div class="literallayout"><p><tt class="function">int status() const</tt><br>
     976        <tt class="function">bool isAbandoned() const</tt><br>
     977        <tt class="function">bool isProvenOptimal() const</tt><br>
     978        <tt class="function">bool isProvenPrimalInfeasible() const</tt><br>
     979        <tt class="function">bool isProvenDualInfeasible() const</tt><br>
     980        <tt class="function">bool isPrimalObjectiveLimitReached() const</tt><br>
     981        <tt class="function">bool isDualObjectiveLimitReached() const</tt><br>
     982        <tt class="function">bool isIterationLimitReached() const</tt><br>
     983        <tt class="function"></tt><br>
     984        <tt class="function"></tt></p></div>
     985        </td><td>
     986       
     987        </td></tr><tr><td>
     988       
     989        </td><td>
     990       
     991        </td><td>
     992       
     993        </td></tr><tr><td>
     994       
     995        </td><td>
     996       
     997        </td><td>
     998       
     999        </td></tr><tr><td>
     1000       
     1001        </td><td>
     1002       
     1003        </td><td>
     1004       
     1005        </td></tr><tr><td>
     1006       
     1007        </td><td>
     1008       
     1009        </td><td>
     1010       
     1011        </td></tr><tr><td>
     1012       
     1013        </td><td>
     1014       
     1015        </td><td>
     1016       
     1017        </td></tr></tbody></table></div></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="clpexe"></a>Chapter 5. 
    6481018  The CLP Executable
    649   </h2></div></div><div></div></div><p>
     1019  </h2></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#id4760280">Quick Start</a></span></dt><dt><span class="section"><a href="#id4760804">
     1020  Online Help and Basic Usage
     1021  </a></span></dt><dt><span class="section"><a href="#id4760964">A Sample Session</a></span></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4760280"></a>Quick Start</h2></div></div></div><p>
    6501022  The result of <b class="userinput"><tt>make unitTest</tt></b> (executed in
    6511023  <tt class="filename">COIN/Clp</tt>) is an executable
    6521024  <tt class="filename">clp</tt> as well as the CLP and COIN libraries.
    653   This can be used to do various unit tests, but can also be used as a standalone
    654   solver.  As it only has a very simple solution file format the user may wish to
    655   modify that part of <tt class="filename">COIN/Clp/Test/ClpMain.cpp</tt> and even
    656   offer the modifications as contribution to CLP.
     1025  The executable can be used to perform various unit tests, but can also be used
     1026  as a standalone solver.  As the executable has a very simple solution file format,
     1027  the user may wish to modify <tt class="filename">COIN/Clp/Test/ClpMain.cpp</tt>,
     1028  which contains the source of the executable (modifications could even be
     1029  offered as a contribution to CLP).
    6571030  </p><p>
    6581031  The <tt class="filename">clp</tt> executable operates in command line mode or
    659   prompted mode.  Entering <b class="userinput"><tt>clp</tt></b> will bring being "prompt
    660   mode", while <b class="userinput"><tt>clp &lt;filename&gt;</tt></b> will import an MPS file
    661   from filename and solve it using the dual simplex method and exit.  Again
    662   <b class="userinput"><tt>clp &lt;filename&gt; -primalsimplex</tt></b> will import a file
    663   and solve using the primal simplex method.  A dash
    664   ("<b class="userinput"><tt>-</tt></b>") by itself changes to prompt mode.  In
    665   command line mode "<b class="userinput"><tt>-</tt></b>" is needed (apart from
    666   first parameter which is taken as file name).  So the following are equivalent
    667   and maximize a problem using dual and write a solution to file
     1032  prompted mode.  Entering <b class="userinput"><tt>clp</tt></b> will invoke the prompted
     1033  mode, while <b class="userinput"><tt>clp &lt;filename&gt;</tt></b> will import a problem
     1034  in MPS format from <tt class="filename">filename</tt>, solve it using the dual
     1035  simplex method and exit. The command
     1036  <b class="userinput"><tt>clp &lt;filename&gt; -primalsimplex</tt></b> instructs the
     1037  executable tp import a file and solve using the primal simplex method.  An
     1038  additional solitary dash ("<b class="userinput"><tt>-</tt></b>") starts the
     1039  prompt mode once the execution of the initial command has been completed.  The
     1040  "<b class="userinput"><tt>-</tt></b>" is necessary as part of the command;
     1041  invoking prompt mode as a separate command will result in the loss of problem
     1042  information related to the initial command.  So, the following sequences of commands
     1043  are equivalent in the sense that both maximize a problem using the dual
     1044  simplex method and write a solution to file:
    6681045  <tt class="filename">solfile</tt>:
    6691046  </p><div class="blockquote"><blockquote class="blockquote"><div class="literallayout"><p><br>
    670     <tt class="prompt">$</tt> <b class="userinput"><tt>clp <i class="replaceable"><tt>filename</tt></i> -maximize -dualsimplex -solution solfile</tt></b><br>
     1047    <tt class="prompt">$</tt> <b class="userinput"><tt><span><b class="command">clp</b></span> <i class="replaceable"><tt>filename</tt></i> -maximize -dualsimplex -solution solfile</tt></b><br>
    6711048    </p></div></blockquote></div><p>
    6721049  </p><div class="blockquote"><blockquote class="blockquote"><div class="literallayout"><p><br>
    673     <tt class="prompt">$</tt> <b class="userinput"><tt>clp <i class="replaceable"><tt>filename</tt></i> -maximize -</tt></b><br>
    674     <tt class="prompt">Clp:</tt><b class="userinput"><tt>duals</tt></b><br>
    675     <tt class="prompt">Clp:</tt><b class="userinput"><tt>solution solfile</tt></b><br>
    676     <tt class="prompt">Clp:</tt><b class="userinput"><tt>quit</tt></b><br>
     1050    <tt class="prompt">$</tt> <b class="userinput"><tt><span><b class="command">clp</b></span> <i class="replaceable"><tt>filename</tt></i> -maximize -</tt></b><br>
     1051    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">duals</b></span></tt></b><br>
     1052    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">solution</b></span> solfile</tt></b><br>
     1053    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">quit</b></span></tt></b><br>
    6771054    </p></div></blockquote></div><p>
    6781055  </p><p>
    679   The executable has some command-completion functionality as well as some inline
     1056  The executable is at a very early stage of development.  Comments and
     1057  suggestions would be appreciated.
     1058  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4760804"></a>
     1059  Online Help and Basic Usage
     1060  </h2></div></div></div><p>
     1061  The executable has some command-completion functionality as well as some online
    6801062  help.  Below is a table with some examples which summarize these capabilities.
    681   </p><div class="table"><a name="id4743714"></a><p class="title"><b>Table 5.1. Command examples for the clp executable</b></p><table summary="Command examples for the clp executable" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left">
     1063  </p><div class="table"><a name="id4760816"></a><p class="title"><b>Table 5.1. Command examples for the clp executable</b></p><table summary="Command examples for the clp executable" border="0"><colgroup><col><col></colgroup><thead><tr><th align="left">
    6821064        Command    
    6831065        </th><th align="left">
    6841066        Result
    685         </th></tr></thead><tbody><tr><td><span><b class="command">?</b></span></td><td>
     1067        </th></tr></thead><tbody><tr><td>
     1068        <span><b class="command">?</b></span>
     1069        </td><td>
    6861070        Gives a list of all  commands
    687         </td></tr><tr><td><span><b class="command">p?</b></span></td><td>
     1071        </td></tr><tr><td>
     1072        <span><b class="command">p?</b></span>
     1073        </td><td>
    6881074        Gives a list of all commands which begin with &lt;p&gt;.
    689         </td></tr><tr><td><span><b class="command">p??</b></span></td><td>
     1075        </td></tr><tr><td>
     1076        <span><b class="command">p??</b></span>
     1077        </td><td>
    6901078        Gives a list of all commands which begin with &lt;p&gt;., with a short
    6911079        explanation for each.
    692         </td></tr><tr><td><span><b class="command">primals??</b></span></td><td>
     1080        </td></tr><tr><td>
     1081        <span><b class="command">primals??</b></span>
     1082        </td><td>
    6931083        If is this is enough to uniquely determine a command (in this example,
    6941084        <span><b class="command">primalS</b></span>, for primal simplex), a long explanation
     
    6961086        </td></tr></tbody></table></div><p>
    6971087  In addition, matching a name without a ? will either execute the command or give
    698   the value of the corresponding parameter.  So,
    699   <span><b class="command">primalweight</b></span> will give the current value of  the
    700   primalWeight parameter while <span><b class="command">primalw 1.0e7</b></span> will change
    701   it to 1.0e7.
     1088  the value of the corresponding parameter as follows:
     1089  <b class="userinput"><tt><span><b class="command">primalw</b></span></tt></b> will give the current value of  the
     1090  <i class="parameter"><tt>primalWeight</tt></i> parameter while
     1091  <b class="userinput"><tt><span><b class="command">primalw 1.0e7</b></span></tt></b> will change it to
     1092  <tt class="literal">1.0e7</tt>.
     1093  </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id4760964"></a>A Sample Session</h2></div></div></div><p>
     1094  Below is a sample CLP executable prompt-mode session.  A small problem is
     1095  loaded and solved under various conditions with the primal and dual
     1096  simplex methods.  Note the use of the <span><b class="command">allslack</b></span> command; it
     1097  sets the basis to all slacks and resets the solution.
    7021098  </p><p>
    703   The executable is at a very early stage and comments will graciously
    704   welcomed.
    705   </p></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="messages"></a>Chapter 6. 
     1099    </p><pre class="screen">
     1100    <tt class="prompt">$</tt><span><b class="command">clp</b></span>
     1101    Coin LP version 0.99.9, build Sep 14 2004
     1102    Clp takes input from arguments ( - switches to stdin)
     1103    Enter ? for list of commands or help
     1104    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">import</b></span><tt class="filename">../Mps/Sample/p0033.mps</tt></tt></b>
     1105    At line 15 NAME          P0033
     1106    At line 16 ROWS
     1107    At line 34 COLUMNS
     1108    At line 109 RHS
     1109    At line 118 BOUNDS
     1110    At line 152 ENDATA
     1111    Problem P0033 has 16 rows, 33 columns and 98 elements
     1112    Model was imported from ./../Mps/Sample/p0033.mps in 0 seconds
     1113    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">primals</b></span></tt></b>
     1114    Presolve 15 (-1) rows, 32 (-1) columns and 97 (-1) elements
     1115    0  Obj 0 Primal inf 27.2175 (10) Dual inf 6.42094e+11 (32)
     1116    32  Obj 2520.57
     1117    Optimal - objective value 2520.57
     1118    After Postsolve, objective 2520.57, infeasibilities - dual 0 (0), primal 0 (0)
     1119    Optimal objective 2520.571739 - 32 iterations time 0.012, Presolve 0.01
     1120    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">max</b></span></tt></b>
     1121    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">primals</b></span></tt></b>
     1122    Presolve 11 (-5) rows, 25 (-8) columns and 84 (-14) elements
     1123    0  Obj 4807.92 Dual inf 1700.71 (15)
     1124    End of values pass after 2 iterations
     1125    2  Obj 4921.7 Dual inf 580.637 (5)
     1126    9  Obj 5299.7
     1127    Optimal - objective value 5299.7
     1128    After Postsolve, objective 5299.7, infeasibilities - dual 643.608 (9), primal 27.0826 (10)
     1129    Presolved model was optimal, full model needs cleaning up
     1130    0  Obj 5299.7
     1131    0  Obj 5299.7
     1132    Optimal - objective value 5299.7
     1133    Optimal objective 5299.698868 - 9 iterations time 0.022, Presolve 0.02
     1134    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">allslack</b></span></tt></b>
     1135    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">duals</b></span></tt></b>
     1136    Presolve 11 (-5) rows, 25 (-8) columns and 84 (-14) elements
     1137    0  Obj 2752 Primal inf 24.4867 (6) Dual inf 4280.55 (25)
     1138    8  Obj 5299.7
     1139    Optimal - objective value 5299.7
     1140    After Postsolve, objective 5299.7, infeasibilities - dual 704.58 (8), primal 27.0792 (10)
     1141    Presolved model was optimal, full model needs cleaning up
     1142    0  Obj 5299.7
     1143    0  Obj 5299.7
     1144    Optimal - objective value 5299.7
     1145    Optimal objective 5299.698868 - 8 iterations time 0.032, Presolve 0.01
     1146    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">min</b></span></tt></b>
     1147    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">duals</b></span></tt></b>
     1148    Presolve 15 (-1) rows, 32 (-1) columns and 97 (-1) elements
     1149    0  Obj 5299.7 Dual inf 4632.26 (28)
     1150    16  Obj 2520.57
     1151    Optimal - objective value 2520.57
     1152    After Postsolve, objective 2520.57, infeasibilities - dual 2052.5 (13), primal 27.1143 (10)
     1153    Presolved model was optimal, full model needs cleaning up
     1154    0  Obj 2520.57
     1155    0  Obj 2520.57
     1156    Optimal - objective value 2520.57
     1157    Optimal objective 2520.571739 - 16 iterations time 0.012, Presolve 0.01
     1158    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">allslack</b></span></tt></b>
     1159    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">presolve off</b></span></tt></b>
     1160    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">primals</b></span></tt></b>
     1161    0  Obj 0 Primal inf 27.2175 (10) Dual inf 6.39167e+11 (32)
     1162    32  Obj 2520.57
     1163    Optimal - objective value 2520.57
     1164    Optimal objective 2520.571739 - 32 iterations time 0.002
     1165    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">allslack</b></span></tt></b>
     1166    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">maxIt</b></span> 10</tt></b>
     1167    maxIterations was changed from 99999999 to 10
     1168    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">primals</b></span></tt></b>
     1169    0  Obj 0 Primal inf 27.2175 (10) Dual inf 6.39167e+11 (32)
     1170    Stopped - objective value 4.24664e+10
     1171    Stopped objective 4.246637759e+10 - 10 iterations time 0.002
     1172    <tt class="prompt">Clp:</tt><b class="userinput"><tt><span><b class="command">quit</b></span></tt></b>
     1173    </pre><p>
     1174  </p></div></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="messages"></a>Chapter 6. 
    7061175  Messages
    707   </h2></div></div><div></div></div><p>
     1176  </h2></div></div></div><p>
    7081177  Some of the more common messages and codes passed by CLP are listed in the
    7091178  tables below.  This is list is not meant to exhaustive.  The notation is as
     
    7161185    <tt class="computeroutput">%g</tt> or <tt class="computeroutput">%f</tt>
    7171186    is a floating point value
    718     </li></ul></div><div class="table"><a name="id4741255"></a><p class="title"><b>Table 6.1. 
     1187    </li></ul></div><div class="table"><a name="id4760092"></a><p class="title"><b>Table 6.1. 
    7191188  COIN Messages passed at or above logging level 1
    7201189  </b></p><table summary="
     
    7241193      </th><th align="center">
    7251194      Area
    726       </th><th> </th><th align="left">
     1195      </th><th align="left">
     1196      </th><th align="left">
    7271197      Text and notes
    7281198      </th></tr></thead><tbody><tr><td align="left">
     
    7301200      </td><td align="center">
    7311201      MPSREAD
    732       </td><td> </td><td align="left"><tt class="computeroutput">At line %d %s</tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1202      </td><td align="left">
     1203      </td><td align="left">
     1204      <tt class="computeroutput">At line %d %s</tt>
     1205      </td></tr><tr><td colspan="3" align="left">
     1206      </td><td align="left">
     1207      <p>
    7331208      This just prints out NAME line, ROW line, etc
    734       </p></td></tr><tr><td align="left">
     1209      </p>
     1210      </td></tr><tr><td align="left">
    7351211      2
    7361212      </td><td align="center">
    7371213      MPSREAD
    738       </td><td> </td><td align="left"><tt class="computeroutput">Problem %s has %d rows, %d columns and %d elements
    739       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1214      </td><td align="left">
     1215      </td><td align="left">
     1216      <tt class="computeroutput">Problem %s has %d rows, %d columns and %d elements
     1217      </tt>
     1218      </td></tr><tr><td colspan="3" align="left">
     1219      </td><td align="left">
     1220      <p>
    7401221      This gives statistics after reading an MPS file
    741       </p></td></tr><tr><td align="left">
     1222      </p>
     1223      </td></tr><tr><td align="left">
    7421224      8
    7431225      </td><td align="center">
    7441226      MPSREAD
    745       </td><td> </td><td align="left"><tt class="computeroutput">%s read with %d errors
    746       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1227      </td><td align="left">
     1228      </td><td align="left">
     1229      <tt class="computeroutput">%s read with %d errors
     1230      </tt>
     1231      </td></tr><tr><td colspan="3" align="left">
     1232      </td><td align="left">
     1233      <p>
    7471234      This gives error statistics for file
    748       </p></td></tr><tr><td align="left">
     1235      </p>
     1236      </td></tr><tr><td align="left">
    7491237      505
    7501238      </td><td align="center">
    7511239      PRESOLVE
    752       </td><td> </td><td align="left"><tt class="computeroutput">
     1240      </td><td align="left">
     1241      </td><td align="left">
     1242      <tt class="computeroutput">
    7531243      Presolved poblem not optimal, resolve after postsolve
    754       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1244      </tt>
     1245      </td></tr><tr><td colspan="3" align="left">
     1246      </td><td align="left">
     1247      <p>
    7551248      This could be because it was not feasible or because of maximum
    7561249      iterations.  If this message occurs then consider using primal clean up
    757       </p></td></tr><tr><td align="left">
     1250      </p>
     1251      </td></tr><tr><td align="left">
    7581252      506
    7591253      </td><td align="center">
    7601254      PRESOLVE
    761       </td><td> </td><td align="left"><tt class="computeroutput">
     1255      </td><td align="left">
     1256      </td><td align="left">
     1257      <tt class="computeroutput">
    7621258      Presolve %d (%d) rows, %d (%d) columns and %d (%d) elements
    763       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1259      </tt>
     1260      </td></tr><tr><td colspan="3" align="left">
     1261      </td><td align="left">
     1262      <p>
    7641263      The first number is the number after presolve and the number
    7651264      in parentheses is amount of reduction
    766       </p></td></tr><tr><td align="left">
     1265      </p>
     1266      </td></tr><tr><td align="left">
    7671267      510
    7681268      </td><td align="center">
    7691269      PRESOLVE
    770       </td><td> </td><td align="left"><tt class="computeroutput">
     1270      </td><td align="left">
     1271      </td><td align="left">
     1272      <tt class="computeroutput">
    7711273      Presolve is modifying %d integer bounds and re-presolving
    772       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1274      </tt>
     1275      </td></tr><tr><td colspan="3" align="left">
     1276      </td><td align="left">
     1277      <p>
    7731278      If presolve determines at the end that an integer variable have its bounds
    7741279      changed then it will repeat the entrire presolve
    775       </p></td></tr><tr><td align="left">
     1280      </p>
     1281      </td></tr><tr><td align="left">
    7761282      511
    7771283      </td><td align="center">
    7781284      PRESOLVE
    779       </td><td> </td><td align="left"><tt class="computeroutput">
     1285      </td><td align="left">
     1286      </td><td align="left">
     1287      <tt class="computeroutput">
    7801288      After Postsolve, objective %g, infeasibilities - dual %g (%d),
    7811289      primal %g (%d)
    782       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1290      </tt>
     1291      </td></tr><tr><td colspan="3" align="left">
     1292      </td><td align="left">
     1293      <p>
    7831294      This gives the state after postsolve - this gives the objective value
    7841295      and the sum of dual and primal infeasibilities with the number of
    7851296      infeasibilities in parentheses.  Hopefully these should be zero
    786       </p></td></tr><tr><td align="left">
     1297      </p>
     1298      </td></tr><tr><td align="left">
    7871299      512
    7881300      </td><td align="center">
    7891301      PRESOLVE
    790       </td><td> </td><td align="left"><tt class="computeroutput">
     1302      </td><td align="left">
     1303      </td><td align="left">
     1304      <tt class="computeroutput">
    7911305      Presolved model was optimal, full model needs cleaning up
    792       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1306      </tt>
     1307      </td></tr><tr><td colspan="3" align="left">
     1308      </td><td align="left">
     1309      <p>
    7931310      If the numbers in previous message (511) were large then maybe we need to
    7941311      know, if small then that's life
    795       </p></td></tr></tbody></table></div><div class="table"><a name="id4744902"></a><p class="title"><b>Table 6.2. 
     1312      </p>
     1313      </td></tr></tbody></table></div><div class="table"><a name="id4762574"></a><p class="title"><b>Table 6.2. 
    7961314  CLP Messages passed at or above logging level 1
    7971315  </b></p><table summary="
     
    8011319      </th><th align="center">
    8021320      Area
    803       </th><th> </th><th align="left">
     1321      </th><th align="left">
     1322      </th><th align="left">
    8041323      Text and notes
    8051324      </th></tr></thead><tbody><tr><td align="left">
     
    8071326      </td><td align="center">
    8081327      SIMPLEX
    809       </td><td> </td><td align="left"><tt class="computeroutput">
     1328      </td><td align="left">
     1329      </td><td align="left">
     1330      <tt class="computeroutput">
    8101331      Primal infeasible - objective value %g
    811       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1332      </tt>
     1333      </td></tr><tr><td colspan="3" align="left">
     1334      </td><td align="left">
     1335      <p>
    8121336      You may need to look at previous messages or use methods.  Such as
    8131337      sumPrimalInfeasibilities() to find cause
    814       </p></td></tr><tr><td align="left">
     1338      </p>
     1339      </td></tr><tr><td align="left">
    8151340      2
    8161341      </td><td align="center">
    8171342      SIMPLEX
    818       </td><td> </td><td align="left"><tt class="computeroutput">
     1343      </td><td align="left">
     1344      </td><td align="left">
     1345      <tt class="computeroutput">
    8191346      Dual infeasible - objective value %g
    820       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1347      </tt>
     1348      </td></tr><tr><td colspan="3" align="left">
     1349      </td><td align="left">
     1350      <p>
    8211351      You may need to look at previous messages or use methods.  Such as
    8221352      sumDualInfeasibilities() to find cause
    823       </p></td></tr><tr><td align="left">
     1353      </p>
     1354      </td></tr><tr><td align="left">
    8241355      3
    8251356      </td><td align="center">
    8261357      SIMPLEX
    827       </td><td> </td><td align="left"><tt class="computeroutput">
     1358      </td><td align="left">
     1359      </td><td align="left">
     1360      <tt class="computeroutput">
    8281361      Stopped - objective value %g
    829       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1362      </tt>
     1363      </td></tr><tr><td colspan="3" align="left">
     1364      </td><td align="left">
     1365      <p>
    8301366      The algorithm stopped as requested by the user.
    831       </p></td></tr><tr><td align="left">
     1367      </p>
     1368      </td></tr><tr><td align="left">
    8321369      4
    8331370      </td><td align="center">
    8341371      SIMPLEX
    835       </td><td> </td><td align="left"><tt class="computeroutput">
     1372      </td><td align="left">
     1373      </td><td align="left">
     1374      <tt class="computeroutput">
    8361375      Stopped due to errors - objective value %g
    837       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1376      </tt>
     1377      </td></tr><tr><td colspan="3" align="left">
     1378      </td><td align="left">
     1379      <p>
    8381380      Switch on log level 2 to see information on size of elements etc.  If they
    8391381      look reasonable then maybe we need to know.
    840       </p></td></tr><tr><td align="left">
     1382      </p>
     1383      </td></tr><tr><td align="left">
    8411384      5
    8421385      </td><td align="center">
    8431386      SIMPLEX
    844       </td><td> </td><td align="left"><tt class="computeroutput">
     1387      </td><td align="left">
     1388      </td><td align="left">
     1389      <tt class="computeroutput">
    8451390      %d Obj %g Primal inf %g (%d) Dual inf %g (%d)
    846       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1391      </tt>
     1392      </td></tr><tr><td colspan="3" align="left">
     1393      </td><td align="left">
     1394      <p>
    8471395      At each re-factorization this gives the number of iterations and the value
    8481396      of the objective function.  If there are primal infeasibilities then the
    8491397      sum and number are given and similarly for dual infeasibilities.
    8501398      (This is a simplified form of message.)
    851       </p></td></tr><tr><td align="left">
     1399      </p>
     1400      </td></tr><tr><td align="left">
    8521401      14
    8531402      </td><td align="center">
    8541403      SIMPLEX
    855       </td><td> </td><td align="left"><tt class="computeroutput">
     1404      </td><td align="left">
     1405      </td><td align="left">
     1406      <tt class="computeroutput">
    8561407      Perturbing problem by %g % of %g
    857       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1408      </tt>
     1409      </td></tr><tr><td colspan="3" align="left">
     1410      </td><td align="left">
     1411      <p>
    8581412      There is more to this message but if the user sees this then s/he has
    8591413      chosen to perturb the problem or the algorithm has decided to do so.
    8601414      If the numbers look too large the user may wish to think again.
    861       </p></td></tr><tr><td align="left">
     1415      </p>
     1416      </td></tr><tr><td align="left">
    8621417      19
    8631418      </td><td align="center">
    8641419      SIMPLEX
    865       </td><td> </td><td align="left"><tt class="computeroutput">
     1420      </td><td align="left">
     1421      </td><td align="left">
     1422      <tt class="computeroutput">
    8661423      %d variables/rows fixed as scaled bounds too close
    867       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1424      </tt>
     1425      </td></tr><tr><td colspan="3" align="left">
     1426      </td><td align="left">
     1427      <p>
    8681428      If this occurs look carefully at your input data
    869       </p></td></tr><tr><td align="left">
     1429      </p>
     1430      </td></tr><tr><td align="left">
    8701431      24
    8711432      </td><td align="center">
    8721433      SIMPLEX
    873       </td><td> </td><td align="left"><tt class="computeroutput">
     1434      </td><td align="left">
     1435      </td><td align="left">
     1436      <tt class="computeroutput">
    8741437      Matrix will be packed to eliminate small elements
    875       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1438      </tt>
     1439      </td></tr><tr><td colspan="3" align="left">
     1440      </td><td align="left">
     1441      <p>
    8761442      If this occurs the user should look carefully at data.
    877       </p></td></tr><tr><td align="left">
     1443      </p>
     1444      </td></tr><tr><td align="left">
    8781445      26
    8791446      </td><td align="center">
    8801447      SIMPLEX
    881       </td><td> </td><td align="left"><tt class="computeroutput">
     1448      </td><td align="left">
     1449      </td><td align="left">
     1450      <tt class="computeroutput">
    8821451      Matrix will be packed to eliminate %d duplicate elements
    883       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1452      </tt>
     1453      </td></tr><tr><td colspan="3" align="left">
     1454      </td><td align="left">
     1455      <p>
    8841456      If this occurs the user should look carefully at data.
    885       </p></td></tr><tr><td align="left">
     1457      </p>
     1458      </td></tr><tr><td align="left">
    8861459      28
    8871460      </td><td align="center">
    8881461      SIMPLEX
    889       </td><td> </td><td align="left"><tt class="computeroutput">
     1462      </td><td align="left">
     1463      </td><td align="left">
     1464      <tt class="computeroutput">
    8901465      Crash put %d variables in basis, %d dual infeasibilities
    891       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1466      </tt>
     1467      </td></tr><tr><td colspan="3" align="left">
     1468      </td><td align="left">
     1469      <p>
    8921470     
    893       </p></td></tr><tr><td align="left">
     1471      </p>
     1472      </td></tr><tr><td align="left">
    8941473      29
    8951474      </td><td align="center">
    8961475      SIMPLEX
    897       </td><td> </td><td align="left"><tt class="computeroutput">
     1476      </td><td align="left">
     1477      </td><td align="left">
     1478      <tt class="computeroutput">
    8981479      End of values pass after %d iterations
    899       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1480      </tt>
     1481      </td></tr><tr><td colspan="3" align="left">
     1482      </td><td align="left">
     1483      <p>
    9001484      ??? If primal(1) or dual(1) the a sweep through model is made and this
    9011485      signals end of pass.
    902       </p></td></tr></tbody></table></div><div class="table"><a name="id4745586"></a><p class="title"><b>Table 6.3. 
     1486      </p>
     1487      </td></tr></tbody></table></div><div class="table"><a name="id4763258"></a><p class="title"><b>Table 6.3. 
    9031488  COIN Messages passed at or above logging level 0
    9041489  </b></p><table summary="
     
    9081493      </th><th align="center">
    9091494      Area
    910       </th><th> </th><th align="left">
     1495      </th><th align="left">
     1496      </th><th align="left">
    9111497      Text and notes
    9121498      </th></tr></thead><tbody><tr><td align="left">
     
    9141500      </td><td align="center">
    9151501      MPSREAD
    916       </td><td> </td><td align="left"><tt class="computeroutput">
     1502      </td><td align="left">
     1503      </td><td align="left">
     1504      <tt class="computeroutput">
    9171505      Illegal value for %s of %g
    918       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1506      </tt>
     1507      </td></tr><tr><td colspan="3" align="left">
     1508      </td><td align="left">
     1509      <p>
    9191510      String will be "infinity" if setInfinity passed bad value,
    9201511      or "default integer bound" if setDefaultBound passed bad value.
    921       </p></td></tr><tr><td align="left">
     1512      </p>
     1513      </td></tr><tr><td align="left">
    9221514      3002
    9231515      </td><td align="center">
    9241516      MPSREAD
    925       </td><td> </td><td align="left"><tt class="computeroutput">
     1517      </td><td align="left">
     1518      </td><td align="left">
     1519      <tt class="computeroutput">
    9261520      Bad image at line %d &lt; %s &gt;
    927       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1521      </tt>
     1522      </td></tr><tr><td colspan="3" align="left">
     1523      </td><td align="left">
     1524      <p>
    9281525      This gives line number and the offending line
    929       </p></td></tr><tr><td align="left">
     1526      </p>
     1527      </td></tr><tr><td align="left">
    9301528      3003
    9311529      </td><td align="center">
    9321530      MPSREAD
    933       </td><td> </td><td align="left"><tt class="computeroutput">
     1531      </td><td align="left">
     1532      </td><td align="left">
     1533      <tt class="computeroutput">
    9341534      Duplicate objective at line %d &lt; %s &gt;
    935       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1535      </tt>
     1536      </td></tr><tr><td colspan="3" align="left">
     1537      </td><td align="left">
     1538      <p>
    9361539      An objective row appears twice in one column
    937       </p></td></tr><tr><td align="left">
     1540      </p>
     1541      </td></tr><tr><td align="left">
    9381542      3004
    9391543      </td><td align="center">
    9401544      MPSREAD
    941       </td><td> </td><td align="left"><tt class="computeroutput">
     1545      </td><td align="left">
     1546      </td><td align="left">
     1547      <tt class="computeroutput">
    9421548      Duplicate row %s at line %d %s
    943       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1549      </tt>
     1550      </td></tr><tr><td colspan="3" align="left">
     1551      </td><td align="left">
     1552      <p>
    9441553      The named row appears twice in one column.
    945       </p></td></tr><tr><td align="left">
     1554      </p>
     1555      </td></tr><tr><td align="left">
    9461556      3005
    9471557      </td><td align="center">
    9481558      MPSREAD
    949       </td><td> </td><td align="left"><tt class="computeroutput">
     1559      </td><td align="left">
     1560      </td><td align="left">
     1561      <tt class="computeroutput">
    9501562      No match for row %s at line %d &lt; %s &gt;
    951       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1563      </tt>
     1564      </td></tr><tr><td colspan="3" align="left">
     1565      </td><td align="left">
     1566      <p>
    9521567      The named row did not appear in ROWS section.
    953       </p></td></tr><tr><td align="left">
     1568      </p>
     1569      </td></tr><tr><td align="left">
    9541570      3006
    9551571      </td><td align="center">
    9561572      MPSREAD
    957       </td><td> </td><td align="left"><tt class="computeroutput">
     1573      </td><td align="left">
     1574      </td><td align="left">
     1575      <tt class="computeroutput">
    9581576      No match for column at line %d &lt; %s &gt;
    959       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1577      </tt>
     1578      </td></tr><tr><td colspan="3" align="left">
     1579      </td><td align="left">
     1580      <p>
    9601581      The named column (in BOUNDS section) did not appear in COLUMNS section.
    961       </p></td></tr><tr><td align="left">
     1582      </p>
     1583      </td></tr><tr><td align="left">
    9621584      6001
    9631585      </td><td align="center">
    9641586      MPSREAD
    965       </td><td> </td><td align="left"><tt class="computeroutput">
     1587      </td><td align="left">
     1588      </td><td align="left">
     1589      <tt class="computeroutput">
    9661590      Unable to open mps input file %s
    967       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1591      </tt>
     1592      </td></tr><tr><td colspan="3" align="left">
     1593      </td><td align="left">
     1594      <p>
    9681595     
    969       </p></td></tr><tr><td align="left">
     1596      </p>
     1597      </td></tr><tr><td align="left">
    9701598      6002
    9711599      </td><td align="center">
    9721600      MPSREAD
    973       </td><td> </td><td align="left"><tt class="computeroutput">
     1601      </td><td align="left">
     1602      </td><td align="left">
     1603      <tt class="computeroutput">
    9741604      Unknown image %s at line %d of file %s
    975       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1605      </tt>
     1606      </td></tr><tr><td colspan="3" align="left">
     1607      </td><td align="left">
     1608      <p>
    9761609      The Mps reader could not make sense of the image file specified.
    977       </p></td></tr><tr><td align="left">
     1610      </p>
     1611      </td></tr><tr><td align="left">
    9781612      6003
    9791613      </td><td align="center">
    9801614      MPSREAD
    981       </td><td> </td><td align="left"><tt class="computeroutput">
     1615      </td><td align="left">
     1616      </td><td align="left">
     1617      <tt class="computeroutput">
    9821618      Consider the possibility of a compressed file which zlib is unable to read.
    983       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1619      </tt>
     1620      </td></tr><tr><td colspan="3" align="left">
     1621      </td><td align="left">
     1622      <p>
    9841623      Some .gz files can not be read by zlib.  Using gunzip and then gzip
    9851624      normally cures problem.
    986       </p></td></tr><tr><td align="left">
     1625      </p>
     1626      </td></tr><tr><td align="left">
    9871627      6004
    9881628      </td><td align="center">
    9891629      MPSREAD
    990       </td><td> </td><td align="left"><tt class="computeroutput">
     1630      </td><td align="left">
     1631      </td><td align="left">
     1632      <tt class="computeroutput">
    9911633      EOF on file %s
    992       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1634      </tt>
     1635      </td></tr><tr><td colspan="3" align="left">
     1636      </td><td align="left">
     1637      <p>
    9931638      The Mps reader did not find expected section marker.     
    994       </p></td></tr><tr><td align="left">
     1639      </p>
     1640      </td></tr><tr><td align="left">
    9951641      6005
    9961642      </td><td align="center">
    9971643      MPSREAD
    998       </td><td> </td><td align="left"><tt class="computeroutput">
     1644      </td><td align="left">
     1645      </td><td align="left">
     1646      <tt class="computeroutput">
    9991647      Returning as too many errors
    1000       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1648      </tt>
     1649      </td></tr><tr><td colspan="3" align="left">
     1650      </td><td align="left">
     1651      <p>
    10011652      The reader has put out 100 messages and is giving up.
    1002       </p></td></tr><tr><td align="left">
     1653      </p>
     1654      </td></tr><tr><td align="left">
    10031655      507
    10041656      </td><td align="center">
    10051657      PRESOLVE
    1006       </td><td> </td><td align="left"><tt class="computeroutput">
     1658      </td><td align="left">
     1659      </td><td align="left">
     1660      <tt class="computeroutput">
    10071661      Presolve determined that the problem is infeasible with tolerance of %g
    1008       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1662      </tt>
     1663      </td></tr><tr><td colspan="3" align="left">
     1664      </td><td align="left">
     1665      <p>
    10091666      If you want you can try with a larger tolerance
    1010       </p></td></tr><tr><td align="left">
     1667      </p>
     1668      </td></tr><tr><td align="left">
    10111669      508
    10121670      </td><td align="center">
    10131671      PRESOLVE
    1014       </td><td> </td><td align="left"><tt class="computeroutput">
     1672      </td><td align="left">
     1673      </td><td align="left">
     1674      <tt class="computeroutput">
    10151675      Presolve thinks problem is unbounded
    1016       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1676      </tt>
     1677      </td></tr><tr><td colspan="3" align="left">
     1678      </td><td align="left">
     1679      <p>
    10171680      Perhaps the user should maximize if initially minimizing or vice versa.
    1018       </p></td></tr><tr><td align="left">
     1681      </p>
     1682      </td></tr><tr><td align="left">
    10191683      509
    10201684      </td><td align="center">
    10211685      PRESOLVE
    1022       </td><td> </td><td align="left"><tt class="computeroutput">
     1686      </td><td align="left">
     1687      </td><td align="left">
     1688      <tt class="computeroutput">
    10231689      Presolve thinks problem is infeasible AND unbounded???
    1024       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1690      </tt>
     1691      </td></tr><tr><td colspan="3" align="left">
     1692      </td><td align="left">
     1693      <p>
    10251694      If you get this message we want to know
    1026       </p></td></tr></tbody></table></div><div class="table"><a name="id4746365"></a><p class="title"><b>Table 6.4. 
     1695      </p>
     1696      </td></tr></tbody></table></div><div class="table"><a name="id4764037"></a><p class="title"><b>Table 6.4. 
    10271697  CLP Messages passed at or above logging level 0
    10281698  </b></p><table summary="
     
    10321702      </th><th align="center">
    10331703      Area
    1034       </th><th> </th><th align="left">
     1704      </th><th align="left">
     1705      </th><th align="left">
    10351706      Text and notes
    10361707      </th></tr></thead><tbody><tr><td align="left">
     
    10381709      </td><td align="center">
    10391710      SIMPLEX
    1040       </td><td> </td><td align="left"><tt class="computeroutput">
     1711      </td><td align="left">
     1712      </td><td align="left">
     1713      <tt class="computeroutput">
    10411714      Not solving empty problem - %d rows, %d columns and %d elements
    1042       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1715      </tt>
     1716      </td></tr><tr><td colspan="3" align="left">
     1717      </td><td align="left">
     1718      <p>
    10431719      Test problem size before solving.
    1044       </p></td></tr><tr><td align="left">
     1720      </p>
     1721      </td></tr><tr><td align="left">
    10451722      6002
    10461723      </td><td align="center">
    10471724      SIMPLEX
    1048       </td><td> </td><td align="left"><tt class="computeroutput">
     1725      </td><td align="left">
     1726      </td><td align="left">
     1727      <tt class="computeroutput">
    10491728      %d bad bound pairs or bad objectives were found
    1050       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1729      </tt>
     1730      </td></tr><tr><td colspan="3" align="left">
     1731      </td><td align="left">
     1732      <p>
    10511733      Either the value in the objective was too large or a lower bound was
    10521734      greater than an upper bound.
    1053       </p></td></tr><tr><td align="left">
     1735      </p>
     1736      </td></tr><tr><td align="left">
    10541737      6003
    10551738      </td><td align="center">
    10561739      SIMPLEX
    1057       </td><td> </td><td align="left"><tt class="computeroutput">
     1740      </td><td align="left">
     1741      </td><td align="left">
     1742      <tt class="computeroutput">
    10581743      Matrix has %d large values, first at column %d, row %d is %g
    1059       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1744      </tt>
     1745      </td></tr><tr><td colspan="3" align="left">
     1746      </td><td align="left">
     1747      <p>
    10601748      Some of the values in matrix are ridiculous.
    1061       </p></td></tr><tr><td align="left">
     1749      </p>
     1750      </td></tr><tr><td align="left">
    10621751      6004
    10631752      </td><td align="center">
    10641753      SIMPLEX
    1065       </td><td> </td><td align="left"><tt class="computeroutput">
     1754      </td><td align="left">
     1755      </td><td align="left">
     1756      <tt class="computeroutput">
    10661757      Can't get out of loop ...
    1067       </tt></td></tr><tr><td colspan="3"> </td><td align="left"><p>
     1758      </tt>
     1759      </td></tr><tr><td colspan="3" align="left">
     1760      </td><td align="left">
     1761      <p>
    10681762     
    1069       </p></td></tr></tbody></table></div><p>
     1763      </p>
     1764      </td></tr></tbody></table></div><p>
    10701765  There are also messages available at log level 2 (the most likely useful relate
    10711766  to scaling), and will be addressed in a future version of this User Guide.
    1072   </p></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4749045"></a>Appendix A. FAQ</h2></div></div><div></div></div><div class="qandaset"><dl><dt>Q: <a href="#id4749124">
     1767  </p></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4766717"></a>Appendix A. FAQ</h2></div></div></div><div class="qandaset"><dl><dt>Q: <a href="#id4766796">
    10731768  What is CLP?
    1074   </a></dt><dt>Q: <a href="#id4749083">
     1769  </a></dt><dt>Q: <a href="#id4766755">
    10751770  What are some of the features of CLP?
    1076   </a></dt><dt>Q: <a href="#id4749998">
     1771  </a></dt><dt>Q: <a href="#id4767748">
     1772  How do I obtain and install CLP?
     1773  </a></dt><dt>Q: <a href="#id4767784">
     1774  Is CLP reliable?
     1775  </a></dt><dt>Q: <a href="#id4767816">
     1776  On which platforms does CLP run?   
     1777  </a></dt><dt>Q: <a href="#id4767867">
     1778  Is there any documentation for CLP? 
     1779  </a></dt><dt>Q: <a href="#id4767905">
     1780  Is CLP as fast as OSL?
     1781  </a></dt><dt>Q: <a href="#id4767926">
     1782  When will version 1.0 of CLP be available? 
     1783  </a></dt><dt>Q: <a href="#id4767958">
    10771784  The barrier method sounds interesting, what are some of the details?
    1078   </a></dt><dt>Q: <a href="#id4750024">
    1079   How do I obtain and install CLP?
    1080   </a></dt><dt>Q: <a href="#id4750060">
    1081   Is CLP reliable?
    1082   </a></dt><dt>Q: <a href="#id4750087">
    1083   On which platforms does CLP run?   
    1084   </a></dt><dt>Q: <a href="#id4750138">
    1085   Is there any documentation for CLP? 
    1086   </a></dt><dt>Q: <a href="#id4750171">
    1087   Is CLP as fast as OSL?
    1088   </a></dt><dt>Q: <a href="#id4750192">
    1089   When will version 1.0 of CLP be available? 
    1090   </a></dt><dt>Q: <a href="#id4750223">
     1785  </a></dt><dt>Q: <a href="#id4767983">
     1786  Which Cholesky factorizations codes are supported by CLP's barrier method?
     1787  </a></dt><dt>Q: <a href="#id4768047">
     1788  When will CLP have a good native ordering?
     1789  </a></dt><dt>Q: <a href="#id4768068">
     1790  Is the barrier code as mature as the simplex code?
     1791  </a></dt><dt>Q: <a href="#id4768093">
     1792  Which algorithm should I use for quadratic programming and should I keep an
     1793  eye open for any issues?
     1794  </a></dt><dt>Q: <a href="#id4768125">
    10911795  What can the community do to help?
    1092   </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id4749124"></a><a name="id4749126"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1796  </a></dt></dl><table border="0" summary="Q and A Set"><col align="left" width="1%"><tbody><tr class="question"><td align="left" valign="top"><a name="id4766796"></a><a name="id4766799"></a><b>Q:</b></td><td align="left" valign="top"><p>
    10931797  What is <a href="http://www.coin-or.org/Clp/" target="_top">CLP</a>?
    10941798  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     
    10981802  CLP is written in C++, and is primarily intended to be used as a callable
    10991803  library (though a rudimentary stand-alone executable exists).
    1100   The first release was version .90.  The current release is version .99.8.
    1101   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4749083"></a><a name="id4749085"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1804  The first release was version .90.  The current release is version .99.9.
     1805  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4766755"></a><a name="id4766757"></a><b>Q:</b></td><td align="left" valign="top"><p>
    11021806  What are some of the features of CLP?
    11031807  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    11041808  (DN 08/27/04) CLP includes primal and dual Simplex solvers.  Both dual and primal algorithms
    11051809  can use matrix storage methods provided by the user (0-1 and network matrices
    1106   already supported in addition the default sparse matrix). The dual algorithm
    1107   has Dantzig and Steepest edge row pivot choices and new ones may be provided by
     1810  are already supported in addition to the default sparse matrix). The dual algorithm
     1811  has Dantzig and Steepest edge row pivot choices; new ones may be provided by
    11081812  the user. The same is true for the column pivot choice of the primal algorithm.
    11091813  The primal can also use a non linear cost which should work for piecewise
    11101814  linear convex functions.  CLP also includes a barrier method for solving LPs.
    1111   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4749998"></a><a name="id4750000"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1815  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767748"></a><a name="id4767750"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1816  How do I obtain and install CLP?
     1817  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1818  (DN 08/27/04) Please see the
     1819  <a href="http://www.coin-or.org/faqs.html" target="_top">COIN-OR FAQ</a>
     1820  for details on how to
     1821  <a href="http://www.coin-or.org/faqs.html#ObtainSrcCode" target="_top">obtain</a>
     1822  and
     1823  <a href="http://www.coin-or.org/faqs.html#BuildCode" target="_top">install</a>
     1824  COIN-OR modules.
     1825  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767784"></a><a name="id4767786"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1826  Is CLP reliable?
     1827  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1828  (DN 09/07/04) CLP has been tested on many problems of up to 1.5 million
     1829  constraints and has shown itself as reliable as OSL. It is also being tested
     1830  in the context of
     1831  <a href="http://www.coin-or.org/faqs.html#SBB" target="_top">SBB</a>
     1832  ("Simple Branch and Bound", which is used to solve integer
     1833  programs), but more testing is needed before it can get to version 1.0.
     1834  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767816"></a><a name="id4767818"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1835  On which platforms does CLP run?   
     1836  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1837  (DN 08/27/04) CLP compiles and has been tested (to varying degrees) on the following
     1838  platforms:
     1839  </p><div class="itemizedlist"><ul type="disc"><li><p>
     1840  Linux using g++ version 3.1.1 (or later)
     1841  </p></li><li><p>
     1842  Windows using Microsoft Visual C++ 6
     1843  </p></li><li><p>
     1844  Windows using cygwin
     1845  </p></li><li><p>
     1846  AIX using xIC (not supported in the current Makefile)
     1847  </p></li></ul></div></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767867"></a><a name="id4767869"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1848  Is there any documentation for CLP? 
     1849  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1850  (DN 09/16/04) An early release of a User Guide is available on the
     1851  <a href="http://www.coin-or.org/Clp/documentation.html" target="_top">CLP documentation webpage</a>.
     1852  Also available is a list of
     1853  <a href="http://www.coin-or.org/Doxygen/Clp/" target="_top">CLP class descriptions</a> generated
     1854  by <a href="http://www.doxygen.org" target="_top">Doxygen</a>.
     1855  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767905"></a><a name="id4767907"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1856  Is CLP as fast as OSL?
     1857  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1858   (DN 08/27/04) CLP uses sparse matrix techniques designed for very large
     1859   problems. The design criteria were for it not to be too slow. Some speed
     1860   has been sacrificed to make the code less opaque OSL (not difficult!).
     1861  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767926"></a><a name="id4767928"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1862  When will version 1.0 of CLP be available? 
     1863  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     1864  (DN 08/27/04) It is expected that version 1.0 will be released in time for the 2004
     1865  <a href="http://www.informs.org" target="_top">INFORMS</a>
     1866  <a href="http://www.informs.org/Conf/Denver2004/" target="_top">Annual Meeting</a>
     1867  (24-27 October, 2004).
     1868  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767958"></a><a name="id4767960"></a><b>Q:</b></td><td align="left" valign="top"><p>
    11121869  The barrier method sounds interesting, what are some of the details?
    11131870  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
     
    11171874  expected to have a reasonable factorization implementation by the release of
    11181875  CLP version 1.0.  However, the sparse factorization requires a good ordering
    1119   algorithm, which the user is expected to provide the ordering code, and
    1120   perhaps a better factorization code as well.
    1121   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750024"></a><a name="id4750026"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1122   How do I obtain and install CLP?
     1876  algorithm, which the user is expected to provide (perhaps a better
     1877  factorization code as well).
     1878  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4767983"></a><a name="id4767985"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1879  Which Cholesky factorizations codes are supported by CLP's barrier method?
    11231880  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1124   (DN 08/27/04) Please see the
    1125   <a href="http://www.coin-or.org/faqs.html/" target="_top">COIN-OR FAQ</a>
    1126   for details on how to
    1127   <a href="http://www.coin-or.org/faqs.html/#ObtainSrcCode" target="_top">obtain</a>
    1128   and
    1129   <a href="http://www.coin-or.org/faqs.html/#BuildCode" target="_top">install</a>
    1130   COIN-OR modules.
    1131   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750060"></a><a name="id4750062"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1132   Is CLP reliable?
     1881  (DN 09/16/04) The Cholesky interface is flexible enough so that a variety of Cholesky
     1882  ordering and factorization codes can be used.  Interfaces are provided to each
     1883  of the following:
     1884  </p><div class="itemizedlist"><ul type="disc"><li><p>
     1885  Anshul Gupta's WSSMP parallel enabled ordering and factorization code
     1886  </p></li><li><p>
     1887  Sivan Toledo's TAUCS parallel enabled factorization code (the package includes
     1888  third party ordering codes)
     1889  </p></li><li><p>
     1890  University of Florida's Approximate Minimum Degree (AMD) ordering code (the
     1891  CLP native factorization code is used with this ordering code)
     1892  </p></li><li><p>
     1893  CLP native code: very weak ordering but competitive nonparallel factorization
     1894  </p></li><li><p>
     1895  Fast dense factorization
     1896  </p></li></ul></div><p>
     1897  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4768047"></a><a name="id4768049"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1898  When will CLP have a good native ordering?
    11331899  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1134   (DN 08/27/04) CLP has been tested on many problems of up to 1.5 million constraints and has
    1135   shown itself as reliable as OSL. It is also being tested in the context of
    1136   <a href="http://www.coin-or.org/faqs.html#SBB" target="_top">SBB</a>, but more testing
    1137   is needed before it can get to version 1.0.
    1138   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750087"></a><a name="id4750089"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1139   On which platforms does CLP run?   
     1900  (DN 09/16/04) The best outcome would be to have an existing ordering code available as part
     1901  of the COIN distribution under the CPL.  However, if this is not possible, the
     1902  native ordering will be made respectable.
     1903  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4768068"></a><a name="id4768070"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1904  Is the barrier code as mature as the simplex code?
    11401905  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1141   (DN 08/27/04) CLP compiles and has been tested (to varying degrees) on the following
    1142   platforms:
    1143   </p><div class="itemizedlist"><ul type="disc"><li><p>
    1144   Linux using g++ version 3.1.1 (or later).
    1145   </p></li><li><p>
    1146   Windows using Microsoft Visual C++ 6
    1147   </p></li><li><p>
    1148   Windows using cygwin
    1149   </p></li><li><p>
    1150   AIX using xIC (not supported in the current Makefile)
    1151   </p></li></ul></div></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750138"></a><a name="id4750140"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1152   Is there any documentation for CLP? 
     1906  (DN 09/16/04) The simplex code has been exposed to user testing for more than a year and
     1907  and the principal author, John Forrest, knows more about simplex algorithms
     1908  than interior point algorithms, so the answer is "no".  However, it
     1909  performs well on test sets and seems to be more reliable than some
     1910  commercially available codes (including OSL).
     1911  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4768093"></a><a name="id4768095"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1912  Which algorithm should I use for quadratic programming and should I keep an
     1913  eye open for any issues?
    11531914  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1154   (DN 08/27/04) A User Guide should be available in time for the release of version 1.0 of CLP.
    1155   Also available is a list of
    1156   <a href="http://www.coin-or.org/Doxygen/Clp/" target="_top">CLP class descriptions</a>.
    1157   More on CLP documentation is available on the
    1158   <a href="http://www.coin-or.org/Clp/documentation.html" target="_top">CLP documentation webpage</a>.
    1159   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750171"></a><a name="id4750173"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1160   Is CLP as fast as OSL?
    1161   </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1162    (DN 08/27/04) It uses sparse techniques designed for very large problems. The design
    1163    criteria were for it not to be too slow. Some speed has been sacrificed
    1164    to make the code less opaque than OSL (not difficult!).
    1165   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750192"></a><a name="id4750194"></a><b>Q:</b></td><td align="left" valign="top"><p>
    1166   When will version 1.0 of CLP be available? 
    1167   </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1168   (DN 08/27/04) It is expected that version 1.0 will be released in time for the 2004
    1169   <a href="http://www.informs.org" target="_top">INFORMS</a>
    1170   <a href="http://www.informs.org/Conf/Denver2004/" target="_top">Annual Meeting</a>
    1171   (24-27 October, 2004).
    1172   </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4750223"></a><a name="id4750226"></a><b>Q:</b></td><td align="left" valign="top"><p>
     1915  (DN 09/16/04) The interior point algorithm for quadratic programming is much more elegant
     1916  and normally much faster than the quadratic simplex code.  Caution is
     1917  suggested with the presolve as not all bugs have been found and squashed when
     1918  a quadratic objective is used.  One may wish to switch off the crossover to a
     1919  basic feasible solution as the simplex code can be slow.  The sequential
     1920  linear code is useful as a "crash" to the simplex code; its
     1921  convergence is poor but, say, 100 iterations could set up the problem well for
     1922  the simplex code.
     1923  </p></td></tr><tr class="question"><td align="left" valign="top"><a name="id4768125"></a><a name="id4768127"></a><b>Q:</b></td><td align="left" valign="top"><p>
    11731924  What can the community do to help?
    11741925  </p></td></tr><tr class="answer"><td align="left" valign="top"><b>A:</b></td><td align="left" valign="top"><p>
    1175   (DN 08/27/04) A lot!  A good first step would be to join the CLP
     1926  (DN 09/09/04) A lot!  A good first step would be to join the CLP
    11761927  <a href="http://www.coin-or.org/mail.html" target="_top">mailing lists</a>.  Some
    11771928  other possibilities:
     
    11831934  Add non-English language support in your own favo(u)rite language.
    11841935  </p></li><li><p>
    1185   Improve the Clp executable
     1936  Improve the CLP executable.  In particular it would be nice to be able to link
     1937  the executable's online help system with the existing CLP Samples (e.g. entering
     1938  <b class="userinput"><tt>presol???</tt></b> would give the user references to all
     1939  CLP Sample files which use presolve).
    11861940  </p></li><li><p>
    1187   Etc.
    1188   </p></li></ul></div></td></tr></tbody></table></div></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4749978"></a>Appendix B. Doxygen</h2></div></div><div></div></div><p>
    1189 There is Doxygen content for CLP available online at
     1941  Implement a dual Simplex method for QPs (quadratic programs)
     1942  </p></li><li><p>
     1943  Implement a parametric Simplex method
     1944  </p></li><li><p>
     1945  Implement a true network Simplex method (network matrix and factorization
     1946  are already in place, but the method is not)
     1947  </p></li><li><p>
     1948  Fill the holes in the barrier method mentioned above.
     1949  </p></li></ul></div></td></tr></tbody></table></div></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="doxygen"></a>Appendix B. Doxygen</h2></div></div></div><p>
     1950There is <a href="http://www.doxygen.org" target="_top">Doxygen</a>
     1951content for CLP available online at
    11901952<a href="http://www.coin-or.org/Doxygen/Clp/index.html" target="_top">
    1191 http://www.coin-or.org/Doxygen/Clp/index.html</a>.
    1192 </p></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4749947"></a>Appendix C. Revision History</h2></div></div><div></div></div><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.3</td><td align="left">19 Aug 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Major overhaul, including transition from MS Word to DocBook
     1953http://www.coin-or.org/Doxygen/Clp/index.html</a>.  A local version of the
     1954Doxygen content can be generated from the CLP distribution.  To do so, in the
     1955directory <tt class="filename">COIN/Clp</tt>, enter <b class="userinput"><tt>make doc</tt></b>.
     1956The Doxygen content will be created in the directory
     1957<tt class="filename">COIN/Clp/Doc/html</tt>.  The same can be done for
     1958the COIN core, from the <tt class="filename">COIN/Coin</tt> directory.
     1959</p></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="id4768638"></a>Appendix C. Revision History</h2></div></div></div><div class="revhistory"><table border="0" width="100%" summary="Revision history"><tr><th align="left" valign="top" colspan="3"><b>Revision History</b></th></tr><tr><td align="left">Revision 0.4</td><td align="left">18 Oct 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Second official release, including some corrections,
     1960  clarifications, and several improvements (better treatment of clp
     1961  executable and Samples).
     1962  </td></tr><tr><td align="left">Revision 0.3</td><td align="left">19 Aug 2004</td><td align="left">DdlN</td></tr><tr><td align="left" colspan="3">Major overhaul, including transition from MS Word to DocBook
    11931963    XML.
    11941964  </td></tr><tr><td align="left">Revision 0.2</td><td align="left">23 Feb 2004</td><td align="left">RLH</td></tr><tr><td align="left" colspan="3">Revisions to make it clearer to the non-author reader.</td></tr><tr><td align="left">Revision 0.1</td><td align="left">Nov 2003</td><td align="left">JF</td></tr><tr><td align="left" colspan="3">First draft</td></tr></table></div></div></div></body></html>
  • html/trunk/Clp/userguide/index.html

    r956 r966  
    1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>CLP User Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="CLP User Manual"><link rel="next" href="ch01.html" title="Chapter 1. 
     1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>CLP User Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="CLP User Guide"><link rel="next" href="ch01.html" title="Chapter 1. 
    22    Introduction
    3   "></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">CLP User Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="clpuserguide"></a>CLP User Manual</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">
     3  "></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">CLP User Guide</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="clpuserguide"></a>CLP User Guide</h1></div><div><div class="authorgroup"><div class="author"><h3 class="author"><span class="firstname">
    44    John
    55    </span> <span class="surname">
     
    1919    </span></h3><div class="affiliation"><span class="orgname">
    2020      IBM Research
    21       <br></span></div><tt class="email">&lt;<a href="mailto:robinlh%20at%20us%20dot%20ibm%20dot%20com">robinlh at us dot ibm dot com</a>&gt;</tt></div></div></div><div><p class="copyright">Copyright © 2004 IBM Coportation</p></div><div><div class="legalnotice">
     21      <br></span></div><tt class="email">&lt;<a href="mailto:robinlh%20at%20us%20dot%20ibm%20dot%20com">robinlh at us dot ibm dot com</a>&gt;</tt></div></div></div><div><p class="copyright">Copyright © 2004 IBM Coportation</p></div><div><div class="legalnotice"><a name="id4704297"></a>
    2222CLP and this documentation are provided under the terms of the
    2323<a href="http://opensource.org/licenses/cpl.php" target="_top">Common Public License
    24 </a>.  Any use, reproduction or distribution of the programs constitutes
     24 ("CPL")</a>.  Any use, reproduction or distribution of the programs constitutes
    2525the recipient's acceptance of the license.  The
    2626<a href="http://opensource.org/licenses/cpl.php" target="_top">CPL</a> is approved by
     
    3131CPL FAQ</a> available which is based on IBM's understanding of the
    3232<a href="http://opensource.org/licenses/cpl.php" target="_top">CPL</a>.
    33 </div></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="ch01.html">1.
     33</div></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="chapter"><a href="ch01.html">1.
    3434    Introduction
    35   </a></span></dt><dt><span class="chapter"><a href="ch02.html">2.
     35  </a></span></dt><dd><dl><dt><span class="section"><a href="ch01.html#id4704440">
     36  Welcome to CLP!
     37  </a></span></dt><dt><span class="section"><a href="ch01s02.html">
     38  Prerequisites
     39  </a></span></dt></dl></dd><dt><span class="chapter"><a href="ch02.html">2.
    3640  Basic Model Classes
    37   </a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#id4694285">
     41  </a></span></dt><dd><dl><dt><span class="section"><a href="ch02.html#hierarchy">
    3842  Hierarchy
    3943  </a></span></dt><dt><span class="section"><a href="ch02s02.html">
     
    5155  </a></span></dt><dd><dl><dt><span class="section"><a href="ch03.html#pivotchoices">Pivot Choices</a></span></dt><dt><span class="section"><a href="ch03s02.html">Matrix Classes</a></span></dt><dt><span class="section"><a href="ch03s03.html">Message Handling</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch04.html">4.
    5256More Samples
    53 </a></span></dt><dt><span class="chapter"><a href="ch05.html">5.
     57</a></span></dt><dd><dl><dt><span class="section"><a href="ch04.html#id4772901">CLP's Samples Directory</a></span></dt><dd><dl><dt><span class="section"><a href="ch04.html#minimumcppdesc">minimum.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#defaultscppdesc">defaults.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#drivercppdesc">driver.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#networkcppdesc">network.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#testbarriercppdesc">testBarrier.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774185">dualCuts.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774208">decompose.cpp</a></span></dt><dt><span class="section"><a href="ch04.html#id4774225">driver2.cpp</a></span></dt></dl></dd><dt><span class="section"><a href="ch04s02.html">Common CLP Tasks in the Samples</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch05.html">5.
    5458  The CLP Executable
    55   </a></span></dt><dt><span class="chapter"><a href="ch06.html">6.
     59  </a></span></dt><dd><dl><dt><span class="section"><a href="ch05.html#id4776091">Quick Start</a></span></dt><dt><span class="section"><a href="ch05s02.html">
     60  Online Help and Basic Usage
     61  </a></span></dt><dt><span class="section"><a href="ch05s03.html">A Sample Session</a></span></dt></dl></dd><dt><span class="chapter"><a href="ch06.html">6.
    5662  Messages
    57   </a></span></dt><dt><span class="appendix"><a href="apa.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="apb.html">B. Doxygen</a></span></dt><dt><span class="appendix"><a href="apc.html">C. Revision History</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="ch02s03.html#id4757888">
     63  </a></span></dt><dt><span class="appendix"><a href="apa.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="apb.html">B. Doxygen</a></span></dt><dt><span class="appendix"><a href="apc.html">C. Revision History</a></span></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>2.1. <a href="ch02s03.html#id4768629">
    5864  Methods for getting solution information
    59   </a></dt><dt>2.2. <a href="ch02s06.html#id4758490">Some Useful Set and Get Methods</a></dt><dt>2.3. <a href="ch02s07.html#id4758879">Common Simplex-specific methods</a></dt><dt>2.4. <a href="ch02s09.html#id4759355">Possible states of a variable</a></dt><dt>4.1. <a href="ch04.html#id4761596">Contents of the Samples directory</a></dt><dt>5.1. <a href="ch05.html#id4763197">Command examples for the clp executable</a></dt><dt>6.1. <a href="ch06.html#id4760738">
     65  </a></dt><dt>2.2. <a href="ch02s06.html#id4769146">Some Useful Set and Get Methods</a></dt><dt>2.3. <a href="ch02s07.html#id4769539">Common Simplex-specific methods</a></dt><dt>2.4. <a href="ch02s09.html#id4770018">Possible states of a variable</a></dt><dt>4.1. <a href="ch04.html#id4772294">Basic Samples</a></dt><dt>4.2. <a href="ch04.html#id4773491">Advanced Samples</a></dt><dt>4.3. <a href="ch04.html#id4773721">Unsupported Samples</a></dt><dt>4.4. <a href="ch04s02.html#id4774251">Contents of the Samples directory</a></dt><dt>5.1. <a href="ch05s02.html#id4776627">Command examples for the clp executable</a></dt><dt>6.1. <a href="ch06.html#id4775903">
    6066  COIN Messages passed at or above logging level 1
    61   </a></dt><dt>6.2. <a href="ch06.html#id4764385">
     67  </a></dt><dt>6.2. <a href="ch06.html#id4778385">
    6268  CLP Messages passed at or above logging level 1
    63   </a></dt><dt>6.3. <a href="ch06.html#id4765069">
     69  </a></dt><dt>6.3. <a href="ch06.html#id4779069">
    6470  COIN Messages passed at or above logging level 0
    65   </a></dt><dt>6.4. <a href="ch06.html#id4765848">
     71  </a></dt><dt>6.4. <a href="ch06.html#id4779848">
    6672  CLP Messages passed at or above logging level 0
    67   </a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="ch02s02.html#id4757769">minimum.cpp</a></dt><dt>2.2. <a href="ch02s03.html#id4758173">
     73  </a></dt></dl></div><div class="list-of-examples"><p><b>List of Examples</b></p><dl><dt>2.1. <a href="ch02s02.html#id4768485">minimum.cpp</a></dt><dt>2.2. <a href="ch02s03.html#id4768922">
    6874  Possible extension of minimum.cpp
    69   </a></dt><dt>2.3. <a href="ch02s08.html#presolveexample">Presolve code fragment</a></dt><dt>3.1. <a href="ch03s03.html#id4762022">Sophisticated message handling</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. 
     75  </a></dt><dt>2.3. <a href="ch02s08.html#presolveexample">Presolve code fragment</a></dt><dt>3.1. <a href="ch03s03.html#id4772712">Sophisticated message handling</a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="ch01.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Chapter 1. 
    7076    Introduction
    7177  </td></tr></table></div></body></html>
Note: See TracChangeset for help on using the changeset viewer.