本文整理汇总了Python中pyomo.core.ConcreteModel类的典型用法代码示例。如果您正苦于以下问题:Python ConcreteModel类的具体用法?Python ConcreteModel怎么用?Python ConcreteModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ConcreteModel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_reciprocal
def test_reciprocal(self):
m = ConcreteModel()
m.x = Var(bounds=(1, 2), initialize=1)
m.y = Var(bounds=(2, 3), initialize=2)
mc_expr = mc(m.x / m.y)
self.assertEqual(mc_expr.lower(), 1 / 3)
self.assertEqual(mc_expr.upper(), 1)
示例2: test_var
def test_var(self):
m = ConcreteModel()
m.x = Var(bounds=(-1, 1), initialize=3)
mc_var = mc(m.x)
self.assertEqual(mc_var.lower(), -1)
self.assertEqual(mc_var.upper(), 1)
m.no_ub = Var(bounds=(0, None), initialize=3)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.mcpp', logging.WARNING):
mc_var = mc(m.no_ub)
self.assertIn("Var no_ub missing upper bound.",
output.getvalue().strip())
self.assertEqual(mc_var.lower(), 0)
self.assertEqual(mc_var.upper(), 500000)
m.no_lb = Var(bounds=(None, -3), initialize=-1)
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.mcpp', logging.WARNING):
mc_var = mc(m.no_lb)
self.assertIn("Var no_lb missing lower bound.",
output.getvalue().strip())
self.assertEqual(mc_var.lower(), -500000)
self.assertEqual(mc_var.upper(), -3)
m.no_val = Var(bounds=(0, 1))
output = StringIO()
with LoggingIntercept(output, 'pyomo.contrib.mcpp', logging.WARNING):
mc_var = mc(m.no_val)
mc_var.subcv()
self.assertIn("Var no_val missing value.",
output.getvalue().strip())
self.assertEqual(mc_var.lower(), 0)
self.assertEqual(mc_var.upper(), 1)
示例3: test_linear_expression
def test_linear_expression(self):
m = ConcreteModel()
m.x = Var(bounds=(1, 2), initialize=1)
with self.assertRaises(NotImplementedError):
mc_expr = mc(quicksum([m.x, m.x], linear=True))
self.assertEqual(mc_expr.lower(), 2)
self.assertEqual(mc_expr.upper(), 4)
示例4: test_clone_without_expression_components
def test_clone_without_expression_components(self):
m = ConcreteModel()
m.x = Var(initialize=5)
m.y = Var(initialize=3)
m.e = Expression(expr=m.x**2 + m.x - 1)
base = m.x**2 + 1
test = clone_without_expression_components(base, {})
self.assertIs(base, test)
self.assertEqual(base(), test())
test = clone_without_expression_components(base, {id(m.x): m.y})
self.assertEqual(3**2+1, test())
base = m.e
test = clone_without_expression_components(base, {})
self.assertIsNot(base, test)
self.assertEqual(base(), test())
self.assertIsInstance(base, _ExpressionData)
self.assertIsInstance(test, EXPR.SumExpression)
test = clone_without_expression_components(base, {id(m.x): m.y})
self.assertEqual(3**2+3-1, test())
base = m.e + m.x
test = clone_without_expression_components(base, {})
self.assertIsNot(base, test)
self.assertEqual(base(), test())
self.assertIsInstance(base, EXPR.SumExpression)
self.assertIsInstance(test, EXPR.SumExpression)
self.assertIsInstance(base.arg(0), _ExpressionData)
self.assertIsInstance(test.arg(0), EXPR.SumExpression)
test = clone_without_expression_components(base, {id(m.x): m.y})
self.assertEqual(3**2+3-1 + 3, test())
示例5: test_active_parent_block
def test_active_parent_block(self):
m = ConcreteModel()
m.d1 = Block()
m.d1.sub1 = Disjunct()
m.d1.sub2 = Disjunct()
m.d1.disj = Disjunction(expr=[m.d1.sub1, m.d1.sub2])
with self.assertRaises(GDP_Error):
TransformationFactory('gdp.reclassify').apply_to(m)
示例6: test_lmtd
def test_lmtd(self):
m = ConcreteModel()
m.x = Var(bounds=(0.1, 500), initialize=33.327)
m.y = Var(bounds=(0.1, 500), initialize=14.436)
m.z = Var(bounds=(0, 90), initialize=22.5653)
mc_expr = mc(m.z - (m.x * m.y * (m.x + m.y) / 2) ** (1/3))
self.assertAlmostEqual(mc_expr.convex(), -407.95444629965016)
self.assertAlmostEqual(mc_expr.lower(), -499.99999999999983)
示例7: test_improved_bounds
def test_improved_bounds(self):
m = ConcreteModel()
m.x = Var(bounds=(0, 100), initialize=5)
improved_bounds = ComponentMap()
improved_bounds[m.x] = (10, 20)
mc_expr = mc(m.x, improved_var_bounds=improved_bounds)
self.assertEqual(mc_expr.lower(), 10)
self.assertEqual(mc_expr.upper(), 20)
示例8: test_fixed_var
def test_fixed_var(self):
m = ConcreteModel()
m.x = Var(bounds=(-50, 80), initialize=3)
m.y = Var(bounds=(0, 6), initialize=2)
m.y.fix()
mc_expr = mc(m.x * m.y)
self.assertEqual(mc_expr.lower(), -100)
self.assertEqual(mc_expr.upper(), 160)
示例9: makeDisjunctWithRangeSet
def makeDisjunctWithRangeSet():
m = ConcreteModel()
m.x = Var(bounds=(0, 1))
m.d1 = Disjunct()
m.d1.s = RangeSet(1)
m.d1.c = Constraint(rule=lambda _: m.x == 1)
m.d2 = Disjunct()
m.disj = Disjunction(expr=[m.d1, m.d2])
return m
示例10: test_mc_2d
def test_mc_2d(self):
m = ConcreteModel()
m.x = Var(bounds=(pi / 6, pi / 3), initialize=pi / 4)
m.e = Expression(expr=cos(pow(m.x, 2)) * sin(pow(m.x, -3)))
mc_ccVals, mc_cvVals, aff_cc, aff_cv = make2dPlot(m.e.expr, 50)
self.assertAlmostEqual(mc_ccVals[1], 0.6443888590411435)
self.assertAlmostEqual(mc_cvVals[1], 0.2328315489072924)
self.assertAlmostEqual(aff_cc[1], 0.9674274332870583)
self.assertAlmostEqual(aff_cv[1], -1.578938503009686)
示例11: test_mc_3d
def test_mc_3d(self):
m = ConcreteModel()
m.x = Var(bounds=(-2, 1), initialize=-1)
m.y = Var(bounds=(-1, 2), initialize=0)
m.e = Expression(expr=m.x * pow(exp(m.x) - m.y, 2))
ccSurf, cvSurf, ccAffine, cvAffine = make3dPlot(m.e.expr, 30)
self.assertAlmostEqual(ccSurf[48], 11.5655473482574)
self.assertAlmostEqual(cvSurf[48], -15.28102124928224)
self.assertAlmostEqual(ccAffine[48], 11.565547348257398)
self.assertAlmostEqual(cvAffine[48], -23.131094696514797)
示例12: test_indexedvar_noindextemplate
def test_indexedvar_noindextemplate(self):
st_model = CreateConcreteTwoStageScenarioTreeModel(1)
st_model.StageVariables['Stage1'].add("x")
st_model.StageDerivedVariables['Stage1'].add("y")
st_model.NodeVariables['RootNode'].add("z")
st_model.NodeDerivedVariables['RootNode'].add("q")
st_model.StageCost['Stage1'] = "FirstStageCost"
st_model.StageCost['Stage2'] = "SecondStageCost"
scenario_tree = ScenarioTree(scenariotreeinstance=st_model)
self.assertEqual(len(scenario_tree.stages), 2)
self.assertEqual(len(scenario_tree.nodes), 2)
self.assertEqual(len(scenario_tree.scenarios), 1)
model = ConcreteModel()
model.s = Set(initialize=[1,2,3])
model.x = Var(model.s)
model.y = Var(model.s)
model.z = Var(model.s)
model.q = Var(model.s)
model.FirstStageCost = Expression(expr=0.0)
model.SecondStageCost = Expression(expr=0.0)
model.obj = Objective(expr=0.0)
scenario_tree.linkInInstances({'Scenario1': model})
root = scenario_tree.findRootNode()
self.assertEqual(len(root._variable_ids), 12)
self.assertEqual(len(root._standard_variable_ids), 6)
self.assertEqual(len(root._derived_variable_ids), 6)
for name in ("x", "y", "z", "q"):
for index in model.s:
self.assertEqual(
(name,index) in root._name_index_to_id, True)
示例13: test_fixed_var
def test_fixed_var(self):
m = ConcreteModel()
m.x = Var(bounds=(-50, 80), initialize=3)
m.y = Var(bounds=(0, 6), initialize=2)
m.y.fix()
mc_expr = mc(m.x * m.y)
self.assertEqual(mc_expr.lower(), -100)
self.assertEqual(mc_expr.upper(), 160)
self.assertEqual(
str(mc_expr),
"[ -1.00000e+02 : 1.60000e+02 ] [ 6.00000e+00 : 6.00000e+00 ] [ ( 2.00000e+00) : ( 2.00000e+00) ]")
示例14: test_deactivated_parent_block
def test_deactivated_parent_block(self):
m = ConcreteModel()
m.d1 = Block()
m.d1.sub1 = Disjunct()
m.d1.sub2 = Disjunct()
m.d1.disj = Disjunction(expr=[m.d1.sub1, m.d1.sub2])
m.d1.deactivate()
TransformationFactory('gdp.reclassify').apply_to(m)
self.assertIs(m.d1.type(), Block)
self.assertIs(m.d1.sub1.type(), Block)
self.assertIs(m.d1.sub2.type(), Block)
示例15: test_active_parent_disjunct_target
def test_active_parent_disjunct_target(self):
m = ConcreteModel()
m.d1 = Disjunct()
m.d1.sub1 = Disjunct()
m.d1.sub2 = Disjunct()
m.d1.disj = Disjunction(expr=[m.d1.sub1, m.d1.sub2])
TransformationFactory('gdp.bigm').apply_to(m, targets=m.d1.disj)
m.d1.indicator_var.fix(1)
TransformationFactory('gdp.reclassify').apply_to(m)
self.assertIs(m.d1.type(), Block)
self.assertIs(m.d1.sub1.type(), Block)
self.assertIs(m.d1.sub2.type(), Block)