Interior Point Optimizer (IPOPT) Profile

The IPOPT Optimizer profile uses the IPOPT (Interior Point OPTimizer) programming solver to minimize or maximize a certain cost function in the presence of constraints. IPOPT is capable of handling sparse optimization problems with millions of variables and constraints.

IPOPT is a robust, efficient, large-scale, nonlinear, programming solver that implements an interior-point, line-search filter method to solve convex and nonconvex, constrained, optimization problems. IPOPT iterations involve solving sparse, symmetric, indefinite linear systems, requiring integration with a sparse linear algebra solver. Astrogator uses MUMPS, a software package for the multifrontal solution of large, sparse, linear systems for this purpose. To enhance the performance of MUMPS, the efficient matrix ordering algorithms available in METIS are utilized. All first-order derivatives required by IPOPT are computed through numerical finite-differencing, whereas second-order derivatives are obtained via a limited-memory quasi-Newton method (L-BFGS).

The IPOPT profile is comprised of five tabs:

Variables

This tab allows the configuration of two types of quantities, the Controls - optimizer Decision Variables - and the Results - comprised of the Objective Function and the Constraints. A profile must have at least one decision variable and one objective defined to execute properly. Objectives and constraints are derived from the same source and defined in the same manner, but are different in terms of how they are applied to the problem; an objective is a quantity that the optimizer attempts to minimize or maximize, while constraints define the set of acceptable (feasible) solutions.

Selecting Decision Variables, Objectives, and Constraints

Any element of a nested MCS segment or linked component that is available for selection as a decision variable will be identified with a target icon displayed adjacent to it. To select an element as a decision variable, click the associated target icon; a check mark will appear over the icon. To remove a selected element as a decision variable, click the target icon a second time and the check mark will disappear. You can select decision variables in more than one nested segment and, in each, you can select as many decision variables as you need. Plugins publish their inputs to Astrogator, so you can also select these inputs as decision variables. To target an input, you may need to double-click it to expose the window for editing its value; the target icon will appear in that window next to the editable field.

If the "Restore nominal values as soon as target sequence completes" MCS Option is selected and an element of a linked component is selected as an decision variable, the changed value that is produced will only be applied to subsequent segments nested within the same target sequence. Segments that are outside of the target sequence will use the value that the element held at the beginning of the MCS. If you apply corrections after running the MCS, then on the next run all segments within the MCS will use the value produced by the target sequence.

Objectives and constraints are defined in terms of Astrogator's extensive repertoire of Calculation Objects (to which you can add). To select objectives and constraints for a given nested MCS segment, click Results.... This will bring up the User-Selected Results window for that segment, where Calculation Objects can be selected as objectives and constraints.

The sections below describe the definition of decision variables and objectives and constraints:

Configuring Decision Variables

Each decision variable that you have selected is listed in the Decision Variables section of the Variables tab, along with the following information:

  • Use - If the box is checked, the decision variable is being used.
  • Name - The name of the element selected as a decision variable.
  • Initial Value - The element's initial guess value (as provided by you).
  • Current Value - The element's final value from the last run of the optimizer; if the optimizer hasn't run, this value is the same as the initial value.
  • Lower Bound - The lowest value that you want to allow the optimizer to use for the element; double-click the field to edit it.
  • Upper Bound - The highest value that you want to allow the optimizer to use for the element; double-click the field to edit it.
  • Object - The segment or component to which the element belongs.
  • Custom Display Unit - Select to use a unit other than the default when displaying results in the status window and graphs.
  • Display Unit - The unit to be displayed if the Custom Display Unit option has been selected.
  • Graphs cannot display DMS or HMS angle units and will use the scenario unit instead

If you have multiple decision variables, select the Hide Inactive field to hide decision variables that are not currently selected for use.

The following fields, some of which can be edited, appear below the Decision Variables list:

Field Description
Initial Value The nominal value of the element selected as a parameter.
Current Value The element's final value from the last run of the optimizer; if the optimizer hasn't run, this value is the same as the initial value.
Scaling Value Enter a value to be used for scaling; the default is no scaling (i.e., scale by 1, specified by internal units). Scaling improves numerical behavior if the parameters have very different magnitudes. When scaling is used, the current value is divided by the scaling value before being passed to the optimizer algorithm. Because the scaling value has units, the value passed to the optimizer algorithm is unitless.

Configuring Objectives and Constraints (Results)

Each objective or constraint that you have selected is listed in the Objectives and Constraints (Results) section of the Variables tab, along with the following information:

  • Use - If the box is checked, the Calculation Object will be used as a Result component.
  • Name - The name of the Calculation Object used as a Result component.
  • Current Value - The value achieved for this quantity in the last optimizer run. You can copy the value in this field by right-clicking it and selecting the Copy command that appears.
  • Weight - The relative significance of the element compared to other components of the objective function; this value will be applied to the calculations to allow you to favor achieving one goal over another; this field only applies if the element is set to be minimized in the Goal field. A negative weight results in maximization. Double-click the field to edit it.
  • Lower Bound - The lower limit achievable by this quantity in the optimizer's iteration history. This field only applies if the result is set to be a Bound (or constraint) in the Goal field. Set the Upper Bound and Lower Bound to be equal to indicate an equality constraint. Double-click the field to edit it.
  • Upper Bound - The upper limit achievable by this quantity in the optimizer's iteration history. This field only applies if the result is set to be a Bound (or constraint) in the Goal field. Set the Upper Bound and Lower Bound to be equal to indicate an equality constraint. Double-click the field to edit it.
  • Object - The segment or component to which the element belongs.
  • Goal - The role of the element in the problem; click the field once and select Bound to employ the element as a constraint, and Minimize to use it as part of the objective. If you select multiple Minimize objectives for the same profile, then IPOPT will optimize the sum of the values (with each individual value multiplied by its weight and divided by its scale factor).
  • Custom Display Unit - Select to use a unit other than the default when displaying results in the status window and graphs.
  • Display Unit - The unit to be displayed if the Custom Display Unit option has been selected.
  • Graphs cannot display DMS or HMS angle units and will use the scenario unit instead

If you have multiple objectives and constraints, select the Hide Inactive field to hide objectives and constraints that are not currently selected for use.

Options

A few, relatively common IPOPT options can be set through the interface under the Options tab. The exhaustive set of algorithm options can be provided through an IPOPT specifications file. Please refer to documentation on the web for more information on IPOPT options.

If user options are provided through an IPOPT options file, the value of the option Hessian_approximation must be set to limited-memory. An option value of “exact” will result in unsuccessful algorithm termination in the current Astrogator implementation.

Field Description

Reset controls before each run

When this option is checked, the optimizer is automatically reset each time that it is run, discarding information that was computed the last time it was run.

Convergence tolerance

Represents convergence tolerance for the algorithm. The algorithm terminates successfully if the scaled NLP error becomes smaller than this value, provided that dual infeasibility, constraint violation, and complementarity infeasibility tolerances are met.

Maximum number of iterations

The algorithm terminates with an error message if the number of iterations exceeded this number.

Constraint violation tolerance

Represents the desired threshold for the constraint violation. Successful termination requires that the max-norm of the (unscaled) constraint violation be less than this threshold.

Dual infeasibility tolerance

Represents the desired threshold for the dual infeasibility. Successful termination requires that the max-norm of the (unscaled) dual infeasibility be less than this threshold.

Complementarity infeasibility tolerance

Represents the desired threshold for the complementarity conditions. Successful termination requires that the max-norm of the (unscaled) complementarity be less than this threshold.

Log

The Log tab displays the detailed IPOPT iteration log, including the algorithm options.

Graphs

The Graphs tab allows you to define a variety of graphs of the optimizer profile's performance that can be generated manually when desired or automatically whenever the MCS is run. The tab is divided into two general areas - a table that displays the graphs that have been assigned to the profile and the collection of properties that define the graph that is currently selected in the table.

Graphs Table

You can add, copy, delete and perform other actions on graphs by right-clicking in the table that lists them or by using the following toolbar buttons:

Button Name Function
New... Inserts a new graph with default properties settings.
Cut Removes the currently selected graph from the list and copies it to the clipboard.
Copy Makes a copy of the currently selected graph to the clipboard.
Paste Inserts a copy of the graph that is currently on the clipboard.
Delete Deletes the currently selected graph.

The graphs table displays the following information for each graph:

  • Name - The name given by the user to the graph or, if one was not given, the default name.
  • Generate on run - Select to have Astrogator generate the graph automatically each time that the MCS is run.
  • User Comment - a description of the graph supplied by the user or, if one was not supplied, a default description.

Graph Properties

Each graph can display the values of any number of the active Controls and Objectives and Constraints defined for the profile against an X axis of the number of iterations performed or any single active Control or Objective or Constraint defined for the profile.

The Independent variable field defines the X axis of the graph. If the X axis is one of the active Controls or Objectives or Constraints, you can select Label Iterations to have each of the points on the graph labeled according to its iteration number.

The active Controls defined for the profile are listed in a table that you can use to specify their display characteristics in the graph:

  • Name - The name of the element selected as a control.
  • Object - The segment or component to which the element belongs.
  • Graph Value - Select to include the value in the graph.
  • Line Color - The color of line that will be used to represent the control's value in the graph.
  • Point Style - The style of marker that will be used to represent iteration points along the control's line in the graph.
  • Y Axis - Select Y1 or Y2 to display a range of values suitable to the control on the left or right side, respectively, of the graph.

The active Objectives and Constraints (Results) defined for the profile are also listed in a table that you can use to specify their display characteristics in the graph:

  • Name - The name of the Calculation Object used as an Objective or Constraint.
  • Object - The segment or component for which this Objective or Constraint has been selected.
  • Graph Option - Select Don't graph to leave the Objective or Constraint out of the graph or Graph value to use the Objective's or Constraint's value in the graph.
  • Line Color - The color of line that will be used to represent the Objective's or Constraint's value in the graph.
  • Point Style - The style of marker that will be used to represent iteration points along the Objective's or Constraint's line in the graph.
  • Y Axis - Select Y1 or Y2 to display a range of values suitable to the Objective or Constraint on the left or right side, respectively, of the graph.

Click Generate Graph to produce the currently selected graph. To produce a report of the graph data, click Generate Report.

Scripting

The Scripting tab contains an embedded instance of the Scripting Tool. A script entered here will be executed before the sequence is run. The script will be executed each time that the profile runs the sequence. Parameters that are defined in the Scripting Tool are available for use as controls by the optimizer profile.