GDPoptSolver
(class from pyomo.contrib.gdpopt.GDPopt
)
- class pyomo.contrib.gdpopt.GDPopt.GDPoptSolver[source]
Bases:
object
Decomposition solver for Generalized Disjunctive Programming (GDP) problems.
The GDPopt (Generalized Disjunctive Programming optimizer) solver applies a variety of decomposition-based approaches to solve Generalized Disjunctive Programming (GDP) problems. GDP models can include nonlinear, continuous variables and constraints, as well as logical conditions.
These approaches include:
Logic-based outer approximation (LOA)
Logic-based branch-and-bound (LBB)
Partial surrogate cuts [pending]
Generalized Bender decomposition [pending]
This solver implementation was developed by Carnegie Mellon University in the research group of Ignacio Grossmann.
For nonconvex problems, LOA may not report rigorous lower/upper bounds.
Questions: Please make a post at StackOverflow and/or contact Qi Chen <https://github.com/qtothec> or David Bernal <https://github.com/bernalde>.
Several key GDPopt components were prototyped by BS and MS students:
Logic-based branch and bound: Sunjeev Kale
MC++ interface: Johnny Bates
LOA set-covering initialization: Eloy Fernandez
Logic-to-linear transformation: Romeo Valentin
- __init__()
Methods
__init__
()available
([exception_flag])Solver is always available.
license_is_valid
()solve
(model, **kwds)Solve the model.
version
()Return a 3-tuple describing the solver version.
Attributes
CONFIG
Member Documentation
- available(exception_flag=True)[source]
Solver is always available. Though subsolvers may not be, they will raise an error when the time comes.
- solve(model, **kwds)[source]
Solve the model.
- Parameters:
model (Block) – a Pyomo model or block to be solved
- Keyword Arguments:
iterlim (NonNegativeInt, optional) – Iteration limit.
time_limit (PositiveInt, optional) – Seconds allowed until terminated. Note that the time limit can currently only be enforced between subsolver invocations. You may need to set subsolver time limits as well.
tee (bool, default=False) – Stream output to terminal.
logger (a_logger, default='pyomo.contrib.gdpopt') – The logger object or name to use for reporting.