使用pyomo创建约束
创建约束
Constraint 用法
This modeling component defines a constraint expression using a rule function.
Constructor arguments:
expr:
A Pyomo expression for this constraint
rule:
A function that is used to construct constraint expressions
name:
A name for this component
doc:
A text string describing this component
创建约束
实际创建过过程中,expr和rule貌似没有什么区别
# 方式1
model.cons1 = Constraint(range(5),expr=lambda model,h:model.x[h]<=model.y[h])
# 方式2
cons2 = Constraint(range(5),expr=lambda model,h:model.x[h]<=model.y[h])
model.__setattr__("cons2",cons2)
# 方式3
def definitionexprs(model,h):
return model.x[h]<=model.y[h]
model.cons3 = Constraint(range(5),expr=definitionexprs)
# 方式4
model.cons = ConstraintList()
for i in range(5):
model.cons.add(model.x[i]>=model.y[i])
跳过约束创建
Constraint.Skip
def definitionexprs(model,h):
if h%2:
return model.x[h]<=model.y[h]
return Constraint.Skip
变量点积和 sum_product
A utility function to compute a generalized dot product.
This function accepts one or more components that provide terms that are multiplied together.
These products are added together to form a sum.
Args:
*args: Variable length argument list of generators that create terms in the summation.
**kwds: Arbitrary keyword arguments.
expr=sum_product(model.x,model.y)