Ipopt¶
- class Ipopt(*args)¶
- Ipopt optimization solver Ipopt. - Parameters
- problemOptimizationProblem, optional
- Optimization problem to solve. Default is an empty problem. 
 
- problem
 - See also - Notes - Algorithms parameters: - Ipopt algorithms can be adapted using numerous parameters, described here. These parameters can be modified using the - ResourceMap. For every option- optionName, one simply add a key named- Ipopt-optionNamewith the value to use, as shown below:- >>> import openturns as ot >>> ot.ResourceMap.AddAsUnsignedInteger('Ipopt-print_level', 5) >>> ot.ResourceMap.AddAsScalar('Ipopt-diverging_iterates_tol', 1e15) - Convergence criteria: - To estimate the convergence of the algorithm during the optimization process, Ipopt uses specific tolerance parameters, different from the standard absolute/relative/residual errors used in OpenTURNS. The definition of Ipopt’s parameters can be found in this paper, page 3. - Thus the attributes - maximumAbsoluteError,- maximumRelativeError,- maximumResidualErrorand- maximumConstraintErrordefined in’- OptimizationAlgorithmare not used in this case. The tolerances used by Ipopt can be set using specific options (e.g.- tol,- dual_inf_tol…).- Examples - The code below ensures the optimization of the following problem: - subject to - >>> import openturns as ot - >>> # Definition of objective function >>> objectiveFunction = ot.SymbolicFunction(['x0','x1','x2','x3'], ['-x0 -x1 -x2']) - >>> # Definition of variables bounds >>> bounds = ot.Interval([0,0,0,0],[1,1e308,1e308,5],[True,True,True,True],[True,False,False,True]) - Inequality constraints are defined by a function - such that - . The inequality expression above has to be modified to match this formulation. - >>> # Definition of constraints >>> h = ot.SymbolicFunction(['x0','x1','x2','x3'], ['-(x1-1/2)^2 - (x2-1/2)^2 + 1/4', '-x0 + x1', '-x0 - x2 - x3 + 2']) - >>> # Setting up Ipopt problem >>> problem = ot.OptimizationProblem(objectiveFunction) >>> problem.setBounds(bounds) >>> problem.setInequalityConstraint(h) - >>> algo = ot.Ipopt(problem) >>> algo.setStartingPoint([0,0,0,0]) >>> algo.setMaximumEvaluationNumber(1000) >>> algo.setMaximumIterationNumber(1000) >>> ot.ResourceMap.AddAsScalar('Ipopt-max_cpu_time', 5.0) - >>> # Running the solver >>> algo.run() - >>> # Retrieving the results >>> result = algo.getResult() >>> optimalPoint = result.getOptimalPoint() >>> optimalValue = result.getOptimalValue() >>> evaluationNumber = result.getInputSample().getSize() - Methods - Retrieves the names of the available optimization algorithms. - Accessor to the object's name. - getId()- Accessor to the object's id. - Accessor to maximum allowed absolute error. - Accessor to maximum allowed constraint error. - Accessor to maximum allowed number of evaluations. - Accessor to maximum allowed number of iterations. - Accessor to maximum allowed relative error. - Accessor to maximum allowed residual error. - getName()- Accessor to the object's name. - Accessor to optimization problem. - Accessor to optimization result. - Accessor to the object's shadowed id. - Accessor to starting point. - Accessor to the verbosity flag. - Accessor to the object's visibility state. - hasName()- Test if the object is named. - Test if the object has a distinguishable name. - run()- Launch the optimization. - setMaximumAbsoluteError(maximumAbsoluteError)- Accessor to maximum allowed absolute error. - setMaximumConstraintError(maximumConstraintError)- Accessor to maximum allowed constraint error. - Accessor to maximum allowed number of evaluations. - setMaximumIterationNumber(maximumIterationNumber)- Accessor to maximum allowed number of iterations. - setMaximumRelativeError(maximumRelativeError)- Accessor to maximum allowed relative error. - setMaximumResidualError(maximumResidualError)- Accessor to maximum allowed residual error. - setName(name)- Accessor to the object's name. - setProblem(problem)- Accessor to optimization problem. - setProgressCallback(*args)- Set up a progress callback. - setResult(result)- Accessor to optimization result. - setShadowedId(id)- Accessor to the object's shadowed id. - setStartingPoint(startingPoint)- Accessor to starting point. - setStopCallback(*args)- Set up a stop callback. - setVerbose(verbose)- Accessor to the verbosity flag. - setVisibility(visible)- Accessor to the object's visibility state. - __init__(*args)¶
 - static IsAvailable()¶
- Retrieves the names of the available optimization algorithms. - Returns
- algoNamebool
- Returns true if Ipopt support is available, false if not. 
 
 
 - getClassName()¶
- Accessor to the object’s name. - Returns
- class_namestr
- The object class name (object.__class__.__name__). 
 
 
 - getId()¶
- Accessor to the object’s id. - Returns
- idint
- Internal unique identifier. 
 
 
 - getMaximumAbsoluteError()¶
- Accessor to maximum allowed absolute error. - Returns
- maximumAbsoluteErrorfloat
- Maximum allowed absolute error, where the absolute error is defined by - where - and - are two consecutive approximations of the optimum. 
 
 
 - getMaximumConstraintError()¶
- Accessor to maximum allowed constraint error. - Returns
- maximumConstraintErrorfloat
- Maximum allowed constraint error, where the constraint error is defined by - where - is the current approximation of the optimum and - is the function that gathers all the equality and inequality constraints (violated values only) 
 
 
 - getMaximumEvaluationNumber()¶
- Accessor to maximum allowed number of evaluations. - Returns
- Nint
- Maximum allowed number of evaluations. 
 
 
 - getMaximumIterationNumber()¶
- Accessor to maximum allowed number of iterations. - Returns
- Nint
- Maximum allowed number of iterations. 
 
 
 - getMaximumRelativeError()¶
- Accessor to maximum allowed relative error. - Returns
- maximumRelativeErrorfloat
- Maximum allowed relative error, where the relative error is defined by - if - , else - . 
 
 
 - getMaximumResidualError()¶
- Accessor to maximum allowed residual error. - Returns
- maximumResidualErrorfloat
- Maximum allowed residual error, where the residual error is defined by - if - , else - . 
 
 
 - getName()¶
- Accessor to the object’s name. - Returns
- namestr
- The name of the object. 
 
 
 - getProblem()¶
- Accessor to optimization problem. - Returns
- problemOptimizationProblem
- Optimization problem. 
 
- problem
 
 - getResult()¶
- Accessor to optimization result. - Returns
- resultOptimizationResult
- Result class. 
 
- result
 
 - getShadowedId()¶
- Accessor to the object’s shadowed id. - Returns
- idint
- Internal unique identifier. 
 
 
 - getVerbose()¶
- Accessor to the verbosity flag. - Returns
- verbosebool
- Verbosity flag state. 
 
 
 - getVisibility()¶
- Accessor to the object’s visibility state. - Returns
- visiblebool
- Visibility flag. 
 
 
 - hasName()¶
- Test if the object is named. - Returns
- hasNamebool
- True if the name is not empty. 
 
 
 - hasVisibleName()¶
- Test if the object has a distinguishable name. - Returns
- hasVisibleNamebool
- True if the name is not empty and not the default one. 
 
 
 - run()¶
- Launch the optimization. 
 - setMaximumAbsoluteError(maximumAbsoluteError)¶
- Accessor to maximum allowed absolute error. - Parameters
- maximumAbsoluteErrorfloat
- Maximum allowed absolute error, where the absolute error is defined by - where - and - are two consecutive approximations of the optimum. 
 
 
 - setMaximumConstraintError(maximumConstraintError)¶
- Accessor to maximum allowed constraint error. - Parameters
- maximumConstraintErrorfloat
- Maximum allowed constraint error, where the constraint error is defined by - where - is the current approximation of the optimum and - is the function that gathers all the equality and inequality constraints (violated values only) 
 
 
 - setMaximumEvaluationNumber(maximumEvaluationNumber)¶
- Accessor to maximum allowed number of evaluations. - Parameters
- Nint
- Maximum allowed number of evaluations. 
 
 
 - setMaximumIterationNumber(maximumIterationNumber)¶
- Accessor to maximum allowed number of iterations. - Parameters
- Nint
- Maximum allowed number of iterations. 
 
 
 - setMaximumRelativeError(maximumRelativeError)¶
- Accessor to maximum allowed relative error. - Parameters
- maximumRelativeErrorfloat
- Maximum allowed relative error, where the relative error is defined by - if - , else - . 
 
 
 - setMaximumResidualError(maximumResidualError)¶
- Accessor to maximum allowed residual error. - Parameters
- Maximum allowed residual error, where the residual error is defined by
- if - , else - . 
 
 
 - setName(name)¶
- Accessor to the object’s name. - Parameters
- namestr
- The name of the object. 
 
 
 - setProblem(problem)¶
- Accessor to optimization problem. - Parameters
- problemOptimizationProblem
- Optimization problem. 
 
- problem
 
 - setProgressCallback(*args)¶
- Set up a progress callback. - Can be used to programmatically report the progress of an optimization. - Parameters
- callbackcallable
- Takes a float as argument as percentage of progress. 
 
 - Examples - >>> import sys >>> import openturns as ot >>> rosenbrock = ot.SymbolicFunction(['x1', 'x2'], ['(1-x1)^2+100*(x2-x1^2)^2']) >>> problem = ot.OptimizationProblem(rosenbrock) >>> solver = ot.OptimizationAlgorithm(problem) >>> solver.setStartingPoint([0, 0]) >>> solver.setMaximumResidualError(1.e-3) >>> solver.setMaximumEvaluationNumber(10000) >>> def report_progress(progress): ... sys.stderr.write('-- progress=' + str(progress) + '%\n') >>> solver.setProgressCallback(report_progress) >>> solver.run() 
 - setResult(result)¶
- Accessor to optimization result. - Parameters
- resultOptimizationResult
- Result class. 
 
- result
 
 - setShadowedId(id)¶
- Accessor to the object’s shadowed id. - Parameters
- idint
- Internal unique identifier. 
 
 
 - setStartingPoint(startingPoint)¶
- Accessor to starting point. - Parameters
- startingPointPoint
- Starting point. 
 
- startingPoint
 
 - setStopCallback(*args)¶
- Set up a stop callback. - Can be used to programmatically stop an optimization. - Parameters
- callbackcallable
- Returns an int deciding whether to stop or continue. 
 
 - Examples - >>> import openturns as ot >>> rosenbrock = ot.SymbolicFunction(['x1', 'x2'], ['(1-x1)^2+100*(x2-x1^2)^2']) >>> problem = ot.OptimizationProblem(rosenbrock) >>> solver = ot.OptimizationAlgorithm(problem) >>> solver.setStartingPoint([0, 0]) >>> solver.setMaximumResidualError(1.e-3) >>> solver.setMaximumEvaluationNumber(10000) >>> def ask_stop(): ... return True >>> solver.setStopCallback(ask_stop) >>> solver.run() 
 - setVerbose(verbose)¶
- Accessor to the verbosity flag. - Parameters
- verbosebool
- Verbosity flag state. 
 
 
 - setVisibility(visible)¶
- Accessor to the object’s visibility state. - Parameters
- visiblebool
- Visibility flag. 
 
 
 
 OpenTURNS
      OpenTURNS