Exemple #1
0
 def test_GOA_Nonconvex3(self):
     with SolverFactory('mindtpy') as opt:
         model = Nonconvex3()
         print('\n Solving Nonconvex3 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), 31, places=2)
Exemple #2
0
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."""
    def test_GOA(self):
        """Test the global outer approximation decomposition algorithm."""