Ejemplo n.º 1
0
 def test_GOA_Nonconvex1(self):
     with SolverFactory('mindtpy') as opt:
         model = Nonconvex1()
         print('\n Solving Nonconvex1 with global Outer Approximation')
         results = opt.solve(model,
                             strategy='GOA',
                             mip_solver=required_solvers[1],
                             nlp_solver='baron',
                             single_tree=True)
         self.assertIs(results.solver.termination_condition,
                       TerminationCondition.optimal)
         self.assertAlmostEqual(value(model.objective.expr),
                                7.667,
                                places=2)
Ejemplo n.º 2
0
from pyomo.contrib.mindtpy.tests.nonconvex4 import Nonconvex4
from pyomo.environ import SolverFactory, value
from pyomo.environ import *
from pyomo.opt import TerminationCondition

required_solvers = ('baron', 'cplex_persistent')
if not all(SolverFactory(s).available(False) for s in required_solvers):
    subsolvers_available = False
elif not SolverFactory('baron').license_is_valid():
    subsolvers_available = False
else:
    subsolvers_available = True

model_list = [
    EightProcessFlowsheet(convex=False),
    Nonconvex1(),
    Nonconvex2(),
    Nonconvex3(),
    Nonconvex4(),
]


@unittest.skipIf(not subsolvers_available,
                 'Required subsolvers %s are not available' %
                 (required_solvers, ))
@unittest.skipIf(not pyomo.core.base.symbolic.differentiate_available,
                 'Symbolic differentiation is not available')
@unittest.skipIf(not pyomo.contrib.mcpp.pyomo_mcpp.mcpp_available(),
                 'MC++ is not available')
class TestMindtPy(unittest.TestCase):
    """Tests for the MindtPy solver plugin."""