目标
目标是一个变量的函数,它返回一个优化包试图最大化或最小化的值。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。