目标

目标是一个变量的函数,它返回一个优化包试图最大化或最小化的值。Pyomo中的Objective函数声明了一个目标。尽管其他机制也是可能的,但通常会将给出表达式的另一个函数的名称传递给此函数。这里是一个非常简单的函数版本,假设model.x之前已被声明为Var

>>> def ObjRule(model):
...     return 2*model.x[1] + 3*model.x[2]
>>> model.obj1 = pyo.Objective(rule=ObjRule)

目标函数更常见的是引用参数,如本例中假设model.p已被声明为Param,而model.x已使用相同的索引集声明,而model.y已被声明为单例:

>>> def ObjRule(model):
...     return pyo.summation(model.p, model.x) + model.y
>>> model.obj2 = pyo.Objective(rule=ObjRule, sense=pyo.maximize)

此示例使用sense选项来指定最大化。默认的sense是minimize