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.

version()[source]

Return a 3-tuple describing the solver version.