discrete_solve

(function from pyomo.contrib.pyros.separation_problem_methods)

pyomo.contrib.pyros.separation_problem_methods.discrete_solve(separation_data, master_data, solve_globally, ss_ineq_con_to_maximize, ss_ineq_cons_to_evaluate)[source]

Obtain separation problem solution for each scenario of the uncertainty set not already added to the most recent master problem.

Parameters:
  • separation_data (SeparationProblemData) – Separation problem data.

  • master_data (MasterProblemData) – Master problem data.

  • solver (solver type) – Primary subordinate optimizer with which to solve the model.

  • solve_globally (bool) – Is separation problem to be solved globally.

  • ss_ineq_con_to_maximize (Constraint) – Second-stage inequality constraint for which to solve separation problem.

  • ss_ineq_cons_to_evaluate (list of Constraint) – Secnod-stage inequality constraints whose expressions are to be evaluated at the each of separation problem solutions obtained.

Returns:

discrete_separation_results – Separation solver call results on second-stage inequality constraint of interest for every scenario considered.

Return type:

DiscreteSeparationSolveCallResults

Notes

Since we assume that models passed to PyROS are such that the DOF variables and uncertain parameter values uniquely define the state variables, this method need be only be invoked once per separation loop. Subject to our assumption, the choice of objective (ss_ineq_con_to_maximize) should not affect the solutions returned beyond subsolver tolerances. For other second-stage inequality constraints, the optimal separation problem solution can then be evaluated by simple enumeration of the solutions returned by this function, since for discrete uncertainty sets, the number of feasible separation solutions is, under our assumption, merely equal to the number of scenarios in the uncertainty set.