支持的问题形式
OPTIMake求解以下的优化问题:
该优化问题为一个具有 个stage的优化问题, 该优化问题可能为一个非线性非凸的优化问题. 其中:
- 为优化变量
- 为参数
- 为stage objective
- 为终点处额外的objective
- 为起点等式约束
- 为转移等式约束
- 为终点等式约束
- 为不等式约束
问题定义
下面为定义问题的例子, 该例子指定了问题的名称为vehicle且具有最大10个stage:
prob = multi_stage_problem(name='vehicle', N=10)
其中, 函数入参的定义如下:
-
name: str 问题的名称, 该名称会用在生成代码的文件名, 函数名等
-
N: int 问题的最大stage数目, 必须大于等于1
信息
- 因为上述的优化问题为一个多stage的优化问题, 等式约束与不等式约束的表达式在所有stage上都一致, 所以不需要在每个stage上都单独定义, 只需要定义一次该表达式即可 (参数与优化变量同理)
- N为最大stage数, OPTIMake支持动态stage数, 即在求解时可以指定有效的stage数小于N, 但不能大于N
在完成问题名称和stage数的定义后, 下面说明如何定义优化问题中的参数, 优化变量及约束.