跳到主要内容

优化变量定义

优化变量为在优化过程中变化的量, 比如车辆的转角控制量delta, 位置状态x, y. 在定义优化变量时, 可以同时定义优化变量的硬边界、软边界以及违反软边界时的惩罚 (见建模接口 > 约束软化了解OPTIMake中的软约束定义) .

下面为定义优化变量的例子:

delta = prob.variable(name='delta', hard_lowerbound=-0.5, hard_upperbound=0.5)

# xLowerBound与xUpperBound为已定义的parameter
x = prob.variable(
name = 'x',
hard_lowerbound=xLowerBound,
hard_upperbound=xUpperBound,
soft_lowerbound=-0.2,
soft_upperbound=0.2,
weight_soft_lowerbound=100.0,
weight_soft_upperbound=100.0,
penalty_type_soft_lowerbound='quadratic',
penalty_type_soft_upperbound='l1')
y = prob.variable('y')
theta = prob.variable('theta')

其中, 函数入参的定义如下:

  • name: 优化变量的名称, string类型
  • hard_lowerbound (optional): 优化变量的硬下界, 可以为常数或关于参数pp的表达式, 默认值为-inf, 表示无下界
  • hard_upperbound (optional): 优化变量的硬上界, 可以为常数或关于参数pp的表达式, 默认值为inf, 表示无上界
  • soft_lowerbound (optional): 优化变量的软下界, 可以为常数或关于参数pp的表达式, 默认值为-inf, 表示无下界
  • soft_upperbound (optional): 优化变量的软上界, 可以为常数或关于参数pp的表达式, 默认值为inf, 表示无上界
  • weight_soft_lowerbound (optional): 优化变量的软下界的惩罚权重, 必须为非负, 可以为常数或关于参数pp的表达式, 默认值为0.0, 表示无惩罚
  • weight_soft_upperbound (optional): 优化变量的软上界的惩罚权重, 必须为非负, 可以为常数或关于参数pp的表达式, 默认值为0.0, 表示无惩罚
  • penalty_type_soft_lowerbound (optional): 优化变量的软下界的惩罚类型, 可选值为'quadratic''l1', 默认值为'quadratic'
  • penalty_type_soft_upperbound (optional): 优化变量的软上界的惩罚类型, 可选值为'quadratic''l1', 默认值为'quadratic'