SolveStatus

Enum SolveStatus 

Source
pub enum SolveStatus {
Show 20 variants SolveSucceeded, SolvedToAcceptableLevel, FeasiblePointFound, InfeasibleProblemDetected, SearchDirectionBecomesTooSmall, DivergingIterates, UserRequestedStop, MaximumIterationsExceeded, MaximumCpuTimeExceeded, RestorationFailed, ErrorInStepComputation, InvalidOption, NotEnoughDegreesOfFreedom, InvalidProblemDefinition, InvalidNumberDetected, UnrecoverableException, NonIpoptExceptionThrown, InsufficientMemory, InternalError, UnknownError,
}
Expand description

Program return status.

Variants§

§

SolveSucceeded

Console Message: EXIT: Optimal Solution Found.

This message indicates that IPOPT found a (locally) optimal point within the desired tolerances.

§

SolvedToAcceptableLevel

Console Message: EXIT: Solved To Acceptable Level.

This indicates that the algorithm did not converge to the “desired” tolerances, but that it was able to obtain a point satisfying the “acceptable” tolerance level as specified by the acceptable_* options. This may happen if the desired tolerances are too small for the current problem.

§

FeasiblePointFound

Console Message: EXIT: Feasible point for square problem found.

This message is printed if the problem is “square” (i.e., it has as many equality constraints as free variables) and IPOPT found a feasible point.

§

InfeasibleProblemDetected

Console Message: EXIT: Converged to a point of local infeasibility. Problem may be infeasible.

The restoration phase converged to a point that is a minimizer for the constraint violation (in the l1-norm), but is not feasible for the original problem. This indicates that the problem may be infeasible (or at least that the algorithm is stuck at a locally infeasible point). The returned point (the minimizer of the constraint violation) might help you to find which constraint is causing the problem. If you believe that the NLP is feasible, it might help to start the optimization from a different point.

§

SearchDirectionBecomesTooSmall

Console Message: EXIT: Search Direction is becoming Too Small.

This indicates that IPOPT is calculating very small step sizes and is making very little progress. This could happen if the problem has been solved to the best numerical accuracy possible given the current scaling.

§

DivergingIterates

Console Message: EXIT: Iterates diverging; problem might be unbounded.

This message is printed if the max-norm of the iterates becomes larger than the value of the option diverging_iterates_tol . This can happen if the problem is unbounded below and the iterates are diverging.

§

UserRequestedStop

Console Message: EXIT: Stopping optimization at current point as requested by user.

This message is printed if the user call-back method intermediate_callback returned false (see Section 3.3.4).

§

MaximumIterationsExceeded

Console Message: EXIT: Maximum Number of Iterations Exceeded.

This indicates that IPOPT has exceeded the maximum number of iterations as specified by the option max_iter.

§

MaximumCpuTimeExceeded

Console Message: EXIT: Maximum CPU time exceeded.

This indicates that IPOPT has exceeded the maximum number of CPU seconds as specified by the option max_cpu_time.

§

RestorationFailed

Console Message: EXIT: Restoration Failed!

This indicates that the restoration phase failed to find a feasible point that was acceptable to the filter line search for the original problem. This could happen if the problem is highly degenerate, does not satisfy the constraint qualification, or if your NLP code provides incorrect derivative information.

§

ErrorInStepComputation

Console Output: EXIT: Error in step computation (regularization becomes too large?)!

This messages is printed if IPOPT is unable to compute a search direction, despite several attempts to modify the iteration matrix. Usually, the value of the regularization parameter then becomes too large. One situation where this can happen is when values in the Hessian are invalid (NaN or Inf). You can check whether this is true by using the check_derivatives_for_naninf option.

§

InvalidOption

Console Message: (details about the particular error will be output to the console)

This indicates that there was some problem specifying the options. See the specific message for details.

§

NotEnoughDegreesOfFreedom

Console Message: EXIT: Problem has too few degrees of freedom.

This indicates that your problem, as specified, has too few degrees of freedom. This can happen if you have too many equality constraints, or if you fix too many variables (IPOPT removes fixed variables by default, see also the fixed_variable_treatment option).

§

InvalidProblemDefinition

Console Message: (no console message, this is a return code for the C and Fortran interfaces only.)

This indicates that there was an exception of some sort when building the IpoptProblem structure in the C or Fortran interface. Likely there is an error in your model or the main routine.

§

InvalidNumberDetected

An invalid number like NaN was detected.

§

UnrecoverableException

Console Message: (details about the particular error will be output to the console)

This indicates that IPOPT has thrown an exception that does not have an internal return code. See the specific message for details.

§

NonIpoptExceptionThrown

Console Message: Unknown Exception caught in Ipopt

An unknown exception was caught in IPOPT. This exception could have originated from your model or any linked in third party code.

§

InsufficientMemory

Console Message: EXIT: Not enough memory.

An error occurred while trying to allocate memory. The problem may be too large for your current memory and swap configuration.

§

InternalError

Console: EXIT: INTERNAL ERROR: Unknown SolverReturn value - Notify IPOPT Authors.

An unknown internal error has occurred. Please notify the authors of IPOPT via the mailing list.

§

UnknownError

Unclassified error.

Trait Implementations§

Source§

impl Clone for SolveStatus

Source§

fn clone(&self) -> SolveStatus

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SolveStatus

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Display for SolveStatus

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SolveStatus

Source§

fn eq(&self, other: &SolveStatus) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SolveStatus

Source§

impl StructuralPartialEq for SolveStatus

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,