decogo.pyomo_input_model.projection_master_problem

Implements projection master problems

Classes

MipProjectionMasterProblem(sub_models, cuts)

Class for defining MIP projection master problem defined using infinity norm

NlpResourceProjectionProblem(sub_models, cuts)

A class for defining NLP projection master problem (integer variables are relaxed or fixed).

class decogo.pyomo_input_model.projection_master_problem.NlpResourceProjectionProblem(sub_models, cuts)[source]

A class for defining NLP projection master problem (integer variables are relaxed or fixed).

\[\begin{equation} \begin{split} \min \ &\sum\limits_{k \in K} ||A_kx_k - w_k||_2,\newline &x \in P \cap G, \newline &w_k \in \mathbb{R}^{m + 1} \text{ and is fixed} \end{split} \end{equation}\]
Parameters:
  • sub_models (list) – List of sub-models

  • cuts (CutPool) – Container which stores all linear constraints (global and local) and objective function

__init__(sub_models, cuts)[source]

Constructor method

set_objective()[source]

Sets objective function

set_projection_point(point_to_project)[source]

Sets value for parameter \(w_k\) (projection point).

Parameters:

point_to_project (BlockVector) – Given value for \(w\)

solve(solver_name, start_point=None, solver_options=None)[source]

Solves the model by calling an external solver and gets back the result

Parameters:
  • solver_name (str) – External solver name

  • start_point (BlockVector or None) – Starting point for the solver, defaults to None

  • solver_options (list or None) – External solver options, defaults to None

Returns:

Solution point, objective value, dual solution and flag indicating whether the solution is feasible

Return type:

tuple

class decogo.pyomo_input_model.projection_master_problem.MipProjectionMasterProblem(sub_models, cuts)[source]

Class for defining MIP projection master problem defined using infinity norm

\[\begin{equation} \begin{split} \min \ &||x - y||_\infty,\newline &x \in P \cap Y , y \text{ is fixed} \end{split} \end{equation}\]

The problem is reformulated in the following way

\[\begin{equation} \begin{split} \min \ &t, \newline &-t \leq x - y \leq t, \newline &x \in P \cap Y , y \text{ is fixed} \end{split} \end{equation}\]
__init__(sub_models, cuts)[source]

Constructor method

set_objective()[source]

Sets objective function

set_projection_point(point)[source]

Sets projection point y

Parameters:

point (BlockVector) – Given point

solve(solver_name, start_point=None, solver_options=None, pool_solutions=10, agg_blocks=None)[source]

todo