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

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

cut repeated (EPL)...

  • Property svn:keywords set to Author Date Id Revision
File size: 1.9 KB
RevLine 
[190]1/* $Id: CouenneFixPoint.hpp 490 2011-01-14 16:07:12Z pbelotti $
2 *
[381]3 * Name:    CouenneFixPoint.hpp
[1]4 * Author:  Pietro Belotti
[381]5 * Purpose: A bound tightener based on fixpoint computation
[1]6 *
[381]7 * (C) Pietro Belotti, 2010.
[490]8 * This file is licensed under the Eclipse Public License (EPL)
[1]9 */
10
[381]11#ifndef COUENNEFIXPOINT_HPP
12#define COUENNEFIXPOINT_HPP
[1]13
14#include "BonRegisteredOptions.hpp"
15
16#include "BonOaDecBase.hpp"
17#include "CglCutGenerator.hpp"
18#include "OsiRowCut.hpp"
19#include "OsiSolverInterface.hpp"
20
[349]21namespace Couenne {
22
[383]23  class CouenneProblem;
24
[381]25  /// Cut Generator for FBBT fixpoint
[1]26
[381]27  class CouenneFixPoint: public CglCutGenerator {
[1]28
[381]29  public:
[1]30
[381]31    /// constructor
[383]32    CouenneFixPoint (CouenneProblem *,
33                     const Ipopt::SmartPtr<Ipopt::OptionsList>);
[1]34
[381]35    /// copy constructor
36    CouenneFixPoint  (const CouenneFixPoint &);
[1]37
[381]38    /// destructor
39    ~CouenneFixPoint ();
[1]40
[381]41    /// clone method (necessary for the abstract CglCutGenerator class)
42    CouenneFixPoint *clone () const
43    {return new CouenneFixPoint (*this);}
[1]44
[381]45    /// the main CglCutGenerator
46    void generateCuts (const OsiSolverInterface &, 
47                       OsiCuts &, 
48                       const CglTreeInfo = CglTreeInfo ()) const;
[1]49
[381]50    /// Add list of options to be read from file
51    static void registerOptions (Ipopt::SmartPtr <Bonmin::RegisteredOptions> roptions);
[1]52
[383]53  protected:
[1]54
[381]55    /// should we use an extended model or a more compact one?
56    bool extendedModel_;
[383]57
58    /// pointer to the CouenneProblem representation
59    CouenneProblem *problem_;
[397]60
61    /// Is this the first call?
62    mutable bool firstCall_;
[406]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_;
[467]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;
[381]83  };
[349]84}
85
[1]86#endif
Note: See TracBrowser for help on using the repository browser.