source: trunk/Algorithm/IpNonmonotoneMuUpdate.hpp @ 2

Last change on this file since 2 was 2, checked in by andreasw, 15 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.2 KB
Line 
1// Copyright (C) 2004, International Business Machines and others.
2// All Rights Reserved.
3// This code is published under the Common Public License.
4//
5// $Id: IpNonmonotoneMuUpdate.hpp 2 2004-10-21 01:03:09Z andreasw $
6//
7// Authors:  Carl Laird, Andreas Waechter     IBM    2004-08-13
8
9#ifndef __IPNONMONOTONEMUUPDATE_HPP__
10#define __IPNONMONOTONEMUUPDATE_HPP__
11
12#include "IpMuUpdate.hpp"
13#include "IpLineSearch.hpp"
14#include "IpMuOracle.hpp"
15
16namespace Ipopt
17{
18
19  /** Non-monotone mu update.
20   */
21  class NonmonotoneMuUpdate : public MuUpdate
22  {
23  public:
24    /**@name Constructors/Destructors */
25    //@{
26    /** Constructor */
27    NonmonotoneMuUpdate(const SmartPtr<LineSearch>& linesearch,
28                        const SmartPtr<MuOracle>& mu_oracle);
29    /** Default destructor */
30    virtual ~NonmonotoneMuUpdate();
31    //@}
32
33    /** Initialize method - overloaded from AlgorithmStrategyObject */
34    virtual bool InitializeImpl(const OptionsList& options,
35                                const std::string& prefix);
36
37    /** Method for determining the barrier parameter for the next iteration.
38     *  When the optimality error for the current barrier parameter is less than
39     *  a tolerance, the barrier parameter is reduced, and the Reset method of the
40     *  LineSearch object linesearch is called.
41     *  TODO: MORE DETAILS HERE */
42    virtual void UpdateBarrierParameter();
43
44  private:
45    /**@name Default Compiler Generated Methods
46     * (Hidden to avoid implicit creation/calling).
47     * These methods are not implemented and
48     * we do not want the compiler to implement
49     * them for us, so we declare them private
50     * and do not define them. This ensures that
51     * they will not be implicitly created/called. */
52    //@{
53
54    /** Default Constructor */
55    NonmonotoneMuUpdate();
56
57    /** Copy Constructor */
58    NonmonotoneMuUpdate(const NonmonotoneMuUpdate&);
59
60    /** Overloaded Equals Operator */
61    void operator=(const NonmonotoneMuUpdate&);
62    //@}
63
64    /** @name Algorithmic parameters */
65    //@{
66    Number mu_max_;
67    Number mu_min_;
68    Number tau_min_;
69    //@}
70
71    /** Pointer to the class that is to be used for computing a
72     *  suggested value of the barrier parameter
73     */
74    SmartPtr<MuOracle> mu_oracle_;
75    SmartPtr<LineSearch> linesearch_;
76  };
77
78} // namespace Ipopt
79
80#endif
Note: See TracBrowser for help on using the repository browser.