Skip to content

Tips

This is a collection of some experiences we made during development of this package. IPOPT and the find_local_max_ipopt function itself allow for custom settings of many parameters. A complete list of IPOPT options can be found here. IPOPT options can be passed to the optimizer as a dictionary via the ipopt_options argument. If you are not satisfied with the results you get, it might be worth a try playing around with one or more of these parameters.

  1. disp: If you do not know what caused your problems or you want to find out more about the behavior of the optimizer you can change the value of this IPOPT option. IPOPT allows for values between 0 and 12 where the level of verbosity is higher for higher values. For values larger than 12 a message is generated in find_local_max_ipopt and printed before termination of the function.
  2. maxiter: The maximum number of iterations performed by IPOPT. This is especially relevant for complicated problem, where the optimizer does not find an optimum in an appropriate amount of time.
  3. acceptable_tol: The situation can occur that IPOPT terminates at an unsatisfactory point with the message "EXIT: Solved To Acceptable Level.". In this case, it can help to set the value of this parameter to the same value as the IPOPT option tol (do not mix this with the find_local_max_ipopt argument tol) or some other lower value.
  4. tol: This argument defines the size of a small "safety margin" around the set of feasible solution that will also be considered as feasible. Increasing this value can make it easier for the algorithm to find feasible solutions. However this also means a perturbation of the original problem/problem set definition. The default value is 0.
  5. delta: This is the regularization parameter for the information matrix. Setting it to a larger value means a stronger regularization. Note that this also means a larger perturbation of the objective function.
  6. sampling: By default find_local_max_ipopt() will try to use the sample_inputs() method of the opti problem passed to the function for sampling the initial values. However, you can also pass your own initial guess or use a different sampling strategy as sampling parameter.