source: trunk/Clp/doc/faqcontent.xml @ 754

Last change on this file since 754 was 754, checked in by andreasw, 13 years ago

first version

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 8.9 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<qandaentry>
3  <question>
4  <para>
5  What is <ulink url="http://www.coin-or.org/Clp/">CLP</ulink>?
6  </para>
7  </question>
8  <answer>
9  <para>
10  (DN 08/27/04) The <ulink url="http://www.coin-or.org/">COIN-OR</ulink> LP code
11  is designed to be a high quality Simplex code provided under the terms of the
12  <ulink url="http://opensource.org/licenses/cpl.php">Common Public License</ulink>.
13  CLP is written in C++, and is primarily intended to be used as a callable
14  library (though a rudimentary stand-alone executable exists).
15  The first release was version .90.  The current release is version 1.00.2.
16  </para>
17  </answer>
18</qandaentry>
19<qandaentry>
20  <question>
21  <para>
22  What are some of the features of CLP?
23  </para>
24  </question>
25  <answer>
26  <para>
27  (DN 08/27/04) CLP includes primal and dual Simplex solvers.  Both dual and primal algorithms
28  can use matrix storage methods provided by the user (0-1 and network matrices
29  are already supported in addition to the default sparse matrix). The dual algorithm
30  has Dantzig and Steepest edge row pivot choices; new ones may be provided by
31  the user. The same is true for the column pivot choice of the primal algorithm.
32  The primal can also use a non linear cost which should work for piecewise
33  linear convex functions.  CLP also includes a barrier method for solving LPs.
34  </para>
35  </answer>
36</qandaentry>
37<qandaentry>
38  <question>
39  <para>
40  How do I obtain and install CLP?
41  </para>
42  </question>
43  <answer>
44  <para>
45  (DN 08/27/04) Please see the
46  <ulink url="http://www.coin-or.org/faqs.html">COIN-OR FAQ</ulink>
47  for details on how to
48  <ulink url="http://www.coin-or.org/faqs.html#ObtainSrcCode">obtain</ulink>
49  and
50  <ulink url="http://www.coin-or.org/faqs.html#BuildCode">install</ulink>
51  COIN-OR modules.
52  </para>
53  </answer>
54</qandaentry>
55<qandaentry>
56  <question>
57  <para>
58  Is CLP reliable?
59  </para>
60  </question>
61  <answer>
62  <para>
63  (DN 09/07/04) CLP has been tested on many problems of up to 1.5 million
64  constraints and has shown itself as reliable as OSL. It is also being tested
65  in the context of developing
66  <ulink url="http://www.coin-or.org/faqs.html#CBC">CBC</ulink>
67  (&quot;Coin Branch and Cut&quot;, which is used to solve integer
68  programs); it is now considered reliable enough to be at version 1.0.
69  </para>
70  </answer>
71</qandaentry>
72<qandaentry>
73  <question>
74  <para>
75  On which platforms does CLP run?   
76  </para>
77  </question>
78  <answer>
79  <para>
80  (DN 08/27/04) CLP compiles and has been tested (to varying degrees) on the following
81  platforms:
82  </para>
83  <itemizedlist>
84  <listitem>
85  <para>
86  Linux using g++ version 3.1.1 (or later)
87  </para>
88  </listitem>
89  <listitem>
90  <para>
91  Windows using Microsoft Visual C++ 6
92  </para>
93  </listitem>
94  <listitem>
95  <para>
96  Windows using cygwin
97  </para>
98  </listitem>
99  <listitem>
100  <para>
101  AIX using xIC (not supported in the current Makefile)
102  </para>
103  </listitem>
104  </itemizedlist>
105  </answer>
106</qandaentry>
107<qandaentry>
108  <question>
109  <para>
110  Is there any documentation for CLP? 
111  </para>
112  </question>
113  <answer>
114  <para>
115  (DN 09/16/04) An early release of a User Guide is available on the
116  <ulink url="http://www.coin-or.org/Clp/documentation.html">CLP documentation webpage</ulink>.
117  Also available is a list of
118  <ulink url="http://www.coin-or.org/Doxygen/Clp/">CLP class descriptions</ulink> generated
119  by <ulink url="http://www.doxygen.org">Doxygen</ulink>.
120  </para>
121  </answer>
122</qandaentry>
123<qandaentry>
124  <question>
125  <para>
126  Is CLP as fast as OSL?
127  </para>
128  </question>
129  <answer>
130  <para>
131   (DN 08/27/04) CLP uses sparse matrix techniques designed for very large
132   problems. The design criteria were for it not to be too slow. Some speed
133   has been sacrificed to make the code less opaque OSL (not difficult!).
134  </para>
135  </answer>
136</qandaentry>
137<qandaentry>
138  <question>
139  <para>
140  When will version 1.0 of CLP be available? 
141  </para>
142  </question>
143  <answer>
144  <para>
145  (DN 08/27/04) Version 1.0 was released in time for the 2004
146  <ulink url="http://www.informs.org">INFORMS</ulink>
147  <ulink url="http://www.informs.org/Conf/Denver2004/">Annual Meeting</ulink>
148  (24-27 October, 2004).
149  </para>
150  </answer>
151</qandaentry>
152<qandaentry>
153  <question>
154  <para>
155  The barrier method sounds interesting, what are some of the details?
156  </para>
157  </question>
158  <answer>
159  <para>
160  (DN 08/30/04) The CLP barrier method solves convex QPs as well as LPs. In
161  general, a barrier method requires implementation of the algorithm, as
162  well as a fast Cholesky factorization.  CLP provides the algorithm, and is
163  expected to have a reasonable factorization implementation by the release of
164  CLP version 1.0.  However, the sparse factorization requires a good ordering
165  algorithm, which the user is expected to provide (perhaps a better
166  factorization code as well).
167  </para>
168  </answer>
169</qandaentry>
170<qandaentry>
171  <question>
172  <para>
173  Which Cholesky factorizations codes are supported by CLP's barrier method?
174  </para>
175  </question>
176  <answer>
177  <para>
178  (DN 09/16/04) The Cholesky interface is flexible enough so that a variety of Cholesky
179  ordering and factorization codes can be used.  Interfaces are provided to each
180  of the following:
181  <itemizedlist>
182  <listitem>
183  <para>
184  Anshul Gupta's WSSMP parallel enabled ordering and factorization code
185  </para>
186  </listitem>
187  <listitem>
188  <para>
189  Sivan Toledo's TAUCS parallel enabled factorization code (the package includes
190  third party ordering codes)
191  </para>
192  </listitem>
193  <listitem>
194  <para>
195  University of Florida's Approximate Minimum Degree (AMD) ordering code (the
196  CLP native factorization code is used with this ordering code)
197  </para>
198  </listitem>
199  <listitem>
200  <para>
201  CLP native code: very weak ordering but competitive nonparallel factorization
202  </para>
203  </listitem>
204  <listitem>
205  <para>
206  Fast dense factorization
207  </para>
208  </listitem>
209  </itemizedlist>
210  </para>
211  </answer>
212</qandaentry>
213<qandaentry>
214  <question>
215  <para>
216  When will CLP have a good native ordering?
217  </para>
218  </question>
219  <answer>
220  <para>
221  (DN 09/16/04) The best outcome would be to have an existing ordering code available as part
222  of the COIN distribution under the CPL.  However, if this is not possible, the
223  native ordering will be made respectable.
224  </para>
225  </answer>
226</qandaentry>
227<qandaentry>
228  <question>
229  <para>
230  Is the barrier code as mature as the simplex code?
231  </para>
232  </question>
233  <answer>
234  <para>
235  (DN 09/16/04) The simplex code has been exposed to user testing for more than a year and
236  and the principal author, John Forrest, knows more about simplex algorithms
237  than interior point algorithms, so the answer is &quot;no&quot;.  However, it
238  performs well on test sets and seems to be more reliable than some
239  commercially available codes (including OSL).
240  </para>
241  </answer>
242</qandaentry>
243<qandaentry>
244  <question>
245  <para>
246  Which algorithm should I use for quadratic programming and should I keep an
247  eye open for any issues?
248  </para>
249  </question>
250  <answer>
251  <para>
252  (DN 09/16/04) The interior point algorithm for quadratic programming is much more elegant
253  and normally much faster than the quadratic simplex code.  Caution is
254  suggested with the presolve as not all bugs have been found and squashed when
255  a quadratic objective is used.  One may wish to switch off the crossover to a
256  basic feasible solution as the simplex code can be slow.  The sequential
257  linear code is useful as a &quot;crash&quot; to the simplex code; its
258  convergence is poor but, say, 100 iterations could set up the problem well for
259  the simplex code.
260  </para>
261  </answer>
262</qandaentry>
263<qandaentry>
264  <question>
265  <para>
266  What can the community do to help?
267  </para>
268  </question>
269  <answer>
270  <para>
271  (DN 09/09/04) A lot!  A good first step would be to join the CLP
272  <ulink url="http://www.coin-or.org/mail.html">mailing lists</ulink>.  Some
273  other possibilities:
274  </para>
275  <itemizedlist>
276  <listitem>
277  <para>
278  Comment on the design
279  </para>
280  </listitem>
281  <listitem>
282  <para>
283  Break the code, or better yet, mend it.
284  </para>
285  </listitem>
286  <listitem>
287  <para>
288  Add non-English language support in your own favo(u)rite language.
289  </para>
290  </listitem>
291  <listitem>
292  <para>
293  Improve the CLP executable.  In particular it would be nice to be able to link
294  the executable's online help system with the existing CLP Samples (e.g. entering
295  <userinput>presol???</userinput> would give the user references to all
296  CLP Sample files which use presolve).
297  </para>
298  </listitem>
299  <listitem>
300  <para>
301  Implement a dual Simplex method for QPs (quadratic programs)
302  </para>
303  </listitem>
304  <listitem>
305  <para>
306  Implement a parametric Simplex method
307  </para>
308  </listitem>
309  <listitem>
310  <para>
311  Implement a true network Simplex method (network matrix and factorization
312  are already in place, but the method is not)
313  </para>
314  </listitem>
315  <listitem>
316  <para>
317  Fill the holes in the barrier method mentioned above.
318  </para>
319  </listitem>
320  </itemizedlist>
321  </answer>
322</qandaentry>
Note: See TracBrowser for help on using the repository browser.