decogo.pyomo_problem.oa_master_problem¶
This module implements OA master problems
Classes
|
A class for defining compact outer master problem |
|
A class for defining MIP Outer Approximation master problem |
|
A class for defining an outer master problem |
|
A class for MIP Outer Approximation problem with slacks |
- class decogo.pyomo_problem.oa_master_problem.OaMasterProblem(block_model)[source]¶
A class for defining an outer master problem
\[\begin{equation} \begin{split} \min \ &c^Tx,\newline &x \in P \cap Y \end{split} \end{equation}\]- Parameters:
block_model (PyomoBlockModel) – Block model
- class decogo.pyomo_problem.oa_master_problem.MipOaMasterProblem(block_model, approx_data)[source]¶
A class for defining MIP Outer Approximation master problem
\[\begin{equation} \begin{split} \min \ &c^Tx,\newline &x \in P \cap Y \cap \hat{G} \end{split} \end{equation}\]where \(\hat{G}\) is an Outer Approximation of nonlinear feasible set \(G\)
- Parameters:
block_model (PyomoBlockModel) – Block model
approx_data (ApproxData) – Object where the linearization cuts are stored
- class decogo.pyomo_problem.oa_master_problem.SlackMipOaMasterProblem(block_model, approx_data)[source]¶
A class for MIP Outer Approximation problem with slacks
\[\begin{equation} \begin{split} \min \ &c_k^Tx + \gamma\sum\limits_{j \in [m]}s_j,\newline &x_k \in Y_k \cap \hat{G}, \newline & a_{kj}^Tx \leq b_j + s_j, j \in [m], \newline & x_{\ell} \text{ is fixed}, \ell \in K\setminus{k}, \gamma > 0 \end{split} \end{equation}\]- Parameters:
block_model (PyomoBlockModel) – Block model
approx_data (ApproxData) – Object where the linearization cuts are stored
- class decogo.pyomo_problem.oa_master_problem.CompactOaMasterProblem(block_model, approx_data)[source]¶
A class for defining compact outer master problem
\[\begin{equation} \begin{split} \min &\sum\limits_{k \in K} w_{k0}, \newline &\sum\limits_{k \in K} w_k \leq b, \newline &w_k \in D_k \subset \mathbb{R}^{m + 1}, k \in K \end{split} \end{equation}\]where \(D_k\) is an Outer Approximation
- Parameters:
block_model (PyomoBlockModel) – Block model
approx_data (ApproxData) – Class that stores compact linear constraints, generated during solving the sub-problems
- add_compact_lin_local_const(block_id, lhs, relation, rhs, added_compact_cut=True)[source]¶
Adds compact linear constraints
- Parameters:
block_id (int) – Block identifier
lhs (ndarray) – Left hand side of the constraint
relation (str) – Relation of the constraint
rhs (float) – Right hand side of the constraint
- set_new_objective(direction)[source]¶
Sets new linear objective
- Parameters:
direction (ndarray) – Given direction
- set_bounds(lb_w, ub_w)[source]¶
Sets bounds on the variables
- Parameters:
lb_w (BlockVector) – Lower bounds vector
ub_w (BlockVector) – Upper bounds vector