source: trunk/include/ClpSimplexPrimalQuadratic.hpp @ 166

Last change on this file since 166 was 166, checked in by forrest, 16 years ago

Some fixes - when starting primitive QP coding

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1// Copyright (C) 2003, International Business Machines
2// Corporation and others.  All Rights Reserved.
3
4/*
5   Authors
6   
7   John Forrest
8
9 */
10#ifndef ClpSimplexPrimalQuadratic_H
11#define ClpSimplexPrimalQuadratic_H
12
13#include "ClpSimplexPrimal.hpp"
14
15/** This solves LPs using the primal simplex method
16
17    It inherits from ClpSimplexPrimal.  It has no data of its own and
18    is never created - only cast from a ClpSimplexPrimal object at algorithm time.
19    If needed create new class and pass around
20
21*/
22
23class ClpSimplexPrimalQuadratic : public ClpSimplexPrimal {
24
25public:
26
27  /**@name Description of algorithm */
28  //@{
29  /** Primal algorithms for quadratic
30      At present we have two algorithms:
31
32      a) Beale's algorithm - this is in for sentimental reasons
33         not because I think it is best one.
34      b) Using a semi-trust region approach as for pooling problem
35         This is in because I have it lying around
36
37  */
38  /// A sequential LP method
39  int primalSLP(int numberPasses, double deltaTolerance);
40  /// Wolfe's method (actually a mixture with Jensen and King)
41  int primalWolfe();
42  /// This is done after first pass
43  int primalWolfe2 (const ClpSimplexPrimalQuadratic * originalModel);
44  /// Main part
45  int whileIterating (const ClpSimplexPrimalQuadratic * originalModel,
46                      int & sequenceIn,
47                      int & crucialSj);
48  /**
49      Row array has pivot column
50      This chooses pivot row.
51      Rhs array is used for distance to next bound (for speed)
52      For speed, we may need to go to a bucket approach when many
53      variables go through bounds
54      On exit rhsArray will have changes in costs of basic variables
55      Initially no go thru
56      Returns 0 - can do normal iteration
57      1 - losing complementarity
58  */
59  int primalRow(CoinIndexedVector * rowArray,
60                CoinIndexedVector * rhsArray,
61                CoinIndexedVector * spareArray,
62                CoinIndexedVector * spareArray2,
63                const ClpSimplexPrimalQuadratic * originalModel,
64                int crucialSj);
65  //@}
66
67};
68#endif
69
Note: See TracBrowser for help on using the repository browser.