[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