source: trunk/Couenne/src/bound_tightening/CouenneFixPoint.hpp @ 488

Last change on this file since 488 was 488, checked in by pbelotti, 10 years ago

CPL -> EPL

  • Property svn:keywords set to Author Date Id Revision
File size: 1.9 KB
Line 
1/* $Id: CouenneFixPoint.hpp 488 2011-01-10 17:06:41Z pbelotti $
2 *
3 * Name:    CouenneFixPoint.hpp
4 * Author:  Pietro Belotti
5 * Purpose: A bound tightener based on fixpoint computation
6 *
7 * (C) Pietro Belotti, 2010.
8 * This file is licensed under the Eclipse Public License (EPL) (EPL)
9 */
10
11#ifndef COUENNEFIXPOINT_HPP
12#define COUENNEFIXPOINT_HPP
13
14#include "BonRegisteredOptions.hpp"
15
16#include "BonOaDecBase.hpp"
17#include "CglCutGenerator.hpp"
18#include "OsiRowCut.hpp"
19#include "OsiSolverInterface.hpp"
20
21namespace Couenne {
22
23  class CouenneProblem;
24
25  /// Cut Generator for FBBT fixpoint
26
27  class CouenneFixPoint: public CglCutGenerator {
28
29  public:
30
31    /// constructor
32    CouenneFixPoint (CouenneProblem *,
33                     const Ipopt::SmartPtr<Ipopt::OptionsList>);
34
35    /// copy constructor
36    CouenneFixPoint  (const CouenneFixPoint &);
37
38    /// destructor
39    ~CouenneFixPoint ();
40
41    /// clone method (necessary for the abstract CglCutGenerator class)
42    CouenneFixPoint *clone () const
43    {return new CouenneFixPoint (*this);}
44
45    /// the main CglCutGenerator
46    void generateCuts (const OsiSolverInterface &, 
47                       OsiCuts &, 
48                       const CglTreeInfo = CglTreeInfo ()) const;
49
50    /// Add list of options to be read from file
51    static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
52
53  protected:
54
55    /// should we use an extended model or a more compact one?
56    bool extendedModel_;
57
58    /// pointer to the CouenneProblem representation
59    CouenneProblem *problem_;
60
61    /// Is this the first call?
62    mutable bool firstCall_;
63
64    /// CPU time
65    mutable double CPUtime_;
66
67    /// Number of actual runs
68    mutable int nRuns_;
69
70    /// Number of bounds tightened
71    mutable int nTightened_;
72
73    /// Create a single cut
74    void createRow (int, int,
75                    int,
76                    OsiSolverInterface *,
77                    const int    *,
78                    const double *,
79                    const double,
80                    const int,
81                    bool,
82                    int, int) const;
83  };
84}
85
86#endif
Note: See TracBrowser for help on using the repository browser.