[Ipopt] Commented Ipopt.opt file and a subset of options for solving a zero DoF problem quickly (better than the defaults).

Uwe Nowak uwe.nowak at itwm.fraunhofer.de
Thu Mar 10 02:23:55 EST 2011


Hello!

Ok, I do not know if you get it in such a format.
But In the documentation many options with its possible and default 
parameters are stated.

You might also want to set the option
print_options_documentation yes
and run ipopt, then it prints all options with a documentation.

Regargs,
Uwe

Am 09.03.2011 18:44, schrieb Kelly, Jeff (ON0F):
> Uwe;
>
> Yes but I was looking for the enumerations like I get with knitro for example in a nice file - see below.
>
> Thanks, Jeff
>
> # KNITRO 7.0.0 Options file
> # http://ziena.com/documentation.html
>
> # Which algorithm to use.
> #   auto   = 0 = let KNITRO choose the algorithm
> #   direct = 1 = use Interior (barrier) Direct algorithm
> #   cg     = 2 = use Interior (barrier) CG algorithm
> #   active = 3 = use Active Set algorithm
> algorithm    active
>
> # When using the Interior/Direct algorithm, this parameter
> # controls the maximum number of consecutive CG steps before
> # trying to force the algorithm to take a direct step again.
> # (only used for alg=1).
> bar_directinterval  10
>
> # Whether feasibility is given special emphasis.
> #   no       = 0 = no emphasis on feasibility
> #   stay     = 1 = iterates must honor inequalities
> #   get      = 2 = emphasize first getting feasible before optimizing
> #   get_stay = 3 = implement both options 1 and 2 above
> bar_feasible    no
>
> # Specifies the tolerance for entering the stay feasible mode
> # (only valid when bar_feasible = stay or bar_feasible = get_stay).
> bar_feasmodetol  0.0001
>
> # Initial value for the barrier parameter.
> bar_initmu   0.1
>
> # Whether to use the initial point strategy with barrier algorithms.
> #   auto = 0 = let KNITRO choose the strategy
> #   yes  = 1 = shift the initial point to improve barrier performance
> #   no   = 2 = do not alter the initial point supplied by the user
> bar_initpt   auto
>
> # Maximum allowable number of backtracks during the linesearch of the
> # Interior Direct algorithm before reverting to a CG step.
> # (only used for alg=1).
> bar_maxbacktrack  3
>
> # Maximum number of refactorizations of the KKT system per iteration of the
> # Interior Direct algorithm before reverting to a CG step.
> # (only used for alg=1).
> bar_maxrefactor  0
>
> # Which barrier parameter update strategy.
> #   auto     = 0 = let KNITRO choose the strategy
> #   monotone = 1
> #   adaptive = 2
> #   probing  = 3
> #   dampmpc  = 4
> #   fullmpc  = 5
> #   quality  = 6
> bar_murule   auto
>
> # Whether or not to penalize constraints in the barrier algorithms.
> #   auto     = 0 = let KNITRO choose the strategy
> #   none     = 1 = Do not apply penalty approach to any constraints
> #   all      = 2 = Apply a penalty approach to all general constraints
> bar_penaltycons   auto
>
> # Which penalty parameter update strategy for barrier algorithms.
> #   auto     = 0 = let KNITRO choose the strategy
> #   single   = 1 = use single penalty parameter approach
> #   flex     = 2 = use more tolerant flexible strategy
> bar_penaltyrule   auto
>
> # Which BLAS/LAPACK library to use.  Intel MKL library is only available
> # on some platforms; see the User Manual for details.
> #   knitro  = 0 = use KNITRO version of netlib functions
> #   intel   = 1 = use Intel MKL functions
> #   dynamic = 2 = use dynamic library of functions
> blasoption   intel
>
> # Specifies debugging level of output.  Debugging output is intended for Ziena
> # developers.  Debugging mode may impact performance and is NOT recommended
> # for production operation.
> #   none      = 0 = no extra debugging
> #   problem   = 1 = help debug solution of the problem
> #   execution = 2 = help debug execution of the solver
> debug        none
>
> # Initial trust region radius scaling factor, used to determine
> # the initial trust region size.
> delta        1
>
> # Specifies the final relative stopping tolerance for the feasibility
> # error. Smaller values of feastol result in a higher degree of accuracy
> # in the solution with respect to feasibility.
> feastol      1e-10
>
> # Specifies the final absolute stopping tolerance for the feasibility error.
> # Smaller values of feastol_abs result in a higher degree of accuracy in the
> # solution with respect to feasibility.
> feastol_abs  0
>
> # How to compute/approximate the gradient of the objective
> # and constraint functions.
> #   exact        = 1 = user supplies exact first derivatives
> #   forward      = 2 = gradients computed by forward finite differences
> #   central      = 3 = gradients computed by central finite differences
> gradopt      exact
>
> # How to compute/approximate the Hessian of the Lagrangian.
> #   exact        = 1 = user supplies exact second derivatives
> #   bfgs         = 2 = KNITRO computes a dense quasi-Newton BFGS Hessian
> #   sr1          = 3 = KNITRO computes a dense quasi-Newton SR1 Hessian
> #   finite_diff  = 4 = KNITRO computes Hessian-vector products by finite differences
> #   product      = 5 = user supplies exact Hessian-vector products
> #   lbfgs        = 6 = KNITRO computes a limited-memory quasi-Newton BFGS Hessian
> hessopt      lbfgs
>
> # Whether to enforce satisfaction of simple bounds at all iterations.
> #   no      = 0 = allow iterations to violate the bounds
> #   always  = 1 = enforce bounds satisfaction of all iterates
> #   initpt  = 2 = enforce bounds satisfaction of initial point
> honorbnds    initpt
>
> # Specifies relative stopping tolerance used to declare infeasibility.
> infeastol    1e-08
>
> # Which linear system solver to use.
> #   auto     = 0 = let KNITRO choose the solver
> #   internal = 1 = use internal solver provided with KNITRO
> #                  (not currently active; reserved for future use)
> #   hybrid   = 2 = use a mixture of linear solvers depending on the linear systems
> #   qr       = 3 = use dense QR solver always (only for small problems)
> #   ma27     = 4 = use sparse HSL solver ma27 always
> #   ma57     = 5 = use sparse HSL solver ma57 always
> linsolver    ma57
>
> # Number of limited memory pairs to store when Hessian choice is lbfgs.
> lmsize       10
>
> # Which LP solver to use in the Active algorithm.
> #   internal = 1 = use internal LP solver
> #   cplex    = 2 = CPLEX (if user has a valid license)
> lpsolver     internal
>
> # Maximum allowable CG iterations per trial step
> # (if 0 then KNITRO determines the best value).
> maxcgit      0
>
> # Maximum number of crossover iterations to allow.
> maxcrossit   0
>
> # Maximum number of iterations to allow
> # (if 0 then KNITRO determines the best value).
> # Default values are 10000 for NLP and 3000 for MIP.
> maxit        0
>
> # Maximum allowable CPU time in seconds.
> # If multistart is active, this limits time spent on one start point.
> maxtime_cpu  1e+08
>
> # Maximum allowable real time in seconds.
> # If multistart is active, this limits time spent on one start point.
> maxtime_real 1e+08
>
> # Specifies the MIP branching rule for choosing a variable.
> #   auto        = 0 = let KNITRO choose the rule
> #   most_frac   = 1 = most fractional (most infeasible) variable
> #   pseudocost  = 2 = use pseudo-cost value
> #   strong      = 3 = use strong branching
> mip_branchrule auto
>
> # Specifies debugging level for MIP solution.
> #   none = 0 = no MIP debugging info
> #   all  = 1 = write debugging to the file kdbg_mip.log
> mip_debug none
>
> # Whether to branch on generalized upper bounds (GUBs).
> #   no   = 0 = do not branch on GUBs
> #   yes  = 1 = branch on GUBs
> mip_gub_branch no
>
> # Specifies which MIP heuristic search approach to apply
> # to try to find an initial integer feasible point.
> #   auto     = 0 = let KNITRO choose the heuristic
> #   none     = 1 = no heuristic search applied
> #   feaspump = 2 = apply feasibility pump heuristic
> #   mpec     = 3 = apply MPEC heuristic
> mip_heuristic auto
>
> # Maximum number of iterations to allow for MIP heuristic.
> mip_heuristic_maxit 100
>
> # Whether to add logical implications deduced from
> # branching decisions at a MIP node.
> #   no   = 0 = do not add logical implications
> #   yes  = 1 = add logical implications
> mip_implications yes
>
> # Threshold for deciding if a variable value is integral.
> mip_integer_tol 1e-08
>
> # Specifies absolute stop tolerance for sufficiently small integrality gap.
> mip_integral_gap_abs 1e-06
>
> # Specifies relative stop tolerance for sufficiently small integrality gap.
> mip_integral_gap_rel 1e-06
>
> # Specifies rules for adding MIP knapsack cuts.
> #   none      = 0 = do not add knapsack cuts
> #   ineqs     = 1 = add cuts derived from inequalities
> #   ineqs_eqs = 2 = add cuts derived from inequalities and equalities
> mip_knapsack ineqs
>
> # Specifies which algorithm to use for LP subproblem solves in MIP
> # (same options as algorithm option).
> mip_lpalg auto
>
> # Maximum number of nodes explored (0 means no limit).
> mip_maxnodes 100000
>
> # Maximum number of subproblem solves allowed (0 means no limit).
> mip_maxsolves 200000
>
> # Maximum allowable CPU time in seconds for the complete MIP solution.
> # Use maxtime_cpu to additionally limit time spent per subproblem solve.
> mip_maxtime_cpu 1e+08
>
> # Maximum allowable real time in seconds for the complete MIP solution.
> # Use maxtime_real to additionally limit time spent per subproblem solve.
> mip_maxtime_real 1e+08
>
> # Which MIP method to use.
> #   auto = 0 = let KNITRO choose the method
> #   BB   = 1 = standard branch and bound
> #   HQG  = 2 = hybrid Quesada-Grossman
> mip_method auto
>
> # Specifies printing interval for mip_outlevel.
> #   1 = print every node
> #   2 = print every 2nd node
> #   N = print every Nth node
> mip_outinterval 10
>
> # How much MIP information to print.
> #   none  = 0 = nothing
> #   iters = 1 = one line for every node
> mip_outlevel iters
>
> # Specifies MIP subproblem solve output control.
> #   0 = no output from subproblem solves
> #   1 = Subproblem output enabled, controlled by option 'outlev'
> #   2 = Subproblem output enabled and print problem characteristics
> mip_outsub 0
>
> # How to initialize pseudo-costs.
> #   auto   = 0 = let KNITRO choose the method
> #   ave    = 1 = use average value
> #   strong = 2 = use strong branching
> mip_pseudoinit auto
>
> # Specifies which algorithm to use for the root node solve in MIP
> # (same options as algorithm option).
> mip_rootalg auto
>
> # Specifies the MIP rounding rule to apply.
> #   auto          = 0 = let KNITRO choose the rule
> #   none          = 1 = do not round if a node is infeasible
> #   heur_only     = 2 = round using heuristic only (fast)
> #   nlp_sometimes = 3 = round and solve NLP if likely to succeed
> #   nlp_always    = 4 = always round and solve NLP
> mip_rounding auto
>
> # Specifies the MIP select rule for choosing a node.
> #   auto        = 0 = let KNITRO choose the rule
> #   depth_first = 1 = search the tree depth first
> #   best_bound  = 2 = node with the best relaxation bound
> #   combo_1     = 3 = depth first unless pruned, then best bound
> mip_selectrule auto
>
> # Maximum number of candidates to explore for MIP strong branching.
> mip_strong_candlim 10
>
> # Maximum number of levels on which to perform MIP strong branching.
> mip_strong_level 10
>
> # Maximum number of iterations to allow for MIP strong branching solves.
> mip_strong_maxit 1000
>
> # Specifies conditions for terminating the MIP algorithm.
> #   optimal   = 0 = terminate at optimum
> #   feasible  = 1 = terminate at first integer feasible point
> mip_terminate optimal
>
> # Whether to enable multistart to find a better local minimum.
> #   no   = 0 = KNITRO solves from a single initial point
> #   yes  = 1 = KNITRO solves using multiple start points
> ms_enable    no
>
> # Specifies the maximum range that an unbounded variable can vary over when
> # multistart computes new start points.
> ms_maxbndrange 1000
>
> # How many KNITRO solutions to compute if multistart is enabled.
> #   choose any positive integer, or
> #   0 = KNITRO sets it to min{200,10*n}
> ms_maxsolves 0
>
> # Maximum allowable CPU time in seconds for the complete multistart
> # solution.  Use maxtime_cpu to additionally limit time spent per start point.
> ms_maxtime_cpu  1e+08
>
> # Maximum allowable real time in seconds for the complete multistart
> # solution.  Use maxtime_real to additionally limit time spent per start point.
> ms_maxtime_real 1e+08
>
> # How many feasible multistart points to save in file knitro_mspoints.log.
> #   choose any positive integer, or
> #   0 = save none
> ms_num_to_save 0
>
> # Specifies the tolerance for deciding two feasible points are the same.
> ms_savetol 1e-06
>
> # Specifies the maximum range that any variable can vary over when
> # multistart computes new start points.
> ms_startptrange 1e+20
>
> # Specifies conditions for terminating the multistart procedure.
> #   maxsolves = 0 = terminate after maxsolves
> #   optimal   = 1 = terminate at first local optimum
> #   feasible  = 2 = terminate at first feasible solution estimate
> ms_terminate maxsolves
>
> # Specifies additional action to take after every iteration.
> # Iterations result in a new point that is closer to a solution.
> #   none     = 0 = no additional action
> #   saveone  = 1 = save the latest new point to file knitro_newpoint.log
> #   saveall  = 2 = append the latest new point to file knitro_newpoint.log
> #   user     = 3 = allow a user-specified routine to run after iterations
> newpoint     none
>
> # Valid range of obective values.
> objrange     1e+20
>
> # Specifies the final relative stopping tolerance for the KKT (optimality)
> # error. Smaller values of opttol result in a higher degree of accuracy in
> # the solution with respect to optimality.
> opttol       1e-06
>
> # Specifies the final absolute stopping tolerance for the KKT (optimality)
> # error. Smaller values of opttol_abs result in a higher degree of accuracy
> # in the solution with respect to optimality.
> opttol_abs   0
>
> # Specifies whether to append to output files.
> # This option should be set before calling KTR_init_problem().
> #   no     = 0 = erase existing files when opening
> #   yes    = 1 = append to existing files
> outappend    no
>
> # Directory for all output files.
> # This option should be set before calling KTR_init_problem().
> #outdir       .
>
> # Specifies the verbosity of output.
> #   none         = 0 = nothing
> #   summary      = 1 = only final summary information
> #   iter_10      = 2 = information every 10 iterations is printed
> #   iter         = 3 = information at each iteration is printed
> #   iter_verbose = 4 = more verbose information at each iteration is printed
> #   iter_x       = 5 = in addition, values of solution vector (x) are printed
> #   all          = 6 = in addition, constraints (c) and multipliers (lambda)
> outlev       iter_verbose
>
> # Where to direct the output.
> #   screen  = 0 = directed to stdout
> #   file    = 1 = directed to a file called knitro.log
> #   both    = 2 = both stdout and file called knitro.log
> outmode      screen
>
> # Specifies the initial pivot threshold used in the factorization routine.
> # The value must be in the range [0 0.5] with higher values resulting
> # in more pivoting (more stable factorization). Values less than 0 will
> # be set to 0 and values larger than 0.5 will be set to 0.5. If pivot
> # is non-positive initially no pivoting will be performed. Smaller values
> # may improve the speed of the code but higher values are recommended for
> # more stability.
> pivot        1e-08
>
> # Whether to perform automatic scaling of the functions.
> #   no     = 0 = no scaling done
> #   yes    = 1 = KNITRO performs automatic scaling
> scale        yes
>
> # Whether to use the Second Order Correction (SOC) option.
> #   no     = 0 = never do second order corrections
> #   maybe  = 1 = SOC steps attempted on some iterations
> #   yes    = 2 = SOC steps always attempted when constraints are nonlinear
> soc          maybe
>
> # Step size tolerance used for terminating the optimization.
> xtol         1e-15
>
> -----Original Message-----
> From: Uwe Nowak [mailto:uwe.nowak at itwm.fraunhofer.de]
> Sent: Wednesday, March 09, 2011 12:03 PM
> To: Kelly, Jeff (ON0F)
> Subject: Re: [Ipopt] Commented Ipopt.opt file and a subset of options for solving a zero DoF problem quickly (better than the defaults).
>
> Yes, but all the options are stated there?
>
> Output
> print_level:
> print_user_options:
> print_options_documentation:
> output_file:
> file_print_level:
> option_file_name:
>
> Termination
> tol:
> max_iter:
> max_cpu_time:
> dual_inf_tol:
> constr_viol_tol:
> compl_inf_tol:
> acceptable_tol:
> acceptable_iter:
> acceptable_constr_viol_tol:
> acceptable_dual_inf_tol:
> acceptable_compl_inf_tol:
> acceptable_obj_change_tol:
> diverging_iterates_tol:
>
> ...
>
> Am 09.03.2011 17:27, schrieb Kelly, Jeff (ON0F):
>> Uwe;
>>
>> Thanks - I knew about this but I don't have the AMPL interface to print off the options.
>>
>> Jeff
>>
>> -----Original Message-----
>> From: ipopt-bounces at list.coin-or.org [mailto:ipopt-bounces at list.coin-or.org] On Behalf Of Uwe Nowak
>> Sent: Wednesday, March 09, 2011 7:24 AM
>> To: ipopt at list.coin-or.org
>> Subject: Re: [Ipopt] Commented Ipopt.opt file and a subset of options for solving a zero DoF problem quickly (better than the defaults).
>>
>> I am not an expert in IPOPT, but maybe the documentation, especially
>> http://www.coin-or.org/Ipopt/documentation/node59.html
>> might be a good start.
>>
>> Am 09.03.2011 13:05, schrieb Kelly, Jeff (ON0F):
>>> All;
>>>
>>>
>>>
>>> I have 2 questions:
>>>
>>>
>>>
>>> 1.       Does anyone have a complete Ipopt.opt file with hopefully
>>> enumerated options as comments - I can't seem to find one?
>>>
>>>
>>>
>>> 2.       Is there a subset of options that will solve a problem with
>>> zero degrees-of-freedom better than the defaults i.e., a problem with
>>> only dependent variables as in a nonlinear simulation case?
>>>
>>>
>>>
>>> Thanks - Jeff
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Ipopt mailing list
>>> Ipopt at list.coin-or.org
>>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>>
>
>


-- 
Uwe Nowak
Fraunhofer-Institut für Techno- und Wirtschaftsmathematik
Abteilung Optimierung
Fraunhofer-Platz 1
D-67663 Kaiserslautern
Telefon:  +49(0)631/31600-4458
E-Mail:   uwe.nowak at itwm.fraunhofer.de
Internet: www.itwm.fraunhofer.de



More information about the Ipopt mailing list