Supported Problem Formulation
OPTIMake solves the following optimization problem:
This optimization problem has stages and may be a nonlinear non-convex optimization problem. Where:
- are the optimization variables
- are the parameters
- is the stage objective
- is the additional objective at the terminal point
- is the initial equality constraint
- is the transition equality constraint
- is the terminal equality constraint
- is the inequality constraint
Problem Definition
Below is an example of defining a problem, which specifies the problem name as vehicle with a maximum of 10 stages:
prob = multi_stage_problem(name='vehicle', N=10)
The function parameters are defined as follows:
-
name: str The name of the problem, which will be used in generated code file names, function names, etc.
-
N: int The maximum number of stages for the problem, must be greater than or equal to 1
info
- Since the above optimization problem is a multi-stage optimization problem, the equality and inequality constraint expressions are identical across all stages, so they only need to be defined once rather than separately for each stage (the same applies to parameters and optimization variables)
- N is the maximum number of stages. OPTIMake supports dynamic stage counts, meaning the effective number of stages can be set to less than N at solve time, but cannot exceed N
After defining the problem name and number of stages, the following sections describe how to define the parameters, optimization variables, and constraints in the optimization problem.