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
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.
-
version()[source]
Return a 3-tuple describing the solver version.