本文整理匯總了Python中pyomo.core.ConcreteModel.disjunction1方法的典型用法代碼示例。如果您正苦於以下問題:Python ConcreteModel.disjunction1方法的具體用法?Python ConcreteModel.disjunction1怎麽用?Python ConcreteModel.disjunction1使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類pyomo.core.ConcreteModel
的用法示例。
在下文中一共展示了ConcreteModel.disjunction1方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: makeDisjunctInMultipleDisjunctions_no_deactivate
# 需要導入模塊: from pyomo.core import ConcreteModel [as 別名]
# 或者: from pyomo.core.ConcreteModel import disjunction1 [as 別名]
def makeDisjunctInMultipleDisjunctions_no_deactivate():
m = ConcreteModel()
m.a = Var(bounds=(-10, 50))
def d1_rule(disjunct, flag):
m = disjunct.model()
if flag:
disjunct.c = Constraint(expr=m.a == 0)
else:
disjunct.c = Constraint(expr=m.a >= 5)
m.disjunct1 = Disjunct([0, 1], rule=d1_rule)
def d2_rule(disjunct, flag):
if not flag:
disjunct.c = Constraint(expr=m.a >= 30)
else:
disjunct.c = Constraint(expr=m.a == 100)
m.disjunct2 = Disjunct([0, 1], rule=d2_rule)
m.disjunction1 = Disjunction(expr=[m.disjunct1[0], m.disjunct1[1]])
m.disjunction2 = Disjunction(expr=[m.disjunct2[0], m.disjunct1[1]])
return m
示例2: makeDisjunctionsOnIndexedBlock
# 需要導入模塊: from pyomo.core import ConcreteModel [as 別名]
# 或者: from pyomo.core.ConcreteModel import disjunction1 [as 別名]
def makeDisjunctionsOnIndexedBlock():
m = ConcreteModel()
m.s = Set(initialize=[1, 2])
m.a = Var(m.s, bounds=(0, 70))
@m.Disjunct(m.s, [0, 1])
def disjunct1(disjunct, s, flag):
m = disjunct.model()
if not flag:
disjunct.c = Constraint(expr=m.a[s] == 0)
else:
disjunct.c = Constraint(expr=m.a[s] >= 7)
def disjunction1_rule(m, s):
return [m.disjunct1[s, flag] for flag in [0, 1]]
m.disjunction1 = Disjunction(m.s, rule=disjunction1_rule)
m.b = Block([0, 1])
m.b[0].x = Var(bounds=(-2, 2))
def disjunct2_rule(disjunct, flag):
if not flag:
disjunct.c = Constraint(expr=m.b[0].x <= 0)
else:
disjunct.c = Constraint(expr=m.b[0].x >= 0)
m.b[0].disjunct = Disjunct([0, 1], rule=disjunct2_rule)
def disjunction(b, i):
return [b.disjunct[0], b.disjunct[1]]
m.b[0].disjunction = Disjunction([0], rule=disjunction)
m.b[1].y = Var(bounds=(-3, 3))
m.b[1].disjunct0 = Disjunct()
m.b[1].disjunct0.c = Constraint(expr=m.b[1].y <= 0)
m.b[1].disjunct1 = Disjunct()
m.b[1].disjunct1.c = Constraint(expr=m.b[1].y >= 0)
m.b[1].disjunction = Disjunction(
expr=[m.b[1].disjunct0, m.b[1].disjunct1])
return m