Ignore:
Timestamp:
Jul 29, 2005 3:11:41 PM (14 years ago)
Author:
andreasw
Message:
  • revised handling of "acceptable level of accuracy" (now in ConvCheck?)
  • fixed uncaught evaluation error exceptions
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev/Algorithm/IpFilterLineSearch.hpp

    r395 r416  
    1616#include "IpPDSystemSolver.hpp"
    1717#include "IpIpoptType.hpp"
     18#include "IpConvCheck.hpp"
    1819
    1920namespace Ipopt
     
    3233    /** Constructor.  The PDSystemSolver object only needs to be
    3334     *  provided (i.e. not NULL) if second order correction is to be
    34      *  used. */
     35     *  used.  The ConvergenceCheck object is used to determine
     36     *  whether the current iterate is acceptable (for example, the
     37     *  restoration phase is not started if the acceptability level
     38     *  has been reached).  If conv_check is NULL, we assume that the
     39     *  current iterate is not acceptable. */
    3540    FilterLineSearch(const SmartPtr<RestorationPhase>& resto_phase,
    36                      const SmartPtr<PDSystemSolver>& pd_solver
     41                     const SmartPtr<PDSystemSolver>& pd_solver,
     42                     const SmartPtr<ConvergenceCheck>& conv_check
    3743                    );
    3844
     
    242248     *  found. Returns true if such as point is available. */
    243249    bool RestoreAcceptablePoint();
     250
     251    /** Method for determining if the current iterate is acceptable.
     252     *  This is a wrapper for same method from ConvergenceCheck, but
     253     *  returns false, if no ConvergenceCheck object is provided. */
     254    bool CurrentIsAcceptable();
    244255
    245256    /** @name Parameters for the filter algorithm.  Names as in the paper */
     
    335346    Index watchdog_shortened_iter_trigger_;
    336347
    337     /** Acceptable tolerance for the problem to terminate earlier if
    338      *  algorithm seems stuck or cycling */
    339     Number acceptable_tol_;
    340     /** Maximum number of iterations with acceptable level of accuracy
    341      *  and full steps, after which the algorithm terminates.  If 0,
    342      *  this heuristic is disabled. */
    343     Index acceptable_iter_max_;
    344 
    345348    /** Indicates whether the algorithm should start directly with the
    346349     *  restoratin phase */
     
    408411    Index count_successive_shortened_steps_;
    409412
    410     /** Counter for the number of successive iterations in which the
    411      *  nlp error was below the acceptable tolerance and a full step
    412      *  was accepted. */
    413     Index count_acceptable_iter_;
    414 
    415413    /** Flag indicating if a tiny step was detected in previous
    416414     *  iteration */
    417415    bool tiny_step_last_iteration_;
    418416
     417    /** @name Strategy objective that are used */
     418    //@{
    419419    SmartPtr<RestorationPhase> resto_phase_;
    420420    SmartPtr<PDSystemSolver> pd_solver_;
     421    SmartPtr<ConvergenceCheck> conv_check_;
     422    //@}
    421423  };
    422424
Note: See TracChangeset for help on using the changeset viewer.